Skip to content
AF

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.

OffsetFieldTypeSizePresent whenUnit
0Presence Flagsboolean[8]1Always (fixed size)—
1Total Energy Expenditureuint160 or 2Bit 0 of Presence Flags is 1energy (joule)org.bluetooth.unit.energy.joule
Depends on Presence Flags (bit 0)Normal Walking Stepsuint240 or 3Bit 1 of Presence Flags is 1unitlessorg.bluetooth.unit.unitless
Depends on Presence Flags (bits 0 and 1)Intensity Stepsuint240 or 3Bit 2 of Presence Flags is 1unitlessorg.bluetooth.unit.unitless
Depends on Presence Flags (bits 0, 1 and 2)Floor Stepsuint240 or 3Bit 3 of Presence Flags is 1unitlessorg.bluetooth.unit.unitless
Depends on Presence Flags (bits 0, 1, 2 and 3)Distanceuint240 or 3Bit 4 of Presence Flags is 1length (metre)org.bluetooth.unit.length.metre
Depends on Presence Flags (bits 0, 1, 2, 3 and 4)Duration of Normal Walkinguint240 or 3Bit 5 of Presence Flags is 1time (second)org.bluetooth.unit.time.second
Depends on Presence Flags (bits 0, 1, 2, 3, 4 and 5)Duration of Intensity Walkinguint240 or 3Bit 6 of Presence Flags is 1time (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.

BitDescriptionFields its condition names
0Total Energy Expenditure PresentTotal Energy Expenditure when 1
1Normal Walking Steps PresentNormal Walking Steps when 1
2Intensity Steps PresentIntensity Steps when 1
3Floor Steps PresentFloor Steps when 1
4Distance PresentDistance when 1
5Duration of Normal Walking PresentDuration of Normal Walking when 1
6Duration of Intensity Walking PresentDuration of Intensity Walking when 1
7Reserved 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.

← All Bluetooth GATT characteristics