Quest Pro controllers go to sleep too quickly.
Both my partner and I have Quest Pros. We AirLink them to our PCs and play VRChat that way. However, we've both noticed that if we stop moving our hands for only about 10 to 15 seconds the controllers seem to go into a sleep mode which causes our characters in VR's arms to drop straight down to their sides. We can wake the controllers back up by wiggling them a bit but it's quite annoying and jarring to have your arms constantly fall to your sides. It's especially annoying when you're using one controller to scroll through a menu and the other goes to sleep causing the game to enter into one controller mode and then the controller you were using to scroll a menu now moves your character so the menu closes and your character starts moving in some direction. I have looked all over but do not see a way to adjust how frequently the controllers go to sleep when not being moved. I've also tried factory resetting both the headset and the controllers.Solved11KViews8likes25CommentsAfter Quest 2 HMD goes to sleep while running my app, scene is offset when HMD awakes
My application is built using Unity 2020.3.36 and Oculus XR plugin 1.12.0 When my app is running if remove the HMD and the HMD goes to sleep, when I put the HMD back on the HMD wakes up and the app resumes, but the camera view is offset from where it was when I took the HMD off. There is no way to correct this without restarting the device. Is there a setting in the OVRCameraRig or some api for forcing my rig to update to new tracking coordinates when it it resumes? What else could be the cause of this?1.5KViews1like1CommentOpenXR Spatial Anchors don't provide valid pose when sleeping then waking
I'm not sure exactly what update caused this, but it's within the last few months. The spatial anchors for my project stop getting valid poses when our Quest 3s either sleeps on their own or the power button is pressed. On wakeup, the positions and orientations don't line up where expected (it's as if we had a recenter event) and the XrSpaceLocationFlags bits are all false For example: XrSpaceLocation persistedAnchorLoc = {XR_TYPE_SPACE_LOCATION}; XrResult res = xrLocateSpace(anchor.space, m_space, predictedDisplayTime, &persistedAnchorLoc); if (res == XR_SUCCESS) { XrSpaceLocationFlags flags = persistedAnchorLoc.locationFlags; bool valid = (flags & XR_SPACE_LOCATION_ORIENTATION_VALID_BIT) != 0 && (flags & XR_SPACE_LOCATION_POSITION_VALID_BIT) != 0; bool tracked = (flags & XR_SPACE_LOCATION_ORIENTATION_TRACKED_BIT) != 0 && (flags & XR_SPACE_LOCATION_POSITION_TRACKED_BIT) != 0; bool anchorIsValid = valid && tracked; // These are both always false upon wakeup // persistedAnchorLoc.pose also appears to be incorrect // ... } I have found, however, if I add a new anchor after wakeup the old anchors start getting valid poses again. It's definitely a timing issue though too. I can't immediately generate a new anchor (the frame during the wakeup) so I end up with a really ugly hack that waits some time before generating a temporary anchor to fix the current anchors. I have tried the official samples and I found the same behavior. I could add anchors in the XrSpatialAnchor sample, sleep the headset, wakeup and find they are all missing. When I add a new anchor, all the previous anchors appear again. I'm not sure if it's relevant or not, but I do have Developer -> Boundary disabled. This is a requirement for our application since the guardian area can't grow large enough. This is all used in-house, so it's not a problem for our users.1.6KViews1like1Comment