Skip to content

Support Elite and generic FTMS trainers#12

Merged
ridecontrol merged 1 commit into
mainfrom
fix/elite-trainer-pairing
Jul 22, 2026
Merged

Support Elite and generic FTMS trainers#12
ridecontrol merged 1 commit into
mainfrom
fix/elite-trainer-pairing

Conversation

@ridecontrol

Copy link
Copy Markdown
Collaborator

Summary

  • discover smart trainers by their advertised Bluetooth FTMS service instead of a Wahoo-specific name
  • sequence FTMS control commands through their matching acknowledgements
  • request control and start or resume the trainer before restoring resistance
  • persist the selected trainer immediately and retain the legacy KICKR reconnect fallback
  • document and test generic FTMS and Elite DIRETO XR-T support

Why

The trainer chooser only accepted device names beginning with KICKR, which excluded the Elite DIRETO XR-T before the shared FTMS implementation could run. Control writes also advanced after the BLE write completed instead of waiting for the FTMS control-point response, allowing stricter trainers to reject overlapping initialization commands.

Impact

Ride Control can pair with standards-compliant FTMS trainers from multiple manufacturers while continuing to use one active trainer for a ride. Protocol rejections now report the trainer's actual FTMS result.

Validation

  • bun run ci
  • 258 tests passed
  • Biome completed with warnings treated as errors
  • Tailwind diagnostics, TypeScript, and the production Vite build passed

@ridecontrol
ridecontrol merged commit d896af9 into main Jul 22, 2026
1 check passed
@ridecontrol
ridecontrol deleted the fix/elite-trainer-pairing branch July 22, 2026 17:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant