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 sync process retrieves stored data from the Whoop 4.0 device. The workflow involves requesting batch information, triggering data retrieval, and receiving large 96-byte data packets containing physiological measurements.Sync Workflow
Connect to Device
Establish BLE connection to the device. The device will automatically send notifications on
DATA_FROM_STRAP containing current status information.Receive Batch Information
The last notification received on
Real examples:
DATA_FROM_STRAP contains the batch number needed to request stored data.Packet format:| Field | Bytes | Example | Description |
|---|---|---|---|
| Header | 5 | aa1c00ab31 | Packet header |
| Packet Count | 1 | 18 | Sequential counter |
| Category | 1 | 02 | Packet type identifier |
| Unix Time | 4 | f65c7066 | Timestamp (little-endian) |
| Status Data | 6 | 804043000000 | Device status information |
| Batch Number | 4 | 2e470100 | Critical: needed for retrieval |
| Padding | 4 | 04000000 | Zero padding |
| Reserved | 4 | 00000000 | Reserved bytes |
| Checksum | 4 | 7f873cf3 | CRC-32 checksum |
Request Batch Data
Send a command to Where:
CMD_TO_STRAP with the extracted batch number to trigger data retrieval.Command format:aa10005723= Command header{packet_count}= 1 byte sequential counter1701= Batch retrieval command code{batch_number}= 4 bytes from step 200000000= Padding{checksum}= CRC-32 checksum
Receive Data Packets
After sending the batch request, the device sends a burst of 96-byte data packets on
DATA_FROM_STRAP. Each packet contains detailed physiological measurements.See Data Retrieval for packet structure details.Batch Number Extraction
The batch number is critical for data retrieval. Extract it from the status packet: Example packet:- Position: After header (5) + counter (1) + category (1) + unix (4) + status (6) = 17 bytes
- Length: 4 bytes
- Example value:
2e470100= batch number 83,758
Implementation Example
Sync Behavior Notes
- The app requests journal data before and after sync operations
- If sync fails initially, the app will retry after requesting the journal again
- Sync can be triggered by opening the app after extended Bluetooth disconnection
- The device buffers data locally and sends it in batches during sync
Related Commands
| Command | Category | Description |
|---|---|---|
0x16 | Data sync | Triggers data retrieval on DATA_FROM_STRAP |
0x23 | Sync | Sent during sync process |
0x73 | Enable | Post-sync enable command |
0x74 | Enable | Post-sync enable command (may return string data) |
The sync process is also triggered when the alarm is tapped on the device. The
0x16 command initiates data retrieval in this scenario as well.