What FTMS is
FTMS, the Fitness Machine Service, is a standard Bluetooth profile that smart trainers use to report data and accept control commands. Because it is a shared standard, an app that speaks FTMS can drive trainers from many makers without a custom integration for each. CrankPilot is written to the standard rather than to any one brand.
Trainers from Wahoo, Elite, Tacx, JetBlack, Saris, Magene and others implement FTMS. CrankPilot was developed and tested on one of them, a Wahoo KICKR Core. Any other trainer that implements FTMS should pair and behave the same way, and that is the extent of the claim. It has not been tested on every model.

Three modes, gated on what your trainer supports
When a trainer connects, it advertises which control features it has, and CrankPilot only offers the modes yours supports:
- ERG: the app sends a target power and the trainer holds it. Needs power-target support.
- Resistance: a fixed resistance level you set, for free rides and sprints.
- Simulation (grade): the trainer emulates a road gradient, with virtual gears on top.
Sensors and reconnection
Alongside the trainer, CrankPilot pairs up to five Bluetooth sensors at once: a heart-rate strap, a cycling power meter, a speed/cadence sensor and the Zwift Ride controller. If one drops mid-ride, keep pedalling. It comes back on its own.
Trainer speed and distance read correctly, which is less of a given than it sounds. The FTMS standard flags its speed field backwards from every other field (a cleared bit means the value is present), and an app that reads it the obvious way shows no speed, or the wrong one. CrankPilot reads it the way the spec says.