Activity Goal (0x2B4E): byte layout
GATT characteristic · org.bluetooth.characteristic.activity_goal · read from the Bluetooth SIG’s repository on 2026-10-17 · commit 408f4a0 (2026-10-14)
Activity Goal is Bluetooth GATT characteristic 0x2B4E, org.bluetooth.characteristic.activity_goal in the Bluetooth SIG's assigned numbers. The SIG's GATT Specification Supplement file lays its value out as 8 fields: Presence Flags, Total Energy Expenditure, Normal Walking Steps, Intensity Steps, Floor Steps and 3 more. The first, Presence Flags, is a boolean[8]; 7 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. The SIG's User Data permitted-characteristics list includes it.
- UUID
- 0x2B4E
- Identifier
org.bluetooth.characteristic.activity_goal- The SIG’s description
- The Activity Goal characteristic is used to represent the goal or target of a user, such as number of steps or total energy expenditure, related to a physical activity session.The structure of this characteristic is defined below.
- Service the SIG’s files tie it to
- User Data (0x181C) — listed in uds_permitted_characteristics.yaml
- Source file
- gss/org.bluetooth.characteristic.activity_goal.yaml
Byte layout: 8 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.
| Offset | Field | Type | Size | Present when | Unit |
|---|---|---|---|---|---|
| 0 | Presence Flags | boolean[8] | 1 | Always (fixed size) | — |
| 1 | Total Energy Expenditure | uint16 | 0 or 2 | Bit 0 of Presence Flags is 1 | energy (joule)org.bluetooth.unit.energy.joule |
| Depends on Presence Flags (bit 0) | Normal Walking Steps | uint24 | 0 or 3 | Bit 1 of Presence Flags is 1 | unitlessorg.bluetooth.unit.unitless |
| Depends on Presence Flags (bits 0 and 1) | Intensity Steps | uint24 | 0 or 3 | Bit 2 of Presence Flags is 1 | unitlessorg.bluetooth.unit.unitless |
| Depends on Presence Flags (bits 0, 1 and 2) | Floor Steps | uint24 | 0 or 3 | Bit 3 of Presence Flags is 1 | unitlessorg.bluetooth.unit.unitless |
| Depends on Presence Flags (bits 0, 1, 2 and 3) | Distance | uint24 | 0 or 3 | Bit 4 of Presence Flags is 1 | length (metre)org.bluetooth.unit.length.metre |
| Depends on Presence Flags (bits 0, 1, 2, 3 and 4) | Duration of Normal Walking | uint24 | 0 or 3 | Bit 5 of Presence Flags is 1 | time (second)org.bluetooth.unit.time.second |
| Depends on Presence Flags (bits 0, 1, 2, 3, 4 and 5) | Duration of Intensity Walking | uint24 | 0 or 3 | Bit 6 of Presence Flags is 1 | time (second)org.bluetooth.unit.time.second |
Field notes
Each field’s text in the SIG’s file, line by line.
- Presence Flags boolean[8] · 1
- See Presence Flags
- Total Energy Expenditure uint16 · 0 or 2
- Base Unit: org.bluetooth.unit.energy.jouleRepresented values: M = 1, d = 3, b = 0Unit is joule with a resolution of 1000 J.Present if bit 0 of Presence Flags field is set to 1
- Normal Walking Steps uint24 · 0 or 3
- Unit: org.bluetooth.unit.unitlessPresent if bit 1 of Presence Flags field is set to 1
- Intensity Steps uint24 · 0 or 3
- Unit: org.bluetooth.unit.unitlessPresent if bit 2 of Presence Flags field is set to 1
- Floor Steps uint24 · 0 or 3
- Unit: org.bluetooth.unit.unitlessPresent if bit 3 of Presence Flags field is set to 1
- Distance uint24 · 0 or 3
- Base Unit: org.bluetooth.unit.length.metreRepresented values: M = 1, d = 1, b = 0Unit is meter with a resolution of 1 m.Present if bit 4 of Presence Flags field is set to 1
- Duration of Normal Walking uint24 · 0 or 3
- Unit: org.bluetooth.unit.time.secondPresent if bit 5 of Presence Flags field is set to 1
- Duration of Intensity Walking uint24 · 0 or 3
- Unit: org.bluetooth.unit.time.secondPresent if bit 6 of Presence 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.
Presence Flags
The presence of a conditional field of the Activity Goal characteristic is dependent on the Presence Flags field value. When the respective Presence Flags field bit is set to 1, the field is present.The bits of this field are defined below.
| Bit | Description | Fields its condition names |
|---|---|---|
| 0 | Total Energy Expenditure Present | Total Energy Expenditure when 1 |
| 1 | Normal Walking Steps Present | Normal Walking Steps when 1 |
| 2 | Intensity Steps Present | Intensity Steps when 1 |
| 3 | Floor Steps Present | Floor Steps when 1 |
| 4 | Distance Present | Distance when 1 |
| 5 | Duration of Normal Walking Present | Duration of Normal Walking when 1 |
| 6 | Duration of Intensity Walking Present | Duration of Intensity Walking when 1 |
| 7 | Reserved for Future Use | — |
Guides on this site
No guide on this site names 0x2B4E yet. The connected-devices guides cover pairing, subscribing and testing for the device types they do name.
Questions
- What is the UUID of the Activity Goal characteristic?
- 0x2B4E. The Bluetooth SIG's characteristic_uuids.yaml lists Activity Goal as 0x2B4E with the identifier org.bluetooth.characteristic.activity_goal. The SIG's User Data (0x181C) permitted-characteristics list includes it.
- Which Activity Goal fields are optional?
- 7 of its 8 fields have a published size that can be zero: Total Energy Expenditure (0 or 2; Present if bit 0 of Presence Flags field is set to 1); Normal Walking Steps (0 or 3; Present if bit 1 of Presence Flags field is set to 1); Intensity Steps (0 or 3; Present if bit 2 of Presence Flags field is set to 1); Floor Steps (0 or 3; Present if bit 3 of Presence Flags field is set to 1); Distance (0 or 3; Present if bit 4 of Presence Flags field is set to 1); Duration of Normal Walking (0 or 3; Present if bit 5 of Presence Flags field is set to 1); Duration of Intensity Walking (0 or 3; Present if bit 6 of Presence Flags field is set to 1). Presence Flags (1) has a fixed size.
- What units does Activity Goal use?
- The SIG's text names a unit for 7 of the 8 fields: Total Energy Expenditure: energy (joule) (org.bluetooth.unit.energy.joule); Normal Walking Steps: unitless (org.bluetooth.unit.unitless); Intensity Steps: unitless (org.bluetooth.unit.unitless); Floor Steps: unitless (org.bluetooth.unit.unitless); Distance: length (metre) (org.bluetooth.unit.length.metre); Duration of Normal Walking: time (second) (org.bluetooth.unit.time.second); Duration of Intensity Walking: time (second) (org.bluetooth.unit.time.second).
- What do the bits of the Activity Goal Presence Flags field mean?
- The SIG defines them as: bit 0, Total Energy Expenditure Present (Total Energy Expenditure when 1); bit 1, Normal Walking Steps Present (Normal Walking Steps when 1); bit 2, Intensity Steps Present (Intensity Steps when 1); bit 3, Floor Steps Present (Floor Steps when 1); bit 4, Distance Present (Distance when 1); bit 5, Duration of Normal Walking Present (Duration of Normal Walking when 1); bit 6, Duration of Intensity Walking Present (Duration of Intensity Walking when 1). The remaining bits are reserved for future use.
Source
Read on 2026-10-17 from gss/org.bluetooth.characteristic.activity_goal.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.