How to convert those dusty old VIVE Wands into Trackers

Most the instructions on line are outdated, and some ask you to do dangerous stuff like download their json file and replace the serial number, ignoring all the calibration data. So I’ll just write the steps here.

Do note that you’ll need dongles to use these controllers in addition to your main controllers, since your headset only connects two devices, and each VIVE Tracker dongle only talks to its tracker. Tundra is promising dongles but they are not generally available yet… and dongles are currently going for $30 each… believe me I’ve tried finding cheaper ones.

The steps here should be safe, as long as you start with doing a downloadconfig and make a backup of your JSON files. That said, THERE IS NO WARRANTY. DO THE FOLLOWING AT YOUR OWN RISK.

  1. Unplug your headset and don’t have SteamVR running.
  2. Plug in your VIVE wands to your computer via USB. Hold the power button to turn it on after it is plugged in. It will directly connect to the computer, so should not need a working dongle at this point.
  3. Start lighthouse_console.exe (it can be found in SteamVR Browse local files → tools\lighthouse\bin\win64 )
    At the lh> prompt, type
deviceinfo

make sure it shows your controller serial number. It should show device_class=controller, not device_class=hmd. If it does say hmd, try and unplug your HMD even more. :wink:

  1. Now at the lh> prompt, type.
downloadconfig

It will download it using your controller’s serial number as the file name, like LHR-FFA12345
5. Now copy that json to a backup file. Keep it safe in case something goes wrong.
6. open up the json file in a text editor program.

Make the following edits (don’t include the - and + at the beginning. that’s just to highlight what you delete and what you add)
Indeed, there are only three lines you have to change. it should be easy to do by hand.

--- LHR-FFA12345orig.json       2019-09-03 20:58:58.389611800 -0700
+++ LHR-FFA12345.json   2019-09-03 21:48:01.618036900 -0700
@@ -9,7 +9,7 @@
         0.9991,
         0.9988
     ],
-    "device_class": "controller",
+    "device_class": "generic_tracker",
     "device_pid": 8210,
     "device_serial_number": "LHR-FFA12345",
     "device_vid": 10462,
@@ -298,9 +298,10 @@
     },
     "manufacturer": "HTC",
     "mb_serial_number": "42T1234567890",
-    "model_number": "Vive. Controller MV",
+    "model_number": "Vive Tracker PVT",
     "render_model": "vr_controller_vive_1_5",
     "revision": 1,
+    "tracked_controller_role": "",
     "trackref_from_head": [
         0,
         0.7253744006156921,
  1. Save the file, and return to the terminal with lighthouse_console open.
  2. At the lh> prompt, type:
uploadconfig

I don’t know if deviceinfo shows tracker immediately or if you have to unplug and replug for it to update. But anyway
9+. Now, Repeat the steps for your other wand. take care not to mix up the json files from one controller with the other.

At this point, it should be recognized as a tracker. I kept the render_model of a VIVE Wand so hopefully it will still look like a wand, but it should function as a tracker. You may wish to assign a role for it in the Manage VIVE Trackers section of SteamVR settings.

I’ll also link to these instructions: Fixing a Role-Changed VIVE Tracker – NexisONLINE - they are pretty good, but it has done the reverse direction.

All of the above text is licensed by Lyuma as CC-BY 4.0