Open nukmuk opened 3 years ago
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.
I've got a pr for Vive base stations support, but I can't test if it works. #35
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.
@BlakCake are you able to make a build or should I make one for you that you can sideload?
I tried getting along with Flutter but it kinda hates me right now so if you could provide a build, I would appreciate it!
You can download a debug build here.
Thanks! It doesn't seem to be detecting the base stations. Although the dark mode is looking really good.
Bluetooth setting is showing the base station tho, so my phone does see them
Have you gone into settings to enable Vive Base station support?
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:
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.
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.
You mean this?
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.
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:
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.
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.
I'll try again with SteamVR open
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.
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 I don't see any read properties in your screenshots, did you click the R button?
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:
The value I have opened is x00120001 when my base station is sleeping (like shown), but it's x001200000... when they are on.
Just wanted to say I'm using this with my Vive trackers and it is working great! Thank you!
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.
I think some recent(?) update broke support for the V1 base stations
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!.