-
Notifications
You must be signed in to change notification settings - Fork 195
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Rudimentary support for the Pimax 4K #350
base: master
Are you sure you want to change the base?
Conversation
This commit merges with minimal cleanup and adjustments the branch "dev-pimax" by TheOnlyJoey. Raw USB/HID captures of a Pimax 4k were analyzed. The significant changes were that only HID responses of type "11" are relevant and can be triggered with HID request "17", and they run into a timeout after ~3 sec if no other "17" request is sent. The headset can still crash/stop sending data. Sometimes it resumes after a while. Otherwise, it needs to be replugged. During testing, gyro drifting was noticed. So far, this was fixed with magic numbers gathered with external python scripts "grafdigital/OpenHmdPimaxTools" that may only work with the headset the data was pulled from. Should we look into setup functions or make these values configurable through files? Lens correction needs improvement. This is the first draft to get passable graphical output. Head tracking is passable but lags a bit, but this could be due to the device. Functionality was validated with "openglexample". Still missing is the utilisation of magnetometer data.
Does the screen work on this branch, my pimax artisan works ish the tracking is there and i can see it move in steamvr just no picture to the screen |
@RoxyBoxxy also if the HMD does not show up in xrandr with an NVIDIA card, you may need to set this X11 conf (as per the post of @bigbruno) |
i am using the display port how ever xrandr is not even showing the modes
|
does it show up when you do |
@grafdigital I took a look at some other pimax pcaps and it appears this wakeup packet is found in all P2 type HMDs This branch may yet work with many relevant pimax |
@grafdigital What's necessary to try to pattern match another type of pimax HMD in the packet function? Do you have any time or will to mess around with this over some IM, I have a ssh ready paravirt machine with a pimax attached if interested. |
Just tested your branch by changing the USB Got usable 3DoF on a 0483:0101 STMicroelectronics Pimax P2EA
|
This packet appears to be necessary to send once every second and causes the displayport connection to come alive on my 5K plus |
Yep, looks like all Pimax P2 HMDs are a dual keepalive packet, noting here for anyone who would like to know |
This commit merges with minimal cleanup and adjustments the branch "dev-pimax" by TheOnlyJoey. Raw USB/HID captures of a Pimax 4k were analyzed. The significant changes were that only HID responses of type "11" are relevant and can be triggered with HID request "17", and they run into a timeout after ~3 sec if no other "17" request is sent. The headset can still crash/stop sending data. Sometimes it resumes after a while. Otherwise, it needs to be replugged.
During testing, gyro drifting was noticed. So far, this was fixed with magic numbers gathered with external python scripts "grafdigital/OpenHmdPimaxTools" that may only work with the headset the data was pulled from. Should we look into setup functions or make these values configurable through files?
Lens correction needs improvement. This is the first draft to get passable graphical output. Head tracking is passable but lags a bit, but this could be due to the device.
Functionality was validated with "openglexample".
Still missing is the utilisation of magnetometer data.