{"id":48442489,"url":"https://github.com/jackspirou/libstealthtech","last_synced_at":"2026-04-06T16:04:18.372Z","repository":{"id":341644197,"uuid":"1170053896","full_name":"jackspirou/libstealthtech","owner":"jackspirou","description":"Open-source library and tools for controlling Lovesac StealthTech Sound + Charge systems via Bluetooth Low Energy","archived":false,"fork":false,"pushed_at":"2026-03-02T19:42:17.000Z","size":285,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2026-03-02T21:14:51.574Z","etag":null,"topics":["ble","bluetooth-low-energy","harman-kardon","lovesac","reverse-engineering","rust","stealthtech","surround-sound","web-bluetooth","webassembly"],"latest_commit_sha":null,"homepage":"https://stealthtech.app","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jackspirou.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-03-01T16:25:13.000Z","updated_at":"2026-03-02T19:42:21.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/jackspirou/libstealthtech","commit_stats":null,"previous_names":["jackspirou/libstealthtech"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/jackspirou/libstealthtech","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jackspirou%2Flibstealthtech","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jackspirou%2Flibstealthtech/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jackspirou%2Flibstealthtech/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jackspirou%2Flibstealthtech/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jackspirou","download_url":"https://codeload.github.com/jackspirou/libstealthtech/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jackspirou%2Flibstealthtech/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31479009,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-06T14:34:32.243Z","status":"ssl_error","status_checked_at":"2026-04-06T14:34:31.723Z","response_time":112,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ble","bluetooth-low-energy","harman-kardon","lovesac","reverse-engineering","rust","stealthtech","surround-sound","web-bluetooth","webassembly"],"created_at":"2026-04-06T16:03:17.607Z","updated_at":"2026-04-06T16:04:18.365Z","avatar_url":"https://github.com/jackspirou.png","language":"Rust","funding_links":["https://ko-fi.com/jackspirou"],"categories":[],"sub_categories":[],"readme":"# libstealthtech\n\n\u003e Open-source library and tools for controlling Lovesac StealthTech Sound + Charge systems via Bluetooth Low Energy.\n\n[![License](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)\n[![Rust](https://img.shields.io/badge/rust-1.75%2B-orange.svg)](https://www.rust-lang.org)\n[![Ko-fi](https://img.shields.io/badge/Buy_Me_a_Coffee-Ko--fi-FF5E5B?logo=ko-fi\u0026logoColor=white)](https://ko-fi.com/jackspirou)\n\nThe Lovesac StealthTech system is a Harman Kardon surround sound system embedded in\nmodular furniture, controlled via a BLE-connected mobile app that is notoriously\nunreliable. This project provides a reliable, open-source alternative that works on\nany platform with a Bluetooth adapter.\n\n**The StealthTech BLE protocol has been fully reverse-engineered.** This project\ncan control volume, input, EQ, sound modes, power, and more over BLE.\n\n**Try it now at [stealthtech.app](https://stealthtech.app)** — no app install\nrequired. Open the page in Chrome on your phone and connect to your system\ninstantly via Web Bluetooth.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"docs/screenshot.png\" alt=\"StealthTech Remote web app connected to a Sound + Charge system\" width=\"400\"\u003e\n\u003c/p\u003e\n\n## Support\n\nIf this project saved you from the official app, consider buying me a coffee :)\n\n```\n    ( (\n     ) )\n  .-------.\n  |       |]\n  \\       /\n   `-----'\n```\n\n[![Ko-fi](https://img.shields.io/badge/Buy_Me_a_Coffee-Ko--fi-FF5E5B?logo=ko-fi\u0026logoColor=white)](https://ko-fi.com/jackspirou)\n\n## Repository Structure\n\n```\nlibstealthtech/\n├── rust/\n│   ├── protocol/              # libstealthtech-protocol (WASM-compatible types)\n│   ├── core/                  # libstealthtech-core library crate\n│   │   └── src/\n│   │       ├── ble/           # BLE scanning, connection, GATT discovery\n│   │       └── device/        # High-level StealthTechDevice API\n│   ├── cli/                   # CLI binary crate (stealthtech)\n│   ├── bridge/                # FFI bridge for Swift/Java bindings (future)\n│   └── wasm/                  # WebAssembly bindings for Web Bluetooth UI\n├── swift/                     # iOS/macOS bindings (future)\n├── java/                      # Android/Kotlin bindings (future)\n├── node/                      # Node.js bindings (future)\n├── docs/\n│   ├── architecture.md        # Crate graph, BLE state machine, GATT flow\n│   ├── protocol-mapping.md    # Complete BLE protocol specification\n│   ├── reverse-engineering.md # RE methodology and tools\n│   ├── firmware-analysis.md   # MCU firmware binary analysis\n│   └── hardware-teardown.md   # Complete technical teardown\n├── CONTRIBUTING.md\n├── SECURITY.md\n└── LICENSE\n```\n\n## Quick Start\n\n```bash\n# Clone and build\ngit clone https://github.com/jackspirou/libstealthtech.git\ncd libstealthtech\ncargo build --release\n\n# Scan for StealthTech devices\n./target/release/stealthtech scan\n\n# Control your system\n./target/release/stealthtech volume 18       # Set volume (0-36)\n./target/release/stealthtech input hdmi      # Switch to HDMI ARC\n./target/release/stealthtech mode movies     # Movies sound preset\n./target/release/stealthtech bass 12         # Set bass (0-20)\n./target/release/stealthtech power off       # Enter standby\n```\n\n### Reverse engineering tools\n\n```bash\n# Scan for ALL nearby BLE devices\n./target/release/stealthtech sniff scan-all\n\n# Dump the full GATT profile\n./target/release/stealthtech sniff discover --json my_gatt_dump.json\n\n# Monitor BLE notifications in real time\n./target/release/stealthtech sniff monitor --log traffic.tsv\n```\n\n## Status\n\n| Layer | Status |\n|-------|--------|\n| BLE Discovery \u0026 Connection | **Working** -- scanning, auto-reconnect with exponential backoff |\n| GATT Service Enumeration | **Working** -- full profile dump and read-all tools |\n| BLE Traffic Monitoring | **Working** -- real-time notification capture with logging |\n| Protocol Command Encoding | **Complete** -- all commands fully mapped with real UUIDs |\n| Volume / Input / Mode Control | **Working** -- volume, bass, treble, input, sound mode, mute |\n| EQ / Balance / Power | **Working** -- center, rear, balance, quiet mode, power on/off |\n| Notification Decoding | **Working** -- all 15 response codes parsed from UpStream |\n| Firmware Version Query | **Working** -- MCU, DSP, EQ version retrieval |\n| Web Remote ([stealthtech.app](https://stealthtech.app)) | **Live** -- Web Bluetooth UI with full device control |\n| Documentation Site | **Live** -- hosted at [stealthtech.app/docs/](https://stealthtech.app/docs/) |\n\n## Hardware Background\n\nStealthTech is built from these vendor components:\n\n| Component | Vendor | Key Detail |\n|-----------|--------|------------|\n| Center Channel (EE4034) | Harman International | 242W RMS, BLE + HDMI ARC |\n| Subwoofer (EE0362) | Harman International | 50W RMS, 8\" driver, WiSA receiver |\n| Sound+Charge Sides | Harman International | 52W RMS each, 6.5\" + tweeter |\n| WiSA Module (444-2250) | Summit Semiconductor | NXP MKW21D512 + Summit SWM908 ASIC, 5 GHz |\n| Wireless Charging Pad | jjPlus Corp (Taiwan) | Qi standard, FCC ID 2A8R5QST008A |\n| BLE Control | Harman International | BLE 4.2+, app control only |\n\nThe center channel acts as the BLE GATT server. The WiSA link (center to subwoofer to\nwired speakers) is a separate 5 GHz radio -- we only control the center channel via BLE\nto adjust volume, input, EQ, and other settings.\n\n## How to Help\n\nThe protocol is mapped, but testing across hardware variants is valuable.\nSee [CONTRIBUTING.md](CONTRIBUTING.md) for detailed instructions.\n\nWays to contribute:\n\n1. **Test on your hardware** — run the CLI and report any issues\n2. **Share GATT dumps** — `stealthtech sniff discover --json gatt_dump.json`\n3. **Report device names** — different firmware versions may advertise differently\n4. **Code contributions** — Swift/Android bindings, GUI app, additional features\n\n## Legal\n\nThis project performs only standard Bluetooth Low Energy operations (scanning, connecting,\nreading/writing GATT characteristics) on hardware you own. This is functionally identical\nto what the official app does, just from a different client.\n\nThe project does not:\n\n- Bypass any DRM or encryption\n- Modify device firmware\n- Access any Lovesac servers or APIs\n- Redistribute any Lovesac or Harman Kardon intellectual property\n\n## License\n\nMIT License. See [LICENSE](LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjackspirou%2Flibstealthtech","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjackspirou%2Flibstealthtech","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjackspirou%2Flibstealthtech/lists"}