-
Notifications
You must be signed in to change notification settings - Fork 6
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
Is there a way to test the tracking in SteamVR without an HMD? #2
Comments
I played with this around a bit more, setting the matching render and window size for the null driver and arduinohmd driver allowed me to display the scene on the primary monitor. Here are some logs saying there were no suitable devices found form arduinohmd. Does this mean it can't connect to an arduino, or it just says there is no HMD found? Anyway, I guess this message tells exactly why the driver doesn't stratup.
|
Hello, there is no need for a null driver, this driver supports image output without a second display. You just need to set windows = 0, windows = 0, as well as windowWidth and windowHeight according to the resolution of your monitor, then you will get a stereo image running on your main screen, as in my videos. You should also disable the null driver, otherwise a conflict will occur, I'm not sure they will work. |
It turns out that you need to unpack the Arduino driver again, delete the steamvr file.vr settings, change the resolution in the config (...\Steam\steamapps\common\SteamVR\drivers\arduinohmd\resources\settings) (if your monitor is not at 1920x1080) and just launch Steam. You will also need calibration (next, 170cm, next, finish). Have you recently bought a GY 85 board? have there been any problems with the data? Is there any drifting? |
Just tried it out, disabled the null driver but unfortunately SteamVR said "no helmet recognized". Will try the full re-setup solution now. EDIT: Do I need to change the render width as well? The GY 85 works well, tested on two different projects already and there was no drifting whatsoever. |
I deleted steamvr config file (in Steam/config) and reinstalled the driver, set COM port, restarted steam. The window size matches my monitor (Full HD) except the renderWidth, as its 1080 by 1080 and not 1980 by 1080 in driver steamvr block. This didn't work, then tried with 1920 render width, nothing as well. SteamVR is just waiting for me to connect a helmet when I start it up. I also tried to set the window size in Steam/config/steamvr.vrsettings like this:
But no luck as well :( |
You also need to change the com port number
|
Yep I did this as well :) Do I understand properly that COM12 will be "COMPort" : 12? |
Take a look at full settting, my monitor is exact 1920 by 1080:
Steam\steamapps\common\SteamVR\drivers\arduinohmd\resources\settings\default.vrsettings
|
Yep, everything looks right |
Sadly it doesn't work :( SteamVR is still waiting for me to connect the helmet :( |
Sometimes I run it with the second display turned off, there are no problems. My configs:
default.vrsettings
When I need to display an image on the first main monitor, I just replace You can also try changing |
Still no luck, "Awaiting helmet". Web console outputs |
Took a look at the code a bit and it seems there is something wrong about the ArduinoIMUStart function at driver_arduinohmd.cpp... First of all I can notice the port baud rate is set to 115200 while the Razor tracker sketch has this value set to 57600, but that not the root of the problem. Most likely the serial connection fails before that when checking the hSerial status for INVALID_HANDLE_VALUE or other errors, here's the whole function so you don't need to search for it: OpenVR-ArduinoHMD/OpenVR/samples/driver_arduinohmd/driver_arduinohmd.cpp Lines 183 to 211 in d787f4e
Arduino always does blink when a new serial connection gets active, so this might be the case why it doesn't for me - its not connecting. Especially the HMDConnected = true only gets called when a serial connection establishes, so that's why I'm getting no device error and SteamVR is waiting for an HMD to be connected, I think.
I tried to build the project with CMake file you provided but couldn't make it into .dll's as needed, so it would be great if you give me any instructions/compiler params on this, then I could play around with it a bit to try find the issue. OR I will be very thankful if you have any ideas about this code part and could recompile it. I took a look at different serial connection examples and most of them use additional slashes before the COM Port like this:
Could this be a reason why it's not working on my machine? Btw I'm running Win 10. Thank you for your patience so far! |
Maybe change the Razor imu sketch, make the speed 115200? |
Already did that, didn't work. It's not the problem with arduino or something, it just doesn't connect. |
Okay, looks like I found a way to compile everything, I'll play around with it a bit and say if there is a solution that worked for me. |
Yes! Adding those slashes (\.\COM123) did the thing! I'm not sure if this will work on your machine as well, so would be great if you can try it out. Can you add me as a repo contributor so I can push a branch and create a pull request with a fix? Here is the recompiled x64 dll for you to test, but would be great if you could recompile a win32 one for a release version as well! Also, regarding Razor Output.ino: I can see it has a changed output format, even though there is a config var in the main sketch file as well. So because we need to change the baudrate anyway there's no need to change the Output.ino file, just change the output format (I checked, it works). So the new RazorAHRS.ino config before flashing would be:
And no need to replace Output.ino file! |
It looks like the problem occurs if you use a port higher than 9. I'll fix it as soon as I have time. You can also simply change the com port in the properties and change the number of the com port to 3-4-5 or something like that. |
Yes, changing the port number to COM4 reconnecting the tracker and using the old (not recompiled) driver works too. |
Added a fix, everything should be fine now. If you can check it out, it would be great. |
Yep, works like a charm! Thank you for you cooperation and support! 😄 |
First of all thank you for this cool project, it looks very promising!
I already have the working headtracker with the Razor firmware and modified Output.ino file (as per your tutorial), but sadly I do not have any MIPI display yet.
SteamVR won't let setup and run the VR scene without an HMD attached, so I tried to use the null driver and "allowMultipleDrivers" in steamvr.vrsettings to launch the scene without a physical HMD, but looks like your driver is not being loaded if there is no physical display active (i.e. Arduino LEDs are not flashing as when COM port connection establishes, as well as I can connect to this COM port with another program, meaning it is not actively used).
Any other settings (like setting the COM port etc) are done per tutorial as well, so should be good to go.
Did you have any experience with settings this up without a real HMD? A friend of mine says he can borrow me a real helmet to test this, but I guess it will just use it's internal headtracker and drivers which will not work either. The null driver solution looks promising, but strangely the driver is not activated (though I can see it's being loaded in log files and debug console).
The text was updated successfully, but these errors were encountered: