Skip to content

anirudhk-tech/OpenRing

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 

Repository files navigation

OpenRing

Live heart rate monitor for the Colmi R02 smart ring.

Connects to the ring over Bluetooth Low Energy, streams real-time heart rate straight off the sensor, and plots it live. Built from scratch by reverse-engineering the ring's BLE protocol.

What it does

  • Scans for and connects to a Colmi R02 ring over BLE
  • Sends the real-time heart rate command and parses the raw packets
  • Displays a live, scrolling heart rate graph

Requirements

  • Python 3.12+
  • macOS or Linux with Bluetooth
  • A Colmi R02 smart ring

Setup

python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt

Find your ring's address and set it in ring/connection.py:

colmi_r02_client scan

Then update RING_ADDRESS with the address it prints.

Note: on macOS the "address" is a per-machine CoreBluetooth UUID, not the ring's real MAC. That's expected.

Run

python3 main.py

Wear the ring sensor-side (green LED) against the palm side of your finger, snug. The graph will sit flat while the sensor warms up, then lock onto your pulse and start scrolling. Give it ~20–30 seconds on the first read.

How it works

The ring exposes a Nordic UART Service over BLE with two characteristics: one to write commands to, one that streams notifications back. Commands are fixed 16-byte packets — a command byte, a payload, and a checksum. To start a live heart rate reading you send command 105 with payload [1, 1] (heart rate, start), then read byte 3 of each response packet for the BPM.

raw BLE packet → queue → parse → BPM → live plot
  • connection.py — find and connect to the ring
  • stream.py — subscribe to notifications and send the start command
  • protocol.py — build command packets and parse responses
  • display.py — the live PyQtGraph window

Notes

This is a hobby project for reading your own data off a ring you own. It is not a medical device and the readings are not clinical-grade!

About

Live heart rate monitor for the Colmi R02 smart ring.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages