protonscr

Lighthouse firmware update

steamvropen
ValveSoftware/SteamVR-for-Linux#5 · opened 2017-02-22 by madrang · updated 2025-08-29 · 24 comments · github
Mmadrang 2017-02-22 github

Your system information

  • Steam client version (build number or date): Feb 21 2017, at 20:24:31
  • Distribution (e.g. Ubuntu): Ubuntu 16.04.2 LTS (64 bit)
  • Opted into Steam client beta?: [Yes/No] Yes
  • Have you checked for system updates?: [Yes/No] Yes

I tried to update the Lighthouse firmware to the latest version, but after plugging in the usb cable and power while holding the mode button, the folder 'CRP DISABLD' will open with one file 'firmware.bin', the Update window will keep waiting for the base station until it timeout and fail.

By enabling bluetooth, pairing the stations and enabled bluetooth communications in SteamVR, then i was able to try to update the firmware wirelessly, this also failed. The file seems to be missing....

firmware_update.txt Wed Feb 22 2017 04:39:43.982452

Wed Feb 22 2017 04:39:43.982452 - ================================================
Wed Feb 22 2017 04:39:44.014224 - FirmwareWizard entering state Device Overview (0)
Wed Feb 22 2017 04:39:44.014916 - Start Firmware Update (Device Index:2, Recovery:0, ForceAll:0, ForceFix:0).
Wed Feb 22 2017 04:39:44.035362 - 1 Updates scheduled for Device Class: 4
Wed Feb 22 2017 04:39:44.035392 -     1: Watchman Disk Update: Existing:244, Required:436
Wed Feb 22 2017 04:39:44.035401 - FirmwareWizard entering state Base Station Start (10)
Wed Feb 22 2017 04:39:44.035406 - FirmwareWizard overwriting state to Shutdown VR Apps (1)
Wed Feb 22 2017 04:39:46.265900 - Delaying for 5000 milliseconds...
Wed Feb 22 2017 04:39:51.265004 - Delay done
Wed Feb 22 2017 04:39:54.355128 - FirmwareWizard entering state Base Station Start (10)
Wed Feb 22 2017 04:39:56.534602 - FirmwareWizard entering state Base Station Wireless Progress (17)
Wed Feb 22 2017 04:39:56.586405 - Wireless MCU Update: Existing:244, Required:436
Wed Feb 22 2017 04:39:56.636865 - Basestation Update: MCU ~/Steam/steamapps/common/OpenVR/tools/lighthouse/firmware/lighthouse_tx/archive/htc_2.0/lighthouse_tx_htc_2_0-436-2016-09-20.bin
Wed Feb 22 2017 04:39:56.637087 - Retrieved firmware update 0 percent complete (bSuccess = 1).
Wed Feb 22 2017 04:39:56.637146 - FirmwareWizard entering state Base Station Success (12) with No update necessary (4) 
Wed Feb 22 2017 04:39:58.126740 - FirmwareWizard entering state Device Overview (0) with No update necessary (4) 
Wed Feb 22 2017 04:39:59.702526 - Start Firmware Update (Device Index:3, Recovery:0, ForceAll:0, ForceFix:0).
Wed Feb 22 2017 04:39:59.702860 - No FirmwareUpdate description refresh: using old data.
Wed Feb 22 2017 04:39:59.702892 - 1 Updates scheduled for Device Class: 4
Wed Feb 22 2017 04:39:59.702927 -     1: Watchman Disk Update: Existing:244, Required:436
Wed Feb 22 2017 04:39:59.721959 - FirmwareWizard entering state Base Station Start (10) with No update necessary (4) 
Wed Feb 22 2017 04:40:01.815160 - FirmwareWizard entering state Base Station Wireless Progress (17)
Wed Feb 22 2017 04:40:01.866838 - Wireless MCU Update: Existing:244, Required:436
Wed Feb 22 2017 04:40:01.917217 - Basestation Update: MCU /mnt/vol0/home/madrang/Steam/steamapps/common/OpenVR/tools/lighthouse/firmware/lighthouse_tx/archive/htc_2.0/lighthouse_tx_htc_2_0-436-2016-09-20.bin
Wed Feb 22 2017 04:40:01.917435 - Retrieved firmware update 0 percent complete (bSuccess = 1).
Wed Feb 22 2017 04:40:01.917463 - FirmwareWizard entering state Base Station Success (12) with No update necessary (4) 
Wed Feb 22 2017 04:40:04.615454 - FirmwareWizard entering state Device Overview (0) with No update necessary (4) 

In the logs i saw that SteamVR tries to use "~/Steam/steamapps/common/OpenVR/tools/lighthouse/firmware/lighthouse_tx/archive/htc_2.0/lighthouse_tx_htc_2_0-436-2016-09-20.bin" but it is missing.

SSeegras 2017-02-23 github

It's in ~/Steam/SteamApps/common/SteamVR/tools/lighthouse/firmware/lighthouse_tx/archive/htc_2.0

However, I also had no luck with the automatic procedure (on Debian Sid), but could upgrade according to https://developer.valvesoftware.com/wiki/SteamVR/HowTo_Update_Firmware -- which, however, resulted in both my base stations now not spinning up anymore. I can still mount them and (probably) change firmware, but they don't do what they're supposed to do.

Apparently there is a solution; but it requires bluetooth, and "Install Bluetooth Driver" in Settings -> General does not seem to do anything, not does it tell me which driver would be required (Broadcom BT USB in Kernel?)
https://www.reddit.com/r/Vive/comments/5k8lbz/help_updated_firmware_via_usb_now_base_station/

Mmadrang 2017-02-24 github

For me the folder SteamVR does not exist. But after an update today the firmware is there in OpenVR. But SteamVR fails to update the lighthouse...

madrang@ASTitan:~$ cd ~/.steam/steamapps/common/SteamVR/
bash: cd: /home/madrang/.steam/steamapps/common/SteamVR/: No such file or directory
madrang@ASTitan:~$ cd ~/.steam/steamapps/common/OpenVR/
madrang@ASTitan:~/.steam/steamapps/common/OpenVR$ ll
total 184
drwxrwxr-x   7 madrang madrang   8 Feb 23 19:25 ./
drwxrwxr-x 721 madrang madrang 721 Feb 22 23:17 ../
drwxrwxr-x   7 madrang madrang  11 Feb 23 19:25 bin/
drwxrwxr-x   3 madrang madrang   3 Jul 13  2015 demo/
drwxrwxr-x   7 madrang madrang   8 Feb  2 04:22 drivers/
drwxrwxr-x  12 madrang madrang  25 Feb 22 01:33 resources/
-rwxrwxr-x   1 madrang madrang  28 Feb  2 04:14 third_party_legal_notices.txt*
drwxrwxr-x  10 madrang madrang  11 Feb 22 01:33 tools/
madrang@ASTitan:~/.steam/steamapps/common/OpenVR$ 
madrang@ASTitan:~/.steam/steamapps/common/OpenVR/tools/lighthouse/firmware/lighthouse_tx/archive/htc_2.0$ ll
total 641
drwxrwxr-x 2 madrang madrang    11 Feb  2 04:22 ./
drwxrwxr-x 3 madrang madrang     3 Feb  3  2016 ../
-rwxrwxr-x 1 madrang madrang 73012 Feb  2 04:15 lighthouse_tx_htc_2_0-183-2016-01-11.bin*
-rwxrwxr-x 1 madrang madrang 78028 Feb  2 04:15 lighthouse_tx_htc_2_0-227-2016-02-24.bin*
-rwxrwxr-x 1 madrang madrang 80508 Feb  2 04:15 lighthouse_tx_htc_2_0-244-2016-03-12.bin*
-rwxrwxr-x 1 madrang madrang 80764 Feb  2 04:15 lighthouse_tx_htc_2_0-298-2016-05-05.bin*
-rwxrwxr-x 1 madrang madrang 80888 Feb  2 04:15 lighthouse_tx_htc_2_0-436-2016-09-20.bin*
-rwxrwxr-x 1 madrang madrang 77372 Feb  2 04:15 lighthouse_tx_htc_2_0-calibration-rescue-244.bin*
-rwxrwxr-x 1 madrang madrang 79980 Feb  2 04:15 lighthouse_tx_htc_2_0-factory-reset-rescue-244.bin*
-rwxrwxr-x 1 madrang madrang 18218 Feb  2 04:14 ota_firmware_upgrade_htc-BCM20736TAG-0226_v210.ota.bin*
-rwxrwxr-x 1 madrang madrang 18781 Feb  2 04:14 ota_firmware_upgrade_htc-BCM20736TAG-0517_v211.ota.bin*
firmware_update.txt Thu Feb 23 2017 20:09:36.812897

Thu Feb 23 2017 20:09:36.812897 - ================================================
Thu Feb 23 2017 20:09:36.861341 - FirmwareWizard entering state Device Overview (0)
Thu Feb 23 2017 20:09:36.870700 - Start Firmware Update (Device Index:1, Recovery:0, ForceAll:0, ForceFix:0).
Thu Feb 23 2017 20:09:36.906097 - 1 Updates scheduled for Device Class: 2
Thu Feb 23 2017 20:09:36.906158 -     1: Radio Update: Existing:4, Required:1466630404
Thu Feb 23 2017 20:09:36.906181 - FirmwareWizard entering state Controller Start (6)
Thu Feb 23 2017 20:09:36.906190 - FirmwareWizard overwriting state to Shutdown VR Apps (1)
Thu Feb 23 2017 20:09:39.521525 - Delaying for 5000 milliseconds...
Thu Feb 23 2017 20:09:44.521009 - Delay done
Thu Feb 23 2017 20:09:46.611646 - FirmwareWizard entering state Controller Start (6)
Thu Feb 23 2017 20:09:46.690297 - 1: Probe for controller with serial LHR-F7443D45. Found controllers: 2
Thu Feb 23 2017 20:09:46.690326 - LHR-F7443D45 LHR-F57B7F40 
Thu Feb 23 2017 20:09:46.690339 - FirmwareWizard entering state Controller Progress (7)
Thu Feb 23 2017 20:09:46.769341 - Radio Update: Existing:4, Required:1466630404
Thu Feb 23 2017 20:09:46.820072 - Controller Radio Update: /mnt/vol0/home/madrang/Steam/steamapps/common/OpenVR/tools/lighthouse/bin/linux64/lighthouse_watchman_update -s LHR-F7443D45 -rn /mnt/vol0/home/madrang/Steam/steamapps/common/OpenVR/tools/lighthouse/firmware/vr_controller/archive/htc_vrc_module_1466630404_2016_06_22.bin
Thu Feb 23 2017 20:09:46.878045 - Attempting to update radio via NEO_VRC bootloader...
lighthouse_watchman_update[9634]: HID opened: VID 28de PID 2012 serial LHR-F7443D45 seq 0 | if 0
lighthouse_watchman_update[9634]: HID opened: VID 28de PID 2011 serial  seq 0 | if 0
Computed checksum (offset 0): a3d61c250886892b226b6c8262edc8da
Starting update...
Sending data...
Done
Sending reset command
Successfully updated firmware.

Thu Feb 23 2017 20:09:57.127481 - FirmwareWizard entering state Controller Success (8) with No update necessary (4) 
Thu Feb 23 2017 20:09:59.149857 - FirmwareWizard entering state Device Overview (0) with No update necessary (4) 
Thu Feb 23 2017 20:10:02.941720 - Start Firmware Update (Device Index:3, Recovery:0, ForceAll:0, ForceFix:0).
Thu Feb 23 2017 20:10:02.941919 - No FirmwareUpdate description refresh: using old data.
Thu Feb 23 2017 20:10:02.941938 - 1 Updates scheduled for Device Class: 4
Thu Feb 23 2017 20:10:02.941969 -     1: Watchman Disk Update: Existing:244, Required:436
Thu Feb 23 2017 20:10:02.973000 - FirmwareWizard entering state Base Station Start (10) with No update necessary (4) 
Thu Feb 23 2017 20:10:06.134426 - FirmwareWizard entering state Base Station Wireless Progress (17)
Thu Feb 23 2017 20:10:06.186590 - Wireless MCU Update: Existing:244, Required:436
Thu Feb 23 2017 20:10:06.237545 - Basestation Update: MCU /mnt/vol0/home/madrang/Steam/steamapps/common/OpenVR/tools/lighthouse/firmware/lighthouse_tx/archive/htc_2.0/lighthouse_tx_htc_2_0-436-2016-09-20.bin
Thu Feb 23 2017 20:10:06.237762 - Retrieved firmware update 0 percent complete (bSuccess = 1).
Thu Feb 23 2017 20:10:06.237799 - FirmwareWizard entering state Base Station Success (12) with No update necessary (4) 
Thu Feb 23 2017 20:10:08.014381 - FirmwareWizard entering state Device Overview (0) with No update necessary (4) 
firmware_update.txt Thu Feb 23 2017 20:42:16.132210

Thu Feb 23 2017 20:42:16.132210 - ================================================
Thu Feb 23 2017 20:42:16.156011 - FirmwareWizard entering state Device Overview (0)
Thu Feb 23 2017 20:42:16.156704 - Start Firmware Update (Device Index:2, Recovery:0, ForceAll:0, ForceFix:0).
Thu Feb 23 2017 20:42:16.221950 - 1 Updates scheduled for Device Class: 4
Thu Feb 23 2017 20:42:16.221996 -     1: Watchman Disk Update: Existing:244, Required:436
Thu Feb 23 2017 20:42:16.222011 - FirmwareWizard entering state Base Station Start (10)
Thu Feb 23 2017 20:42:16.222018 - FirmwareWizard overwriting state to Shutdown VR Apps (1)
Thu Feb 23 2017 20:42:17.618360 - Delaying for 5000 milliseconds...
Thu Feb 23 2017 20:42:22.618006 - Delay done
Thu Feb 23 2017 20:42:24.691429 - FirmwareWizard entering state Base Station Start (10)
Thu Feb 23 2017 20:42:25.963806 - FirmwareWizard entering state Base Station Wireless Progress (17)
Thu Feb 23 2017 20:42:26.015517 - Wireless MCU Update: Existing:244, Required:436
Thu Feb 23 2017 20:42:26.065930 - Basestation Update: MCU /mnt/vol0/home/madrang/Steam/steamapps/common/OpenVR/tools/lighthouse/firmware/lighthouse_tx/archive/htc_2.0/lighthouse_tx_htc_2_0-436-2016-09-20.bin
Thu Feb 23 2017 20:42:26.066222 - Retrieved firmware update 0 percent complete (bSuccess = 1).
Thu Feb 23 2017 20:42:26.066264 - FirmwareWizard entering state Base Station Success (12) with No update necessary (4) 
Thu Feb 23 2017 20:42:27.235928 - FirmwareWizard entering state Device Overview (0) with No update necessary (4) 
Thu Feb 23 2017 20:42:28.483827 - Start Firmware Update (Device Index:1, Recovery:0, ForceAll:0, ForceFix:0).
Thu Feb 23 2017 20:42:28.484117 - No FirmwareUpdate description refresh: using old data.
Thu Feb 23 2017 20:42:28.484147 - 1 Updates scheduled for Device Class: 4
Thu Feb 23 2017 20:42:28.484182 -     1: Watchman Disk Update: Existing:244, Required:436
Thu Feb 23 2017 20:42:28.510597 - FirmwareWizard entering state Base Station Start (10) with No update necessary (4) 
Thu Feb 23 2017 20:42:29.428065 - FirmwareWizard entering state Base Station Wireless Progress (17)
Thu Feb 23 2017 20:42:29.479328 - Wireless MCU Update: Existing:244, Required:436
Thu Feb 23 2017 20:42:29.529619 - Basestation Update: MCU /mnt/vol0/home/madrang/Steam/steamapps/common/OpenVR/tools/lighthouse/firmware/lighthouse_tx/archive/htc_2.0/lighthouse_tx_htc_2_0-436-2016-09-20.bin
Thu Feb 23 2017 20:42:29.529842 - Retrieved firmware update 0 percent complete (bSuccess = 1).
Thu Feb 23 2017 20:42:29.529898 - FirmwareWizard entering state Base Station Success (12) with No update necessary (4) 
Thu Feb 23 2017 20:42:30.188263 - FirmwareWizard entering state Device Overview (0) with No update necessary (4) 

Device 1 - Headset Vive MV HTC LHR-3AD21B98
Firmware:	1462663157 steamservices@firmware-win32 2016-05-07 FPGA 1.6/0/0
Hardware Revision:	product 128 rev 2.1.0 lot 2000/0/0 0
Hardware Id:	0x80020100
Watchman Firmware:	1462663157 / 1462663157 (2016-05-07) 
Watchman FPGA:	262 / 262 (1.6) 
Dongle Version:	D089C20543 Version: 1461100729 / 1461100729 (2016-04-19) 
Dongle Version:	7ED96CCD6F Version: 1461100729 / 1461100729 (2016-04-19) 
Camera Firmware:	Version not available.
VSync to Photons:	0.0111111
Display Frequency:	90
User IPD (m):	0.063
Current Universe ID:	0
Previous Universe ID:	0


Device 2 - Base HTC V2-XD/XE HTC LHB-BEF71607
Firmware:	244
Hardware Revision:	0x09000009
Hardware Id:	0x09000009
Firmware Version:	244 / 436  (Update necessary)
Firmware Update:	Update necessary
Bluetooth Firmware:	Not yet acquired. Should be 211
FOV Left:	60
FOV Right:	60
FOV Top:	60
FOV Bottom:	60
Range Minimum (m):	1
Range Maximum (m):	5


Device 3 - Base HTC V2-XD/XE HTC LHB-A2EFCEED
Firmware:	244
Hardware Revision:	0x09000009
Hardware Id:	0x09000009
Firmware Version:	244 / 436  (Update necessary)
Firmware Update:	Update necessary
Bluetooth Firmware:	Not yet acquired. Should be 211
FOV Left:	60
FOV Right:	60
FOV Top:	60
FOV Bottom:	60
Range Minimum (m):	1
Range Maximum (m):	5
CChristophHaag 2017-02-24 github

@Seegras It probably (?) works with any Bluetooth LE capable adapter.

The bluetooth adapter in the linkbox is not picked up by linux by default because it has a custom USB ID (they changed the Vendor to HTC).

In reality it's just a Broadcom Bluetooth adapter that is already supported by Linux. I've made a kernel patch adding the HTC USB ID, then it works: https://gist.github.com/ChristophHaag/6d064fd106aa03a52f095676d3adf7a0
The firmware I posted in the comment on that gist is probably not licensed to be redistributed by me, so... extract it from the windows installer if everything shall be properly legal.
I've also sent this patch to bluetooth-next and it is currently on its way to linux 4.11: https://www.spinics.net/lists/linux-bluetooth/msg69710.html

With all that done, you can pair and trust the basestations just like any other bluetooth device, no authentication or anything required. (Can people brick your basestations with a malicious firmware update when just walking by?)

Once paired, the firmware update option for the Basestations change to say that the update will be done wireless, but if you actually try to do it, it just prints

OnStartBasestationWirelessUpdate
OnNextBasestationWirelessUpdate

to the console and reports success instantly. The firmware update will not be installed.

edit: Just read your post about where to find the log:

.local/share/Steam/logs/firmware_update.txt      
Fr Feb 24 2017 13:37:09.087272 - ================================================
Fr Feb 24 2017 13:37:09.107244 - FirmwareWizard entering state Device Overview (0)
Fr Feb 24 2017 13:37:09.107737 - Start Firmware Update (Device Index:-1, Recovery:0, ForceAll:0, ForceFix:0).
Fr Feb 24 2017 13:37:09.156899 - FirmwareWizard entering state Device Overview (0)
Fr Feb 24 2017 13:37:14.420502 - Start Firmware Update (Device Index:1, Recovery:0, ForceAll:0, ForceFix:0).
Fr Feb 24 2017 13:37:14.420956 - 1 Updates scheduled for Device Class: 4
Fr Feb 24 2017 13:37:14.420981 -     1: Watchman Disk Update: Existing:298, Required:436
Fr Feb 24 2017 13:37:14.421772 - FirmwareWizard entering state Base Station Start (10)
Fr Feb 24 2017 13:37:14.421784 - FirmwareWizard overwriting state to Shutdown VR Apps (1)
Fr Feb 24 2017 13:37:16.883764 - Delaying for 5000 milliseconds...
Fr Feb 24 2017 13:37:21.883003 - Delay done
Fr Feb 24 2017 13:37:24.923145 - FirmwareWizard entering state Base Station Start (10)
Fr Feb 24 2017 13:37:29.859205 - FirmwareWizard entering state Base Station Wireless Progress (17)
Fr Feb 24 2017 13:37:29.912486 - Wireless MCU Update: Existing:298, Required:436
Fr Feb 24 2017 13:37:29.965209 - Basestation Update: MCU /home/chris/.local/share/Steam/SteamApps/common/SteamVR/tools/lighthouse/firmware/lighthouse_tx/archive/htc_2.0/lighthouse_tx_htc_2_0-436-2016-09-20.bin
Fr Feb 24 2017 13:37:29.965406 - FirmwareWizard entering state Base Station Success (12) with No update necessary (4)
Fr Feb 24 2017 13:37:36.519151 - FirmwareWizard entering state Device Overview (0) with No update necessary (4)
Fr Feb 24 2017 13:37:38.125530 - Start Firmware Update (Device Index:2, Recovery:0, ForceAll:0, ForceFix:0).
Fr Feb 24 2017 13:37:38.126367 - No FirmwareUpdate description refresh: using old data.
Fr Feb 24 2017 13:37:38.126397 - 1 Updates scheduled for Device Class: 4
Fr Feb 24 2017 13:37:38.126416 -     1: Watchman Disk Update: Existing:298, Required:436
Fr Feb 24 2017 13:37:38.127017 - FirmwareWizard entering state Base Station Start (10) with No update necessary (4)
Fr Feb 24 2017 13:37:40.124712 - FirmwareWizard entering state Base Station Wireless Progress (17)
Fr Feb 24 2017 13:37:40.176336 - Wireless MCU Update: Existing:298, Required:436
Fr Feb 24 2017 13:37:40.226633 - Basestation Update: MCU /home/chris/.local/share/Steam/SteamApps/common/SteamVR/tools/lighthouse/firmware/lighthouse_tx/archive/htc_2.0/lighthouse_tx_htc_2_0-436-2016-09-20.bin
Fr Feb 24 2017 13:37:40.226799 - Retrieved firmware update 0 percent complete (bSuccess = 1).
Fr Feb 24 2017 13:37:40.226820 - FirmwareWizard entering state Base Station Success (12) with No update necessary (4)
SSeegras 2017-02-24 github

@ChristophHaag Oh, I had 4.9.11 and the impression this was already fixed there.. Now with a patched 4.9.12 I can see my bluetooth. But my base stations are still not spinning up and are also not communicating via bluetooth.

[Bluetooth] Send 'Wake up all' failed (0/1)

Yeah, I had the suspicion they might be somehow perpetually asleep, but apparently the problem runs deeper.

Aasannes 2017-02-26 github

@Seegras : I had the exact same issue with them not spinning up. I suspect there is a difference between Linux and Windows when copying the files to the device.

I have copied it several different ways with Linux (mounting manually, automatically, trying with sync options and so on).

What solved it for me was to loan a windows pc, connect there and copy the exact same file over and it works (I did not install steam on that laptop as it was not my own). Hope that helps you. I want to test out if I can find a way to do this in Linux.

Aarcriley 2017-11-29 github

Since there hasn't been an update on this for over 8 months, I'll report that this is still not working.

Once the base station firmware was updated using a Windows system, they worked fine.

Hh1z1 2018-01-15 github

Not to beat a dead horse but did anything further come of this? One of mine decided there was a firmware update. Tried to apply it but the thing won't turn on at all now. Tried the recalibration and factory reset firmware with no luck. It boots into recovery so I can mount the flash but it won't do anything further.

In a bit of a different boat perhaps as I have no access to a windows host or vm (error 43 -- thanks NVIDIA, you suck)

f42f9f32785127731b602459def28a2e  /home/steamvm/.steam/steam/steamapps/common/SteamVR/tools/lighthouse/firmware/lighthouse_tx/archive/htc_2.0/lighthouse_tx_htc_2_0-244-2016-03-12.bin
07789bd0091f5b81cc62fe85b2be0657  /home/steamvm/.steam/steam/steamapps/common/SteamVR/tools/lighthouse/firmware/lighthouse_tx/archive/htc_2.0/lighthouse_tx_htc_2_0-298-2016-05-05.bin
b918262c3ccc5742fd9c22bf9d5c4586  /home/steamvm/.steam/steam/steamapps/common/SteamVR/tools/lighthouse/firmware/lighthouse_tx/archive/htc_2.0/lighthouse_tx_htc_2_0-436-2016-09-20.bin
6f056cee3182bbf03ebce1d90ed9915f  /home/steamvm/.steam/steam/steamapps/common/SteamVR/tools/lighthouse/firmware/lighthouse_tx/archive/htc_2.0/lighthouse_tx_htc_2_0-calibration-rescue-244.bin
957285c8d5cd5a4419e749777c8d9ccf  /home/steamvm/.steam/steam/steamapps/common/SteamVR/tools/lighthouse/firmware/lighthouse_tx/archive/htc_2.0/lighthouse_tx_htc_2_0-factory-reset-rescue-244.bin
331c9f6a952db99c99a5d48e10a10eae  /home/steamvm/.steam/steam/steamapps/common/SteamVR/tools/lighthouse/firmware/lighthouse_tx/archive/htc_2.0/ota_firmware_upgrade_htc-BCM20736TAG-0226_v210.ota.bin
65b9d0fe98b337d597d04859152e3461  /home/steamvm/.steam/steam/steamapps/common/SteamVR/tools/lighthouse/firmware/lighthouse_tx/archive/htc_2.0/ota_firmware_upgrade_htc-BCM20736TAG-0517_v211.ota.bin

Aanoadragon453 2018-01-15 github

For the VM, can you not just boot it in VirtualBox or something similar that does not require a GPU?

On January 15, 2018 11:32:56 AM PST, h1z1 [email protected] wrote:

Not to beat a dead horse but did anything further come of this? One of
mine decided there was a firmware update. Tried to apply it but the
thing won't turn on at all now. Tried the recalibration and factory
reset firmware with no luck. It boot into recovery so I can mount the
flash but it won't do anything on reboot.

In a bit of a different boat perhaps as I have no access to a windows
host or vm (error 43 -- thanks NVIDIA, you suck)

f42f9f32785127731b602459def28a2e 
/home/steamvm/.steam/steam/steamapps/common/SteamVR/tools/lighthouse/firmware/lighthouse_tx/archive/htc_2.0/lighthouse_tx_htc_2_0-244-2016-03-12.bin
07789bd0091f5b81cc62fe85b2be0657 
/home/steamvm/.steam/steam/steamapps/common/SteamVR/tools/lighthouse/firmware/lighthouse_tx/archive/htc_2.0/lighthouse_tx_htc_2_0-298-2016-05-05.bin
b918262c3ccc5742fd9c22bf9d5c4586 
/home/steamvm/.steam/steam/steamapps/common/SteamVR/tools/lighthouse/firmware/lighthouse_tx/archive/htc_2.0/lighthouse_tx_htc_2_0-436-2016-09-20.bin
6f056cee3182bbf03ebce1d90ed9915f 
/home/steamvm/.steam/steam/steamapps/common/SteamVR/tools/lighthouse/firmware/lighthouse_tx/archive/htc_2.0/lighthouse_tx_htc_2_0-calibration-rescue-244.bin
957285c8d5cd5a4419e749777c8d9ccf 
/home/steamvm/.steam/steam/steamapps/common/SteamVR/tools/lighthouse/firmware/lighthouse_tx/archive/htc_2.0/lighthouse_tx_htc_2_0-factory-reset-rescue-244.bin
331c9f6a952db99c99a5d48e10a10eae 
/home/steamvm/.steam/steam/steamapps/common/SteamVR/tools/lighthouse/firmware/lighthouse_tx/archive/htc_2.0/ota_firmware_upgrade_htc-BCM20736TAG-0226_v210.ota.bin
65b9d0fe98b337d597d04859152e3461 
/home/steamvm/.steam/steam/steamapps/common/SteamVR/tools/lighthouse/firmware/lighthouse_tx/archive/htc_2.0/ota_firmware_upgrade_htc-BCM20736TAG-0517_v211.ota.bin

--
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/ValveSoftware/SteamVR-for-Linux/issues/5#issuecomment-357770670

Hh1z1 2018-01-15 github

I'll try again later tonight but it's complicated, had more luck in wine. Last time I tired, it kept bailing on the vive driver install because it couldn't talk to the hardware no matter what I passed through. I could see there was USB activity.. Then again I have a bit different hardware in that box now.. PITA anyway to spend $3k on hardware you can't use because some pinhead @ NVIDIA thought screwing their users was a good thing.

tl;DR - NVIDIA drivers intentionally "fail" when it detects any kind of a VM. They really don't want people using GPU passthrough even if it's personal use, nowhere near a datacenter (which they along with HTC also "banned") - and in no way competes with Quadro. HTC prohibits "professional / commercial" use which technically includes their biggest marketing source -- Streamers (Twitch fe).

One of the things I wondered was if since I travel quite a bit and have brought the Vive with me, did showing up from random vpns or Hotel networks brick it. Steam and Google certainly get pissy.

UPDATE: Called Vive support, they are unaware of this despite being reported for almost a year. Their only solution is to send it back. 30 day turnaround is what I'm told.

UPDATE: Still playing with this, HTC support is clueless sigh. Of all the reports I've read online, one one so far describes the same issue where on reboot it's not that the light is red, but dim and tiny compared to the normal LED. Obviously I've not opened the case so I'm assuming it's another light entirely.

The post hasn't been updated since February though, dunno if they ever were able to. User is Seegras at the bottom of: https://steamcommunity.com/app/358040/discussions/0/1842367319520635001/?

The device IS still detected in recovery. Removing firmware.bin entirely and rebooting causes a 0 byte file to be produced so it's at least reading the firmware. Really wish someone from Valve or HTC reads this. Short of hooking a jtag upto it and potentially voiding any warranty, I'm at a loss. It worked fine before trying the stupid update :(

Interesting little conundrum is now that the device refuses to boot into anything but recovery, SteamVR will not recognize it at all so you can't initiate the firmware update from there.

Ccyrhinka 2018-06-04 github

This is still an issue.

So, reading #96 the firmware version installed when buying the HTC is the build of 2016-05-05 17:08:43 (still weird that file date is 2009-02-06)

I do find that string 2016-05-05 17:08:43 in my binary file.

$ strings firmware.bin | grep 2016
2016-05-05 17:08:43
2016-05-05 17:08:43

I'm curious about what is the latest version. Anyone, did the update from a non linux platform?

Hh1z1 2018-10-07 github

-- VALVE HAS NOT SANCTIONED THIS IN ANY WAY --

Was really hoping Valve would reply to this or one of the other threads but alas, nope. I was able to not only recover the basestation but update its firmware.

Assuming you have one working basestation (or valid firmware), the non-scripte-I-know-what-the-hell-I'm- doing version is this:

# I lied.. some vars

## where to mount it
MP=/mnt/blah

## USB block device id.. your's will be different
dev=/dev/sdx   
good_bin=/tmp/firmware-good.bin
bad_bin=/tmp/firmware-bad.bin
backup_bin=/tmp/firmware-good.bin.bak
firmware_name=firmware.bin

  # 1) put the basestation in RFU (hold channel button while powering it on)
 lsusb -d "1FC9:000F"    ## -- should show something by NXP (LPC1XXX_IFLASH)

  # 2) mount the block device (may need root if not in udev already)
  mount -t vfat $dev $MP

  #  3) checksum and backup whatever firmware is there (may be 0 bytes if failed)
  ## both should match, if not restart the process (it can happen)
  cd $MP
  cp $firmware_name $good_bin
  md5sum $MP/$firmware_name $good_bin

 # 4) unmount working and repeat steps 1-2 with non-working
 cd ..; umount $MP
 
 # 5) Step 3 without overwriting working firmware
 cd $MP
 cp $firmware_name $bad_bin
 md5sum $firmware $bad_bin


 # - flash it .. the sauce .. note we're not removing the existing file (contradicts Valve)
 dd bs=1024 conv=nocreat,notrunc if="$good_bin" of="$MP/$firmware"

  # - verify -- they better match
  md5sum $good_bin $MP/$firmware

  # - sync for good luck
  sync; sync; sync

  # - unmount
  umount $MP

###  - remove _usb_ cable only ###

Yay.. should have a working device and saved yourself some damn expensive paperweights.
Assuming no updates change this the blue lead should turn on while it updates.

Things to remember -- Depending on what thread you read, they may be different issues. In my case the firmware update from Valve not only failed originally but ended up bricking (or so I thought), the basestation where it remained for almost a year. One difference was that only a very faint red light could be seen in the box. No motor, and certainly no strobe LEDs. At one point it wouldn't be recognized at all by Linux. The devices would not boot which means any proper update later never got applied.

What may have happened but only Valve can confirm is older basestations didn't work with newer firmwares or something with the update process itself. If the firmware failed to apply it still shows up as 0 bytes which may confuse any filesize checks.

Vvalentindavid 2019-01-06 github

I updated my lighthouses with "conv=nocreat,notrunc". I confirm it works.

Ccyrhinka 2019-03-30 github

Thanks @h1z1 I could fix one of my lighthouse which was not booting anymore (no light when powered on after trying to update it).

As I'm on Bionic beaver I let Ubuntu do the mount stuff automatically but the dd command seems necessary to copy the file unaltered.

Ccyrhinka 2019-03-30 github

Nevertheless, I couldn't install to the last firmware. Still stuck with 244.

Any of you have succeeded to use firmware 298 or 436? No luck on my side.

lighthouse_tx_htc_2_0-298-2016-05-05.bin
lighthouse_tx_htc_2_0-436-2016-09-20.bin
Hh1z1 2019-04-07 github

Had no problem with 436, it's the current version. Just did it again to make sure nothing changed between October and now. By "stuck" do you mean it isn't booting at all?

HHugKitten 2024-03-27 github

Replying to https://github.com/ValveSoftware/SteamVR-for-Linux/issues/5#issuecomment-427663876

This worked! There's a typo, but I just used $firmware_name. Also had to mount with --mkdir since that dir didnt already exist.

HHicks79 2024-04-30 github

Valve, can we have an official solution?

@kisak-valve

Eexuvo 2024-11-16 github

I finally got this working.
I tried doing h1z1's copy from a good device and while i managed to do it the lighthouse did not start up but kept in orange light.
In lighthouse terminal i got weird errors about FPGA timing out and id showed radio not responding. From below that might actually have been correctly update but just that it does not apply the update until you restart without USB cable?

This alternative method uses official update programs but from the console.
For a SteamVR Base Station 2.0
Attach it via micro USB to your linux computer.
Unplug other valve devices so you dont accidentally send the wrong firmware to the wrong device.
Open serial port via mincom or other program ex: mincom -D /dev/ttyACM0
Default baudrate worked for me i think it was 19200 or 57600.
tab to list commands, run id and note down current versions, rerun later to verify update is applied.
run serial_dfu to enter radio? update mode
Close minicom as the terminal is now not usable anymore this boot (or until DFU completes).

Next steps i initially did from a windows VM with USB redirection but https://github.com/NordicSemiconductor/pc-nrfutil/ has prebuilt linux binaries under releases that work for a pure linux solution.

Alternative 1: Pure linux
Get nrfutil-linux from https://github.com/NordicSemiconductor/pc-nrfutil/releases and put it in steamapps/common/SteamVR/tools/lighthouse/bin/linux64/ for convenience.
cd steamapps/common/SteamVR/tools/lighthouse
./bin/linux64/nrfutil-linux -vvv dfu serial -pkg ./firmware/lighthouse_tx_vader/archive/428/lighthouse_tx_vader_radio_full_dfu.v2_9_2004771.zip -fc 1 -b115200 -cd 1 -prn 1 -p /dev/ttyACM0

Alternative 2: Windows VM path
Windows install of steamvr has C:\Program Files (x86)\Steam\steamapps\common\SteamVR\tools\lighthouse\bin\win32\nrfutil.exe which we will use to send over the update.
Open device manager and figure out which COM port number the lighthouse got in windows, probably the highest numbered one.
cd C:\Program Files (x86)\Steam\steamapps\common\SteamVR\tools\lighthouse
./bin\win32\nrfutil.exe -vvv dfu serial -pkg ./firmware/lighthouse_tx_vader/archive/428/lighthouse_tx_vader_radio_full_dfu.v2_9_2004771.zip -fc 1 -b115200 -cd 1 -prn 1 -p COM5

I spent 2 hours figuring out that without -prn 1 it just keeps failing with unexpected command reply.
It should do a "ping" communication test and then start sending over the update.
When complete unplug the USB, leave the power on for 10 seconds for good measure but probably not needed.
Here i reattached the USB and in the terminal got weird errors about FPGA timing out and radio not responding, same as the other update method, i think it is because the update is not fully applied until restarting without USB connected.
Next i restarted it with only the power connector and to my surprise the light became green and it is now updated and working!

Same methods can be done for the other devices but check the steam/logs/firmware-update.txt first after a failed update from steams UI so you only do the updates that are necessary and with correct versions or you might brick something. I have successfully updated 5 base stations and 2 controllers.

Linux paths
controller VRC: tools\lighthouse\bin\linux64\lighthouse_watchman_update -s LHR-12345678(see in dmesg what ID your device has) --target=application drivers\indexcontroller\resources\firmware\indexcontroller\indexcontroller_app_20190712_v1562916277.fw
controller radio: tools\lighthouse\bin\linux64\lighthouse_watchman_update -s LHR-12345678 --target=nrf52 drivers\indexcontroller\resources\firmware\indexcontroller\indexcontroller_radio_20190711_v1562882729.fw
headset watchman: tools\lighthouse\bin\linux64\lighthouse_watchman_update -s LHR-12345678 --target=application drivers\indexhmd\resources\firmware\g55\watchman_v3_app_20190828_v1567023441.fw
headset wireless RYB dongle: nrfutil-linux -vvv dfu usb_serial -cd 1 -pkg drivers\indexhmd\resources\firmware\radio\gd_1558748372_dfu.zip -p 1234567890-RYB
headest wireless LYM dongle: nrfutil-linux -vvv dfu usb_serial -cd 1 -pkg drivers\indexhmd\resources\firmware\radio\gd_1558748372_dfu.zip -p 1234567890-LYM
Windows paths for use via VM
controller VRC: tools\lighthouse\bin\win32\lighthouse_watchman_update.exe -s LHR-12345678(see in dmesg what ID your device has) --target=application drivers\indexcontroller\resources\firmware\indexcontroller\indexcontroller_app_20190712_v1562916277.fw
controller radio: tools\lighthouse\bin\win32\lighthouse_watchman_update.exe -s LHR-12345678 --target=nrf52 drivers\indexcontroller\resources\firmware\indexcontroller\indexcontroller_radio_20190711_v1562882729.fw
headset watchman: tools\lighthouse\bin\win32\lighthouse_watchman_update.exe -s LHR-12345678 --target=application drivers\indexhmd\resources\firmware\g55\watchman_v3_app_20190828_v1567023441.fw
headset wireless RYB dongle: tools\lighthouse\bin\win32\nrfutil.exe -vvv dfu usb_serial -cd 1 -pkg drivers\indexhmd\resources\firmware\radio\gd_1558748372_dfu.zip -p 1234567890-RYB
headest wireless LYM dongle: tools\lighthouse\bin\win32\nrfutil.exe -vvv dfu usb_serial -cd 1 -pkg drivers\indexhmd\resources\firmware\radio\gd_1558748372_dfu.zip -p 1234567890-LYM
Mmlugg 2024-11-17 github

@exuvo, thanks for your work on this. I have an out-of-warranty Base Station which is showing a flashing red LED, and thought I'd try this before submitting a ticket for repair. Spoiler alert, it didn't fix my flashing red light, I'm guessing that's a hardware failure -- but using the id command over the serial port I was able to confirm that the firmware update seemed to work!

Note that AFAICT there's no need for a Windows VM or Wine; the repo you linked contains a Linux build of nrfutil in the releases (named nrfutil-linux). The usage is identical, except obviously rather than COMx you use the path to the device file, e.g. /dev/ttyACM0.

My controller is also showing a flashing red light, so I'm going to see what I can do with that too; will report back.

Mmlugg 2024-11-17 github

It looks like the controller update has worked and saved me from the Red Flash Of Death on that one -- thank you! Again, you don't need a Windows VM for this -- you can use tools/lighthouse/bin/linux64/lighthouse_watchman_update.

Eexuvo 2024-11-17 github

Yeah the lighthouse_watchman_update i also used from linux but they did not have nrfutil on steams install so i went with the windows route for that one.

Eexuvo 2025-02-01 github

I recently bought 3 more base stations and was able to update all of them. I edited my steps above to be clearer that you don't need a windows VM.

Ttwhitehead 2025-06-10 github

@exuvo used you update procedure the other day. Worked well. Thank's very much. 🎉 👍 😄

My distro (NixOS) packaged the newer official nrfutil package and not the github one. A small note for anyone else running the official nrfutil package, you need to run

nrfutil install nrf5sdk-tools

first in order to get the nrf dfu command, and you have to drop the -vvv option as that doesn't seem to be supported anymore. Everything else works though.

HHicks79 2025-08-29 github

can we have an official solution?

Error codes