Jump to content

Mimic Vive Controller with Vive Tracker 1.0 (but GetTrackedDeviceClass reports GenericTracker)


Recommended Posts

My goal is to emulate 100% of a Vive Controller using a Vive Tracker (1.0). I know Role Changer and I know how to modify the .json from the console, I'm comfortable with this, but all my attempts do not lead to the desired result.

Although some applications recognize the tracker as a controller (when the role is a controller), for SteamVR it 's always a tracker

this, I guess, is due to the fact that the device class is still read as a tracker


returns TrackedDeviceClass_GenericTracker

and not controller

Some application, as Beat Saber, doesn't recognize controllers if DeviceClass is incorrect


how can I modify the .json, or what other operation can I do, so that it becomes 100% a controller?

@Synthesis @foo

Link to comment
Share on other sites


yes, I tried with VIVETrackerChanger_1.0, but vr::VRSystem()->GetTrackedDeviceClass(id) allways reports TrackedDeviceClass_GenericTracker, and SteamVR still pair those as trackers, not as controller

Changing role is useful because the pogo pin buttons get back to work and many apps recognize them as controllers, but not all, Beat Saber is one of them.

Old matzman OpenVR Input Emulator has a command line tool that can list all device properties, this is how my tracker looks... but It's still recognized as tracker for Device Class


1000    string  aapvr
1001    string
1002    string  LHR-0DC0C547
1003    string  vr_controller_vive_1_5
1004    bool    0
1005    string  HTC
1006    string  1498808359 htcvrsoftware@firmware-win32 2017-06-30 FPGA 262(1.6/0/0) BL 0 VRC 1498808359 Radio 1466630404
1007    string  product 132 rev 1.0.4 lot 2000/0/0 0
1009    string  DBD45A15BF
1014    bool    0
1015    bool    0
1016    string  https://developer.valvesoftware.com/wiki/SteamVR/HowTo_Update_Firmware
1017    uint64  2214658052
1018    uint64  1498808359
1019    uint64  262
1020    uint64  1498808359
1021    uint64  1466630404
1022    uint64  1461100729
1028    string  LHR-0DC0C547
1029    int32   3
1032    bool    0
1033    bool    1
1034    uint64  8589934594
1035    string  htc
1036    string  htc/vive_controllerLHR-0DC0C547
1037    string  {htc}/input/vive_controller_profile.json
1043    bool    1
3001    uint64  12884901895
3002    int32   1
3003    int32   3
3007    int32   0
5001    string  {htc}/icons/tracker_status_off.png
5002    string  {htc}/icons/tracker_status_searching.gif
5003    string  {htc}/icons/tracker_status_searching_alert.gif
5004    string  {htc}/icons/tracker_status_ready.png
5005    string  {htc}/icons/tracker_status_ready_alert.png
5006    string  {htc}/icons/tracker_status_error.png
5007    string  {htc}/icons/tracker_status_standby.png
5008    string  {htc}/icons/tracker_status_ready_low.png
6002    bool    0
6004    bool    0
6005    bool    0
6006    bool    0
7000    string  vive_controller
7002    int32   0


Link to comment
Share on other sites

  • 1 month later...


Please don't use the Role Changer, that was retired for good reason, the proper way when using SteamVR is to map the input binding "as hand". However you can only use 2 devices  as "hands" at a given time (i.e. use of controller equivalent input via the tracker's pins). 



Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Create New...