You could use this method to turn them off but it might be expensive
Finding this a bit annoying myself.
SteamVR only enables Bluetooth functionality if it detects the Broadcom driver running against a USB device with VID:0BB4 PID:0306, i.e. only with the HTC Linkbox. Question is if it uses driver-specific calls or if uses the normal Windows APIs. If itâs the later, thereâs no reason it wouldnât work with any Bluetooth LE controller.
Itâd be preferable to get SteamVR handling this natively, otherwise a custom app could be written using the Lighthouse protocol described here: LighthouseRedox/Base Station.md at master ¡ nairol/LighthouseRedox ¡ GitHub (or this added to PiTool).
Can the device id be spoofed or simulated somehow? #hackery
Wondering that too⌠I think itâs possible using Overview of developing Windows drivers for emulated USB devices (UDE) - Windows drivers | Microsoft Learn
I had a poke around vrmonitor.exe and driver_lighthouse.dll in a hex editor. There are some VID and PID values but changing them to USB devices I do have seems to have no effect.
Thereâs also what seems to be an undocumented .vrsettings option called BaseStationRadioOverride which sounds promising, but with no clue on what format it expects for a value, not much help.
@Sjef maybe interested to participate this?
Could you elaborate on this finding?
I do still have my Linkbox from my OG Vive and when itâs plugged in, powered and detected by SteamVR, this should work according to your reasoning (it detects the Broadcom driver running against a USB device with VID:0BB4 PID:0306). Yet it doesnât work, unless the Vive is actually plugged into the linkbox.
What infuriates me the most is that this did work back in October 2018, and must have been intentionally patched out in a later SteamVR update.
@PimaxUSA, are you guys in touch with Valve on this? There is an abundance of existing and prospective Pimax 5K+/8K users that have chosen that HMD as an upgrade path within an environment whose very nature is the claim to offer said upgradeability.
Does the Bluetooth section of SteamVR settings become available? (or does it say âBluetooth services not availableâ?)
I ran a VRCade for 18 months and left them on constantly - on the basis hard drive motors donât like starting and stopping.
Given the power drain is something like 5W thatâs circa ÂŁ5 per year in my rough and ready 1W=ÂŁ1 per year electric calculator. (1w=8.76kWh/yr x avg 12p kWh = ÂŁ1.05 per year per watt ).
Thatâs cheaper than buying a new light house if you wear out the motors. Constant spinning is less wear than starting and stopping.
They make annoying noise - canât sleep.
even with the linkbox plugged in you still get Bluetooth Services not Available.
Plug the vive headset in and it all works.
KraitPhantom
Confirmed, that is the exact behaviour.
Ok sounding as if tricking SteamVR into doing power management is going to be complex. Sounds like a system tray app with on/off options is the easiest option. Will see what I can do.
had the same idea. Just a tiny app for the tray. Thanks for your information so far, but beside that iâd like to add that the bluetooth area is not available while only the breakout box is connected - but:
- The driver IS being loaded windows side, so the BT Device seems to be available
- Within SteamVR there are another Menu entry, where you can see all connected devices, and itâs also there being shown that the breakout box is connected. But if you switch to bluetooth it still says the service is unavailable.
- Within SteamVR installation folder there are some console applications. One seems to be able to update the firmware of the lighthouses, another one control them. But i donât know what to do on the later one because it donât have a help command and therefore all commands are unknown to me
Thanks Iâll dig into the console app tonight to see if I can find any useful info.
I made some progress on the system tray app last night - it detects the base stations over the system Bluetooth APIs and can call the documented commands over GATT. Main issue is that it needs the base station serial number to actually change the power state and iâve not found a way to programmatically find it over Bluetooth (likely a security feature so you donât go to a conference and turn off all the base stations on the show floor!)
Think I might be able to grab it via OpenVR on first use with a HMD plugged in and store it against the Bluetooth address for later use when the headset is turned off.
I guess, it would be to easy if the S/N is printed on the backside of each basestation?
btw. what i see from LighthouseRedox/Base Station Shell.md at master ¡ nairol/LighthouseRedox ¡ GitHub is that the Device Name == S/N of the Basestation.
AdditionalQuote:
The Base stations can be put to sleep and woken up via a Bluetooth LE GATT characteristic. Also they can receive radio firmware updates. The âNameâ and âAliasâ characteristics contain a string âHTC BS xyABCDâ where xy is the last byte of the Bluetooth address [which we have] and ABCD is half of the base station unique identifier [which is half of the name].
For the basestationsâ S/N have a look into $(root)\Steam\config\lighthouse\lighthousedb.json
or into $(root)\Steam\config\steamvr.vrsettings
.
Thanks, yeah, the serial number is printed on the back of each base station and itâs available via soldering a serial cable to the PCB, but Iâm looking for a way to automagically setup the base stations (without user input).
Annoyingly the Name/Alias GATT characteristics donât always contain that xyABCD string (often the base stations just advertise themselves as âHTC BSâ).
That info from @risa2000 sounds really useful. Will take a look at that, thanks!
When I debugged the stand-by mode with my Vive I was able to see the partial name of the basestation on my phone BT scan. For example SteamVR showed LH-EA12F2A1, while my phone showed âHTC BS A1F2A1â, so basically the last four digits were the same.
I also know that if you run SteamVR with Vive, and then check vrsystem.exe log (for example from âCreate System Reportâ function in SteamVR), you will find quite a lot of info about the basestation configuration in the log (if your BT was working correctly) including S/N, firmware rev, etc.
I have no longer Vive connected and with Pimax the info does not come up, but I am convinced that there is a way SteamVR can get this info from the basestations without any particular action (it seems they even pair automatically without any user intervention). So I would assume that there might be some algorithm (known to both the PC and the BS), which allows them to set up a communication channel without prior exchange of any additional information (e.g. S/N).
Itâs a valid approach to ask the user to take down the basestations and enter the necessary name by hand. In case this is the only thing which has to be done.
Personally iâd love to have the tool earlier instead of waiting longer âjustâ to have everything automatized