Lab
Changelog·
Release history of lord-the-ring.
In 10 seconds
0.1.0 — 2026-09-19: the whole thing in one day — protocol recovered and proven live, ring-cli with 21 verbs,
bridge, audio path, tiny health platform + phone gateways. Unreleased: the 3-minute docs site.
Full changelog (CHANGELOG.md)
Changelog·
Versions come from pyproject.toml. One entry per release, newest first.
Dates are the day the work landed on main.
0.1.0 — 2026-09-19 — the ring, freed·
The whole reverse-engineering effort landed in one day, in four parallel lanes (APK static analysis, live HCI capture, driver, tiny health platform).
- protocol — frame format
FE FC | cmd | total | index | len | payload(u16 LE, no checksum), GATT service56FF(write33F3, notify33F4), MTU 512, no authentication. 40+ commands mapped from the LoraFit APK and confirmed byte-for-byte against an HCI snoop of the vendor app itself. - live proven — device info (37), name (68), features (55), battery + charging (6), step snapshot (29), set-time (1, local epoch seconds), app info (26), HR open/close/tick (7/8/11, end marker 17), auto-HR (30), history (33/34/36 → terminators 42/43/45), alarms (69), vibrate (4), heartbeat (62).
- audio — on-ring voice memos:
0x2Fstate →0x3Dcount →0x40→0x34stream (12 × 40-byte Opus frames per packet, 16 kHz mono, 20 ms) →0x36echo deletes. Pure-python Ogg Opus muxer;.wavvia ffmpeg. - driver —
ring-cli(scan, gatt, info, battery, steps, settime, find, alarms, hr, spo2, temp, sleep, sync, raw, listen, audio-state/pull/post/ record, handshake, bridge). macOS transport attaches to the system-held bonded link in ~10 ms instead of scanning. - bridge — long-running daemon: handshake → history → memo sync → live
vitals →
POST /api/health/ingestand/api/health/mediaon tiny.technology. Pidfile guard, pause-file handover, cradle-artefact tagging. - capture tooling — Pixel HCI snoop recipe (
tools/capture.sh), btsnoop → ATT JSONL decoder (tools/btsnoop_att.py), GATT dump. - tiny —
use_ring.mjslocal agent tool; health platform, iOS/Android gateways and inbox voice memos live in the tiny app (documented under tiny in the docs). - docs — this site, README, protocol reference, community files.