Documentation Index
Fetch the complete documentation index at: https://mintlify.com/bWanShiTong/reverse-engineering-whoop-post/llms.txt
Use this file to discover all available pages before exploring further.
Overview
The Whoop 4.0 can broadcast real-time heart rate data over standard BLE Heart Rate Service (UUID0x180D). This allows third-party apps and devices to read heart rate without using the Whoop app.
Broadcast Toggle Commands
Broadcast is controlled by sending toggle commands toCMD_TO_STRAP:
Packet Structure
| Offset | Size | Field | Description |
|---|---|---|---|
| 0x00 | 5 bytes | Header | Always aa0800a823 |
| 0x05 | 1 byte | Packet Count | Increments with each packet |
| 0x06 | 1 byte | Category | 0x0e for heart rate broadcast |
| 0x07 | 1 byte | State | 0x00 = Off, 0x01 = On |
| 0x08 | 4 bytes | Checksum | CRC-32 with custom parameters |
Enabling Broadcast
Using gatttool
Using Python (bleak)
After enabling broadcast, you can read heart rate using the standard BLE Heart Rate Service:Reading Heart Rate
Once broadcast is enabled, the device advertises on the standard Heart Rate Service:- Service UUID:
0x180D(Heart Rate) - Characteristic UUID:
00002a37-0000-1000-8000-00805f9b34fb(Heart Rate Measurement) - Update Rate: ~1 second
Heart Rate Measurement Format
The heart rate characteristic follows the Bluetooth SIG specification:| Byte | Field | Description |
|---|---|---|
| 0 | Flags | Format and sensor contact status |
| 1 | HR Value | Heart rate in beats per minute (BPM) |
Device Visibility
Testing Broadcast State
App Behavior
The Whoop app cannot read the broadcast state from the device. If broadcast is enabled in the app, it periodically sends
0x01 commands to ensure it stays on.Characteristic Details
CMD_TO_STRAP (Control)
- UUID:
61080002-8d6d-82b8-614a-1c8cb0f8dcc6 - Handle:
0x0010 - Properties: Write only
Heart Rate Measurement (Read)
- UUID:
00002a37-0000-1000-8000-00805f9b34fb - Properties: Notify
Use Cases
- Third-party fitness apps: Connect Whoop to Strava, Zwift, etc.
- External displays: Show heart rate on bike computers or smartwatches
- Custom monitoring: Build your own heart rate logging system
- Integration: Use Whoop as a heart rate sensor for any app that supports standard BLE HR