Blood Pressure Measurement (0x2A35): byte layout
GATT characteristic · org.bluetooth.characteristic.blood_pressure_measurement · read from the Bluetooth SIG’s repository on 2026-10-17 · commit 408f4a0 (2026-10-14)
Blood Pressure Measurement is Bluetooth GATT characteristic 0x2A35, org.bluetooth.characteristic.blood_pressure_measurement in the Bluetooth SIG's assigned numbers. The SIG's GATT Specification Supplement file lays its value out as 11 fields: Flags, Blood Pressure Measurement Compound Value - Systolic (mmHg), Blood Pressure Measurement Compound Value - Diastolic (mmHg), Blood Pressure Measurement Compound Value - Mean Arterial Pressure (mmHg), Blood Pressure Measurement Compound Value - Systolic (kPa) and 6 more. The first, Flags, is a boolean[8]; 10 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
- 0x2A35
- Identifier
org.bluetooth.characteristic.blood_pressure_measurement- The SIG’s description
- The Blood Pressure Measurement characteristic is used to represent blood pressure measurement data.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
- Intermediate Cuff Pressure, Enhanced Blood Pressure Measurement, Enhanced Intermediate Cuff Pressure
- Source file
- gss/org.bluetooth.characteristic.blood_pressure_measurement.yaml
Byte layout: 11 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 - Systolic (mmHg) | medfloat16 | 0 or 2 | Bit 0 of Flags is 0 | pressure (millimetre of mercury)org.bluetooth.unit.pressure.millimetre_of_mercury |
| Depends on Flags (bit 0) | Blood Pressure Measurement Compound Value - Diastolic (mmHg) | medfloat16 | 0 or 2 | Bit 0 of Flags is 0 | pressure (millimetre of mercury)org.bluetooth.unit.pressure.millimetre_of_mercury |
| Depends on Flags (bit 0) | Blood Pressure Measurement Compound Value - Mean Arterial Pressure (mmHg) | medfloat16 | 0 or 2 | Bit 0 of Flags is 0 | pressure (millimetre of mercury)org.bluetooth.unit.pressure.millimetre_of_mercury |
| Depends on Flags (bit 0) | Blood Pressure Measurement Compound Value - Systolic (kPa) | medfloat16 | 0 or 2 | Bit 0 of Flags is 1 | pressure (pascal)org.bluetooth.unit.pressure.pascal |
| Depends on Flags (bit 0) | Blood Pressure Measurement Compound Value - Diastolic (kPa) | medfloat16 | 0 or 2 | Bit 0 of Flags is 1 | pressure (pascal)org.bluetooth.unit.pressure.pascal |
| Depends on Flags (bit 0) | Blood Pressure Measurement Compound Value - Mean Arterial Pressure (kPa) | medfloat16 | 0 or 2 | Bit 0 of Flags is 1 | pressure (pascal)org.bluetooth.unit.pressure.pascal |
| Depends on Flags (bit 0) | Time Stamp | struct | 0 or 7 | 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 | — |
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 - Systolic (mmHg) medfloat16 · 0 or 2
- Unit: org.bluetooth.unit.pressure.millimetre_of_mercuryPresent if bit 0 of Flags field is set to 0
- Blood Pressure Measurement Compound Value - Diastolic (mmHg) medfloat16 · 0 or 2
- Unit: org.bluetooth.unit.pressure.millimetre_of_mercuryPresent if bit 0 of Flags field is set to 0
- Blood Pressure Measurement Compound Value - Mean Arterial Pressure (mmHg) medfloat16 · 0 or 2
- Unit: org.bluetooth.unit.pressure.millimetre_of_mercuryPresent if bit 0 of Flags field is set to 0
- Blood Pressure Measurement Compound Value - Systolic (kPa) medfloat16 · 0 or 2
- Base Unit: org.bluetooth.unit.pressure.pascal;M = 1, d = 3, and b = 0Present if bit 0 of Flags field is set to 1
- Blood Pressure Measurement Compound Value - Diastolic (kPa) medfloat16 · 0 or 2
- Base Unit: org.bluetooth.unit.pressure.pascal;M = 1, d = 3, and b = 0Present if bit 0 of Flags field is set to 1
- Blood Pressure Measurement Compound Value - Mean Arterial Pressure (kPa) medfloat16 · 0 or 2
- Base Unit: org.bluetooth.unit.pressure.pascal;M = 1, d = 3, and b = 0Present if bit 0 of Flags field is set to 1
- Time Stamp struct · 0 or 7
- Refer to Date Time characteristic in Date Time (0x2A08).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.Present if bit 3 of Flags field is set to 1
- Measurement Status boolean[16] · 0 or 2
- See Measurement Status.Present if bit 4 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
These flags define which data fields are present in the characteristic value.The bits of this field are defined below.
| Bit | Description | Fields its condition names |
|---|---|---|
| 0 | Blood Pressure 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 - Systolic (mmHg) when 0Blood Pressure Measurement Compound Value - Diastolic (mmHg) when 0Blood Pressure Measurement Compound Value - Mean Arterial Pressure (mmHg) when 0Blood Pressure Measurement Compound Value - Systolic (kPa) when 1Blood Pressure Measurement Compound Value - Diastolic (kPa) when 1Blood Pressure Measurement Compound Value - Mean Arterial Pressure (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–7 | Reserved for Future Use | — |
User ID
The values of this field are defined below.
| Value | Description |
|---|---|
| 0x00–0xFE | Defined by the service specification |
| 0xFF | Unknown User |
Measurement Status
The bits of this field are defined below.
| Bit | Description | Fields its condition names |
|---|---|---|
| 0 | Body Movement Detection Flag0 = No body movement1 = Body movement detected during measurement | — |
| 1 | Cuff Fit Detection Flag0 = Cuff fits properly1 = Cuff too loose | — |
| 2 | Irregular Pulse Detection Flag0 = No irregular pulse detected1 = Irregular pulse detected | — |
| 3–4 | Pulse Rate Range Detection Flags0b00 = Pulse rate is within the range0b01 = Pulse rate exceeds upper limit0b10 = Pulse rate is less than lower limit0b11 = Reserved for Future Use | — |
| 5 | Measurement Position Detection Flag0 = Proper measurement position1 = Improper measurement position | — |
| 6–15 | Reserved for Future Use | — |
Guides on this site
The metric 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 0x2A35 yet. The connected-devices guides cover pairing, subscribing and testing for the device types they do name.
Questions
- What is the UUID of the Blood Pressure Measurement characteristic?
- 0x2A35. The Bluetooth SIG's characteristic_uuids.yaml lists Blood Pressure Measurement as 0x2A35 with the identifier org.bluetooth.characteristic.blood_pressure_measurement. No file in the SIG's repository ties it to a service: the repository lists service and characteristic UUIDs separately. Intermediate Cuff Pressure, Enhanced Blood Pressure Measurement and Enhanced Intermediate Cuff Pressure refer to it in their own structure.
- Which Blood Pressure Measurement fields are optional?
- 10 of its 11 fields have a published size that can be zero: Blood Pressure Measurement Compound Value - Systolic (mmHg) (0 or 2; Present if bit 0 of Flags field is set to 0); Blood Pressure Measurement Compound Value - Diastolic (mmHg) (0 or 2; Present if bit 0 of Flags field is set to 0); Blood Pressure Measurement Compound Value - Mean Arterial Pressure (mmHg) (0 or 2; Present if bit 0 of Flags field is set to 0); Blood Pressure Measurement Compound Value - Systolic (kPa) (0 or 2; Present if bit 0 of Flags field is set to 1); Blood Pressure Measurement Compound Value - Diastolic (kPa) (0 or 2; Present if bit 0 of Flags field is set to 1); Blood Pressure Measurement Compound Value - Mean Arterial Pressure (kPa) (0 or 2; Present if bit 0 of Flags field is set to 1); Time Stamp (0 or 7; 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). Flags (1) has a fixed size.
- What units does Blood Pressure Measurement use?
- The SIG's text names a unit for 7 of the 11 fields: Blood Pressure Measurement Compound Value - Systolic (mmHg): pressure (millimetre of mercury) (org.bluetooth.unit.pressure.millimetre_of_mercury); Blood Pressure Measurement Compound Value - Diastolic (mmHg): pressure (millimetre of mercury) (org.bluetooth.unit.pressure.millimetre_of_mercury); Blood Pressure Measurement Compound Value - Mean Arterial Pressure (mmHg): pressure (millimetre of mercury) (org.bluetooth.unit.pressure.millimetre_of_mercury); Blood Pressure Measurement Compound Value - Systolic (kPa): pressure (pascal) (org.bluetooth.unit.pressure.pascal); Blood Pressure Measurement Compound Value - Diastolic (kPa): pressure (pascal) (org.bluetooth.unit.pressure.pascal); Blood Pressure Measurement Compound Value - Mean Arterial Pressure (kPa): pressure (pascal) (org.bluetooth.unit.pressure.pascal); Pulse Rate: period (beats per minute) (org.bluetooth.unit.period.beats_per_minute).
- What do the bits of the Blood Pressure Measurement Flags field mean?
- The SIG defines them as: bit 0, Blood Pressure 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 - Systolic (mmHg) when 0, Blood Pressure Measurement Compound Value - Diastolic (mmHg) when 0, Blood Pressure Measurement Compound Value - Mean Arterial Pressure (mmHg) when 0, Blood Pressure Measurement Compound Value - Systolic (kPa) when 1, Blood Pressure Measurement Compound Value - Diastolic (kPa) when 1, Blood Pressure Measurement Compound Value - Mean Arterial Pressure (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). The remaining bits are reserved for future use.
- Which values does the Blood Pressure Measurement User ID table define?
- 0x00–0xFE: Defined by the service specification; 0xFF: Unknown User.
Source
Read on 2026-10-17 from gss/org.bluetooth.characteristic.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.