GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - ShayBox/Lighthouse: Virtual reality basestation power management in Rust

BranchesTags
Open more actions menu

Latest commit

 

History

24 Commits
24 Commits

Folders and files

NameName
Last commit message
Last commit date
.github/workflows
.github/workflows
 
 
include
include
 
 
src
src
 
 
tests
tests
 
 
.gitignore
.gitignore
 
 
Cargo.lock
Cargo.lock
 
 
Cargo.toml
Cargo.toml
 
 
LICENSE
LICENSE
 
 
README.md
README.md
 
 
build.rs
build.rs
 
 
cbindgen.toml
cbindgen.toml
 
 
rustfmt.toml
rustfmt.toml
 
 

Repository files navigation

Discord Downloads

Lighthouse

Virtual reality basestation power management in Rust

Usage

Usage: lighthouse [OPTIONS]

Options:
  -s, --state <STATE>              V1: [OFF|ON] | V2: [OFF|ON|STANDBY] (omit both action flags to show status)
  -c, --channel <CHANNEL>          V2 only: set channel frequency (1-16)
  -b, --bsid <BSID>...             V1: Basestation BSID (Required) | V2: Bluetooth Device Identifier (Optional)
  -v, --verbose...                 Increase logging verbosity
  -q, --quiet...                   Decrease logging verbosity
  -t, --timeout <TIMEOUT>          Request timeout in seconds [default: 10]
      --retries <RETRIES>          Number of write attempts per basestation [default: 3]
      --retry-delay <RETRY_DELAY>  Delay between write attempts in seconds [default: 2]
  -h, --help                       Print help

V1 Basestations require an 8 character BSID found on the device to work.

V2 Basestations do not require BSID. But you can specify their MAC address as BSID to manage a specific device.

Examples

Showing status of lighthouses within range:

Run without action flags to scan for basestations and show their power state and channel:

$ lighthouse
2025-08-24T21:14:58.528048Z  INFO lighthouse: Starting scan on hci0...
2025-08-24T21:15:33.543205Z  INFO lighthouse: LHB-6DC32F38 [hci0/dev_E2_5A_B0_E4_97_AD]: ON, Channel 5

Power state and channel are read from the device, so this only works on V2 basestations with firmware that supports reading. Older firmware shows N/A for values it cannot report.

Setting a V2 lighthouse channel:

V2 basestations support channels 1-16. Use different channels to reduce interference between multiple basestations:

$ lighthouse --channel 5
$ lighthouse -c 3 --bsid "E2:5A:B0:E4:97:AD"

Turning a V1 lighthouse on:

Find the BSID at the back of the device.

$ lighthouse --state on --bsid aabbccdd
$ lighthouse --state on --bsid aabbccdd --bsid eeff0011
$ lighthouse --state on --bsid aabbccdd,eeff0011

Turning on any V2 lighthouses within range:

$ lighthouse --state on

Turning on a specific V2 lighthouse:

Run once with verbose parameters to find the MAC address for each lighthouse:

$ lighthouse -vv --state off

This will show the device path or MAC address within square brackets, looking something like this:

2025-02-28T22:14:58.528048Z  INFO lighthouse: Found 'LHB-6DC32F38' [hci0/dev_E2_5A_B0_E4_97_AD]
2025-02-28T22:15:33.543205Z  INFO lighthouse: LHB-6DC32F38 [hci0/dev_E2_5A_B0_E4_97_AD]: OFF

Use the ID shown in the square brackets in the previous command as the bsid to manage a specific lighthouse:

$ lighthouse --state on --bsid "hci0/dev_E2_5A_B0_E4_97_AD"
# or
$ lighthouse --state on --bsid "E2:5A:B0:E4:97:AD"
$ lighthouse --state on --bsid "E2:5A:B0:E4:97:AD" --bsid "hci0/dev_A1_B2_C3_D4_E5_F6"
$ lighthouse --state on --bsid "E2:5A:B0:E4:97:AD","hci0/dev_A1_B2_C3_D4_E5_F6"

macOS

Enable the Bluetooth permission for your terminal. You can do the latter by going to System Preferences → Security & Privacy → Privacy → Bluetooth, clicking the '+' button, and selecting 'Terminal' (or iTerm or whichever terminal application you use).

About

Virtual reality basestation power management in Rust

Topics

basestationhtc-vivehtc-vive-lighthousehtcvivelighthousepower-managementrealityrustlangsteamvrvirtualvirtual-realityvirtualreality

Resources

Readme
MIT license
Activity

Stars

76 stars

Watchers

4 watching

Forks

7 forks
Report repository

Releases

Sponsor this project

Used by

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.