mm0zct / Oculus_Touch_Steam_Link

SteamVR driver to enable Oculus Touch controllers with other headsets
MIT License
63 stars 20 forks source link

Steamvr error 309 when ovr_test.exe is active but steamvr launches when it is closed #28

Open jetblade opened 8 months ago

jetblade commented 8 months ago

Even after the Oculus Touch Steam Link update, I'm unable to launch steamvr with it open, what should I do?

rsm28 commented 8 months ago

Still failing here too - error 301, using the steamvr_update_fix release published a few hours ago. Verified SteamVR working without opening OculusTouchLink, and not working with it open.

rsm28 commented 8 months ago

Checking in after five minutes - removing 'oculus' and 'oculus_legacy' from the Steam\steamapps\common\SteamVR\drivers folder and doing everything as normal, it now works.

mm0zct commented 8 months ago

Ok, thanks for the feedback, I'll have to rework the driver to not use the oculus api if you click use external tracking, shouldn't be too hard

jetblade commented 8 months ago

Checking in after five minutes - removing 'oculus' and 'oculus_legacy' from the Steam\steamapps\common\SteamVR\drivers folder and doing everything as normal, it now works.

after removing oculus and oculus legacy, steamvr now cant detect my headset, so i had to put them back

jetblade commented 8 months ago

Ok, thanks for the feedback, I'll have to rework the driver to not use the oculus api if you click use external tracking, shouldn't be too hard

I apologize its a 309 error not a 301 my bad.

DeltaNeverUsed commented 8 months ago

Ok, thanks for the feedback, I'll have to rework the driver to not use the oculus api if you click use external tracking, shouldn't be too hard

I could also do that if it's a hassle for you, since I've still got my rift hooked up

mm0zct commented 8 months ago

Can you try the latest release? I think I've changed it so that the oculus API is not used at all from the steam vr driver now so long as you select external tracking - this does mean that it has to assume that it's a CV1 when it comes to the rendering models for the controllers when you are using external tracking - I can review/fix this later. https://github.com/mm0zct/Oculus_Touch_Steam_Link/releases/tag/steamvr_no_oculua_api

jetblade commented 8 months ago

Can you try the latest release? I think I've changed it so that the oculus API is not used at all from the steam vr driver now so long as you select external tracking - this does mean that it has to assume that it's a CV1 when it comes to the rendering models for the controllers when you are using external tracking - I can review/fix this later. https://github.com/mm0zct/Oculus_Touch_Steam_Link/releases/tag/steamvr_no_oculua_api

ill test it now, one sec

jetblade commented 8 months ago

Can you try the latest release? I think I've changed it so that the oculus API is not used at all from the steam vr driver now so long as you select external tracking - this does mean that it has to assume that it's a CV1 when it comes to the rendering models for the controllers when you are using external tracking - I can review/fix this later. https://github.com/mm0zct/Oculus_Touch_Steam_Link/releases/tag/steamvr_no_oculua_api

I tested it and it works, the body trackers render as vive trackers so you good on that.

One thing I probably should have told you is that I'm using my rift as the head set, 2 rift controllers as controllers and the 3rd controller as the hip tracker, I'm using a full oculus rift setup, I was told that this program was not deigned to do that but I tried it anyway and it worked fine (before the steamvr update) and the new update you just made fixed it now, so I thank you!

P.S my controllers have a big offset but not the tracker, when using the built in world position to fix the offset it sets it for all, now my tracker has a offset what do i do?

mm0zct commented 8 months ago

Ah, so what you actually want is to disable the controllers entirely from my application, and only have the tracker? Your real problem is just that the official oculus driver doesn't expose the third object controller as a tracker?

jetblade commented 8 months ago

Ah, so what you actually want is to disable the controllers entirely from my application, and only have the tracker? Your real problem is just that the official oculus driver doesn't expose the third object controller as a tracker?

I did not think of it like that, but that seams right I think. Is a possibility for you to add and option for your world translation set trackers individually? Once again thank you for fixing the 309 error. 2 questions why is that when I disable (enable external tracking) I get a 301 error from steamvr? and there is no readme file that shows all settings and what they do, is it a possibility to add one? I apologies for bothering you.

jetblade commented 7 months ago

Ah, so what you actually want is to disable the controllers entirely from my application, and only have the tracker? Your real problem is just that the official oculus driver doesn't expose the third object controller as a tracker?

yes, before the update, your program only enabled the VR object not the controllers from what I know, but now sense I have to enable external tracking to get steam VR to open without a 301 error external tracking enables all as trackers this includes the controller's. So I have to some how run steam VR without error when external tracking is disabled or get the dev's to fix it on there end (low chance) or your program is updated with a work around, I don't know what to do.

mm0zct commented 7 months ago

Are your selecting the "run as trackers" option in ovr_test? You don't need this.

I can add an option to not register the controllers for you

jetblade commented 7 months ago

Are your selecting the "run as trackers" option in ovr_test? You don't need this.

I can add an option to not register the controllers for you

No I do not have (run as trackers) enabled. The only option enabled is (Enable External Tracking) which is needed or else I get a 301 error with SteamVR

(I can add an option to not register the controllers for you) I would appreciate that thank you.

jetblade commented 7 months ago

a valve dev said this

aaron.leiby [developer] 9 hours ago
There is another thread on this (I don't have a link handy), but if I recall they need to wait until a hmd is added before calling ovr_Initialize.

One way of doing this: vr::PropertyContainerHandle_t ulHmdContainer = vr::VRProperties()->TrackedDeviceToPropertyContainer( vr::k_unTrackedDeviceIndex_Hmd ); vr::VRProperties()->GetInt32Property( ulHmdContainer, vr::Prop_DeviceClass_Int32 ) == vr::TrackedDeviceClass_HMD;

This likely means spinning up a separate thread when their driver's Init gets called and polling in a while loop that sleeps 100ms at a time or whatever. Another method would be to call vr::VRServerDriverHost()->PollNextEvent and wait for a vr::VREvent_TrackedDeviceActivated event, but you'd want to make sure the device hadn't already been added first.

i dont know if this helps or not

mm0zct commented 7 months ago

I've pushed a build with the option now to make the controllers disable-able, and external_tracking is now the default if you click the "reset" button to discard your previously saved configuration. You'll have to get the binaries out of the build directories here https://github.com/mm0zct/Oculus_Touch_Steam_Link/tree/main/CustomHMD/Release/x64 and here https://github.com/mm0zct/Oculus_Touch_Steam_Link/tree/main/ovr_test/x64/Release

If you are using external tracking with the latest build you shouldn't get steamvr errors.

jetblade commented 7 months ago

I've pushed a build with the option now to make the controllers disable-able, and external_tracking is now the default if you click the "reset" button to discard your previously saved configuration. You'll have to get the binaries out of the build directories here https://github.com/mm0zct/Oculus_Touch_Steam_Link/tree/main/CustomHMD/Release/x64 and here https://github.com/mm0zct/Oculus_Touch_Steam_Link/tree/main/ovr_test/x64/Release

If you are using external tracking with the latest build you shouldn't get steamvr errors.

i will try it out!

jetblade commented 7 months ago

I've pushed a build with the option now to make the controllers disable-able, and external_tracking is now the default if you click the "reset" button to discard your previously saved configuration. You'll have to get the binaries out of the build directories here https://github.com/mm0zct/Oculus_Touch_Steam_Link/tree/main/CustomHMD/Release/x64 and here https://github.com/mm0zct/Oculus_Touch_Steam_Link/tree/main/ovr_test/x64/Release

If you are using external tracking with the latest build you shouldn't get steamvr errors.

It works flawlessly Thank you!