Bluetooth GATT Characteristic Reference
RSC Measurement (0x2A53)
The RSC Measurement characteristic (RSC refers to Running Speed and Cadence) is a variable length structure containing a Flags field, an Instantaneous Speed field and an Instantaneous Cadence field and, based on the contents of the Flags field, may contain a Stride Length field and a Total Distance field.
Quick Summary
Payload length is 10 bytes. This page is generated from official GATT XML and presented as implementation-ready guidance.
At a Glance
Key reference details for BLE implementation, interoperability testing, and AI-assisted troubleshooting.
| Property | Value |
|---|---|
| Name | RSC Measurement |
| UUID | 0x2A53 |
| Type | org.bluetooth.characteristic.rsc_measurement |
| XML Root | Characteristic |
| Source File | org.bluetooth.characteristic.rsc_measurement.xml |
| Field Count | 5 |
Field Specification
Parsed field definitions from the source XML value structure.
| Field | Requirement | Format | Unit | Exponent | Notes |
|---|---|---|---|---|---|
| Flags | Mandatory | 8bit | - | - | These flags define which data fields are present in the Characteristic value. |
| Instantaneous Speed | Mandatory | uint16 | org.bluetooth.unit.velocity.metres_per_second | - | Unit is in m/s with a resolution of 1/256 s |
| Instantaneous Cadence | Mandatory | uint8 | org.bluetooth.unit.angular_velocity.revolution_per_minute | - | Unit is in 1/minute (or RPM) with a resolutions of 1 1/min (or 1 RPM) |
| Instantaneous Stride Length | C1 | uint16 | org.bluetooth.unit.length.meter | - | - |
| Total Distance | C2 | uint32 | org.bluetooth.unit.length.meter | - | - |
Bit Map
Bit-level enumerations extracted from the XML BitField definition.
| Field | Bit | Size | Name | 0 Means | 1 Means |
|---|---|---|---|---|---|
| Flags | 0 | 1 | Instantaneous Stride Length Present | False | True |
| Flags | 1 | 1 | Total Distance Present | False | True |
| Flags | 2 | 1 | Walking or Running Status bits | Walking | Running |
Byte Layout and Decode
Payload length is 10 bytes.
function decodePayload(dataView, offset = 0) {
// Parse flags (8bit) according to Bluetooth format rules.
const instantaneous_speed = dataView.getUint16(offset + 0, true);
const instantaneous_cadence = dataView.getUint8(offset + 2);
const instantaneous_stride_length = dataView.getUint16(offset + 3, true);
const total_distance = dataView.getUint32(offset + 5, true);
return { flags, instantaneous_speed, instantaneous_cadence, instantaneous_stride_length, total_distance };
}
Use Cases and Integration Notes
BLE Telemetry
Map characteristic values into dashboards and alerts for device observability.
Firmware Regression
Compare decoded fields across builds to detect protocol or scaling changes.
App Integration
Build stable parsing paths that convert raw payloads into typed app models.
Implementation Checklist
- Validate payload length and mandatory fields before decode.
- Decode with Bluetooth-specified signedness, unit, and exponent handling.
- Convert units at presentation boundaries to avoid drift in business logic.
- Persist raw packets and decoded values for reproducible troubleshooting.
FAQ
What is RSC Measurement in Bluetooth GATT?
RSC Measurement is defined as a Bluetooth GATT characteristic entry with type org.bluetooth.characteristic.rsc_measurement and UUID 0x2A53.
What UUID identifies RSC Measurement?
The UUID for RSC Measurement is 0x2A53.
How should I parse RSC Measurement?
Payload length is 10 bytes.
Where does this definition come from?
This page is generated from the Bluetooth SIG mirror XML in the oesmith/gatt-xml repository.
How does this page support BLE implementation?
The page combines structured tables, practical Q&A, and JSON-LD metadata to help teams validate integrations and troubleshoot consistently.