Commit 3490d6f
feat: add Wahoo KickRun treadmill driver (wahookickruntreadmill)
Implements the proprietary Wahoo KickRun BLE protocol reverse-engineered
from HCI snoop traces:
- Speed command: 02 [uint24-LE μm/s] 00 [flag] on the write+notify char
- Challenge-response: device sends FD E0 01 [code] after paddle push,
driver echoes E0 [code] immediately without waiting
- Init sequence: capability queries 01 10 12 18 80 86 f0; 86 response
carries a 4-byte device ID that is echoed back via cmd 87
- Workout unlock: 19 00 sent once before the first speed command
- Telemetry: FF 01 [tgt μm/s LE24] 00 [cur μm/s LE24] ... parsed for
speed/distance/kcal
Removes KICKR RUN from the generic horizonTreadmill branch so the device
gets its own driver instead of falling back to FTMS-only control.
NOTE: the physical paddle push on the treadmill is still required for each
speed change - it is a hardware safety mechanism that generates the BLE
challenge code. QZ responds to the challenge automatically, eliminating
the ~6 s delay introduced by the Wahoo app.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>1 parent 96acc90 commit 3490d6f
5 files changed
Lines changed: 547 additions & 1 deletion
File tree
- src
- devices
- wahookickruntreadmill
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1624 | 1624 | | |
1625 | 1625 | | |
1626 | 1626 | | |
| 1627 | + | |
| 1628 | + | |
| 1629 | + | |
| 1630 | + | |
| 1631 | + | |
| 1632 | + | |
| 1633 | + | |
| 1634 | + | |
| 1635 | + | |
| 1636 | + | |
| 1637 | + | |
| 1638 | + | |
| 1639 | + | |
| 1640 | + | |
| 1641 | + | |
| 1642 | + | |
| 1643 | + | |
1627 | 1644 | | |
1628 | 1645 | | |
1629 | 1646 | | |
| |||
1685 | 1702 | | |
1686 | 1703 | | |
1687 | 1704 | | |
1688 | | - | |
1689 | 1705 | | |
1690 | 1706 | | |
1691 | 1707 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
154 | 154 | | |
155 | 155 | | |
156 | 156 | | |
| 157 | + | |
157 | 158 | | |
158 | 159 | | |
159 | 160 | | |
| |||
305 | 306 | | |
306 | 307 | | |
307 | 308 | | |
| 309 | + | |
308 | 310 | | |
309 | 311 | | |
310 | 312 | | |
| |||
0 commit comments