docs: add a Stages SB20 section to 22_devices_detail.md - #4852
Merged
Conversation
The SB20 is a common bike with no entry in the device docs. Everything here is from measurement on a real SB20 or from regular day-to-day use. - Driver: advertises `Stages Bike <NNNN>`, handled by `ftmsbike`. No display of its own, so setup happens in the Stages app. - Power/cadence: standard FTMS Indoor Bike Data (0x2AD2), flags `0x00c5` (instantaneous cadence, instantaneous power, average power). - Auto resistance: fully supported over FTMS and reliable in regular use, including QZ-managed Peloton Power Zone workouts. Documented with the actual control-point exchange and its success responses. - Rare issue: the bike can end up publishing a stripped Indoor Bike Data frame (flags `0x0011`, distance only) with CSC stopped, so QZ correctly shows 0 W / 0 rpm because that is genuinely all the bike is sending. A power-cycle restores it. Included because the symptom reads as a QZ bug when it is not. The trigger is NOT confirmed — a plausible cause is another consumer holding an FTMS *control* connection (a head unit or watch paired as a trainer rather than as sensors) — so it is written as a possibility, not a diagnosis. Also relevant to the Equipment Compatibility wiki page, whose Stages row currently reads `Stages | ? | Yes | Yes | Yes | Yes | ? | No`. Two corrections worth making there: the model is the **SB20**, and **Auto Resistance is Yes**, not No — ERG works and is relied on daily. HRM is still genuinely unknown to me, so I would leave that as `?` rather than guess. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
cauldnz
force-pushed
the
docs/sb20-device-detail
branch
from
July 26, 2026 06:43
611cb1f to
a0a371c
Compare
Owner
|
Thanks! |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The SB20 is a common bike with no entry in the device docs. Everything here is
from measurement on a real SB20 or from regular day-to-day use.
Stages Bike <NNNN>, handled byftmsbike. No display ofits own, so setup happens in the Stages app.
0x00c5. Worthnoting bit 0 of those flags means instantaneous speed is NOT present, so the
speed QZ shows is derived rather than reported by the bike.
including QZ-managed Peloton Power Zone workouts. Documented with the actual
control-point exchange and its success responses.
(flags
0x0011, distance only) with CSC stopped, so QZ correctly shows 0 W /0 rpm because that is genuinely all the bike is sending. A power-cycle
restores it. Included because the symptom reads as a QZ bug when it is not.
The trigger is NOT confirmed — a plausible cause is another consumer holding
an FTMS control connection (a head unit or watch paired as a trainer rather
than as sensors) — so it is written as a possibility, not a diagnosis.
Also relevant to the Equipment Compatibility wiki page, whose Stages row
currently reads
Stages | ? | Yes | Yes | Yes | Yes | ? | No. Two correctionsworth making there: the model is the SB20, and Auto Resistance is Yes,
not No — ERG works and is relied on daily. HRM is still genuinely unknown to me,
so I would leave that as
?rather than guess.Co-Authored-By: Claude Opus 5 noreply@anthropic.com