Skip to content
AF

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.

OffsetFieldTypeSizePresent whenUnit
0Flagsboolean[8]1Always (fixed size)—
1Blood Pressure Measurement Compound Value - Systolic (mmHg)medfloat160 or 2Bit 0 of Flags is 0pressure (millimetre of mercury)org.bluetooth.unit.pressure.millimetre_of_mercury
Depends on Flags (bit 0)Blood Pressure Measurement Compound Value - Diastolic (mmHg)medfloat160 or 2Bit 0 of Flags is 0pressure (millimetre of mercury)org.bluetooth.unit.pressure.millimetre_of_mercury
Depends on Flags (bit 0)Blood Pressure Measurement Compound Value - Mean Arterial Pressure (mmHg)medfloat160 or 2Bit 0 of Flags is 0pressure (millimetre of mercury)org.bluetooth.unit.pressure.millimetre_of_mercury
Depends on Flags (bit 0)Blood Pressure Measurement Compound Value - Systolic (kPa)medfloat160 or 2Bit 0 of Flags is 1pressure (pascal)org.bluetooth.unit.pressure.pascal
Depends on Flags (bit 0)Blood Pressure Measurement Compound Value - Diastolic (kPa)medfloat160 or 2Bit 0 of Flags is 1pressure (pascal)org.bluetooth.unit.pressure.pascal
Depends on Flags (bit 0)Blood Pressure Measurement Compound Value - Mean Arterial Pressure (kPa)medfloat160 or 2Bit 0 of Flags is 1pressure (pascal)org.bluetooth.unit.pressure.pascal
Depends on Flags (bit 0)Time Stampstruct0 or 7Bit 1 of Flags is 1—
Depends on Flags (bits 0 and 1)Pulse Ratemedfloat160 or 2Bit 2 of Flags is 1period (beats per minute)org.bluetooth.unit.period.beats_per_minute
Depends on Flags (bits 0, 1 and 2)User IDuint80 or 1Bit 3 of Flags is 1—
Depends on Flags (bits 0, 1, 2 and 3)Measurement Statusboolean[16]0 or 2Bit 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.

BitDescriptionFields its condition names
0Blood Pressure Units Flag0 = Blood pressure for Systolic, Diastolic and MAP in units of mmHg1 = Blood pressure for Systolic, Diastolic and MAP in units of kPaBlood 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
1Time Stamp Flag0 = Time Stamp not present1 = Time Stamp presentTime Stamp when 1
2Pulse Rate Flag0 = Pulse Rate not present1 = Pulse Rate presentPulse Rate when 1
3User ID Flag0 = User ID not present1 = User ID presentUser ID when 1
4Measurement Status Flag0 = Measurement Status not present1 = Measurement Status presentMeasurement Status when 1
5–7Reserved for Future Use—

User ID

The values of this field are defined below.

ValueDescription
0x00–0xFEDefined by the service specification
0xFFUnknown User

Measurement Status

The bits of this field are defined below.

BitDescriptionFields its condition names
0Body Movement Detection Flag0 = No body movement1 = Body movement detected during measurement—
1Cuff Fit Detection Flag0 = Cuff fits properly1 = Cuff too loose—
2Irregular Pulse Detection Flag0 = No irregular pulse detected1 = Irregular pulse detected—
3–4Pulse 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—
5Measurement Position Detection Flag0 = Proper measurement position1 = Improper measurement position—
6–15Reserved 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.

← All Bluetooth GATT characteristics