Other

I have been having problems with floor level constantly changing on its own with the HTC Vive and nothing I try seems to fix the problem so I made a tool for quickly re-calibrating the floor from within the SteamVR dashboard. All that is required is to place one controller on the floor and clicking the floor fix button from the new dashboard app (it appears next to “Steam” and “Desktop”). See the video below.

Download the FloorFix tool from here (v1.0). Extract the zip somewhere and run ViveFloorFix.exe. If you get an error about missing msvcp140.dll then install the VS2015 runtime using the included vc_redist.x86.exe.

Update: OpenVR Advanced Settings has added a similar floor fix feature in a nicer package, you should use that instead of this. :)

edit: Note there currently seems to be a memory leak in the OpenVR SDK which can make FloorFix eat up excessive amounts of RAM over time. Restarting it every few days at least seems to be enough, I’ll make some workaround if Valve does not fix the issue in time (it is reported here)

I recently got hold of the Oculus Rift DK1 but ran into a bit of a problem with the fact that my Nvidia card only has four display outputs which all were already in use. So to use the Rift I’d need to unplug one monitor, use a HDMI switch or a HDMI splitter. The splitter seemed like the best option but active splitters seemed very expensive and I read about EDID problems with passive splitters.

Cheap passive HDMI splitter

Cheap passive HDMI splitter

The EDID problem comes when you have two displays (a monitor and the Rift) at the end of the single HDMI output and Windows (or the video card) pretty much randomly uses the EDID from either one – and when it uses the one from the monitor the Oculus SDK will not detect the Rift as being attached and cannot read the information from it. A way to avoid this issue is to plug in the Rift first, let windows detect it and then plug in the monitor. But this is clumbersome and needs to be done on every reboot so it is not very practical.

Thinking about what to do about this the solution was simple: Make Windows not see the desktop monitor at all by cutting off the DDC pins from the HDMI cable that goes to the monitor. DDC is used for communicating the EDID and with those gone Windows will only be able to talk to the Rift. This of course means the Rift must be attached to have something visible in the monitor and the monitor will be limited to resolutions supported by the Rift, but in my case this is not a problem as the Rift reports it can support 1920×1200 which is the native resolution of the monitor I use.

In practice the easiest way to get rid of the DDC pins was to remove them from a HDMI to DVI adapter that goes to the monitor. In the DVI connector DDC data & clock are in pins 6 and 7:

ddc_pins

Female side of the DVI connector. Pins number 6 and 7 are the DDC clock and data pins used for reading EDID information.

These were easy to remove with a pair of pliers, you need to be a bit careful to not bend the other pins too much but these adapters are also very cheap so its not a huge loss for it to go wrong. My result:

hdmi_cut

This is the male DVI side of a HDMI to DVI adapter with the DDC pins cut off.

I use this with a cheap passive HDMI splitter that cost 10 euros and it works well. One problem I did notice is that if I turn off the Rift box I get some signal errors visible on the monitor image, possibly the signal gets too weak when the unpowered Rift box is attached in the cable. It can be avoided by just keeping the Rift powered at all times or by unplugging the power cable from the Rift box instead of just turning it off (Reading the EDID from the Rift still works even with the box unpowered). Some shorter cables might help as well.

edit: Also I noticed that when you unplug the USB cable the rift display turns off so it is an easy way to unpower the rift when its not in use, while keeping the control box on.

Rift and the Dell monitor displaying the same image, but Windows only sees the Rift EDID information.

Rift and the Dell monitor displaying the same image, but Windows only sees the Rift EDID information.

Finally got around adding all the old content to a new WordPress based site I have been working on for almost an year now. Never enough time for finishing anything… But now it’s done, and I might post some junk here more frequently as well.

My new year went nicely in the middle of a pitch black forest hunting some newly published geocaches, GC4W4N5 and GC4W4RX. FTF on both \o/