ANT+ Bridge Required
Browsers cannot read ANT+ sticks directly. You need to run a small local bridge app that reads your USB ANT+ stick and streams HR data to this page over WebSocket.

Setup:
1. Plug in your USB ANT+ stick (Garmin USB-2, Dynastream ANTUSB-m, etc.)
2. Download and run the HR Bridge script (requires Python 3 and openant)
3. Install dependencies: pip install openant websockets
4. Run: python hr-bridge.py
5. Enter the WebSocket address below and click Connect
--
BPM
DISCONNECTED
VIA BLUETOOTH
Session Time
--min
Avg HR
--bpm
Max HR
--bpm
Min HR
--bpm
Heart Rate History --:--
Time in Zone
No device connected.
Target Zone Timer SHOW ▾

Set a goal zone and duration. The timer tracks your accumulated time in that zone and alerts you when you hit your target.

Interval Trainer SHOW ▾

Set your work and rest durations and number of repeats. The trainer counts down each phase and alerts you when to push and when to recover.

Breathing Pacer SHOW ▾

Guided breathing to help lower your heart rate, reduce stress, and improve HRV. Choose a pattern and follow the ring.

Ready
Cycles: 0
Personal Records SHOW ▾

Your best numbers across all sessions, saved locally in your browser.

Session History SHOW ▾

Your last 10 sessions, stored locally. Click any session to see the full summary.

Compatible Devices SHOW ▾
Zone Calculator SHOW ▾
Enter your age and choose a calculation method to get five personalised heart rate training zones. No account needed and nothing is stored.
5 zones Fox · Tanaka · Londeree · Karvonen Download as image
Used to estimate your age-predicted maximum heart rate.
Required for HRR (Karvonen). Measure first thing in the morning.
From a field test or lab result. Overrides age-based formulas.
Your 5 heart rate zones

Enter your details and hit Calculate to see your training zones.

Tip: click any zone row to expand its training description.

Zones preview
Zone Intensity Target range Typical purpose
sessions recorded across all users