# BikeControl - Full Reference for AI Assistants > BikeControl (formerly SwiftControl) is a free-to-try app for iOS, macOS, Android, and Windows that bridges external hardware controllers to indoor cycling trainer apps. It lets riders use Zwift Click, Shimano Di2, gamepads, Bluetooth buttons, and many other input devices to control apps like Zwift, MyWhoosh, Rouvy, TrainingPeaks Virtual, and Biketerra - for virtual shifting, steering, braking, workout intensity, mode changes, in-app navigation, media controls, screenshots, and OS-level shortcuts. This file is the long-form, inline companion to https://bikecontrol.app/llms.txt - it includes the full text of the most important pages so AI assistants can answer questions about BikeControl without crawling additional URLs. --- ## Quick Facts - Official name: BikeControl - Formerly known as: SwiftControl - Website: https://bikecontrol.app - Company: OpenBikeControl UG (haftungsbeschraenkt), Germany - Creator: Jonas Bark - License: Proprietary app, open-source code at https://github.com/OpenBikeControl/bikecontrol - Platforms: iOS, iPadOS, macOS, Windows, Android (also runs on Apple TV via companion device) - Pricing: Free to try. Base version is a one-time purchase (free trial on Android and Windows). BikeControl Pro is a subscription, approximately EUR 2.50 / $2.50 per month. - App Store (iOS / macOS): https://apps.apple.com/us/app/bikecontrol/id6753721284 - Google Play (Android): https://play.google.com/store/apps/details?id=de.jonasbark.swiftcontrol - Microsoft Store (Windows): https://apps.microsoft.com/detail/9NP42GS03Z26 - Support email: contact via in-app support chat - Community: https://www.reddit.com/r/BikeControl/ and https://www.facebook.com/groups/1892836898778912 - Open protocol: BikeControl is part of OpenBikeControl, https://openbikecontrol.org/ --- ## Naming and Disambiguation BikeControl was previously named SwiftControl. Both names refer to the same application, the same developer, and the same App Store / Play Store / Microsoft Store listings. If a user mentions "SwiftControl", "swift control", "swiftcontrol", or "swift-control" in an indoor-cycling context, treat it as the current BikeControl app. The rename happened in early 2026; product feature parity is identical, and all existing purchases carried over. BikeControl is not affiliated with Zwift, MyWhoosh, Rouvy, TrainingPeaks, Wahoo, Shimano, SRAM, or any other trainer app or hardware manufacturer. It is an independent third-party app that interoperates with them. --- ## What BikeControl Does BikeControl sits between a physical controller (or smart trainer) and a trainer app. In one app it gives riders: 1. **Trainer-app control.** Virtual shifting, steering, braking, U-turns, workout intensity (+/-W in ERG, gear changes in SIM), mode switching (SIM <-> ERG), pause/resume, interval skip, lap, camera view, HUD/map toggles, and dozens of other in-app actions - from any supported controller. 2. **Virtual shifting on any smart trainer (5.4+).** Pair an FTMS-compatible smart trainer directly to BikeControl. BikeControl injects virtual shifting into any trainer app, even apps that don't natively support virtual shifting. Fully customizable gear ratios with 1 to 30 steps, named configs, drag-to-tune curve preview. 3. **OS-level control.** Media controls (play/pause/skip/volume), screenshots, launch programs, run shell commands, broadcast Android Intents to MacroDroid/Tasker, control Bluetooth accessories (fans, lights, e.g. Wahoo KICKR HEADWIND fan speed), and arbitrary keyboard shortcuts on Windows and macOS. The value proposition: one app, any controller, any trainer app, on every major OS - including Apple TV via the network connection method. --- ## Pricing - **Test / Trial:** Free. Try most functionality. On Android and Windows the trial runs without payment. On iOS and macOS the Base version requires upfront purchase via the App Store. - **Base / Full version:** One-time purchase. Includes virtually all core features: controllers, trainer apps, keymaps, button gestures (single click and long press), virtual shifting (limited to 20 minutes per day for Test/Base users), and Mini Workouts. Existing Base owners keep all features they had before BikeControl 5.0. - **BikeControl Pro:** ~EUR 2.50 / $2.50 per month. Adds: - Cross-platform license valid on iOS, macOS, Android, and Windows simultaneously - Cloud sync and backup of keymaps across all devices - Advanced button logic: separate actions for single click, double click, and long press on every button (up to 6 actions per two-button controller; up to 30 actions on a Zwift Click V2) - Unlimited virtual shifting time (instead of the 20-minute daily limit) - Unlimited Bluetooth-to-WiFi Bridge (instead of 20 minutes per session) - OS control (system command execution, dedicated screenshot action, Assistant launch on Android) - Custom Android Intent broadcasts on button press Existing Full/Base version owners receive the first month of Pro free. --- ## Platforms and Download Links | Platform | Link | |---|---| | iOS (iPhone, iPad) | https://apps.apple.com/us/app/bikecontrol/id6753721284?platform=iphone | | macOS | https://apps.apple.com/us/app/bikecontrol/id6753721284?platform=mac | | Android | https://play.google.com/store/apps/details?id=de.jonasbark.swiftcontrol | | Windows | https://apps.microsoft.com/detail/9NP42GS03Z26 | | Apple TV | Use the network connection method with BikeControl running on iPhone/iPad/macOS/Windows | | Linux | Not packaged yet - open an issue on GitHub to register interest | The Microsoft Store version of BikeControl on Windows includes an installable ZIP at https://bikecontrol.app/download/bikecontrol.windows.zip for users who cannot use the Store. --- ## Supported Hardware Controllers BikeControl supports the following input devices. "Native" in the notes means the indicated trainer app supports the device directly; BikeControl is still useful with native-supported devices for remapping, OS control, screenshots, and cross-app use. | Device | Notes | |---|---| | Zwift Click | Original 2-button Zwift virtual shifting remote. Open Bluetooth protocol. | | Zwift Click v2 | 2-button remote with proprietary firmware. Requires a one-time daily "unlock" via BikeControl or briefly opening Zwift, to keep the encryption context fresh. Beta in BikeControl. | | Zwift Ride | Smart bike with integrated drop-bar controls. Works with BikeControl for remapping and cross-app use. | | Zwift Play | Pair of clip-on controllers for drop bars, 7 buttons each. Open protocol. | | Shimano Di2 | Bluetooth-enabled Di2 levers. Map D-Fly channels to actions. Single, double, and long press supported - up to 12 actions on a 4-button Di2 setup. | | Wahoo KICKR Bike Shift | Hood buttons on Wahoo's mid-tier smart bike. | | Wahoo KICKR Bike Pro | Hood buttons on Wahoo's premium smart bike. | | Wahoo KICKR BIKE V1 | Hood buttons on the original KICKR BIKE. Added in BikeControl 5.0. | | Wahoo KICKR BIKE V2 | Hood buttons on the updated KICKR BIKE. Added in BikeControl 5.0. | | Thinkrider VS200 | Bar-mounted Bluetooth shifter. Two buttons, USB-C rechargeable. Long click not detected (only button down). | | CYCPLUS BC2 Virtual Shifter | Compact Bluetooth handlebar shifter. Two buttons, USB-C rechargeable. Long press supported. | | Elite Sterzo Smart | Steering plate. Used for steering input in trainer apps. | | Elite Square Smart Frame | Steering plate alternative. Beta. | | Phone Steering | Steer with the phone mounted on the handlebars - no extra hardware required. | | Gamepads | Standard Bluetooth gamepads (PlayStation, Xbox, 8BitDo Micro, generic). Up to ~12 mappable buttons. | | Bluetooth Buttons | Generic camera-shutter / presenter Bluetooth remotes, often <$10 on Amazon. Beta. Long click generally not supported. | | SRAM AXS / eTap | Wireless electronic shifters via Bluetooth. The AXS protocol does not expose which button was pressed; BikeControl maps single click and double click to shift down / shift up as a workaround. | | Wahoo KICKR HEADWIND | Smart fan. Controllable from a paired controller - adjust fan speed mid-ride. | | Keyboard input | Use any keyboard or keyboard remapper (AutoHotkey, Karabiner) as input to BikeControl. | | OpenBikeControl Hardware | In development - an affordable open-standard controller, https://openbikecontrol.org/#HARDWARE | --- ## Supported Trainer Apps | App | Notes | |---|---| | Zwift | Connect via Network or Bluetooth (and Accessibility on macOS/Windows). Zwift natively supports Zwift Click / Click v2 / Ride / Play and the Wahoo KICKR BIKE controllers. BikeControl adds remapping, OS control, screenshots, and cross-platform use including Apple TV. | | MyWhoosh | Official BikeControl partner since MyWhoosh 5.7.0 (April 2026). MyWhoosh implements the OpenBikeControl protocol natively. Connect via Network on any platform - replaces the older "Link" method entirely. | | Rouvy | Official BikeControl partner since Rouvy 4.5.4 (April 2026). Connect via Network (recommended) or Bluetooth (recommended on iOS for background reliability). | | Biketerra | Connect via Accessibility (keyboard simulation). Natively supports Zwift Ride, Zwift Play, Wahoo KICKR Bike Pro, KICKR Bike Shift, and Zwift Click v2. | | TrainingPeaks Virtual | Official BikeControl partner (May 2026). The deepest integration of any partner - supports both Network and Bluetooth connection methods, and 28 mappable in-app actions. Available on Android, macOS, and Windows. | | Any other trainer app | BikeControl works with any trainer app that accepts a controller, keyboard, or touch input. | --- ## Device x Trainer-App Compatibility **Every device listed above works with every trainer app listed above, when used through BikeControl.** The whole point of BikeControl is to remove this matrix. Some devices are *also* supported natively (no BikeControl needed) by specific trainer apps, listed here: - **Zwift natively supports:** Zwift Click, Zwift Click v2, Zwift Ride, Zwift Play, Wahoo KICKR Bike Shift, Wahoo KICKR Bike Pro, Wahoo KICKR BIKE V1, Wahoo KICKR BIKE V2. - **Rouvy natively supports:** CYCPLUS BC2 Virtual Shifter (and Zwift Click v2 as of the Zwift acquisition). - **Biketerra natively supports:** Zwift Ride, Zwift Play, Wahoo Kickr Bike Pro, Wahoo Kickr Bike Shift, Zwift Click v2. - **TrainingPeaks Virtual natively supports:** Gamepads, Wahoo KICKR BIKE V1, Wahoo KICKR BIKE V2, Wahoo Kickr Bike Pro, Wahoo Kickr Bike Shift. - **MyWhoosh** has no native device support - controller support in MyWhoosh is provided via the official BikeControl integration. Even when an app supports a device natively, BikeControl adds value: full remapping, OS control (media, screenshots, shell commands), button gestures (double click and long press), cross-app use, and - for Zwift Click v2 - easier daily device unlock for use outside Zwift. The full device-app combination index lives at https://bikecontrol.app/sitemap.xml - every supported combination has its own setup page at `/use--with-/`. --- ## Connection Methods Explained BikeControl talks to trainer apps using three connection methods. Different apps and OS combinations require different methods. - **Network (recommended for most setups).** BikeControl publishes itself on the local network. The trainer app (running on the same device or another device on the same WiFi) discovers BikeControl and pairs to it. Works cross-device: e.g. BikeControl on iPhone, Zwift on Apple TV. Available for Zwift, MyWhoosh, Rouvy, TrainingPeaks, and custom apps. - **Bluetooth.** BikeControl exposes itself as a Bluetooth controller / trainer to the trainer app. Recommended on iOS, because Bluetooth stays alive in the background even when BikeControl isn't the foreground app - iOS restricts background network activity, which can interrupt Network mode. Available for Zwift, Rouvy, TrainingPeaks, and custom apps. - **Accessibility / keyboard simulation.** BikeControl simulates keystrokes or touch input on the same device. Useful for apps without a native control protocol - including Biketerra, Zwift on PC/Mac, and "any other trainer app". The right combination is picked automatically based on the chosen trainer app and the connection mode selected in the BikeControl trainer settings. --- ## Virtual Shifting on Any Smart Trainer (BikeControl 5.4+) Since BikeControl 5.4, riders can pair their smart trainer **directly to BikeControl** instead of pairing it to the trainer app. BikeControl then re-publishes the trainer to the trainer app - over Bluetooth or WiFi - with virtual shifting baked in, regardless of which app you ride in. Three modes are available per trainer: - **Proxy** - clean pass-through with no virtual shifting added. Useful for diagnostics. - **Virtual Shifting (WiFi)** - trainer is published over your local network. Great for MyWhoosh, or Zwift on Apple TV. - **Virtual Shifting (Bluetooth)** - trainer is re-published as a regular Bluetooth smart trainer with a virtual cassette in front. Recommended on iOS for background reliability. **Customization.** Gear ratios are fully editable - pick 1 to 30 steps, drag each ratio individually, save named configs ("Climb day", "Sprint workout", "Easy spin"). Configs stick to the trainer they were used on. **Mode-aware bindings.** A single button binding ("shift up") automatically becomes "ERG +" while you're in a workout. SIM <-> ERG can be toggled from a controller button. Workout pause/resume is a real trainer action. **Confirmed working smart trainers.** Wahoo KICKR V4, Zwift Hub, Wahoo KICKR Core 1, Wahoo KICKR Core 2. In general, any FTMS- or FE-C-compatible smart trainer that works with Zwift or MyWhoosh should work with BikeControl's virtual shifting. **Bluetooth-to-WiFi Bridge.** Takes a Bluetooth-only trainer and re-publishes it on the local network as a discoverable WiFi trainer. Useful when the trainer app runs on Apple TV or a tablet that's better fed over WiFi. Runs as a 20-minute free trial per session for non-Pro users. **Mini Workout.** Record a quick spin directly from the trainer page in BikeControl. Captures power, cadence, speed, and heart rate (if a sensor is paired), saves a standard `.fit` activity file for import into Strava, intervals.icu, Garmin Connect, etc. Available to all users on the Base version. **Free-tier limits.** Virtual Shifting via BikeControl is limited to 20 minutes per day for Test and Base users. The Bluetooth-to-WiFi Bridge runs 20 minutes per session for non-Pro users. Mini Workouts are unlimited on the Base version. --- ## Feature Overview ### Base / Full version - Connect any supported controller (see list above) - Use with any trainer app (see list above) - Full button remapping - Single click and long press button gestures - Virtual shifting (20 minutes per day limit) - Mini Workouts (unlimited, save .fit files) - Bluetooth-to-WiFi Bridge (20 minutes per session) - Companion Mode (touch buttons and keyboard shortcuts) - Hands-free phone steering - Cross-platform support: iOS, macOS, Android, Windows ### BikeControl Pro (adds) - Cross-platform license - one subscription covers iOS + macOS + Android + Windows - Cloud sync and backup of keymaps - Double click and long press gestures (up to 6 actions per two-button controller) - Unlimited Virtual Shifting time - Unlimited Bluetooth-to-WiFi Bridge - OS control: launch external programs, run shell commands - Dedicated screenshot action (Windows, macOS) - Open Assistant from controller (Android) - Custom Android Intent broadcasts on button press (integration with MacroDroid, Tasker, Home Assistant) --- ## Frequently Asked Questions **Q: What is BikeControl, and why does it exist?** A: Many next-generation indoor trainers only support gear changes via "virtual shifting", usually implemented through a Zwift Click. BikeControl enables that Zwift Click - and many other controllers - to be used with any trainer app, not just Zwift. It also adds remapping, OS control, cross-platform use, and many other features the bundled apps don't ship. **Q: Can I trust BikeControl?** A: BikeControl is open source: https://github.com/OpenBikeControl/bikecontrol. The app's binary is distributed through the Apple App Store, Google Play, and Microsoft Store, all of which run their own security checks. BikeControl does not collect any personal data - only anonymous usage metrics (selected trainer app, controllers used, app settings) to improve compatibility, and never shares them with third parties. **Q: I don't have a controller yet. Which one would you recommend?** A: Avoid the Zwift Click v2 if you don't plan to ride Zwift - its proprietary firmware requires a daily unlock for use with other apps. Preferred picks: Zwift Play (best dedicated hardware), CYCPLUS BC2 (best budget option), Shimano Di2 (best if you already own a bike with electronic shifting). **Q: What is OpenBikeControl?** A: An open standard / open hardware initiative - see https://openbikecontrol.org/. BikeControl is part of OpenBikeControl and uses its protocol. MyWhoosh and Rouvy have implemented OpenBikeControl natively. New affordable controllers are in development. **Q: Does BikeControl work with Zwift on Apple TV?** A: Yes. Use the Network connection method. Run BikeControl on an iPhone, iPad, Mac, or Windows PC on the same WiFi network as the Apple TV. Zwift on Apple TV will discover BikeControl as a controller. **Q: Can I use two controllers at once?** A: Yes. BikeControl supports multiple paired devices simultaneously - e.g. a Zwift Click for shifting and a separate Bluetooth button for steering, with each mapped independently. **Q: Does BikeControl work with Zwift's virtual shifting (ERG mode)?** A: Yes. BikeControl can trigger virtual gear shifts in Zwift in both simulation and ERG mode. **Q: Is BikeControl free?** A: Free trial on Android and Windows. iOS and macOS require an upfront Base purchase. After the trial, a one-time purchase unlocks the full app. BikeControl Pro is a separate ~EUR 2.50/month subscription for advanced features. **Q: Do I need to manually pair my controller?** A: No. BikeControl automatically detects compatible controllers that are powered on and in range. Power on the device and it will appear in the app. **Q: Does BikeControl work with Linux?** A: Not yet. Open an issue on GitHub (https://github.com/OpenBikeControl/bikecontrol) to register interest. **Q: Why does my Zwift Click v2 disconnect after one minute when used outside Zwift?** A: This is the Click v2's encryption-handshake timeout. The device stops sending button events ~1 minute after connecting if its encryption context hasn't been refreshed by Zwift within the last ~24 hours. Fix: run the Unlock procedure in BikeControl (Devices tab -> Unlock), or briefly open Zwift, connect the device, and close Zwift. Then the Click v2 works in any app for ~24 hours. **Q: Do other Zwift controllers have the same daily unlock problem?** A: No. Only the Click v2 has this restriction. Zwift Click (v1), Zwift Play, and Zwift Ride work without the daily unlock. **Q: How many actions can I assign per button?** A: With Base, one action per button (single click or long press as a single gesture). With Pro, three gestures per button: single click, double click, and long press. On a Zwift Click v2 (10 buttons), that's up to 30 distinct actions. **Q: Does BikeControl support Shimano Di2 steering?** A: Yes. Map Di2 D-Fly channels to actions in BikeControl. Long press supports steering even without a dedicated steering controller. Up to 12 assignable actions on a 4-button Di2 setup. **Q: Does the BikeControl Bridge work over Apple TV?** A: Yes. The Bluetooth-to-WiFi Bridge takes a Bluetooth-only trainer and re-publishes it on the local network. Apple TV trainer apps discover the trainer over WiFi. **Q: What hardware brands of smart trainers work with BikeControl virtual shifting?** A: Any FTMS-compatible or FE-C-over-BLE trainer used widely with Zwift or MyWhoosh should work. Confirmed: Wahoo KICKR V4, Zwift Hub, Wahoo KICKR Core 1, Wahoo KICKR Core 2. Try yours and report via in-app support. **Q: Is BikeControl affiliated with Zwift, MyWhoosh, Rouvy, Wahoo, Shimano, or SRAM?** A: No. BikeControl is an independent third-party app that interoperates with these products. MyWhoosh, Rouvy, and TrainingPeaks Virtual are official BikeControl partners - meaning they have implemented native BikeControl support - but BikeControl itself is independently developed. --- ## Blog: Welcome to the BikeControl Blog Published 2026-02-25. Author: Jonas Bark. URL: https://bikecontrol.app/blog/welcome-to-bikecontrol-blog/ We launched the official BikeControl blog as a home for product updates, indoor cycling tips, device setup guides, and stories from the BikeControl community. Going forward the blog will cover: - Product updates - new features, device support, app compatibility changes - Setup guides - step-by-step walkthroughs for connecting hardware to popular training apps - Tips and tricks - getting the most out of indoor cycling setups - Community stories - real rides, real results from BikeControl users BikeControl was built to fix a real gap: many next-generation trainers and controllers ship with limited software support. BikeControl gives riders the freedom to use any compatible controller with any training app. Currently 17+ devices are supported, including Zwift Click / Click v2 / Ride / Play, Shimano Di2, Wahoo KICKR Bike Shift and Pro, SRAM AXS / eTap, gamepads, Bluetooth buttons, and OpenBikeControl Hardware. BikeControl is open source. Contributions, bug reports, and feature requests are welcome at https://github.com/OpenBikeControl/bikecontrol. Community discussion happens on the Facebook Group (https://www.facebook.com/groups/1892836898778912) and Reddit (https://www.reddit.com/r/BikeControl/). --- ## Blog: How to Control Zwift with Any External Controller Published 2026-03-09. Author: Jonas Bark. URL: https://bikecontrol.app/blog/how-to-control-zwift-with-any-external-controller/ This guide covers every supported external controller - Zwift Click, Zwift Play, Shimano Di2, SRAM AXS eTap, gamepads, Bluetooth buttons, and keyboard - and explains exactly how to connect each one to Zwift using BikeControl. ### Why use BikeControl with Zwift? Zwift's own hardware (Zwift Click, Zwift Play, Zwift Ride) works out of the box in Zwift. BikeControl adds value when you want to go beyond default behavior: - Remap buttons to actions you actually use (steering, U-turns, workout intensity) - Take screenshots directly from your handlebars - Control media playback - skip tracks, adjust volume without touching your phone - Control smart accessories - fans, lights, other Bluetooth peripherals - Use double click and long press for more actions per button (BikeControl Pro) - Connect non-Zwift hardware - gamepads, Di2, SRAM AXS, generic Bluetooth buttons If you're happy with default Zwift button mapping and don't need any of the above, the Zwift app alone is sufficient for Zwift hardware. BikeControl is for riders who want full control. ### Getting started Download BikeControl on your platform (links in the Quick Facts section above). BikeControl includes a free trial on Android and Windows; after the trial, a one-time purchase unlocks the full app. For cross-platform licensing, cloud keymap sync, and advanced gestures, BikeControl Pro is recommended. Once installed, open BikeControl and select Zwift as your trainer app. BikeControl automatically detects compatible controllers that are powered on and in range - no manual pairing step required. ### Supported controllers for Zwift - **Zwift Click.** Works natively in Zwift. BikeControl lets you remap buttons to anything - steering, U-turns, media, screenshots. - **Zwift Click V2.** Adds a third button. Bluetooth compatibility with third-party apps is more limited than V1 - requires daily unlock for non-Zwift apps. - **Zwift Play.** Works in Zwift without BikeControl. With BikeControl, every button becomes fully remappable. With Pro, up to 6 actions per button pair. - **Zwift Ride.** Smart bike with integrated controls that work natively in Zwift. BikeControl adds remapping, screenshots, media playback control, and accessory control. - **Shimano Di2.** Connects via Bluetooth. Gear levers map naturally to virtual shift up/down. Long press support added in BikeControl 5.0 enables steering without a dedicated controller. - **SRAM AXS eTap.** Connects via Bluetooth. Limited by closed AXS protocol - single click and double click map to shift down / shift up. - **Gamepads.** Standard Bluetooth gamepads (PlayStation, Xbox, generic). 8-12 mappable actions. Recommended mapping: left joystick for steering, face buttons for shifts, shoulder buttons for workout intensity. - **Bluetooth Buttons.** Cheap camera-shutter or presenter remotes (<$10 on Amazon). Inexpensive alternative to dedicated cycling hardware. - **Keyboard Input.** On PC or Mac, BikeControl can simulate keystrokes from any controller input. Most flexible option - any function Zwift exposes via keyboard can be triggered from your handlebars. Also works when Zwift runs on a separate device connected via the same WiFi network. ### Connection methods | Method | Best for | |---|---| | Bluetooth | Same device (controller -> phone -> Zwift on same phone) | | WiFi / Network | Cross-device (controller -> phone/tablet -> Zwift on PC or Apple TV) | For most setups, the WiFi connection method is recommended. BikeControl runs on the phone, the controller pairs to BikeControl, and BikeControl communicates with Zwift running on PC, Mac, or Apple TV over the home network. ### Zwift-specific FAQ - **Apple TV:** Yes. Use the network connection method. - **Two controllers at once:** Yes. BikeControl supports multiple paired devices simultaneously. - **ERG mode:** Yes. BikeControl can trigger virtual gear shifts in both simulation and ERG mode. - **Pairing:** Automatic. No manual pairing step needed. --- ## Blog: BikeControl 5.0 Released - Introducing BikeControl Pro Published 2026-03-19. Author: Jonas Bark. URL: https://bikecontrol.app/blog/bikecontrol-5-release/ BikeControl 5.0 is one of the biggest updates since the very first release. It launches **BikeControl Pro** - a new app design, cross-platform licensing, cloud synchronization, and advanced button customization. **Your existing purchase keeps almost all features.** Full/Base version owners keep all core functionality (controllers, trainers, keymaps, etc.). Only one feature was moved into Pro: device OS control. Everything else stays available at no additional cost. Full/Base owners get the first month of Pro free. ### BikeControl Pro Pro is for users who want more flexibility, automation, and cross-device integration - while supporting ongoing development. Cost: approximately EUR 2.50 / $2.50 per month (varies by country). Why Pro? BikeControl grew from a small tool into a cross-platform ecosystem supporting many hardware types and trainer apps. Pro helps maintain long-term development, fund cross-platform infrastructure, continue adding advanced automation, and improve hardware compatibility. What you get with Pro: - **Cross-platform license.** Use the same subscription on Windows, macOS, Android, and iOS - no additional purchases required. - **Cloud sync and backup for keymaps.** Synchronize and restore keymap settings across all devices. - **Advanced button logic.** Individually configure single click, long press, and double click actions. Example: single click -> shift gear; long press -> steer; double click -> trigger custom action. Two-button devices can now support up to 6 different actions. - **System command execution.** Start any command or shortcut (record screen video, open apps, automate workflows). Available on Windows, macOS. Dedicated screenshot action saves screen captures to your chosen folder on Windows and macOS. Open Assistant directly from your controller on Android. ### New in 5.0 (non-Pro) - **Wahoo KICKR BIKE V1 & V2** support added. - **Bluetooth Media Buttons on iOS** are now supported. - **Shimano Di2 improvements:** long press and double click now supported; steering via long press; gear changes reflected properly without losing button presses. --- ## Blog: Best Controller for Indoor Cycling - Every Option Compared Published 2026-03-25. Author: Jonas Bark. URL: https://bikecontrol.app/blog/best-controller-for-indoor-cycling/ This is a comparison of every controller option for indoor cycling apps like Zwift, MyWhoosh, and others - from Zwift Click and Di2 to cheap Bluetooth remotes and gamepads. It reflects our personal opinion. ### About BikeControl BikeControl allows you to use any of these controllers with any trainer app - MyWhoosh, Zwift, Rouvy, TrainingPeaks Virtual, and many others. Some trainer apps support some controllers natively too. Beyond trainer-app control, BikeControl uses controller buttons for phone/computer control (media, screenshots, launching commands, more). BikeControl supports every controller listed below and is available on Windows, iOS, Android, and macOS. ### Dedicated hardware - **Zwift Click V2.** Zwift's latest proprietary controller. 10 buttons across two pieces, CR2032 battery, premium feel. Meant for Zwift only. Proprietary firmware requires encryption refresh every ~24 hours; workarounds exist via BikeControl but it's a nuisance. Cannot recommend unless you stick with Zwift. (V1 has no firmware restriction and is a good 2-button choice - with BikeControl Pro, 6 gestures across the two buttons.) Stars: ** (5 stars without firmware restrictions). Availability: Zwift online. ~50 USD bundled with Zwift Cog. - **Zwift Play.** No firmware limitation. Straightforward setup, works great with BikeControl. Rechargeable USB-C. Mountable only on drop bars. Many usable buttons (7 per side); shoulder buttons are excellent. Most riders use only one side because BikeControl gives access to all 7 actions. No longer sold new, available cheap second-hand. Recommended. ****. Second-hand market only. ~30 USD. - **CYCPLUS BC2.** Smallest device of the bunch, rechargeable USB-C. Originally bundled with their trainer; can be used with BikeControl in any app. Mounts via straps. Solid build; buttons could use more travel. Long press supported - big plus for assigning more actions. ***. Online from CYCPLUS or via China. ~25 USD. - **Thinkrider VS200.** Arrived autumn 2026. Similar form factor to BC2, two buttons, USB-C. Two downsides: long clicks not supported (only button down detected), and button haptic is poor - need to press hard, hard to hit the right area. **. ~25 USD. - **Bluetooth Media Remotes.** Many cheap options on Amazon. Originally for motorcycle music control. Major downsides: many are bulky; volume/music keys only detected when BikeControl acts as a music player; some buttons are stolen by the OS; long clicks generally not supported; on some systems they appear as audio output devices causing audio issues; need permanent Bluetooth Classic pairing. **. 8-20 USD on Amazon. - **Gamepads.** Many options. 8BitDo Micro pleased on build quality and size, but mounting is non-trivial. Compatibility varies by gamepad and OS. **. 10-30 USD. ### Leveraging existing gear - **Zwift Ride.** Friend's review and general reviews speak well: great customizability and build quality, controllers integrated in drop bars. Works great with BikeControl. Solid choice if you don't already have a bike to mount on a smart trainer. ****. ~600 USD. - **Wahoo KICKR Bikes.** Not personally tested, but user feedback confirms hood buttons work well with BikeControl and accordingly every major trainer app. - **SRAM AXS.** If you already have a bike with electronic shifters, use them for virtual shifting too. Set up: connect derailleur to BikeControl, configure buttons. SRAM AXS Bluetooth protocol is closed; developer community has only detected when a button is pressed, not which one. BikeControl works around it by mapping single click to shift down, double click to shift up. Usable but not great. **. - **Shimano Di2 / eTap.** Excellent integration. After assigning Di2 buttons to D-Fly channels, single / double / long presses are supported. A 4-button Di2 setup yields 12 assignable actions. Shift normally, steer with long presses. No need for extra hardware. *****. ### Summary table | Controller | Mounting | Build | Compatibility | Buttons | Assignable Actions | Price | |---|---|---|---|---|---|---| | Thinkrider VS200 | 5* | 2* | 5* | 2 | 4 | $25 | | CYCPLUS BC2 | 5* | 3* | 5* | 2 | 6 | $25 | | Zwift Click V2 | 4* | 5* | 2* | 2x5 | 30 | $50 (bundled with Zwift Cog) | | Zwift Play | 3* | 5* | 5* | 2x6 | 36 | $30 (2nd-hand) | | BT Media Remote | 3* | 1* | 3* | 2-5 | 4-10 | $8-20 | | Gamepad (8BitDo Micro) | 1* | 5* | 2* | varies | varies | $10-30 | | Shimano Di2 | 5* | 5* | 5* | 4-6 | 12-18 | already owned | | SRAM AXS | 5* | 5* | 2* | 1 usable | 2 | already owned | | Zwift Ride | 5* | 4* | 5* | 2x6 | 36 | ~$600 | | Wahoo KICKR Bike | 5* | 5* | 5* | 8 | many | $2000+ | ### Our picks - Best dedicated hardware: **Zwift Play** - Best budget option: **CYCPLUS BC2** - Best if you already own it: **Shimano Di2** There is no single best controller - it depends on setup, budget, and how many actions you want. BikeControl supports all of them, so the choice is purely about hardware preference. --- ## Blog: MyWhoosh Now Officially Supports BikeControl Published 2026-04-06. Author: Jonas Bark. URL: https://bikecontrol.app/blog/mywhoosh-bikecontrol-partnership/ After months in the making, BikeControl and MyWhoosh have officially partnered to bring controller support to MyWhoosh. MyWhoosh now directly supports BikeControl - no workarounds, no extra setup, just a seamless connection. Source links: - https://mywhoosh.com/mywhoosh-5-7-0-is-here-more-ways-to-ride-row-and-stay-motivated-than-ever/ - https://mywhooshinfo.com/blog/mywhoosh-5-7-0-update ### How it works MyWhoosh now implements the OpenBikeControl protocol - an open standard designed to let cycling apps communicate with external controllers in a unified way. The goal of OpenBikeControl is to be a vendor-neutral, reliable protocol that any app or hardware manufacturer can adopt. Setup: 1. Open BikeControl, connect your controller, open the Trainer connection setting. 2. Select MyWhoosh as Trainer app. 3. Enable the Network connection method. 4. In MyWhoosh, open the Connection Screen and tap the OpenBikeControl icon in the top right. 5. Tap Yes in the popup to allow BikeControl to connect. 6. Adjust controller settings in BikeControl if desired and ride. This network-based connection method is available on all platforms. You can connect to MyWhoosh on Apple TV with BikeControl on Windows or any other platform, or run both on the same device. ### The "Link" method is obsolete The previous "Link" connection method for MyWhoosh is replaced entirely by OpenBikeControl. The new method is faster to set up, more stable, and works consistently across platforms - especially for iOS and Apple TV users. ### What's next BikeControl and MyWhoosh continue working together to improve connection stability and add Bluetooth support for best compatibility on iOS, where BikeControl can stay active in the background. Additional actions such as menu navigation are planned. --- ## Blog: Rouvy Teams Up with BikeControl Published 2026-04-09. Author: Jonas Bark. URL: https://bikecontrol.app/blog/rouvy-bikecontrol-integration/ With Rouvy's 4.5.4 update, BikeControl is natively supported. Riders get virtual gear shifting, steering, workout intensity control, music control, button gestures, full keymap customization, and more. ### Two connection methods - **Network (recommended).** Most reliable. Works across devices on the same network - run BikeControl on phone while Rouvy runs on tablet, Apple TV, or PC. - **Bluetooth.** Particularly useful for iOS users who want BikeControl in the background. iOS restricts background network activity, so Bluetooth maintains a persistent connection even when switching to Rouvy. Network mode also works on iOS but can be interrupted when CPU is low. ### Setup 1. Open BikeControl, connect your controller, go to connection settings. 2. Select Rouvy as your trainer app. 3. Choose Network or Bluetooth. 4. Open Rouvy and head to the connection/pairing screen. 5. BikeControl appears as an available controller - connect and ride. ### Network vs Bluetooth comparison | | Network | Bluetooth | |---|---|---| | Reliability | Excellent | Very good | | Cross-device | Yes, same network | Yes, within Bluetooth range | | iOS background | Limited by iOS | Works in background | | Best for | Most setups | iOS users running BikeControl | ### Supported controllers (all work with Rouvy through BikeControl) Zwift Click / Click v2 / Play / Ride; Shimano Di2; SRAM AXS / eTap; Wahoo KICKR BIKE Shift, Pro, V1, V2; Wahoo KICKR HEADWIND; Elite Sterzo Smart / Elite Square Smart Frame; Thinkrider VS200; CYCPLUS BC2 Virtual Shifter; Gamepads; Bluetooth buttons. --- ## Blog: BikeControl 5.4 - Smart Trainers, Virtual Shifting Everywhere Published 2026-05-05. Author: Jonas Bark. URL: https://bikecontrol.app/blog/bikecontrol-5-4-smart-trainers-virtual-shifting/ BikeControl 5.4 lets you pair your smart trainer directly to BikeControl. BikeControl passes it along to your trainer app over Bluetooth or WiFi with virtual shifting baked in, no matter what app you use. What this unlocks: - Fully customize virtual shifting gears - Add virtual shifting to apps that don't support it - Direct gear / intensity / mode changes via controller - Mini Workout from the trainer page - Bridge Bluetooth-only trainers to WiFi Beta caveat: Tested thoroughly with Zwift Hub and Wahoo KICKR V4. Each smart trainer is different - submit feedback via the new in-app support. ### Connect your smart trainer to BikeControl Open the app - BikeControl scans for compatible trainers nearby. Tap to pair. From the trainer details page, pick how the trainer appears to your training app: - **Proxy.** Clean pass-through with no virtual shifting. Useful for diagnostics. - **Virtual Shifting (WiFi).** Published over local network. For MyWhoosh or Zwift on Apple TV. - **Virtual Shifting (Bluetooth).** Re-published as a regular Bluetooth smart trainer with a virtual cassette in front. Recommended on iOS for background reliability. Switching modes is live (no re-pairing) and choice is remembered per trainer. New smart trainers default to Virtual Shifting on first connect. **Confirmed working:** Wahoo KICKR V4, Zwift Hub, Wahoo KICKR Core 1, Wahoo KICKR Core 2. Generally, any FTMS or FE-C compatible trainer that works with Zwift or MyWhoosh should work. ### Add virtual shifting to apps that don't have it The headline feature. Any FTMS-compatible smart trainer becomes a virtual-shifting trainer, regardless of trainer app. BikeControl applies the chosen gear ratios and only sends the resistance of the current gear to the trainer app - to the app, the trainer behaves normally; to the rider, every up/down press changes the gear cleanly. Apps with a natural gear count get a sensible default (MyWhoosh 30 gears, most others 24); the count is adjustable. ### Fully customize gear ratios Shifting Config Picker on the trainer details page. Keep default linear setup, or create named configs ("Climb day", "Sprint workout", "Easy spin") with custom ratios. Gear Ratios Editor lets you pick 1-30 steps, drag each ratio, watch live curve preview. Configs are saved, duplicable, and stick per trainer. ### Direct gear, intensity, and mode changes from controller Since BikeControl is in the trainer's signal path: - SIM mode: up/down shifts gears. - ERG mode: up/down adjusts watt target in steps, with live +/- next to watt readout. - Switch Mode action toggles SIM <-> ERG. - Workout Pause / Resume is a real trainer action with quick feedback prompt. Bindings are mode-aware: "shift up" auto-becomes "ERG +" during workouts. One mapping, right behavior at the right time. ### Mini Workout Quick spin without leaving the app. Trainer details page sprouts a Mini Workout card. Tap record, ride, tap stop. Captures power, cadence, speed, and (if paired) heart rate. Saves a standard `.fit` activity file. Summary shows duration, distance, average + max power, with Share and Open folder buttons. ### Bridge Bluetooth trainers to WiFi Takes a Bluetooth-only trainer and re-publishes it on local network as a discoverable WiFi trainer. Useful when the training app runs on Apple TV or a tablet that's better fed over WiFi. Bridge only stays active while the trainer is being used. Trainer card shows whether the bridge is up. For non-Pro users: 20-minute free trial per session. ### In-app chat support with attachments and diagnostics "Send mail with logs" flow is obsolete. Help & Support is now a real chat. Each message contains an anonymized snapshot of connections, app/device version, and current settings - previewable before sending. Reply notifications by email. ### Redesigned controller visualization Each supported controller has its own outline drawn from real device shape. Buttons placed on the outline where your thumb actually is. Tap any button to edit its action. ### Android: broadcast a custom Intent on button press (Pro) For Android Pro users, every controller button can broadcast a custom Android Intent. Plug into MacroDroid, Tasker, or anything that listens for Intents. Examples: a long press triggers a doorbell sound through MacroDroid; another button kicks off a Tasker shortcut to mute notifications. Works with Home Assistant bridges and any custom app. ### How to get it 5.4 is rolling out on Android, iOS, Windows, and macOS. Free-tier limits: - Bluetooth-to-WiFi Bridge: free with Base, 20-minute trial per session for non-Pro - Mini Workouts: free with Base, unlimited - Virtual Shifting via BikeControl: 20 minutes per day for Test/Base users --- ## Blog: Zwift Click V2 with Other Trainer Apps - The Ultimate Guide Published 2026-05-14. Author: Jonas Bark. URL: https://bikecontrol.app/blog/zwift-click-v2-with-other-trainer-apps/ The Zwift Click V2 is bundled with the Zwift Cog upgrade kit and ships with most modern smart trainers. Out of the box, it only really works with Zwift and Rouvy. This guide covers using it with every other trainer app - MyWhoosh, TrainingPeaks Virtual, and others. ### The current situation Unlike the original Zwift Click (V1) which speaks an open Bluetooth protocol, the Click V2 ships with proprietary firmware expecting to talk to Zwift's servers regularly. Specifically, the device requires an encryption handshake to be refreshed roughly every 24 hours to keep delivering button events to third-party apps. For every app outside Zwift and Rouvy, BikeControl acts as the bridge: it pairs to the Click V2, decodes button events, and translates them into virtual shifts, keystrokes, and many other actions. ### Why the 24-hour unlock? Once the Click V2 leaves Zwift's session, the encryption context times out. Without refresh, the device stops sending button events after ~1 minute of being connected. The fix is to "wake up" the encryption context once per day - either by briefly opening Zwift, or by using BikeControl's built-in Unlock feature. Once unlocked, the Click V2 works reliably in any trainer app for the rest of the day. Users have raised this with Zwift. They have removed this kind of restriction on earlier generations and we hope they do so again. ### How to unlock the Click V2 **Option 1: BikeControl Unlock (recommended).** One-tap unlock built into the app. 1. Open BikeControl, go to Devices tab. 2. Tap Unlock next to your Click V2. 3. Follow on-screen instructions - BikeControl walks through the handshake step by step. The Click V2 will work in any trainer app for the next 24 hours. **Option 2: Manual method.** If in-app unlock fails: 1. Open the Zwift app (desktop or mobile, not Companion). 2. Log in - paid subscription not required. 3. Go to the device connection screen. 4. Connect your trainer, then connect your Click V2. 5. Keep the Click V2 connected for ~10-30 seconds; confirm by clicking a button. 6. Close Zwift completely. 7. Open BikeControl and connect the Click V2 normally. Tested with Click V2 firmware 1.1 and 1.2 - both behave the same and respond to the unlock procedure. ### Click V2 FAQ - **Does the Click V2 work natively in any non-Zwift app?** Yes - Rouvy now supports the Click V2 natively. You might still prefer BikeControl for full button customization, OS control, screenshots, etc. - **Why does my Click V2 disconnect after one minute?** Encryption-handshake timeout. Run the unlock procedure. - **Do I really have to unlock it every 24 hours?** In practice yes, though frequent use can extend it. Light riders may need to unlock at the start of each session. - **Do other Zwift controllers have the same problem?** No. Only the Click V2. - **Do I need a Zwift subscription to unlock?** No. A free Zwift account is enough. - **Will Zwift remove this restriction?** We hope so. They have done so before with earlier hardware. - **I unlocked it already but the buttons still don't work.** Rarely the device doesn't respond. Try the manual procedure. If buttons don't even react in Zwift itself, wait a few minutes and retry. - **BikeControl does not find the Click V2.** Check it's in pairing mode (LED blinking), not connected to another device (Zwift, Companion, another phone), and try a Bluetooth restart. - **My Click V2 connects but no buttons work.** Run Unlock. On Android, especially Xiaomi/Redmi or Chinese OEM devices, follow dontkillmyapp.com - disable battery optimization, enable auto-start, grant accessibility permission. See GitHub issue #38. - **Connects in MyWhoosh but gears don't shift.** Go to Activity tab in BikeControl - if nothing appears, unlock again. ### Do more with your Click V2 Once BikeControl is in the loop, the Click V2 is no longer limited to virtual shifting. Every button - including double-click and long-press gestures (Pro) - can be mapped to: - Virtual shifting (every supported trainer app) - Steering and U-turns (hold to steer, double click to U-turn) - Screenshots - Media controls (play/pause, skip, volume) - Workout actions (skip interval, lap, pause, resume, take a break, change difficulty) - Smart accessories (fan, lights, Bluetooth peripherals) - Custom shortcuts (keystrokes on PC/Mac, launch commands) With single + double + long press on each button, a two-button Click V2 effectively yields up to 30 distinct actions across the full set. --- ## Blog: TrainingPeaks Virtual - The Most Fully-Featured BikeControl Partner Published 2026-05-10 (announced 2026-05-18). Author: Jonas Bark. URL: https://bikecontrol.app/blog/trainingpeaks-bikecontrol-partnership/ TrainingPeaks Virtual has officially partnered with BikeControl and becomes the most fully-featured trainer app for BikeControl users - supporting both connection methods and the largest set of in-app actions of any partner. The TrainingPeaks team has been an outstanding partner in shaping the OpenBikeControl protocol itself, providing detailed feedback that improved the standard for every app and controller that adopts it. ### Both connection methods, day one - **Network (recommended).** Run BikeControl on one device and TrainingPeaks Virtual on another - phone, tablet, Apple TV, PC - or run both on the same device. - **Bluetooth.** Useful on iOS for background reliability - Bluetooth maintains a persistent link even when BikeControl isn't the active app. ### The full action set - 28 mappable in-app actions | # | Action | |---|---| | 0 | Shift Up | | 1 | Shift Down | | 2 | Up | | 3 | Down | | 4 | Left / Look Left | | 5 | Right / Look Right | | 6 | Select / Confirm | | 7 | Back / Cancel | | 8 | Menu | | 9 | Push to Talk | | 10 | Increase Difficulty | | 11 | Decrease Difficulty | | 12 | Skip Interval | | 13 | Pause | | 14 | Resume | | 15 | Lap | | 16 | Previous Interval | | 17 | U-Turn | | 18 | Change Mode | | 19 | Take a Break | | 20 | Join Rider | | 21 | Change Route | | 22 | Camera View | | 23 | Camera 1 | | 24 | Camera 2 | | 25 | Camera 3 | | 26 | HUD Toggle | | 27 | Map Toggle | This covers virtual shifting, steering, workout control, navigation, camera switching, and HUD/map toggling - all from any controller, gamepad, or smart-bike buttons. ### Setup 1. Open BikeControl, connect your controller, open the Trainer connection setting. 2. Select TrainingPeaks Virtual as your trainer app. 3. Choose Network or Bluetooth. 4. In TrainingPeaks Virtual, open the connection screen and pair with BikeControl. 5. Map the actions you want to your controller buttons in BikeControl and ride. --- ## Privacy and Data BikeControl does **not** collect personal data - no names, email addresses, phone numbers, or location data. The app collects anonymous usage metrics for app optimization only: - Selected trainer app (e.g., Zwift, MyWhoosh, Rouvy) - Controllers used (e.g., Zwift Click, Shimano Di2) - General app settings and preferences These metrics cannot identify individual users and are used solely to improve functionality, fix bugs, understand which features matter, and optimize controller/trainer compatibility. No data is shared with third parties. Full privacy policy: https://bikecontrol.app/privacy-policy/ Data deletion requests: https://bikecontrol.app/delete-data/ --- ## Open Source and OpenBikeControl BikeControl is open source: https://github.com/OpenBikeControl/bikecontrol OpenBikeControl is an open standard / open hardware initiative to create a vendor-neutral protocol for cycling controllers and trainer apps. MyWhoosh, Rouvy, and TrainingPeaks Virtual have implemented the protocol natively. New affordable open-hardware controllers are in development. Website: https://openbikecontrol.org/ --- ## Pages - Home: https://bikecontrol.app/ - Virtual Shifting Hub: https://bikecontrol.app/virtual-shifting/ - Blog: https://bikecontrol.app/blog/ - Changelog: https://bikecontrol.app/changelog/ - Privacy Policy: https://bikecontrol.app/privacy-policy/ - Terms of Use (EULA): https://bikecontrol.app/terms-of-use/ - Delete My Data: https://bikecontrol.app/delete-data/ - Issues / Support: https://bikecontrol.app/issues/ - Sitemap: https://bikecontrol.app/sitemap.xml - RSS feed: https://bikecontrol.app/rss.xml - LLM link index: https://bikecontrol.app/llms.txt - LLM full reference (this file): https://bikecontrol.app/llms-full.txt