lighthouse_pm icon indicating copy to clipboard operation
lighthouse_pm copied to clipboard

Add support for original V1 (Vive) lighthouses

Open nukmuk opened this issue 5 years ago • 24 comments

nukmuk avatar Aug 17 '20 19:08 nukmuk

I would love to be able to do this, but I don't have any Vive lighthouses to test this with.

So if anyone want to pick this up, be my guest!.

jeroen1602 avatar Aug 17 '20 19:08 jeroen1602

I have found a python implementation for what we want, will look into it later to see if I can use this. https://github.com/cinfulsinamon/BasestationPowerManager.

But it will need some work to make the finding of lighthouses more generic because right now it's pretty difficult to change the code to add another supported device.

jeroen1602 avatar Sep 01 '20 17:09 jeroen1602

I've got a pr for Vive base stations support, but I can't test if it works. #35

jeroen1602 avatar Sep 04 '20 14:09 jeroen1602

A beta version of the Vive base station support should be merged into master. You can try it by enabling the beta support on the settings page. Feedback on how it works would be appreciated.

jeroen1602 avatar Sep 28 '20 09:09 jeroen1602

@BlakCake are you able to make a build or should I make one for you that you can sideload?

jeroen1602 avatar Sep 29 '20 07:09 jeroen1602

I tried getting along with Flutter but it kinda hates me right now so if you could provide a build, I would appreciate it!

BlakCake avatar Sep 29 '20 07:09 BlakCake

You can download a debug build here.

jeroen1602 avatar Sep 29 '20 08:09 jeroen1602

Thanks! It doesn't seem to be detecting the base stations. Although the dark mode is looking really good.

MainScreen

Bluetooth setting is showing the base station tho, so my phone does see them

BluetoothSettings

BlakCake avatar Sep 29 '20 08:09 BlakCake

Have you gone into settings to enable Vive Base station support?

jeroen1602 avatar Sep 29 '20 08:09 jeroen1602

It seems it's working now, thanks for the heads up oops! Sometimes just one base station shows up and I have to Refresh/Restart until they both are showing. I tried putting one in Sleep and got this:

Oopsie

Also it doesn't know the current state of the base station. It appears to be the same tho, I can feel the motor spinning and the red lights are there.

BlakCake avatar Sep 29 '20 08:09 BlakCake

It's good to know that it works! I made a guess, since I don't know what Bluetooth characteristic to read to get the current state. So what you see there is just a guess since I couldn't test what the state should be.

If you want you could try and go through the Bluetooth characteristic's using something like BLE scanner to see what characteristic reports back the current state and what number defines what state.

jeroen1602 avatar Sep 29 '20 08:09 jeroen1602

You mean this?

BLE

BlakCake avatar Sep 29 '20 08:09 BlakCake

Yes click connect and go through the services and characteristics to see if one of them changes between on and off (sleep). You only have to go through the characteristics that have the R (read) option.

P.S. only one device is allowed to connect to a BLE device at a time, so make sure you disconnect the BLE scanner before trying to find the device again. P.P.S. if you are having scan issues try increasing the scan duration in the settings.

jeroen1602 avatar Sep 29 '20 08:09 jeroen1602

So I just compared every Custom Service with Read twice between Sleep and On. Nothing seems to be changing between them.

Here's a screenshot:

BlakCake avatar Sep 29 '20 09:09 BlakCake

Man that sucks, do you know if steam vr does report back the current state?

Also the 0x10ca (shown in your earlier screenshot) is different from the on command that was being send. So maybe we can use that as the on state.

If there is no way of getting the state then we are stuck to always asking the user what they want to do (which sucks). But this is hopefully mitigated in the future by adding grouping support.

jeroen1602 avatar Sep 29 '20 09:09 jeroen1602

Mine seem to change, here's both with SteamVR open and after closing SteamVR (standby)

EDIT: Something happened to the last two screenshots so they're taller and a part of the screen is shown twice. The characteristic that changes is the first one though.

nukmuk avatar Sep 29 '20 09:09 nukmuk

I'll try again with SteamVR open

BlakCake avatar Sep 29 '20 09:09 BlakCake

So we might get somewhere by reading the 0000CB01-0000-1000-8000-00805F9B34FB characteristic. and using 0x001503020B for on and 0x0012000100 for off.

Also steam VR uses a bit of a different method to turn the base stations on. They send an on command with a timeout, and if they don't send the same command again within the timeout then the base station will turn off. But there is also a mode for just turning it on, and the app uses that mode.

jeroen1602 avatar Sep 29 '20 09:09 jeroen1602

SteamVR open Unknown State: https://i.imgur.com/K0E15SQ.jpg After choosing Sleep: https://i.imgur.com/mVPiOx7.jpg After choosing On: https://i.imgur.com/zBlFpoC.jpg

Everything stopped tracking after this. I may need to restart the base stations

BlakCake avatar Sep 29 '20 09:09 BlakCake

@BlakCake I don't see any read properties in your screenshots, did you click the R button?

jeroen1602 avatar Sep 29 '20 09:09 jeroen1602

Wanted to say it works with powering and turning off my base stations, although it's a bit finicky. The state is listed as unknown though. Also I looked at that BLE scanner and found something that changes: Screenshot_20201118-221109_BLE Scanner The value I have opened is x00120001 when my base station is sleeping (like shown), but it's x001200000... when they are on.

Supreeeme avatar Nov 19 '20 02:11 Supreeeme

Just wanted to say I'm using this with my Vive trackers and it is working great! Thank you!

asktoby avatar Jan 07 '21 11:01 asktoby

Were these debug features ever merged into the main branch because I don't see a toggle to enable vive base stations and it doesn't seem to find them either.

RedlineTriad avatar Feb 18 '24 10:02 RedlineTriad

I think some recent(?) update broke support for the V1 base stations

nukmuk avatar Feb 18 '24 15:02 nukmuk