How to Power Off Basestations remotely [SOLVED]

You could use this method to turn them off but it might be expensive

2 Likes

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).

4 Likes

Can the device id be spoofed or simulated somehow? #hackery

1 Like

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.

3 Likes

@Sjef maybe interested to participate this?

2 Likes

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.

2 Likes

Does the Bluetooth section of SteamVR settings become available? (or does it say “Bluetooth services not available”?)

2 Likes

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.

4 Likes

They make annoying noise - can’t sleep.

2 Likes

@ixalon

even with the linkbox plugged in you still get Bluetooth Services not Available.

Plug the vive headset in and it all works.

KraitPhantom

3 Likes

Confirmed, that is the exact behaviour.

1 Like

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.

6 Likes

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 :confused:
1 Like

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.

8 Likes

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].

3 Likes

For the basestations’ S/N have a look into $(root)\Steam\config\lighthouse\lighthousedb.json or into $(root)\Steam\config\steamvr.vrsettings.

5 Likes

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!

3 Likes

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).

4 Likes

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 :slight_smile:

2 Likes