Enhanced Blood Pressure Measurement (0x2B34): byte layout
GATT characteristic · org.bluetooth.characteristic.enhanced_blood_pressure_measurement · read from the Bluetooth SIG’s repository on 2026-10-17 · commit 408f4a0 (2026-10-14)
Enhanced Blood Pressure Measurement is Bluetooth GATT characteristic 0x2B34, org.bluetooth.characteristic.enhanced_blood_pressure_measurement in the Bluetooth SIG's assigned numbers. The SIG's GATT Specification Supplement file lays its value out as 8 fields: Flags, Blood Pressure Measurement Compound Value (mmHg), Blood Pressure Measurement Compound Value (kPa), Time Stamp, Pulse Rate and 3 more. The first, 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.
- UUID
- 0x2B34
- Identifier
org.bluetooth.characteristic.enhanced_blood_pressure_measurement- The SIG’s description
- The Enhanced Blood Pressure Measurement characteristic is used to represent data related to a blood pressure measurement that includes a UTC time stamp and a user facing time.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.
- Referenced by
- Enhanced Intermediate Cuff Pressure
- Source file
- gss/org.bluetooth.characteristic.enhanced_blood_pressure_measurement.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 | Flags | boolean[8] | 1 | Always (fixed size) | — |
| 1 | Blood Pressure Measurement Compound Value (mmHg) | struct | 0 or 6 | Bit 0 of Flags is 0 | — |
| +0 | ↳ Systolic (mmHg) | medfloat16 | 2 | Always (fixed size) | pressure (millimetre of mercury)org.bluetooth.unit.pressure.millimetre_of_mercury |
| +2 | ↳ Diastolic (mmHg) | medfloat16 | 2 | Always (fixed size) | pressure (millimetre of mercury)org.bluetooth.unit.pressure.millimetre_of_mercury |
| +4 | ↳ Mean Arterial Pressure (mmHg) | medfloat16 | 2 | Always (fixed size) | pressure (millimetre of mercury)org.bluetooth.unit.pressure.millimetre_of_mercury |
| Depends on Flags (bit 0) | Blood Pressure Measurement Compound Value (kPa) | struct | 0 or 6 | Bit 0 of Flags is 1 | — |
| +0 | ↳ Systolic (kPa) | medfloat16 | 2 | Always (fixed size) | pressure (pascal)org.bluetooth.unit.pressure.pascal |
| +2 | ↳ Diastolic (kPa) | medfloat16 | 2 | Always (fixed size) | pressure (pascal)org.bluetooth.unit.pressure.pascal |
| +4 | ↳ Mean Arterial Pressure (kPa) | medfloat16 | 2 | Always (fixed size) | pressure (pascal)org.bluetooth.unit.pressure.pascal |
| Depends on Flags (bit 0) | Time Stamp | uint32 | 0 or 4 | Bit 1 of Flags is 1 | — |
| Depends on Flags (bits 0 and 1) | Pulse Rate | medfloat16 | 0 or 2 | Bit 2 of Flags is 1 | period (beats per minute)org.bluetooth.unit.period.beats_per_minute |
| Depends on Flags (bits 0, 1 and 2) | User ID | uint8 | 0 or 1 | Bit 3 of Flags is 1 | — |
| Depends on Flags (bits 0, 1, 2 and 3) | Measurement Status | boolean[16] | 0 or 2 | Bit 4 of Flags is 1 | — |
| Depends on Flags (bits 0, 1, 2, 3 and 4) | User Facing Time | uint32 | 0 or 4 | Bit 5 of Flags is 1 | — |
Field notes
Each field’s text in the SIG’s file, line by line.
- Flags boolean[8] · 1
- See Flags.
- Blood Pressure Measurement Compound Value (mmHg) struct · 0 or 6
- See Blood Pressure Measurement Compound Value (mmHg).Present if bit 0 of Flags field is set to 0
- Blood Pressure Measurement Compound Value (kPa) struct · 0 or 6
- See Blood Pressure Measurement Compound Value (kPa).Present if bit 0 of Flags field is set to 1
- Time Stamp uint32 · 0 or 4
- Unit: Seconds, since Epoch StartSee Time Stamp.Present if bit 1 of Flags field is set to 1
- Pulse Rate medfloat16 · 0 or 2
- Unit: org.bluetooth.unit.period.beats_per_minutePresent if bit 2 of Flags field is set to 1
- User ID uint8 · 0 or 1
- See User ID in Blood Pressure Measurement.Present if bit 3 of Flags field is set to 1
- Measurement Status boolean[16] · 0 or 2
- See Measurement Status in Blood Pressure Measurement.Present if bit 4 of Flags field is set to 1
- User Facing Time uint32 · 0 or 4
- Unit: Seconds, since Epoch StartSee User Facing Time.Present if bit 5 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.
| Bit | Description | Fields its condition names |
|---|---|---|
| 0 | Blood Pressure Measurement Units Flag0 = Blood pressure for Systolic, Diastolic and MAP in units of mmHg1 = Blood pressure for Systolic, Diastolic and MAP in units of kPa | Blood Pressure Measurement Compound Value (mmHg) when 0Blood Pressure Measurement Compound Value (kPa) when 1 |
| 1 | Time Stamp Flag0 = Time Stamp not present1 = Time Stamp present | Time Stamp when 1 |
| 2 | Pulse Rate Flag0 = Pulse Rate not present1 = Pulse Rate present | Pulse Rate when 1 |
| 3 | User ID Flag0 = User ID not present1 = User ID present | User ID when 1 |
| 4 | Measurement Status Flag0 = Measurement Status not present1 = Measurement Status present | Measurement Status when 1 |
| 5 | User Facing Time Flag0 = User Facing Time not present1 = User Facing Time present | User Facing Time when 1 |
| 6 | Epoch Start 2000 Flag0 = Epoch start is January 1, 1900 (00:00:00)1 = Epoch start is January 1, 2000 (00:00:00) | — |
| 7 | Reserved for Future Use | — |
Blood Pressure Measurement Compound Value (mmHg)
The structure of this field is defined below.
| Field | Data type | Size | Description |
|---|---|---|---|
| Systolic (mmHg) | medfloat16 | 2 | Unit: org.bluetooth.unit.pressure.millimetre_of_mercury |
| Diastolic (mmHg) | medfloat16 | 2 | Unit: org.bluetooth.unit.pressure.millimetre_of_mercury |
| Mean Arterial Pressure (mmHg) | medfloat16 | 2 | Unit: org.bluetooth.unit.pressure.millimetre_of_mercury |
Blood Pressure Measurement Compound Value (kPa)
The structure of this field is defined below.
| Field | Data type | Size | Description |
|---|---|---|---|
| Systolic (kPa) | medfloat16 | 2 | Base Unit: org.bluetooth.unit.pressure.pascal;M = 1, d = 3, and b = 0 |
| Diastolic (kPa) | medfloat16 | 2 | Base Unit: org.bluetooth.unit.pressure.pascal;M = 1, d = 3, and b = 0 |
| Mean Arterial Pressure (kPa) | medfloat16 | 2 | Base Unit: org.bluetooth.unit.pressure.pascal;M = 1, d = 3, and b = 0 |
Time Stamp
This field represents the Sensor time in seconds since the epoch start time. The epoch start is on January 1 of 1900, or 2000 at 00:00:00, depending on the value of the Epoch Start 2000 Flag.When both the Time Stamp field and the User Facing Time field are present, the Time Stamp field represents the base time (possibly UTC aligned) and does not take into account time zone, DST adjustments or manual adjustments of the time displayed to a user.
User Facing Time
This field represents the user facing time in seconds since the epoch start time. The epoch start is on January 1 of 1900, or 2000 at 00:00:00, depending on the value of the Epoch Start 2000 Flag.User facing time takes into account time zone, DST adjustments and manual adjustments of the time displayed to a user.
Guides on this site
The metric Enhanced Blood Pressure Measurement carries, on every platform this site covers — each type quoted in its platform's own words:
No guide on this site names 0x2B34 yet. The connected-devices guides cover pairing, subscribing and testing for the device types they do name.
Questions
- What is the UUID of the Enhanced Blood Pressure Measurement characteristic?
- 0x2B34. The Bluetooth SIG's characteristic_uuids.yaml lists Enhanced Blood Pressure Measurement as 0x2B34 with the identifier org.bluetooth.characteristic.enhanced_blood_pressure_measurement. No file in the SIG's repository ties it to a service: the repository lists service and characteristic UUIDs separately. Enhanced Intermediate Cuff Pressure refers to it in its own structure.
- Which Enhanced Blood Pressure Measurement fields are optional?
- 7 of its 8 fields have a published size that can be zero: Blood Pressure Measurement Compound Value (mmHg) (0 or 6; Present if bit 0 of Flags field is set to 0); Blood Pressure Measurement Compound Value (kPa) (0 or 6; Present if bit 0 of Flags field is set to 1); Time Stamp (0 or 4; Present if bit 1 of Flags field is set to 1); Pulse Rate (0 or 2; Present if bit 2 of Flags field is set to 1); User ID (0 or 1; Present if bit 3 of Flags field is set to 1); Measurement Status (0 or 2; Present if bit 4 of Flags field is set to 1); User Facing Time (0 or 4; Present if bit 5 of Flags field is set to 1). Flags (1) has a fixed size.
- What units does Enhanced Blood Pressure Measurement use?
- The SIG's text names a unit for 1 of the 8 fields: Pulse Rate: period (beats per minute) (org.bluetooth.unit.period.beats_per_minute).
- What do the bits of the Enhanced Blood Pressure Measurement Flags field mean?
- The SIG defines them as: bit 0, Blood Pressure Measurement Units Flag; 0 = Blood pressure for Systolic, Diastolic and MAP in units of mmHg; 1 = Blood pressure for Systolic, Diastolic and MAP in units of kPa (Blood Pressure Measurement Compound Value (mmHg) when 0, Blood Pressure Measurement Compound Value (kPa) when 1); bit 1, Time Stamp Flag; 0 = Time Stamp not present; 1 = Time Stamp present (Time Stamp when 1); bit 2, Pulse Rate Flag; 0 = Pulse Rate not present; 1 = Pulse Rate present (Pulse Rate when 1); bit 3, User ID Flag; 0 = User ID not present; 1 = User ID present (User ID when 1); bit 4, Measurement Status Flag; 0 = Measurement Status not present; 1 = Measurement Status present (Measurement Status when 1); bit 5, User Facing Time Flag; 0 = User Facing Time not present; 1 = User Facing Time present (User Facing Time when 1); bit 6, Epoch Start 2000 Flag; 0 = Epoch start is January 1, 1900 (00:00:00); 1 = Epoch start is January 1, 2000 (00:00:00). The remaining bits are reserved for future use.
Source
Read on 2026-10-17 from gss/org.bluetooth.characteristic.enhanced_blood_pressure_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.