This post is based on this guide by ykeara and Instructions on how to flash the bootloader provided by Ben Jackson

Flashing the Firmware and Bootloader of a Steam Controller Dongle

Requirements

  • A SteamVR controller dongle. Although the original dongles are no longer available directly from Steam, alternative options are available. These include dongles from Virtual Builds and Tundra Labs, which should serve the purpose well.
  • SteamVR installed on your computer.

Warning

It’s important to approach this process with caution:

  • Assume that this change is permanent, at least if you decide to flash the bootloader as well.
  • This procedure will flash ALL connected dongles. Be sure to remove any dongles that you do not wish to flash.

Flashing the Firmware

  1. Remove ALL SteamVR dongles as well as the Head-Mounted Display (HMD).
  2. Exit Steam.
  3. Connect your Steam Controller Dongle to a USB port.
  4. Run the commands below. (you will have to adjust these paths for non-standard installation paths for steam and steamvr)

Windows


cd `C:\Program Files (x86)\Steam\steamapps\common\SteamVR\tools\lighthouse`
bin\win32\lighthouse_watchman_update.exe -D firmware\vr_controller\archive\htc_vrc_dongle_1461100729_2016_04_19.bin

Linux

Looks like flashing it on Linux doesn’t work natively, the executable just prints Can't convert dongle on non-Windows platform: Can't tell if conflicting Steam is running. This is stupid. so let’s use wine.

you need these dlls

winetricks ole32
winetricks winmm
winetricks oleaut32

you can find the lighthouse_watchman_update.exe here and the vrcameral_api.dll here or in a steamvr windows installation at C:\Program Files (x86)\Steam\steamapps\common\SteamVR\tools\lighthouse\bin\win32 (they aren’t shipped on linux)

then just follow the windows instructions but with wine

Issues

This procedure changes the runtime firmware but not the bootloader. If you enter the bootloader mode (e.g., through a firmware update), the device will revert to a Steam controller dongle state, necessitating a repeat of the process.

For a permanent change, we need to flash the bootloader as well.

Flashing the Bootloader

  1. Follow https://partner.steamgames.com/vrlicensing (it’s a clickthrough sign-up don’t worry about not being accepted)
  2. Follow the Flashing the Firmware Guide but use the commands below in the last step (again you may have to adjust the paths if you isntalled the HDK in a differnt directory)
  3. Or download the watchman_dongle_combined.bin here

Windows


cd `C:\Program Files (x86)\Steam\steamapps\common\`
SteamVR\tools\lighthouse\bin\win32\lighthouse_watchman_update.exe -D SteamVR\ Tracking\ HDK/firmware/dongle/watchman_dongle_combined.bin

Notes

  • While it’s possible to flash multiple dongles simultaneously, it might be safer to do them one at a time.

What to Expect

Upon running the command

Firmware Flash


Attempting to update Watchman Dongles to version 1461100729...

Converting steam controller dongle to watchman dongle. Switching to bootloader

Sending reset into bootloader command

Looking for 1 bootloaders.

HID opened: VID 28de PID 1042 serial (null) seq 1 if 0

Attempting to convert Steam Controller dongle into Watchman Dongle...

Walve Nordic bootloader version 19.0

2vvX........vvvvvvvvP3X........VVVVVVVVP4X.. .vvvvvvvvP5X........vvvvvvvvP6X........vvvvvvvvP7X........vvvvvvvvP8X........VVVVVVVVP BX........vvvvvvvvP10X........VVVVVVVVP11X........vvvvvvvvP12X........vvvvvvvvP13X........vvvvvvvvP14X........۷۷۷۷۷vvvP15X........۷۷۷۷۷۷

wvP16X........vvvvvvvvP17X........vvvvvvvvP18X........vvvvvvvvP19X........vvvvvvvvP20X........vvvvvvvvP21X........vvvvvvvvP22X........VV wvvvvvP23X........VVVVVVVvP24X........vvvvvvvvP25X........۷۷۷۷۷۷vvP26X........vvvvvvvvP27X........vvvvvvvvP28X........vvvvvvvvP29X......

..vvvvvvvvP30X........vvvvvvvvP31X........vvvvvvvvP32X........vvvvvvvvP33X........vvvvvvvvP34X........vvvvvvvvP35X........VVVVVVVVP1vvvv

wvvvP0X........VVVVVVVV

Successfully converted firmware.

Found all expected bootloaders

Bootloader Flash

TODO