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.