The ZBike Infinity talks over Bluetooth using the standard protocols that Zwift, Rouvy and the other simulators use (FTMS and Cycling Power), plus a Zycle service that adds information only the bike can provide. We publish the complete protocol so that anyone can build their own app: developers, and also users with no programming experience who get help from an AI assistant such as ChatGPT, Claude, Gemini or Copilot.
All the details are in the Bluetooth protocol integration guide, and at the end of this article you can download it as a file designed to be given to an AI.
What you can do
- Read power, cadence, speed, distance, time and applied resistance in real time.
- Control the bike in three modes: fixed resistance (0 to 200), target power (ERG mode, 0 to 4000 W) or gradient simulation.
- Know which virtual gear the rider has engaged (chainring and sprocket) and which mode the bike is in.
- Draw the pedal-stroke diagram and show pedalling balance and smoothness.
- Read the lifetime odometer, the firmware version and the serial number.
What you cannot do: switch the bike on or off, pause or reset it over Bluetooth, configure the drivetrain (only from the Zycle app), or communicate over ANT+.
What you need
- A ZBike Infinity with firmware 1.39 or later. Keep your bike up to date with the Zycle app.
- A computer, tablet or phone with Bluetooth. For web apps, Chrome or Edge on Windows, Mac or Android. Bluetooth web apps do not work on iPhone or iPad, nor in Safari.
- The file zbike-infinity-ble.md, attached at the end of this article.
Build your app with an AI assistant, step by step
1. Download zbike-infinity-ble.md from the end of this article. It contains the whole protocol in a format AI assistants read easily.
2. Open your AI assistant, attach the file and paste this message, adapting it to what you want to build:
Attached is the Bluetooth guide for the Zycle ZBike Infinity bike (zbike-infinity-ble.md). I want a web app in a single HTML file that works in Chrome with Web Bluetooth and that: - connects to the bike with a "Connect" button; - shows power, cadence, speed and resistance, read from Indoor Bike Data; - lets me set a target power (ERG mode) with a slider. Strictly follow the "Key rules" section of the guide: request control before sending commands, subscribe to Control Point indications before writing to it, respect the byte order of each service, and do not use any characteristic or command that is not in the guide. Use the test vectors in Annex A to check that you decode the data correctly.
3. Save the .html file the AI gives you, open it in Chrome or Edge and click "Connect". If something does not work, copy the error you see into the AI and ask it to fix it.
Other ideas you can ask the AI for:
- An interval workout that changes the target power automatically.
- A route simulator that reads a GPX file and sends the gradient of each stretch.
- A live pedal-stroke diagram with balance and smoothness.
- A session log you can export to a CSV or TCX file.
If something does not work
- The bike does not appear in the scan. The ZBike Infinity accepts two Bluetooth connections at once. If two apps are already connected (for example, a simulator and the Zycle app), close one of them.
- The app reads data but the resistance does not change. Another app, or a device connected over ANT+, is controlling the bike. Disconnect it and try again.
- The pedal-stroke diagram does not appear. Ask the AI to check the MTU negotiation (section 3.3 of the guide).
- Chrome does not show the window to choose the bike. Check that Bluetooth is on, and ask the AI how to open the app from localhost.
- More cases are in the Troubleshooting section of the integration guide.
Ride safely
- Test your app with low power and resistance values first: a bug in the code can raise the resistance suddenly.
- Do not use any function that is not in the guide. Some reserved characteristics start calibration procedures and can leave the bike in a state that needs Zycle's technical service.
- While your app is controlling the bike, other connected apps can only read data.
Support
Zycle publishes this guide so that any person or company can build products compatible with the ZBike Infinity. Zycle's technical service does not support third-party apps or code generated with AI. If you have questions about the guide itself or find a mistake, submit a request.