Compatibility
Two things have to work: a browser that can talk to Bluetooth devices, and a trainer that will let software set its resistance.
Browsers
| Browser | Works | |
|---|---|---|
| Chrome or Edge, desktop | Yes | Windows, macOS, Linux, ChromeOS |
| Chrome, Android | Yes | |
| Safari, any platform | No | Safari has no Web Bluetooth and Apple has not signalled that it will |
| Firefox | No | Same reason |
| iPhone and iPad | No | Every browser on iOS uses Safari's engine, so none of them can |
If you ride with an iPhone on the bars, this does not work for you yet, and no browser choice will change that. It needs a native app, which does not exist.
Trainers
A trainer needs three things:
- FTMS over Bluetooth. The open fitness machine standard. Most trainers sold in the last several years have it.
- Resistance control. The app checks this on connecting and tells you plainly if it is missing.
- Reported power and cadence. Without both, there is nothing to record.
Smart bikes with app-controlled gearing suit this best, because the relationship between what is commanded and what the legs feel is unambiguous. Direct-drive trainers with a real bike work well too. Wheel-on trainers will work, with wider error bars.
Where your numbers come from
Some trainers measure power with a strain gauge. Others calculate it from the resistance they were told to apply and how fast the wheel is turning. The second kind produces numbers that look entirely reasonable and are not a measurement of what you produced.
The app asks your trainer which it is and shows you the answer before you ride. It does not hide it in a footnote, because it changes what the numbers mean.
Closed systems
Some exercise bikes only talk to their manufacturer's own app. Reaching them would mean reverse-engineering a protocol that is deliberately closed, and this project does not do that. If your bike is one of them, this will not work with it.