Converting a Logitech universal reciever into a SteamVR Watchmen dongle
The poor-mans risky watchman dongle!
WARNING: Messing with firmwares can potentially result in bricks, be wary and double check your dongle is supported as per the requirements! Furthermore, please understand that this is not supported by SteamVR officially!
This guide applies to the orange starred C-U0007 dongle only!
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.
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
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
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
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)