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.
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_calculationfor 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 | Definition | Operand | Operand data type | Description |
|---|---|---|---|---|
| 0x00 | Reserved for Future Use | N/A | N/A | N/A |
| 0x01 | Set CGM Communication Interval | Communication interval in minutes | uint8 | The response to this control point is Response Code (Op Code 0x0F). |
| 0x02 | Get CGM Communication Interval | N/A | N/A | The normal response to this control point is Op Code 0x03. For error conditions, the response is Response Code. as defined in Response Code Values. |
| 0x03 | CGM Communication Interval response | Communication Interval in minutes | uint16 | This is the normal response to Op Code 0x02. |
| 0x04 | Set Glucose Calibration value | Operand as defined below. (See Calibration Value) | See Calibration Value | The response to this control point is Response Code. |
| 0x05 | Get Glucose Calibration Value | Calibration Data Record Number | uint16 | The normal response to this control point is Op Code 0x06. For error conditions, the response is Response Code. |
| 0x06 | Glucose Calibration Value response | Calibration Data | See Calibration Value | This is the normal response to Op Code 0x05. |
| 0x07 | Set Patient High Alert Level | Patient High bG value in mg/dL | medfloat16 | The response to this control point is Response Code. |
| 0x08 | Get Patient High Alert Level | N/A | N/A | The normal response to this control point is Op Code 0x09. For error conditions, the response is Response Code. |
| 0x09 | Patient High Alert Level Response | Patient High bG value in mg/dL | medfloat16 | This is the normal response to Op Code 0x08. |
| 0x0A | Set Patient Low Alert Level | Patient Low bG value in mg/dL | medfloat16 | The response to this control point is Response Code. |
| 0x0B | Get Patient Low Alert Level | N/A | N/A | The normal response to this control point is Op Code 0x0C. For error conditions, the response is Response Code. |
| 0x0C | Patient Low Alert Level Response | Patient Low bG value in mg/dL | medfloat16 | This is the normal response to Op Code 0x0B. |
| 0x0D | Set Hypo Alert Level | Hypo Alert Level value in mg/dL | medfloat16 | The response to this control point is Response Code. |
| 0x0E | Get Hypo Alert Level | N/A | N/A | The normal response to this control point is Op Code 0x0F. For error conditions, the response is Response Code. |
| 0x0F | Hypo Alert Level Response | Hypo Alert Level value in mg/dL | medfloat16 | This is the normal response to Op Code 0x0E. |
| 0x10 | Set Hyper Alert Level | Hyper Alert Level value in mg/dL | medfloat16 | The response to this control point is Response Code. |
| 0x11 | Get Hyper Alert Level | N/A | N/A | The normal response to this control point is Op Code 0x12. For error conditions, the response is Response Code. |
| 0x12 | Hyper Alert Level Response | Hyper Alert Level value in mg/dL | medfloat16 | This is the normal response to Op Code 0x11. |
| 0x13 | Set Rate of Decrease Alert Level | Rate of Decrease Alert Level value in mg/dL/min | medfloat16 | The response to this control point is Response Code. |
| 0x14 | Get Rate of Decrease Alert Level | N/A | N/A | The normal response to this control point is Op Code 0x15. For error conditions, the response is Response Code. |
| 0x15 | Rate of Decrease Alert Level Response | Rate of Decrease Alert Level value in mg/dL/min | medfloat16 | This is the normal response to Op Code 0x14. |
| 0x16 | Set Rate of Increase Alert Level | Rate of Increase Alert Level value in mg/dL/min | medfloat16 | The response to this control point is Response Code. |
| 0x17 | Get Rate of Increase Alert Level | N/A | N/A | The normal response to this control point is Op Code 0x18. For error conditions, the response is Response Code. |
| 0x18 | Rate of Increase Alert Level Response | Rate of Increase Alert Level value in mg/dL/min | medfloat16 | This is the normal response to Op Code 0x17. |
| 0x19 | Reset Device Specific Alert | N/A | N/A | The response to this control point is Response Code. |
| 0x1A | Start the Session | N/A | N/A | The response to this control point is Response Code. |
| 0x1B | Stop the Session | N/A | N/A | The response to this control point is Response Code. |
| 0x1C | Response Code | Request Op Code, Response Code Value | N/A | See Response Code Values. |
| 0x1D–0xFF | Reserved for Future Use | N/A | N/A | N/A |
Response Code Values
The Response Code Values associated with the CGM Specific Ops Control Point are defined below.
| Response code | Definition | Description |
|---|---|---|
| 0x00 | Reserved For Future Use | N/A |
| 0x01 | Success | Normal response for successful operation. |
| 0x02 | Op Code not supported | Normal response if unsupported Op Code is received. |
| 0x03 | Invalid Operand | Normal response if Operand received does not meet the requirements of the service. |
| 0x04 | Procedure not completed | Normal response if unable to complete a procedure for any reason. |
| 0x05 | Parameter out of range | Normal response if Operand received does not meet the range requirements |
| 0x06–0xFF | Reserved for Future Use | N/A |
Calibration Value
The Operand which is used for setting and getting the calibration value is defined below.
| Field | Data type | Size | Description |
|---|---|---|---|
| Glucose Concentration of Calibration | medfloat16 | 2 | Glucose value of the calibration.Unit: org.bluetooth.unit.mass_density.milligram_per_decilitre |
| Calibration Time | uint16 | 2 | Minutes 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 Location | uint4[2] | 1 | Definition 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 Time | uint16 | 2 | The 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 Number | uint16 | 2 | Sequence number for the stored calibration record.Unit: org.bluetooth.unit.unitless |
| Calibration Status | boolean[8] | 1 | The 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.