Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Select an option

  • Save WhiteHusky/bfd3140bda526c1d4dd0148ddbcf5a93 to your computer and use it in GitHub Desktop.

Select an option

Save WhiteHusky/bfd3140bda526c1d4dd0148ddbcf5a93 to your computer and use it in GitHub Desktop.

Oculus Rift S (or Others) x Vive Controllers with Vive Headset

These instructions are a condensed form of these following videos:

Also included is some useful information for exotic configurations, specifically those who rely on a BTFS volume for games (for Linux x Windows gaming,) and also an important fix to avoid SteamVR crashing at start.

Assumptions

We assume all controllers and headsets are up-to-date. If unsure, consult online help to verify.

Hardware Used

  • Rift S and Controllers
  • Vive Headset, Wands, Linkbox, and Lighthouses

This is not a hard requirement, instead consult Tapping's videos on possible combinations and online recommendations

NOTE: The Vive headset comes with 2 "dongles" within itself to track two controllers. Additional controllers need additional dongles. Consult online help.

IMPORTANT: You will need to disable several devices later to avoid SteamVR crashing. This will be covered in later sections.

Software Required

Move SteamVR onto a NTFS File System

This is only a step for BTFS users or other exotic file systems. It seems that the software SteamVR uses for Vive devices will cause it to immediately crash if it's on a BTFS file system.

Moving via the Steam UI doesn't seem to work, so

  • remove the BTFS volume as a Steam Library,
  • close steam,
  • navigate to the common directory within the BTFS library, and
  • move SteamVR to the common directory of where Steam is installed (C:\Program Files (x86)\Steam\steamapps\common) or a different, NTFS formatted library.

Once SteamVR is moved,

  • start Steam,
  • install SteamVR, and

let it locate the files, and redownload anything it sees out of place.

Of course once SteamVR is working again, you may readd the BTFS volume.

NOTE: Some games have issues with running on a BTFS volume. If your game has unusual translation placeholders or simply doesn't start, move the installation to a NTFS file system.

Avoiding SteamVR Trying to use the Vive

IMPORTANT: DO NOT START STEAMVR, YET! It will crash and zombify, requiring a restart to fix!

Otherwise it will be trying to look for a display that belongs to the Vive, fail, crash, and zombify.

Connect everything including the Rift, LinkBox, and Vive, except you do not connect the HDMI cables to the Vive.

  • Open Device Manager
  • View > Devices by Container
  • Navigate the device tree and expand both "HTC Vive"'s and "Lighthouse FPGA RX"
  • You will need to disable the "HTC Vive" camera by right-clicking the USB Composite Device under it, Disable
  • You will need to disable three other HID-compliant devices with the following VIDs and PIDs, and to determine that visit the Properties, under Details, then change to Device instance path or Hardware Ids:
    • Under "HTC Vive"
      • HID\VID_0BB4&PID_2C87
    • Under "Lighthouse FPGA RX"
      • HID\VID_28DE&PID_2000&MI_01
      • HID\VID_28DE&PID_2000&MI_00

Configuring the Vive Controllers to be Generic Trackers

We are using the tools under the following path:

C:\Program Files (x86)\Steam\steamapps\common\SteamVR\tools\lighthouse\bin\win64

Though depending on your library install this will be different.

  • Connect a Vive controller to your computer via a USB cable.
    • Wait for Windows to identify the controller first
  • Run lighthouse_console.exe, this will spawn a console window
  • Once a lh> prompt appears enter: downloadconfig then Enter.
  • Keep the console window around!

A .json file will be created. Make a copy as your backup.

Open the created .json file and edit the device_class key. Replace controller with generic_tracker

WARNING: If this says hmd, then remove the VR headset and download the config again.

You need to remove the model_number key and add the following additional keys:

  • "model_name": "Vive Tracker PVT"
  • "render_model": "vr_tracker_vive_1_0"
  • "revision": 1
  • "tracked_controller_role": ""

Back to the console window, enter uploadconfig to upload the same .json file you modified. If you renamed it to something else, supply it after a space, i.e:

uploadconfig my-config.json

Then run both:

poweroff
exit

Repeat the same for each additional wand.

Starting SteamVR

In order to start everything, connect everything including the Rift, LinkBox, and Vive, except you do not need to connect the HDMI cables of the Vive. Start SteamVR and start the wands, and if all goes well you will start seeing the wands on SteamVR's status widget on the desktop appearing as trackers.

Calibration

Calibration is done by OpenVR Space Calibrator and it is done within VR. So locate the wands and enter VR.

Within VR, summon the Steam Overlay (Left hand system button) and you should see a button on the lower right for OpenVR Space Calibrator. Open that.

Left list is the devices you intend to be the reference. Right is the devices you want to calibrate. If the lists are incorrect, use the dropdown above them.

Using the Rift controller that summoned the overlay (left), identify and find the wand you want to calibrate with.

  • Bring both devices together, ideally held in both hands and as if they're glued together
  • Start calibration (fast is okay)
  • Move the devices in a figure 8 steadily while slowly walking around
    • We are giving the best chance to calibrate and the figure 8 movement is the most effective. During the movement, try to rotate the devices as well.
  • Once calibration is complete, you should hold the wand in your right and find it tracking your right hand.

If the controller is far from where it should be, then try calibration again or use the slower calibration modes.

Validate & Tracker Roles

Starting SteamVR you should notice the wands have converted to trackers!

In the SteamVR window, click on the hamburger menu and go to "Device" > "Manage Trackers" to open a new window. Click on "Manage Trackers" here.

Identify the trackers and set their roles to whatever part of your body you wish to track.

Returning the Wands Back from Trackers to Controllers

If you have backed up your configurations, simply supply them to the uploadconfig command.

Troubleshooting

Stuttering every few seconds (AMD GPU RX 570)

Downgrade your drivers to 22.11.2 that you can obtain here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment