Skip to main content

Converting a Logitech universal reciever into a SteamVR Watchmen dongle

WARNING: Messing with firmwares can potentially result in bricks, be wary! Furthermore, please understand that this is not supported by SteamVR officially!

This guide applies to the orange starred C-U0007 dongle only!

2BJCnUs.png

 

Requirements:

Only the C-U0007 unifying version with an orange star! With the ability to connect up to 6 devices (mouse, keyboard), the NRF24LU1P-F32Q32 chip is installed in it, the older version in the line, and the other two NRF24LU1P-O17Q32 and nRF24LU1P-F16Q32, which are installed in the logitech nano receiver, are not suitable for us due to the small size of the internal memory. Firmware from Watchman Dongle will not fit. And so there is a restriction on the bootloader up to version BOT01.04_B0016, it has protection and it is impossible to write an unsigned firmware. Therefore, only versions BOT01.01_B0001-BOT01.02_B0015 work

Indirectly, you can determine which bootloader is written in the dongle according to the firmware version using the program Logitech Unifying Software (web archive).  Firmwares starting from version RQR12.01_B0019 and up to RQR12.08_B0030 and RQR12.10_B0032 have a bootloader below BOT01.04_B0016 and they suit us.tfW0tx4.png

Also in appearance, you need a dongle in the old case with a recess for gripping, the new case already has a bootloader BOT01.04_B0016

ng4wj5k.png

Windows Instructions

1. Download 2 files nRF24LU1P_BootLoader.exe and nRF24LU1P_Flash.exe
https://github.com/zra123/nrf24lu1p-512-bootloader/releases/tag/Release

2. Run nRF24LU1P_BootLoader.exe > Continue > Update > Close

3. Download and run Zadig
Run Zadig > Options > List ALL Devices > Select USB Input Devices, USB ID 1915 0101 > Select Driver libusb-win32 > Push button Replace Driver > Wait finish and close

4. Run nRF24LU1P_Flash.exe > Starting to write watchman_dongle_mod.hex > Disable protection! > Yes > Done
Done, you have a Watchman Dongle!

Linux Instructions

1. Download and install the necessary applications

sudo apt-get update
sudo apt-get install git python3 python3-pip
sudo pip install pyusb intelhex

2. Download two repositories

git clone https://github.com/zra123/nrf-research-firmware
git clone https://github.com/zra123/nrf24lu1p-512-bootloader

3. Go to the folder with the tool for working with the Logitech receiver

cd nrf-research-firmware/prog/usb-flasher

4. We make a backup of the native firmware and find out the version of the firmware and bootloader

sudo python3 logitech-usb-backup.py firmware.bin infopage.bin

5. Flashing a temporary bootloader

sudo python3 logitech-usb-flash.py bootloader.bin bootloader.hex
6. Go to the folder to work with the temporary loader
cd ../../../nrf24lu1p-512-bootloader/scripts/

7. We flash the modified firmware, with the shifted address of the synchronization database and the changed jump address to the bootloader.

sudo python3 flash.py write watchman_dongle_mod.hex

8. We confirm that the STP memory protection is disabled so that the microcontroller starts from address zero, and not from the address of the protected area. 17.5.2 datasheet item

Done, you have a Watchman Dongle!

Returning to the standard Logitech Firmware

Windows

1. Open the console and go to the folder with SteamVR.

cd %ProgramFiles(x86)%\Steam\steamapps\common\SteamVR\tools\lighthouse\bin\win32
2. You need to downgrade the firmware, thereby launch the Logitech bootloader and close the console after.
lighthouse_watchman_update.exe -e ..\..\firmware\vr_controller\archive\htc_pre_vrc_dongle_1450758230_2015_12_22.bin

3. Download and run Logitech Firmware Update Tool

 

Source / Credits

This guide is taken rather directly from the following source, all credits should go to the following:

https://steamcommunity.com/app/507090/discussions/0/5174040687100682988/?ctp=2#c3829792183358131308 (web archive)