Cycling Power Control Point (0x2A66): byte layout
GATT characteristic · org.bluetooth.characteristic.cycling_power_control_point · read from the Bluetooth SIG’s repository on 2026-10-17 · commit 408f4a0 (2026-10-14)
Cycling Power Control Point is Bluetooth GATT characteristic 0x2A66, org.bluetooth.characteristic.cycling_power_control_point in the Bluetooth SIG's assigned numbers. The SIG's GATT Specification Supplement file lays its value out as 2 fields: Op Code and Parameter.
- UUID
- 0x2A66
- Identifier
org.bluetooth.characteristic.cycling_power_control_point- The SIG’s description
- The Cycling Power Control Point characteristic is used to enable device-specific procedures related to a cycling power sensor.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.cycling_power_control_point.yaml
Byte layout: 2 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 Parameter
- Parameter struct · 0–18
- See Op Code and Parameter
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 Parameter fields
The values of these fields are defined below.
| Op code | Definition | Parameter | Parameter type | Description |
|---|---|---|---|---|
| 0x00 | Reserved for Future Use | N/A | N/A | N/A |
| 0x01 | Set Cumulative Value | Cumulative Value (defined per service) | Defined per service | Initiate the procedure to set a cumulative value. The new value is sent as parameter following op code (parameter defined per service).The response to this control point is Op Code 0x20 followed by the appropriate Response Value. |
| 0x02 | Update Sensor Location | Sensor Location Value (defined per service) | uint8 | Update to the location of the sensor with the value sent as parameter to this op code.The response to this control point is Op Code 0x20 followed by the appropriate Response Value. |
| 0x03 | Request Supported Sensor Locations | N/A | N/A | Request a list of supported locations for sensor attachment.The response to this control point is Op Code 0x20 followed by the appropriate Response Value, including a list of supported sensor locations in the Response Parameter. |
| 0x04 | Set Crank Length | Crank Length Value (defined per service) | Defined per service | Initiate the procedure to set the crank length value to Sensor. The new value is sent as a parameter with preceding Op Code 0x04 operand.The response to this control point is Op Code 0x20 followed by the appropriate Response Value. |
| 0x05 | Request Crank Length | N/A | N/A | Request the current crank length value set in the Sensor.The response to this control point is Op Code 0x20 followed by the appropriate Response Value, including the value of the crank length in the Response Parameter. |
| 0x06 | Set Chain Length | Chain Length Value (defined per service) | Defined per service | Initiate the procedure to set the chain length value to Sensor. The new value is sent as a parameter with preceding Op Code 0x06 operand.The response to this control point is Op Code 0x20 followed by the appropriate Response Value. |
| 0x07 | Request Chain Length | N/A | N/A | Request the current chain length value set in the Sensor.The response to this control point is Op Code 0x20 followed by the appropriate Response Value, including the value of the chain length in the Response Parameter. |
| 0x08 | Set Chain Weight | Chain Weight Value (defined per service) | Defined per service | Initiate the procedure to set the chain weight value to Sensor. The new value is sent as a parameter with preceding Op Code 0x08 operand.The response to this control point is Op Code 0x20 followed by the appropriate Response Value. |
| 0x09 | Request Chain Weight | N/A | N/A | Request the current chain weight value set in the Sensor.The response to this control point is Op Code 0x20 followed by the appropriate Response Value, including the value of the chain weight in the Response Parameter. |
| 0x0A | Set Span Length | Span Length Value (defined per service) | Defined per service | Initiate the procedure to set the span length value to Sensor. The new value is sent as a parameter with preceding Op Code 0x0A operand.The response to this control point is Op Code 0x20 followed by the appropriate Response Value. |
| 0x0B | Request Span Length | N/A | N/A | Request the current span length value set in the Sensor.The response to this control point is Op Code 0x20 followed by the appropriate Response Value, including the value of the span length in the Response Parameter. |
| 0x0C | Start Offset Compensation | N/A | N/A | Starts the offset compensation process of the Sensor.The response to this control point is Op Code 0x20 followed by the appropriate Response Value, including the value of the raw force or a raw torque in the Response Parameter (defined per service). |
| 0x0D | Mask Cycling Power Measurement Characteristic Content | Content Mask (defined per service) | Defined per service | Initiate the procedure to set the content of the Cycling Power Measurement characteristic.The response to this control point is Op Code 0x20 followed by the appropriate Response Value. |
| 0x0E | Request Sampling Rate | N/A | N/A | Request the sampling rate value set in the Sensor.The response to this control point is Op Code 0x20 followed by the appropriate Response Value, including the value of the sampling rate in the Response Parameter. |
| 0x0F | Request Factory Calibration Date | N/A | N/A | Request the Factory calibration date set in the Sensor.The response to this control point is Op Code 0x20 followed by the appropriate Response Value, including the value of the Factory calibration date in the Response Parameter. |
| 0x10 | Start Enhanced Offset Compensation | N/A | N/A | Starts the offset compensation process of the Sensor.The response to this control point is Op Code 0x20 followed by the appropriate Response Value, including the value of the raw force or a raw torque in the Response Parameter and an option for a manufacturer specific value (defined per service). |
| 0x11–0x1F | Reserved for Future Use | N/A | N/A | N/A |
| 0x20 | Response Code | Request Op Code, Response Code Value, Response Parameter | N/A | See Response Code Values |
| 0x21–0xFF | Reserved for Future Use | N/A | N/A | N/A |
Response Code Values
The Response Code Values associated with the Cycling Power Control Point are defined below.
| Response code | Definition | Response parameter | Description |
|---|---|---|---|
| 0x00 | Reserved For Future Use | N/A | N/A |
| 0x01 | Success | Defined per service | Normal response for successful operation. |
| 0x02 | Op Code not supported | N/A | Response if unsupported Op Code is received |
| 0x03 | Invalid Operand | N/A | Response if Parameter received does not meet the requirements of the service. |
| 0x04 | Operation Failed | Defined per service | Response if the requested procedure failed. |
| 0x05–0xFF | Reserved for Future Use | N/A | N/A |
Guides on this site
No guide on this site names 0x2A66 yet. The connected-devices guides cover pairing, subscribing and testing for the device types they do name.
Questions
- What is the UUID of the Cycling Power Control Point characteristic?
- 0x2A66. The Bluetooth SIG's characteristic_uuids.yaml lists Cycling Power Control Point as 0x2A66 with the identifier org.bluetooth.characteristic.cycling_power_control_point. No file in the SIG's repository ties it to a service: the repository lists service and characteristic UUIDs separately.
- Which Cycling Power Control Point fields are optional?
- 1 of its 2 fields has a published size that can be zero: Parameter (0–18; no “Present if” line in its text). Op Code (1) has a fixed size.
- Which values does the Cycling Power Control Point Op Code and Parameter table define?
- 0x01: Set Cumulative Value; 0x02: Update Sensor Location; 0x03: Request Supported Sensor Locations; 0x04: Set Crank Length; 0x05: Request Crank Length; 0x06: Set Chain Length; 0x07: Request Chain Length; 0x08: Set Chain Weight; 0x09: Request Chain Weight; 0x0A: Set Span Length; 0x0B: Request Span Length; 0x0C: Start Offset Compensation; 0x0D: Mask Cycling Power Measurement Characteristic Content; 0x0E: Request Sampling Rate; 0x0F: Request Factory Calibration Date; 0x10: Start Enhanced Offset Compensation; 0x20: 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.cycling_power_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.