Skip to content
AF

CGM Specific Ops Control Point (0x2AAC): byte layout

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

CGM Specific Ops Control Point is Bluetooth GATT characteristic 0x2AAC, org.bluetooth.characteristic.cgm_specific_ops_control_point in the Bluetooth SIG's assigned numbers. The SIG's GATT Specification Supplement file lays its value out as 3 fields: Op Code, Operand and E2E-CRC.

UUID
0x2AAC
Identifier
org.bluetooth.characteristic.cgm_specific_ops_control_point
The SIG’s description
The CGM Specific Ops Control Point characteristic is used to enable procedures related to a continuous glucose monitor (CGM).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.
Source file
gss/org.bluetooth.characteristic.cgm_specific_ops_control_point.yaml

Byte layout: 3 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
0Op Codeuint81Always (fixed size)—
1Operandstruct0 … 17Not stated in the field's text—
Depends on the size of OperandE2E-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.

Op Code uint8 · 1
See Op Code and Operand
Operand struct · 0 … 17
See Op Code and Operand
E2E-CRC uint16 · 0 or 2
CRC calculated over all fields except the E2E-CRC field itself. See § crc_calculation for details.Present if E2E-CRC Supported bit in CGM Feature characteristic 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.

Op Code and Operand fields

The values of these fields are defined below.

Op Code and Operand fields
Op codeDefinitionOperandOperand data typeDescription
0x00Reserved for Future UseN/AN/AN/A
0x01Set CGM Communication IntervalCommunication interval in minutesuint8The response to this control point is Response Code (Op Code 0x0F).
0x02Get CGM Communication IntervalN/AN/AThe normal response to this control point is Op Code 0x03. For error conditions, the response is Response Code. as defined in Response Code Values.
0x03CGM Communication Interval responseCommunication Interval in minutesuint16This is the normal response to Op Code 0x02.
0x04Set Glucose Calibration valueOperand as defined below. (See Calibration Value)See Calibration ValueThe response to this control point is Response Code.
0x05Get Glucose Calibration ValueCalibration Data Record Numberuint16The normal response to this control point is Op Code 0x06. For error conditions, the response is Response Code.
0x06Glucose Calibration Value responseCalibration DataSee Calibration ValueThis is the normal response to Op Code 0x05.
0x07Set Patient High Alert LevelPatient High bG value in mg/dLmedfloat16The response to this control point is Response Code.
0x08Get Patient High Alert LevelN/AN/AThe normal response to this control point is Op Code 0x09. For error conditions, the response is Response Code.
0x09Patient High Alert Level ResponsePatient High bG value in mg/dLmedfloat16This is the normal response to Op Code 0x08.
0x0ASet Patient Low Alert LevelPatient Low bG value in mg/dLmedfloat16The response to this control point is Response Code.
0x0BGet Patient Low Alert LevelN/AN/AThe normal response to this control point is Op Code 0x0C. For error conditions, the response is Response Code.
0x0CPatient Low Alert Level ResponsePatient Low bG value in mg/dLmedfloat16This is the normal response to Op Code 0x0B.
0x0DSet Hypo Alert LevelHypo Alert Level value in mg/dLmedfloat16The response to this control point is Response Code.
0x0EGet Hypo Alert LevelN/AN/AThe normal response to this control point is Op Code 0x0F. For error conditions, the response is Response Code.
0x0FHypo Alert Level ResponseHypo Alert Level value in mg/dLmedfloat16This is the normal response to Op Code 0x0E.
0x10Set Hyper Alert LevelHyper Alert Level value in mg/dLmedfloat16The response to this control point is Response Code.
0x11Get Hyper Alert LevelN/AN/AThe normal response to this control point is Op Code 0x12. For error conditions, the response is Response Code.
0x12Hyper Alert Level ResponseHyper Alert Level value in mg/dLmedfloat16This is the normal response to Op Code 0x11.
0x13Set Rate of Decrease Alert LevelRate of Decrease Alert Level value in mg/dL/minmedfloat16The response to this control point is Response Code.
0x14Get Rate of Decrease Alert LevelN/AN/AThe normal response to this control point is Op Code 0x15. For error conditions, the response is Response Code.
0x15Rate of Decrease Alert Level ResponseRate of Decrease Alert Level value in mg/dL/minmedfloat16This is the normal response to Op Code 0x14.
0x16Set Rate of Increase Alert LevelRate of Increase Alert Level value in mg/dL/minmedfloat16The response to this control point is Response Code.
0x17Get Rate of Increase Alert LevelN/AN/AThe normal response to this control point is Op Code 0x18. For error conditions, the response is Response Code.
0x18Rate of Increase Alert Level ResponseRate of Increase Alert Level value in mg/dL/minmedfloat16This is the normal response to Op Code 0x17.
0x19Reset Device Specific AlertN/AN/AThe response to this control point is Response Code.
0x1AStart the SessionN/AN/AThe response to this control point is Response Code.
0x1BStop the SessionN/AN/AThe response to this control point is Response Code.
0x1CResponse CodeRequest Op Code, Response Code ValueN/ASee Response Code Values.
0x1D–0xFFReserved for Future UseN/AN/AN/A

Response Code Values

The Response Code Values associated with the CGM Specific Ops Control Point are defined below.

Response Code Values
Response codeDefinitionDescription
0x00Reserved For Future UseN/A
0x01SuccessNormal response for successful operation.
0x02Op Code not supportedNormal response if unsupported Op Code is received.
0x03Invalid OperandNormal response if Operand received does not meet the requirements of the service.
0x04Procedure not completedNormal response if unable to complete a procedure for any reason.
0x05Parameter out of rangeNormal response if Operand received does not meet the range requirements
0x06–0xFFReserved for Future UseN/A

Calibration Value

The Operand which is used for setting and getting the calibration value is defined below.

Calibration Value Operand
FieldData typeSizeDescription
Glucose Concentration of Calibrationmedfloat162Glucose value of the calibration.Unit: org.bluetooth.unit.mass_density.milligram_per_decilitre
Calibration Timeuint162Minutes since the Session Start Time (see CGM Session Start Time (0x2AAA)) of the reported Glucose Concentration of Calibration value.Unit: org.bluetooth.unit.time.minute
Calibration Type-Sample Locationuint4[2]1Definition and field value are the same as CGM Type-Sample Location as described in the CGM Features characteristic (see CGM Type-Sample Location in CGM Feature).Unit: org.bluetooth.unit.unitless
Next Calibration Timeuint162The next calibration measurement time in minutes since the Session Start Time (see CGM Session Start Time (0x2AAA)).Unit: org.bluetooth.unit.time.minute
Calibration Data Record Numberuint162Sequence number for the stored calibration record.Unit: org.bluetooth.unit.unitless
Calibration Statusboolean[8]1The result of the calibration procedure of the sensor.Unit: org.bluetooth.unit.unitless0: Calibration Data rejected (Calibration failed)1: Calibration Data out of range2: Calibration Process Pending3–7: Reserved for Future Use

Guides on this site

No guide on this site names 0x2AAC 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 Specific Ops Control Point characteristic?
0x2AAC. The Bluetooth SIG's characteristic_uuids.yaml lists CGM Specific Ops Control Point as 0x2AAC with the identifier org.bluetooth.characteristic.cgm_specific_ops_control_point. No file in the SIG's repository ties it to a service: the repository lists service and characteristic UUIDs separately.
Which CGM Specific Ops Control Point fields are optional?
2 of its 3 fields have a published size that can be zero: Operand (0 … 17; no “Present if” line in its text); E2E-CRC (0 or 2; Present if E2E-CRC Supported bit in CGM Feature characteristic is set to 1). Op Code (1) has a fixed size.
Which values does the CGM Specific Ops Control Point Op Code and Operand table define?
0x01: Set CGM Communication Interval; 0x02: Get CGM Communication Interval; 0x03: CGM Communication Interval response; 0x04: Set Glucose Calibration value; 0x05: Get Glucose Calibration Value; 0x06: Glucose Calibration Value response; 0x07: Set Patient High Alert Level; 0x08: Get Patient High Alert Level; 0x09: Patient High Alert Level Response; 0x0A: Set Patient Low Alert Level; 0x0B: Get Patient Low Alert Level; 0x0C: Patient Low Alert Level Response; 0x0D: Set Hypo Alert Level; 0x0E: Get Hypo Alert Level; 0x0F: Hypo Alert Level Response; 0x10: Set Hyper Alert Level; 0x11: Get Hyper Alert Level; 0x12: Hyper Alert Level Response; 0x13: Set Rate of Decrease Alert Level; 0x14: Get Rate of Decrease Alert Level; 0x15: Rate of Decrease Alert Level Response; 0x16: Set Rate of Increase Alert Level; 0x17: Get Rate of Increase Alert Level; 0x18: Rate of Increase Alert Level Response; 0x19: Reset Device Specific Alert; 0x1A: Start the Session; 0x1B: Stop the Session; 0x1C: Response Code. The other rows are reserved for future use or carry no text.

Source

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