Skip to content

docs(readme): document Oura ring support — what works, what's coming, what can't - #1132

Open
pipiche38 wants to merge 1 commit into
ryanbr:mainfrom
pipiche38:readme-oura-support
Open

docs(readme): document Oura ring support — what works, what's coming, what can't#1132
pipiche38 wants to merge 1 commit into
ryanbr:mainfrom
pipiche38:readme-oura-support

Conversation

@pipiche38

Copy link
Copy Markdown

The README describes NOOP as a WHOOP-only project. The tree has had experimental Oura Ring (Gen 3)
support for some time — it pairs, offloads a night, and shows real heart rate, sleep stages, skin
temperature and motion — and a reader has no way to learn that from the front page. Someone with a ring
either assumes it's unsupported, or tries it and has no idea which of their expectations are reasonable.

Docs only. No code, no behaviour change, no new capability implied.

What it adds

  • A row in the Strap support table.
  • A new Oura ring support section, structured as what works / what's in progress / what can't
    work from this data
    .
  • One line in the intro, and the same not-affiliated / clean-room note the WHOOP text carries.

The judgement calls, since this is the part worth reviewing

I wrote it deliberately conservative — over-promising on the front page is worse than saying nothing:

  • Marked experimental and explicitly not a supported strap, matching how it's gated in the wizard.
  • iOS/Android only, stated up front. macOS pairing is a reproducible silent hang (§3.8) and someone
    on the Mac reference app shouldn't lose an evening to it.
  • "A ring-only day doesn't score yet" is called out as the biggest gap, not buried — it's the first
    thing a new ring owner notices.
  • HRV / RMSSD / SDNN, Rhythm, and respiratory rate are marked ❌ "not possible from this data", not
    "coming soon". The ring banks intervals rather than sending beat-to-beat values; NOOP refuses a number
    there instead of showing a plausible wrong one, and the README should say that in the same voice.
  • SpO₂ is described as a stored raw channel, not a Blood Oxygen reading, because the calibration
    question (~47% of samples decode above 100%) is still open.

On the Auth Key

The section says what it does, then bounds it, rather than calling it "unlocks everything":

  • it inherits the account's cloud entitlements, so it needs an active paid Oura membership at the
    time each feature is enabled;
  • what happens after a membership lapses is untested — one billing month is what was actually
    observed, and the text says that rather than implying permanence;
  • it does not unlock the ❌ rows, since those are limited by what the interval stream physically
    contains, not by an entitlement.

Every claim traces to something already in-tree (OURA_PROTOCOL.md §3.7 / §3.8 / §7.1) or to
hardware-validated work already merged.

Not done, on purpose

  • No header badge. The existing badge says "works with WHOOP 4.0 & 5.0"; adding Oura beside it would
    read as a support claim the ❌ rows contradict. Easy to add if you'd rather.
  • The other experimental brands (Amazfit, Mi Band, Garmin) are still undocumented here. Oura is much
    further along, so this covers only Oura rather than pretending to a general experimental-device page.

… what can't

The README describes NOOP as a WHOOP-only project. The tree has had experimental
Oura Ring (Gen 3) support for some time - it pairs, offloads a night, and shows
real heart rate, sleep stages, skin temperature and motion - and a reader has no
way to learn that from the front page. Someone with a ring either assumes it is
unsupported, or tries it and has no idea which of their expectations are
reasonable.

Adds an "Oura ring support" section under Strap support, plus a row in the strap
table and one line in the intro. Structured as what WORKS / what is IN PROGRESS /
what will NEVER work from this data, because the third category is the one that
actually saves people time.

Deliberately conservative, because over-promising here is worse than saying
nothing:

- Marked experimental and explicitly NOT a supported strap, matching how it is
  gated in the pairing wizard.
- iOS/Android only, stated up front: macOS pairing is a reproducible silent hang
  (OURA_PROTOCOL.md 3.8), and someone on the Mac reference app should not spend an
  evening on it.
- The ring-only day not scoring yet is called out as the biggest gap rather than
  buried, since it is the first thing a new ring owner will notice.
- HRV/RMSSD/SDNN, the Rhythm screen, and respiratory rate are marked as NOT
  possible from this data, not "coming soon". The ring banks its intervals rather
  than sending beat-to-beat values; NOOP refuses a number there instead of showing
  a plausible wrong one, and the README should say so in the same voice.
- SpO2 is described as a stored raw channel, not a Blood Oxygen reading, because
  the calibration question (~47% of samples decode above 100%) is still open.

On the Auth Key path, the section says what it does and then bounds it, rather
than describing it as "unlocks everything":

- it inherits the ACCOUNT's cloud entitlements, so it needs an ACTIVE PAID Oura
  membership at the time each feature is enabled;
- what happens after the membership lapses is untested - one billing month is what
  was actually observed, and the text says that rather than implying permanence;
- it does NOT unlock the impossible rows, since those are limited by what the
  interval stream contains, not by an entitlement.

Every claim traces to something already in-tree (OURA_PROTOCOL.md 3.7 / 3.8 / 7.1)
or to hardware-validated work already merged. No new capability is implied.

Docs only - no code, no behaviour change. Also adds the same
not-affiliated/clean-room note the WHOOP text carries, for Oura.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XXdjctbkxqo359NuuJascK
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant