Virtual Treadmill
Version History
- Reworked workout starting flow with a fullscreen status overlay.
- Short workouts under 3 minutes are now discarded by default; this can be overridden in Preferences.
- Free workout limit now counts only workouts of 5 minutes or longer.
- Fixed tap area in Bluetooth devices list.
- Bluetooth devices list now shows connection progress.
- Bluetooth devices list now displays proper error messages when a device needs to be re-paired in system settings.
- Additional FTMS improvements: wait for treadmill warm-up before starting workout, and correctly apply initial speed and incline.
- Fixed abnormal distance readings after pause on treadmills that report zero distance during pause.
- Workout now automatically hides and resumes when treadmill disconnects and reconnects.
- Fixed potential hang when starting a workout with a connected treadmill.
- Fixed crash caused by FTMS data race condition.
- Fixed speed-based distance calculation stopping after workout pause.
- Fixed unit inconsistency in UK locale where distance showed miles while speed showed kilometers (now both use kilometers).
- Moved "Prefer Bluetooth heart rate sensors" toggle to Advanced preferences for consistency with other fine-tuning options.
- Simplified Bluetooth devices list by removing technical details.
- Fixed crash when editing heart rate zones.
- Fixed decimal input in speed shortcuts.
- Fixed decimal formatting throughout the app.
- Improved FTMS stack error handling.
- Improved workout mirroring reliability by following Apple's recommended practices; mirroring failures should no longer occur.
- Added failsafes for mirroring errors; if mirroring fails, the app displays an error message while keeping the workout screen visible.
- Prevent iPhone screen from auto-locking during active workouts. This can be disabled in Preferences.
- Fixed Live Activity updates when changing speed and incline during workouts.
- Fixed incorrect unit conversion for miles in Live Activity displays.
- Added preference to send speed values in miles per hour to FTMS treadmills (Note: FTMS standard expects kilometers per hour).
- Improved Bluetooth and FTMS stack stability with various bug fixes and optimizations.
- Fixed shortcut grid not displaying the currently selected speed in miles.
- Added More Apps section to Preferences.
- Added advanced preference to prefer speed-based distance calculation for treadmills.
- Fixed FTMS standard inconsistencies in the code.
- Improved workout start behavior when a treadmill is connected and running without an Apple Watch.
- Fixed issue where stale workout sessions could prevent the app from starting a new workout.
- Happy New Year! Keep running and stay active in 2026.
- Email contact button added to Preferences.
- Added Advanced preferences: pause workout on treadmill disconnect, attaching logs to email, and exporting raw logs.
- Improved handling of abnormal number readings from treadmills.
- After mirroring fails, the app will automatically attempt to restore mirroring again.
- Added a toggle to prefer Bluetooth heart rate sensors; turn it off to keep using Apple Watch/iPhone heart rate.
- Ignore zero-value readings from external heart rate sensors and fall back to HealthKit more reliably when Bluetooth data drops out.
- Auto-reconnect assigned Bluetooth devices as soon as they come online, without duplicate connection attempts across categories.
- Heart rate sensor readings now appear inline in the Devices list when connected.
- Heart rate samples from Bluetooth devices now carry device info into HealthKit for better provenance.
- Redesigned Live Activity for a cleaner look.
- External Bluetooth heart rate monitors connected within the app now take priority over heart rate data from HealthKit or Apple Watch. Note: Heart rate monitors paired at the iOS level (such as AirPods Pro with heart rate sensing) cannot override Apple Watch data. If you prefer using these monitors while also getting step cadence from your Watch, pair them directly with your Apple Watch instead. The Apple Watch heart rate sensor will stay on in this setup, so it continues running even while the external monitor is prioritized.
- Fixed a display issue on the Bluetooth devices screen where the device list would appear empty after turning Bluetooth back on.
- Replaced the simple Metric/Imperial toggle with more granular unit options: Metric, US, and UK — matching iOS conventions.
- Fixed an issue where custom heart rate zone settings could be reset on app launch. Also added a button to clear any manual overrides.
- Fixed an issue where Bluetooth device prompts would repeatedly appear during and after the initial setup.
- Added support for 9 additional languages: French, German, Italian, Polish, Portuguese, Russian, Spanish, Turkish, and Ukrainian.
← Back to Virtual Treadmill