Skip to main content

Overview

Synheart Wear supports direct Bluetooth LE connections to any standard heart rate monitor. This enables real-time HR streaming without requiring a cloud API or vendor-specific SDK. Supported devices include:
  • WHOOP (Broadcast Heart Rate mode)
  • Polar sensors (H10 chest strap, OH1 / Verity Sense optical arm bands)
  • Wahoo TICKR, TICKR X
  • Garmin HRM-Pro, HRM-Dual
  • Gym equipment with BLE HR broadcast
  • Any device implementing the standard BLE Heart Rate Profile (0x180D)

How It Works

The BLE HRM provider connects to devices advertising the standard Bluetooth Heart Rate Service (0x180D), subscribes to the Heart Rate Measurement characteristic (0x2A37), and parses incoming data per the Bluetooth SIG specification.

Platform Setup

iOS

Add to Info.plist:

Android

Add to AndroidManifest.xml:
Note: Android 12+ requires runtime permission requests for BLUETOOTH_SCAN and BLUETOOTH_CONNECT.

Usage

API Reference

Methods

BleHrmDevice

Returned from scan():

HeartRateSample

Emitted on the heart rate stream: Note: rrIntervalsMs availability depends on the device. Polar chest straps typically include RR intervals; WHOOP Broadcast typically does not.

Error Codes

WHOOP Broadcast Setup

To use WHOOP as a BLE heart rate monitor:
  1. Open the WHOOP app on your phone
  2. Go to Device Settings (tap your WHOOP device)
  3. Enable Broadcast Heart Rate
  4. Your WHOOP will now appear in BLE scans as a standard HR monitor
Note: WHOOP Broadcast HR provides BPM only (no RR intervals). For full WHOOP data (recovery, sleep, strain), use the WHOOP cloud provider instead.

Reconnection

The BLE HRM provider automatically handles disconnections:
  • 3 retry attempts with exponential backoff (1s, 2s, 4s)
  • After retries are exhausted, a DISCONNECTED error is emitted on the stream
  • Your app can then prompt the user to reconnect

Limitations

  • Single device: Only one BLE HRM device can be connected at a time (v1)
  • Phone-side only: Requires the phone to be in BLE range of the HR monitor
  • No HRV calculation: Raw RR intervals are provided when available, but HRV calculation is not performed by the provider
  • Battery dependent: Battery level monitoring is optional (enableBattery: true during connect)

Architecture

The BLE HRM provider is implemented natively on each platform: All platforms parse HR data identically per the Bluetooth SIG Heart Rate Profile specification (flags byte, uint8/uint16 BPM, optional RR intervals at 1/1024s resolution).