Skip to content
AF

CGM Measurement (0x2AA7): byte layout

GATT characteristic · org.bluetooth.characteristic.cgm_measurement · read from the Bluetooth SIG’s repository on 2026-10-17 · commit 408f4a0 (2026-10-14)

CGM Measurement is Bluetooth GATT characteristic 0x2AA7, org.bluetooth.characteristic.cgm_measurement in the Bluetooth SIG's assigned numbers. The SIG's GATT Specification Supplement file lays its value out as 1 field: CGM Measurement Record(s). It carries a flags field (CGM Measurement Record › Flags), and 5 fields inside CGM Measurement Record and Sensor Status Annunciation are present only when one of its bits is set as the text states.

UUID
0x2AA7
Identifier
org.bluetooth.characteristic.cgm_measurement
The SIG’s description
The CGM Measurement characteristic is used to represent one or more CGM Measurement Records.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
CGM Status
Source file
gss/org.bluetooth.characteristic.cgm_measurement.yaml

Byte layout: 1 field

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
0CGM Measurement Record(s)structvariableNot stated in the field's text—
+0↳ Sizeuint81Always (fixed size)—
+1↳ Flagsboolean[8]1Always (fixed size)—
+2↳ CGM Glucose Concentrationmedfloat162Always (fixed size)mass density (milligram per decilitre)org.bluetooth.unit.mass_density.milligram_per_decilitre
+4↳ Time Offsetuint162Always (fixed size)time (minute)org.bluetooth.unit.time.minute
+6↳ Sensor Status Annunciationboolean[8][3]0 to 3Not stated in the field's text—
varies↳ CGM Trend Informationmedfloat160 or 2Bit 0 of Flags is 1not an id in units.yamlorg.bluetooth.unit.milligram_per_decilitre_per_minute
varies↳ CGM Qualitymedfloat160 or 2Bit 1 of Flags is 1percentageorg.bluetooth.unit.percentage
varies↳ E2E-CRCuint160 or 2Present if E2E-CRC Supported bit in CGM Feature characteristic is set to 1—

Field notes

Each field’s text in the SIG’s file, line by line.

CGM Measurement Record(s) struct · variable
A sequence of one or more CGM Measurement Records, concatenated as defined by the service.The structure of a CGM Measurement Record is defined in CGM Measurement Record.

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.

CGM Measurement Record

The structure of a CGM Measurement Record is defined below.

CGM Measurement Record
FieldData typeSizeDescription
Sizeuint81Size of the CGM Measurement Record including this field.
Flagsboolean[8]1See Flags
CGM Glucose Concentrationmedfloat162Glucose concentration.Unit: org.bluetooth.unit.mass_density.milligram_per_decilitre
Time Offsetuint162Minutes since the Session Start Time for the stored glucose concentration value. See Time Offset.Unit: org.bluetooth.unit.time.minute
Sensor Status Annunciationboolean[8][3]0 to 3See Sensor Status Annunciation
CGM Trend Informationmedfloat160 or 2Glucose trend rate since previous measurement.Unit:org.bluetooth.unit.milligram_per_decilitre_per_minutePresent if bit 0 of Flags field is set to 1
CGM Qualitymedfloat160 or 2CGM Quality information in percentage.Unit:org.bluetooth.unit.percentagePresent if bit 1 of Flags field is set to 1
E2E-CRCuint160 or 2CRC calculated over all fields except the E2E-CRC field itself.Present if E2E-CRC Supported bit in CGM Feature characteristic is set to 1

Flags

The bits of this field are defined below.

BitDescriptionFields its condition names
0CGM Trend Information presentCGM Trend Information when 1
1CGM Quality presentCGM Quality when 1
2Reserved for Future Use—
3Reserved for Future Use—
4Reserved for Future Use—
5Sensor Status Annunciation field, Warning-Octet presentWarning when 1
6Sensor Status Annunciation field, Cal/Temp-Octet presentCal/Temp when 1
7Sensor Status Annunciation field, Status-Octet presentStatus when 1

Time Offset

The values of this field specify the relative time difference of the single CGM values to the Session Start Time.

ValueDescription
0x0000–0xFFFFTime offset in minutes since the Session Start Time (see CGM Session Start Time (0x2AAA))

Sensor Status Annunciation

The Sensor Status Annunciation field is composed of up to three octets: one for Status, one for Cal/Temp and one for Warning. An octet is only present if one or more bits are set to "1". The presence of each annunciation octet is indicated by the corresponding Flags field (see Flags). The Sensor Status Annunciation field is present for every CGM Measurement Record to which the status applies.

FieldData typeSizeDescription
Statusboolean[8]0 or 1See StatusPresent if bit 7 of Flags field is set to 1
Cal/Tempboolean[8]0 or 1See Cal/TempPresent if bit 6 of Flags field is set to 1
Warningboolean[8]0 or 1See WarningPresent if bit 5 of Flags field is set to 1

Status

The bits of this field are defined below.

BitDescriptionFields its condition names
0Session stopped—
1Device battery low—
2Sensor type incorrect for device—
3Sensor malfunction—
4Device Specific Alert—
5General device fault has occurred in the sensor—
6Reserved for Future Use—
7Reserved for Future Use—

Cal/Temp

The bits of this field are defined below.

BitDescriptionFields its condition names
8Time synchronization between sensor and collector required—
9Calibration not allowed—
10Calibration recommended—
11Calibration required—
12Sensor temperature too high for valid test/result at time of measurement—
13Sensor temperature too low for valid test/result at time of measurement—
14Calibration Process Pending—
15Reserved for Future Use—

Warning

The bits of this field are defined below.

BitDescriptionFields its condition names
16Sensor result lower than the Patient Low level—
17Sensor result higher than the Patient High level—
18Sensor result lower than the Hypo level—
19Sensor result higher than the Hyper level—
20Sensor Rate of Decrease exceeded—
21Sensor Rate of Increase exceeded—
22Sensor result lower than the device can process—
23Sensor result higher than the device can process—

Guides on this site

The metric CGM Measurement carries, on every platform this site covers — each type quoted in its platform's own words:

No guide on this site names 0x2AA7 yet. The connected-devices guides cover pairing, subscribing and testing for the device types they do name.

Questions

What is the UUID of the CGM Measurement characteristic?
0x2AA7. The Bluetooth SIG's characteristic_uuids.yaml lists CGM Measurement as 0x2AA7 with the identifier org.bluetooth.characteristic.cgm_measurement. No file in the SIG's repository ties it to a service: the repository lists service and characteristic UUIDs separately. CGM Status refers to it in its own structure.
Which CGM Measurement fields are optional?
Its one top-level field has no size that can be zero. CGM Measurement Record(s) (variable) has a size that is not a plain number. Inside CGM Measurement Record, 4 fields' size can be zero: Sensor Status Annunciation (0 to 3; no “Present if” line in its text); CGM Trend Information (0 or 2; Present if bit 0 of Flags field is set to 1); CGM Quality (0 or 2; Present if bit 1 of Flags field is set to 1); E2E-CRC (0 or 2; Present if E2E-CRC Supported bit in CGM Feature characteristic is set to 1). Inside Sensor Status Annunciation, 3 fields' size can be zero: Status (0 or 1; Present if bit 7 of Flags field is set to 1); Cal/Temp (0 or 1; Present if bit 6 of Flags field is set to 1); Warning (0 or 1; Present if bit 5 of Flags field is set to 1).
What do the bits of the CGM Measurement Flags field mean?
The SIG defines them as: bit 0, CGM Trend Information present (CGM Trend Information when 1); bit 1, CGM Quality present (CGM Quality when 1); bit 5, Sensor Status Annunciation field, Warning-Octet present (Warning when 1); bit 6, Sensor Status Annunciation field, Cal/Temp-Octet present (Cal/Temp when 1); bit 7, Sensor Status Annunciation field, Status-Octet present (Status when 1). The remaining bits are reserved for future use.

Source

Read on 2026-10-17 from gss/org.bluetooth.characteristic.cgm_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