Use it
Troubleshooting·
The five ways the ring goes quiet and the one-line fix for each: pairing stolen, on the charger, macOS bond, empty scan, no memos.
In 10 seconds
The ring answers one central and never sends an error frame — silence is its only complaint. Nine times in ten the fix is: take it off the charger, and make whoever else holds it (phone, macOS bond) let go.
| symptom | why | fix |
|---|---|---|
ring-cli scan shows nothing |
a phone, LoraFit, or a macOS bond holds the link; or you disconnected < 40 s ago | Close LoraFit / the tiny app, or on the phone Bluetooth → ⓘ → Forget; wait 40 s. Mac: if /usr/sbin/system_profiler SPBluetoothDataType lists the ring as Connected, skip the scan — ring-cli battery -a <addr> attaches directly |
| my phone can't see the ring any more | macOS bonded it as a Mouse (it advertises HID); the Mac attaches in 10 ms, phones go blind | System Settings → Bluetooth → ⓘ → Forget This Device. Pick one owner per ring: phone or Mac. Why |
hr returns [], SpO₂ ends without a value |
no finger: on the charger, loose, sensor on the wrong side | Wear it snug, sensor palm-side, off the cradle. There is no error frame — [] is the answer |
audio-record gives a file, not a stream |
the live stream (30/32/33) is refused on the charger; the ring records to flash instead |
Take it off the charger, or audio-pull the file it made |
| HR 80–103 and 31 °C while nobody wears it | cradle readings — the sensor sees the charger | Ignore; tiny drops them automatically (cradle_excluded). Health platform |
audio-state says files but audio-pull gets none |
the pull was interrupted mid-stream | Reconnect; audio-pull --no-clear first, let it delete once the WAV plays |
| bridge posts nothing | no device token, or the ring is out of range and the bridge is waiting | Enrol once with npx tiny-tech (writes ~/.tiny/device.json); bridges reconnect on their own. Bridge |
| I want to see what the phone app really sends | you need an HCI capture | Pixel: Developer options → Bluetooth HCI snoop log → adb bugreport → tools/btsnoop_att.py. Live capture |
Battery always 100 %? That is the GATT Battery Service, not cmd 06. Nothing here reboots, resets or unbinds the ring — those verbs are documented, not shipped.