Skip to content
AF

CSC Measurement (0x2A5B): byte layout

GATT characteristic · org.bluetooth.characteristic.csc_measurement · read from the Bluetooth SIG’s repository on 2026-10-17 · commit 408f4a0 (2026-10-14)

CSC Measurement is Bluetooth GATT characteristic 0x2A5B, org.bluetooth.characteristic.csc_measurement in the Bluetooth SIG's assigned numbers. The SIG's GATT Specification Supplement file lays its value out as 3 fields: Flags, Wheel Revolution Data and Crank Revolution Data. The first, Flags, is a boolean[8]; 2 of the others are present only when a bit of it is set as the field's text states, so after the first of those, a field's offset depends on which bits are set.

UUID
0x2A5B
Identifier
org.bluetooth.characteristic.csc_measurement
The SIG’s description
The CSC Measurement characteristic is used to represent data related to a cycling speed and cadence (CSC) sensor.The structure of this characteristic is defined below.
Service the SIG’s files tie it to
None: no file in the repository lists this characteristic under a service.
Source file
gss/org.bluetooth.characteristic.csc_measurement.yaml

Byte layout: 3 fields

In the order the SIG’s structure lists them. Type and size are as published; sizes count octets except where a struct is marked as sized in bits. The offset is printed only where every earlier field has a fixed size; where an earlier field can be absent or vary, the cell names what it depends on. “Present when” is read from the field’s own “Present if” line, shown in full in the field notes below.

OffsetFieldTypeSizePresent whenUnit
0Flagsboolean[8]1Always (fixed size)—
1Wheel Revolution Datastruct0 or 6Bit 0 of Flags is 1—
+0↳ Cumulative Wheel Revolutionsuint324Always (fixed size)not an id in units.yamlorg.bluetooth.unitless
+4↳ Last Wheel Event Timeuint162Always (fixed size)time (second)org.bluetooth.unit.time.second
Depends on Flags (bit 0)Crank Revolution Datastruct0 or 4Bit 1 of Flags is 1—
+0↳ Cumulative Crank Revolutionsuint162Always (fixed size)not an id in units.yamlorg.bluetooth.unitless
+2↳ Last Crank Event Timeuint162Always (fixed size)time (second)org.bluetooth.unit.time.second

Field notes

Each field’s text in the SIG’s file, line by line.

Flags boolean[8] · 1
See Flags
Wheel Revolution Data struct · 0 or 6
See Wheel Revolution DataPresent if bit 0 of Flags field is set to 1
Crank Revolution Data struct · 0 or 4
See Crank Revolution DataPresent if bit 1 of Flags field is set to 1

Flags and value tables

The definitions the SIG’s file gives for its fields, every row as published. On a flags table the last column lists the fields whose “Present if” line names that bit.

Flags

The bits of this field are defined below.

BitDescriptionFields its condition names
0Wheel Revolution Data PresentWheel Revolution Data when 1
1Crank Revolution Data PresentCrank Revolution Data when 1
2–7Reserved for Future Use—

Wheel Revolution Data

The structure of this field is defined below.

FieldData typeSizeDescription
Cumulative Wheel Revolutionsuint324Unit: org.bluetooth.unitless
Last Wheel Event Timeuint162Base Unit: org.bluetooth.unit.time.secondRepresented values: M = 1, d = 0, b = -10Unit is 1/1024th of a second

Crank Revolution Data

The structure of this field is defined below.

FieldData typeSizeDescription
Cumulative Crank Revolutionsuint162Unit: org.bluetooth.unitless
Last Crank Event Timeuint162Base Unit: org.bluetooth.unit.time.secondRepresented values: M = 1, d = 0, b = -10Unit is 1/1024 second

Guides on this site

The metric CSC Measurement carries, on every platform this site covers — each type quoted in its platform's own words:

The connected-device guides that name 0x2A5B:

Questions

What is the UUID of the CSC Measurement characteristic?
0x2A5B. The Bluetooth SIG's characteristic_uuids.yaml lists CSC Measurement as 0x2A5B with the identifier org.bluetooth.characteristic.csc_measurement. No file in the SIG's repository ties it to a service: the repository lists service and characteristic UUIDs separately.
Which CSC Measurement fields are optional?
2 of its 3 fields have a published size that can be zero: Wheel Revolution Data (0 or 6; Present if bit 0 of Flags field is set to 1); Crank Revolution Data (0 or 4; Present if bit 1 of Flags field is set to 1). Flags (1) has a fixed size.
What do the bits of the CSC Measurement Flags field mean?
The SIG defines them as: bit 0, Wheel Revolution Data Present (Wheel Revolution Data when 1); bit 1, Crank Revolution Data Present (Crank Revolution Data when 1). The remaining bits are reserved for future use.

Source

Read on 2026-10-17 from gss/org.bluetooth.characteristic.csc_measurement.yaml and assigned_numbers/uuids/characteristic_uuids.yaml in the Bluetooth SIG’s public repository (branch main, commit 408f4a0, committed 2026-10-14), by scripts/fetch-bluetooth-gatt.mjs. The file’s notice says it is proprietary to Bluetooth SIG, that furnishing it grants no licence, and that it is subject to change without notice; it is © Bluetooth SIG, Inc., and its text is quoted here for identification. Generated by AIFitnessAPI, which is not affiliated with Bluetooth SIG; the SIG’s file remains the authority. The full notice and the conventions used on these pages are on the reference hub.

← All Bluetooth GATT characteristics