../flashing-the-firmware-and-bootloader-of-a-steam-controller-dongle

Flashing the Firmware and Bootloader of a Steam Controller Dongle

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

Warning

It's important to approach this process with caution:

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

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