KICKR GATT Profile - StephenDone/kickr_bluetooth GitHub Wiki
Bluetooth standard UUIDs are all based around the Bluetooth Base UUID of xxxxxxxx-0000-1000-8000-00805F9B34FB
.
In a similar way, the Wahoo UUIDs that I have seen so far have a base of a026xxxx-0a7d-4ab3-97fa-f1500f9feb8b
.
This is anecdotal, but holds true for me so far.
BLE Advertisement
Very sensibly, the KICKR Bike advertises its most important services.
Found KICKR with name "KICKR BIKE xxxx", advertising...
00001818-0000-1000-8000-00805f9b34fb Cycling Power
00001826-0000-1000-8000-00805f9b34fb Fitness Machine
a026ee0d-0a7d-4ab3-97fa-f1500f9feb8b ### KICKR Virtual Bike
BLE Services
Note that in the table below, the names I have come up with for the Wahoo services are my own, since they are not documented, to my knowledge.
Full Service UUID | Short UUID | Description | Notes |
---|---|---|---|
0000180a-0000-1000-8000-00805f9b34fb | Bluetooth 0x180A | Device Information Service | Manufacturer, firmware revision, hardware revision & serial number |
0000181c-0000-1000-8000-00805f9b34fb | Bluetooth 0x181C | User Data Service | Just Rider Weight |
00001826-0000-1000-8000-00805f9b34fb | Bluetooth 0x1826 | Fitness Machine Service | Training status, FTMS feature, FTMS control point, FTMS status, indoor bike data, supported power range. |
00001818-0000-1000-8000-00805f9b34fb | Bluetooth 0x1818 | Cycling Power Service | Cycling power feature, sensor location, cycling power measurement, cycling power control point. Also includes an additional, non-standard characteristic |
a026ee0b-0a7d-4ab3-97fa-f1500f9feb8b | Wahoo 0xEE0B | Tilt Service | Physical Tilt of Bike |
a026ee01-0a7d-4ab3-97fa-f1500f9feb8b | Wahoo 0xEE01 | Possibly Firmware Update Service | Best left alone |
a026ee0d-0a7d-4ab3-97fa-f1500f9feb8b | Wahoo 0xEE0D | KICKR Virtual Bike Service | Shifter buttons, groupset configuration and chosen gear. |
BLE Service Dump using Python Script
This is a little more raw than the information above, but shows the handles too. I guess these may change with firmware updates though...
Handle UUID Characteristic Properties Description - '###' Indicates My Own Naming
10 00001801-0000-1000-8000-00805f9b34fb Generic Attribute Profile
11 00002a05-0000-1000-8000-00805f9b34fb ['indicate'] Service Changed
14 0000180a-0000-1000-8000-00805f9b34fb Device Information
17 00002a25-0000-1000-8000-00805f9b34fb ['read'] Serial Number String
21 00002a26-0000-1000-8000-00805f9b34fb ['read'] Firmware Revision String
15 00002a29-0000-1000-8000-00805f9b34fb ['read'] Manufacturer Name String
19 00002a27-0000-1000-8000-00805f9b34fb ['read'] Hardware Revision String
23 a026ee01-0a7d-4ab3-97fa-f1500f9feb8b Unknown
24 a026e002-0a7d-4ab3-97fa-f1500f9feb8b ['write-without-response', 'notify'] Unknown
27 a026e004-0a7d-4ab3-97fa-f1500f9feb8b ['notify'] Unknown
30 a026e03b-0a7d-4ab3-97fa-f1500f9feb8b ['write-without-response', 'notify'] Unknown
33 00001818-0000-1000-8000-00805f9b34fb Cycling Power
44 00002a66-0000-1000-8000-00805f9b34fb ['write', 'indicate'] Cycling Power Control Point
34 00002a63-0000-1000-8000-00805f9b34fb ['notify'] Cycling Power Measurement
41 a026e005-0a7d-4ab3-97fa-f1500f9feb8b ['write', 'indicate'] ### KICKR Cycling Power Extension
37 00002a65-0000-1000-8000-00805f9b34fb ['read'] Cycling Power Feature
39 00002a5d-0000-1000-8000-00805f9b34fb ['read'] Sensor Location
47 00001826-0000-1000-8000-00805f9b34fb Fitness Machine
48 00002acc-0000-1000-8000-00805f9b34fb ['read'] Fitness Machine Feature
50 00002ad3-0000-1000-8000-00805f9b34fb ['read', 'notify'] Training Status
59 00002ad2-0000-1000-8000-00805f9b34fb ['notify'] Indoor Bike Data
62 00002ad8-0000-1000-8000-00805f9b34fb ['read'] Supported Power Range
56 00002ada-0000-1000-8000-00805f9b34fb ['notify'] Fitness Machine Status
53 00002ad9-0000-1000-8000-00805f9b34fb ['write', 'indicate'] Fitness Machine Control Point
64 0000181c-0000-1000-8000-00805f9b34fb User Data
65 00002a98-0000-1000-8000-00805f9b34fb ['read', 'write'] Weight
67 a026ee0d-0a7d-4ab3-97fa-f1500f9feb8b ### KICKR Virtual Bike
74 a026e03c-0a7d-4ab3-97fa-f1500f9feb8b ['notify'] ### KICKR Buttons
68 a026e039-0a7d-4ab3-97fa-f1500f9feb8b ['write-without-response', 'notify'] ### KICKR Groupset
71 a026e03a-0a7d-4ab3-97fa-f1500f9feb8b ['notify'] ### KICKR Chosen Gear
77 a026ee0b-0a7d-4ab3-97fa-f1500f9feb8b ### KICKR Tilt Service
78 a026e037-0a7d-4ab3-97fa-f1500f9feb8b ['read', 'write-without-response', 'notify'] ### KICKR Tilt Characteristic