Skip to content
AF

Step Climber Data (0x2ACF): byte layout

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

Step Climber Data is Bluetooth GATT characteristic 0x2ACF, org.bluetooth.characteristic.step_climber_data in the Bluetooth SIG's assigned numbers. The SIG's GATT Specification Supplement file lays its value out as 13 fields: Flags, Floors, Step Count, Steps Per Minute, Average Step Rate and 8 more. The first, Flags, is a boolean[16]; 12 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
0x2ACF
Identifier
org.bluetooth.characteristic.step_climber_data
The SIG’s description
The Step Climber Data characteristic is used to represent data related to a step climber device.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.step_climber_data.yaml

Byte layout: 13 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[16]2Always (fixed size)—
2Floorsuint160 or 2Bit 0 of Flags is 0unitlessorg.bluetooth.unit.unitless
Depends on Flags (bit 0)Step Countuint160 or 2Bit 0 of Flags is 0unitlessorg.bluetooth.unit.unitless
Depends on Flags (bit 0)Steps Per Minuteuint160 or 2Bit 1 of Flags is 1step (per minute)org.bluetooth.unit.step_per_minute
Depends on Flags (bits 0 and 1)Average Step Rateuint160 or 2Bit 2 of Flags is 1step (per minute)org.bluetooth.unit.step_per_minute
Depends on Flags (bits 0, 1 and 2)Positive Elevation Gainuint160 or 2Bit 3 of Flags is 1length (metre)org.bluetooth.unit.length.metre
Depends on Flags (bits 0, 1, 2 and 3)Total Energyuint160 or 2Bit 4 of Flags is 1energy (kilogram calorie)org.bluetooth.unit.energy.kilogram_calorie
Depends on Flags (bits 0, 1, 2, 3 and 4)Energy Per Houruint160 or 2Bit 4 of Flags is 1energy (kilogram calorie)org.bluetooth.unit.energy.kilogram_calorie
Depends on Flags (bits 0, 1, 2, 3 and 4)Energy Per Minuteuint80 or 1Bit 4 of Flags is 1energy (kilogram calorie)org.bluetooth.unit.energy.kilogram_calorie
Depends on Flags (bits 0, 1, 2, 3 and 4)Heart Rateuint80 or 1Bit 5 of Flags is 1period (beats per minute)org.bluetooth.unit.period.beats_per_minute
Depends on Flags (bits 0, 1, 2, 3, 4 and 5)Metabolic Equivalentuint80 or 1Bit 6 of Flags is 1metabolic equivalentorg.bluetooth.unit.metabolic_equivalent
Depends on Flags (bits 0, 1, 2, 3, 4, 5 and 6)Elapsed Timeuint160 or 2Bit 7 of Flags is 1time (second)org.bluetooth.unit.time.second
Depends on Flags (bits 0, 1, 2, 3, 4, 5, 6 and 7)Remaining Timeuint160 or 2Bit 8 of Flags is 1time (second)org.bluetooth.unit.time.second

Field notes

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

Flags boolean[16] · 2
See Flags
Floors uint16 · 0 or 2
Unit: org.bluetooth.unit.unitlessThe Floors field represents the total number of floors counted by the Server since the beginning of the training session.Present if bit 0 of Flags field is set to 0
Step Count uint16 · 0 or 2
Unit: org.bluetooth.unit.unitlessThe Step Count field represents the total number of steps counted by the Server since the beginning of the training sessionPresent if bit 0 of Flags field is set to 0
Steps Per Minute uint16 · 0 or 2
Unit: org.bluetooth.unit.step_per_minuteThe Step per Minute Rate field represents the average step rate of a user during a period of one minute.Present if bit 1 of Flags field is set to 1
Average Step Rate uint16 · 0 or 2
Unit: org.bluetooth.unit.step_per_minuteThe Average Step Rate field represents the average step rate since the beginning of the training session.Present if bit 2 of Flags field is set to 1
Positive Elevation Gain uint16 · 0 or 2
Unit: org.bluetooth.unit.length.metreThe Positive Elevation Gain field represents the positive elevation gain since the beginning of the training session.Present if bit 3 of Flags field is set to 1
Total Energy uint16 · 0 or 2
Unit: org.bluetooth.unit.energy.kilogram_calorieThe Total Energy field represents the total expended energy of a user since the training session has started.Present if bit 4 of Flags field is set to 1
Energy Per Hour uint16 · 0 or 2
Unit: org.bluetooth.unit.energy.kilogram_calorieThe Energy per Hour field represents the average expended energy of a user during a period of one hour.Present if bit 4 of Flags field is set to 1
Energy Per Minute uint8 · 0 or 1
Unit: org.bluetooth.unit.energy.kilogram_calorieThe Energy per Minute field represents the average expended energy of a user during a period of one minute.Present if bit 4 of Flags field is set to 1
Heart Rate uint8 · 0 or 1
Unit: org.bluetooth.unit.period.beats_per_minuteThe Heart Rate field represents the current heart rate value of the user (e.g., measured via the contact heart rate or any other means).Present if bit 5 of Flags field is set to 1
Metabolic Equivalent uint8 · 0 or 1
Base Unit: org.bluetooth.unit.metabolic_equivalentRepresented values: M = 1, d = -1, b = 0Unit is 1/10 metabolic equivalentThe Metabolic Equivalent field represents the metabolic equivalent of the user.Present if bit 6 of Flags field is set to 1
Elapsed Time uint16 · 0 or 2
Unit: org.bluetooth.unit.time.secondThe Elapsed Time field represents the elapsed time of a training session since the training session has started.Present if bit 7 of Flags field is set to 1
Remaining Time uint16 · 0 or 2
Unit: org.bluetooth.unit.time.secondThe Remaining Time field represents the remaining time of a selected training session.Present if bit 8 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
0More DataFloors when 0Step Count when 0
1Steps Per Minute presentSteps Per Minute when 1
2Average Step Rate presentAverage Step Rate when 1
3Positive Elevation Gain presentPositive Elevation Gain when 1
4Expended Energy presentTotal Energy when 1Energy Per Hour when 1Energy Per Minute when 1
5Heart Rate present:Heart Rate when 1
6Metabolic Equivalent presentMetabolic Equivalent when 1
7Elapsed Time presentElapsed Time when 1
8Remaining Time presentRemaining Time when 1
9–15Reserved for Future Use—

Guides on this site

The connected-device guides that name 0x2ACF:

Questions

What is the UUID of the Step Climber Data characteristic?
0x2ACF. The Bluetooth SIG's characteristic_uuids.yaml lists Step Climber Data as 0x2ACF with the identifier org.bluetooth.characteristic.step_climber_data. No file in the SIG's repository ties it to a service: the repository lists service and characteristic UUIDs separately.
Which Step Climber Data fields are optional?
12 of its 13 fields have a published size that can be zero: Floors (0 or 2; Present if bit 0 of Flags field is set to 0); Step Count (0 or 2; Present if bit 0 of Flags field is set to 0); Steps Per Minute (0 or 2; Present if bit 1 of Flags field is set to 1); Average Step Rate (0 or 2; Present if bit 2 of Flags field is set to 1); Positive Elevation Gain (0 or 2; Present if bit 3 of Flags field is set to 1); Total Energy (0 or 2; Present if bit 4 of Flags field is set to 1); Energy Per Hour (0 or 2; Present if bit 4 of Flags field is set to 1); Energy Per Minute (0 or 1; Present if bit 4 of Flags field is set to 1); Heart Rate (0 or 1; Present if bit 5 of Flags field is set to 1); Metabolic Equivalent (0 or 1; Present if bit 6 of Flags field is set to 1); Elapsed Time (0 or 2; Present if bit 7 of Flags field is set to 1); Remaining Time (0 or 2; Present if bit 8 of Flags field is set to 1). Flags (2) has a fixed size.
What units does Step Climber Data use?
The SIG's text names a unit for 12 of the 13 fields: Floors: unitless (org.bluetooth.unit.unitless); Step Count: unitless (org.bluetooth.unit.unitless); Steps Per Minute: step (per minute) (org.bluetooth.unit.step_per_minute); Average Step Rate: step (per minute) (org.bluetooth.unit.step_per_minute); Positive Elevation Gain: length (metre) (org.bluetooth.unit.length.metre); Total Energy: energy (kilogram calorie) (org.bluetooth.unit.energy.kilogram_calorie); Energy Per Hour: energy (kilogram calorie) (org.bluetooth.unit.energy.kilogram_calorie); Energy Per Minute: energy (kilogram calorie) (org.bluetooth.unit.energy.kilogram_calorie); Heart Rate: period (beats per minute) (org.bluetooth.unit.period.beats_per_minute); Metabolic Equivalent: metabolic equivalent (org.bluetooth.unit.metabolic_equivalent); Elapsed Time: time (second) (org.bluetooth.unit.time.second); Remaining Time: time (second) (org.bluetooth.unit.time.second).
What do the bits of the Step Climber Data Flags field mean?
The SIG defines them as: bit 0, More Data (Floors when 0, Step Count when 0); bit 1, Steps Per Minute present (Steps Per Minute when 1); bit 2, Average Step Rate present (Average Step Rate when 1); bit 3, Positive Elevation Gain present (Positive Elevation Gain when 1); bit 4, Expended Energy present (Total Energy when 1, Energy Per Hour when 1, Energy Per Minute when 1); bit 5, Heart Rate present: (Heart Rate when 1); bit 6, Metabolic Equivalent present (Metabolic Equivalent when 1); bit 7, Elapsed Time present (Elapsed Time when 1); bit 8, Remaining Time present (Remaining Time when 1). The remaining bits are reserved for future use.

Source

Read on 2026-10-17 from gss/org.bluetooth.characteristic.step_climber_data.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