Skip to content

Instantly share code, notes, and snippets.

@SuperFlue
Last active March 21, 2024 13:03
Show Gist options
  • Star 11 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save SuperFlue/e9db6b1c3607399012469607375f86ab to your computer and use it in GitHub Desktop.
Save SuperFlue/e9db6b1c3607399012469607375f86ab to your computer and use it in GitHub Desktop.
Flashing Watchman firmware to Crazyradio PA

How to flash Watchman firmware to a Crazyradio PA dongle

This is a quick guide on how to flash the Watchman firmware (SteamVR tracking dongle) onto Crazyradio PA dongle.

CAUTION: It seems like the dongles end up with really short range, they work technically but is not really all that usable at this time.

Requirements

Note: If you are getting the dongle from any other source than the official one, make sure the nRF24LU1+ chip is the 32kB one not the 16kB one.
The firmware is made for the 32kB chip, and flashing this over the 16kB chip will most likely brick the dongle.
If you want to verify, the 32kB chip is marked with the name 24LU1P while the 16kB ones are marked with LU1P16

Preparing

To use the firmware tools you will have to make sure that your Linux install has Python 2.7 installed, as well as the pyusb module.
After you have downloaded the SteamVR HDK you can find the firmware at Steam\steamapps\common\SteamVR Tracking HDK\firmware\dongle\watchman_dongle_combined.bin.

To simplify things, place the firmware binary in the same directory as the python scripts on your Linux machine.

Flashing the firmware

Once you have everything in place flashing the firmware should be straight forward.

  • Connect the Crazyradio PA to a USB port on your Linux device
  • From the directory the firmware scripts are in run sudo python launchBootloader.py to start the bootloader
  • To verify that things work and as a backup, you can dump the current flash by running sudo python nrfbootload.py dump ./binarydump.bin
  • If that is working you can flash the Watchman firmware by running sudo python nrfbootload.py flash ./watchman_dongle_combined.bin
  • Once flashing is complete (should be pretty fast), you can verify that the flash is correct by running sudo python nrfbootload.py verify ./watchman_dongle_combined.bin

Once these steps are done, you can unplug the USB dongle and connect it to the machine you are running SteamVR on, the dongle should register as a SteamVR dongle.
You can also verify this by running the lighthouse_console tool from "Steam\steamapps\common\SteamVR Tracking HDK\tools\bin\win32\lighthouse_console.exe".
Remember to unplug all other SteamVR devices to make sure you are indeed looking at the right device.

With all these things done you can pair the dongle as you would any other SteamVR dongle.

Have fun! :)

@IceCrack-
Copy link

IceCrack- commented Jan 7, 2021

Just letting you know I completed a hardware hack to increase the range by placing a 1K Ohms resistor from C14 to R11 enabling the LNA on the RFX2401C Chip that the firmware does not enable by default. Image 1

Edit: Updated Image source

@SuperFlue
Copy link
Author

That's brilliant!
I think I have the stuff i need to solder that as well so gonna try when I have time.

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