Skip to content

Add LuckRing/TK18 ring support (Coolwear K6 protocol)#90

Merged
saksham2001 merged 4 commits into
mainfrom
feat/luckring-tk18
Jul 15, 2026
Merged

Add LuckRing/TK18 ring support (Coolwear K6 protocol)#90
saksham2001 merged 4 commits into
mainfrom
feat/luckring-tk18

Conversation

@saksham2001

Copy link
Copy Markdown
Owner

Summary

Adds support for the LuckRing / TK18 ring family (Shenzhen Coolwear/Kewo OEM, custom "K6" protocol on service F618, company ID 0xFF64) — reverse-engineered from the decompiled vendor app; no public documentation of this family existed before.

  • New LuckRing* protocol stack in RingProtocol/ (framing, encoder, decoder, driver, history pager, sync engine, coordinator) + catalog entry, ring art, and registry wiring
  • RingBLEClient now picks the BLE write type from the characteristic's properties — the TK18's write char is write-without-response only, and hardcoded .withResponse writes were silently discarded (device-agnostic fix, existing rings unaffected)
  • Pushes the ring's auto-monitoring config (opcode 128) on connect — firmware default is off, so the ring would otherwise never log history on its own
  • Promotes Colmi SmartHealth to full support (R99 verified on hardware; badge removed)
  • Docs: new docs/hardware/luckring.md ring page (jring/colmi format), index + SIMSONLAB cross-links

Type of change

  • 📟 New / improved wearable support (BLE driver layer)
  • 📝 Docs only

How was this tested?

  • Added / updated unit tests (PulseLoopTests) — 50+ new cases (framing, encoder, decoder, driver, history pager, pairing/capability gating)
  • Ran the test suite locally — 692 tests, 0 failures
  • Tested on a physical device with a real ring — model: TK18 (spot HR/SpO₂/HRV, battery, pairing, history sync confirmed; BP + overnight sleep pending)

Privacy & data

  • This change does not send health data off-device without explicit user action.
  • No secrets, API keys, or personal data are committed.

Checklist

  • My code follows the project's style (SwiftLint passes).
  • I ran the tests and they pass.
  • I updated docs / README where relevant.
  • I read the Contributing guide.

@saksham2001
saksham2001 merged commit 9d05481 into main Jul 15, 2026
4 checks passed
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