Skip to content
AF

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.

OffsetFieldTypeSizePresent whenUnit
0Op Codeuint81Always (fixed size)—
1Parameterstruct0–18Not stated in the field's text—

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 and Parameter fields
Op codeDefinitionParameterParameter typeDescription
0x00Reserved for Future UseN/AN/AN/A
0x01Set Cumulative ValueCumulative Value (defined per service)Defined per serviceInitiate 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.
0x02Update Sensor LocationSensor Location Value (defined per service)uint8Update 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.
0x03Request Supported Sensor LocationsN/AN/ARequest 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.
0x04Set Crank LengthCrank Length Value (defined per service)Defined per serviceInitiate 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.
0x05Request Crank LengthN/AN/ARequest 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.
0x06Set Chain LengthChain Length Value (defined per service)Defined per serviceInitiate 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.
0x07Request Chain LengthN/AN/ARequest 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.
0x08Set Chain WeightChain Weight Value (defined per service)Defined per serviceInitiate 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.
0x09Request Chain WeightN/AN/ARequest 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.
0x0ASet Span LengthSpan Length Value (defined per service)Defined per serviceInitiate 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.
0x0BRequest Span LengthN/AN/ARequest 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.
0x0CStart Offset CompensationN/AN/AStarts 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).
0x0DMask Cycling Power Measurement Characteristic ContentContent Mask (defined per service)Defined per serviceInitiate 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.
0x0ERequest Sampling RateN/AN/ARequest 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.
0x0FRequest Factory Calibration DateN/AN/ARequest 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.
0x10Start Enhanced Offset CompensationN/AN/AStarts 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–0x1FReserved for Future UseN/AN/AN/A
0x20Response CodeRequest Op Code, Response Code Value, Response ParameterN/ASee Response Code Values
0x21–0xFFReserved for Future UseN/AN/AN/A

Response Code Values

The Response Code Values associated with the Cycling Power Control Point are defined below.

Response Code Values
Response codeDefinitionResponse parameterDescription
0x00Reserved For Future UseN/AN/A
0x01SuccessDefined per serviceNormal response for successful operation.
0x02Op Code not supportedN/AResponse if unsupported Op Code is received
0x03Invalid OperandN/AResponse if Parameter received does not meet the requirements of the service.
0x04Operation FailedDefined per serviceResponse if the requested procedure failed.
0x05–0xFFReserved for Future UseN/AN/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.

← All Bluetooth GATT characteristics