Home / Devices, IoT & Hardware / Fitness Equipment

67 open-source Fitness Equipment projects

Fitness Equipment (Devices, IoT & Hardware): open-source projects that exist because someone reverse engineered a closed product, sorted by GitHub stars.

  1. mirror★ 293 · active

    Guide to repurposing a discontinued Lululemon Mirror as a smart mirror with a replacement mainboard

  2. pirowflo★ 173 · slowing · Python

    All-in-one data interface for WaterRower S4 and SmartRow rowers to BLE/ANT+

  3. hangtime-grip-connect★ 126 · active · TypeScript

    Library for Tindeq, Force Board, WH-C06 and other climbing force gauges over their BLE protocols

  4. ph4-walkingpad★ 113 · slowing · Jupyter Notebook

    Python controller with reverse-engineered BLE protocol for Kingsmith/Xiaomi WalkingPad treadmills

  5. QZCompanionNordictrackTreadmill★ 84 · active · Java

    Companion app on NordicTrack/iFit consoles that exposes speed and incline to QZ (qdomyos-zwift)

  6. waterrower-ble★ 83 · dormant · JavaScript

    WaterRower S4 adapter that exposes the Bluetooth LE Cycling Power Service

  7. waterrower★ 74 · archived · TypeScript

    Node.js library for communicating with the WaterRower S4 monitor

  8. oarsman★ 55 · dormant · Go

    Application interface and logger for the WaterRower S4 monitor

  9. zwift_click_handling★ 55 · active · Python

    Decodes Zwift Click controller BLE messages for use outside Zwift

  10. ifit-garmin-sync★ 48 · dormant · Python

    Exports iFit workouts to Garmin Connect via iFit's private web API

  11. iFitController★ 47 · dormant · JavaScript

    Network controller for NordicTrack treadmills via the iFit console websocket interface

  12. node-waterrower★ 44 · dormant · JavaScript

    Node server for the WaterRower S4/S5 USB performance monitor

  13. fake_kilter_board★ 42 · slowing · Processing

    An ESP32 program + desktop application for serving as a mock Kilter Board.

  14. kettlerUSB2BLE★ 42 · dormant · JavaScript

    Bridges old Kettler USB trainers to Bluetooth LE for Zwift and other apps

  15. king_smith★ 39 · slowing · Python

    Home Assistant integration for KingSmith treadmills such as the WalkingPad

  16. ifitsync★ 38 · slowing · Python

    Syncs iFit workout data to Google Fit using the unofficial iFit API

  17. QWalkingPad★ 38 · active · C++

    Qt desktop application to control the Kingsmith WalkingPad over Bluetooth

  18. toneget★ 38 · active · Python

    Exports personal Tonal workout data to JSON via Tonal's private API

  19. Zwift-Steer★ 35 · dormant · C++

    Elite Sterzo simulator built on an ESP32 and a joystick

  20. KBikeBLE★ 28 · slowing · C++

    Arduino replacement computer for the Keiser M3 bike with standard Bluetooth services

  21. go-row★ 25 · active · Go

    Bluetooth LE bridge converting a Concept2 PM5 rower into a device Zwift accepts

  22. PelotonData★ 24 · dormant · C#

    C# code for pulling fine-grained workout data from Peloton's private API

  23. walkingpad★ 22 · slowing · Python

    Web Bluetooth app to control KingSmith WalkingPad treadmills without the vendor app

  24. hass-walkingpad★ 21 · active · Python

    Home Assistant integration for monitoring KingSmith WalkingPad A1 Pro metrics over BLE

  25. waterrower-core★ 21 · active · Java

    Java library for the WaterRower S4/S5 performance monitor

  26. domyos-el500-hack★ 19 · dormant · Python

    Reverse engineering of the Bluetooth protocol of the Domyos EL500 elliptical

  27. pacekeeper★ 19 · active · C++

    ESP32 bridge that connects to WalkingPad-style treadmills over BLE and exposes them via MQTT

  28. walkingpad_macos_client★ 19 · active · Swift

    macOS client for Kingsmith WalkingPad treadmills

  29. peloton_schwinn_metrics★ 17 · slowing · JavaScript

    Shows target metrics in the Peloton web app with resistance converted for the Schwinn IC4

  30. treadmill★ 16 · dormant · Ruby

    Control and reporting for LifeSpan treadmills over their proprietary Bluetooth protocol

  31. treadmill-bridge★ 16 · dormant · C#

    Virtual BLE bridge that lets Domyos treadmills work with Zwift and other apps

  32. peloton-postman★ 15 · dormant

    Postman collections documenting Peloton's private APIs

  33. pelotonR★ 14 · dormant · R

    R package interfacing with the unofficial Peloton API

  34. fitshow-treadmill★ 13 · dormant · Vue

    Connects to FitShow-based treadmills (F31) to run custom programs

  35. ifit-debug★ 13 · archived · JavaScript

    Node.js tool that connects to iFit treadmills over BLE and logs their proprietary messages

  36. ESP32Sterzo★ 12 · slowing · C++

    ESP32 emulation of the Elite Sterzo steering device for Zwift

  37. lululemon-mirror-repurpose★ 11 · active · Java

    Software-only revival of the discontinued Lululemon MIRROR fitness mirror

  38. NordicFTMS★ 11 · active · Java

    Turns NordicTrack/iFit equipment into a standard Bluetooth FTMS peripheral for third-party apps

  39. OpenRide★ 11 · active · GDScript

    Subscription-free app for the Peloton Bike that plays free classes while reading the bike's sensors

  40. rides★ 11 · dormant · Go

    Command-line client for the Peloton API

  41. echelon-bike★ 10 · dormant · C

    Reverse-engineered Echelon bike BLE protocol with nRF5 firmware

  42. Zword_ZwiftRide-to-BLE-Keyboard★ 10 · slowing · C++

    ESP32 project that turns Zwift Ride controller button presses into BLE keyboard input

  43. GameControllerForZwift★ 9 · active · C#

    Uses standard game controllers to send Zwift Play-style inputs to Zwift

  44. FreeFitness★ 8 · active · C++

    Re-broadcasts Keiser M-series bike BLE data as ANT+ profiles

  45. Hyperborea★ 8 · active · Kotlin

    Android app bridging NordicTrack/ProForm (ICON Fitness) equipment to Zwift and other FTMS apps

  46. M3iPiZeroW★ 8 · dormant · JavaScript

    Translates Keiser M3i broadcasts into standard Bluetooth fitness services on a Pi Zero W

  47. ts-tonal-client★ 8 · active · TypeScript

    TypeScript client for Tonal account and workout data

  48. iFitJava★ 7 · dormant · Java

    Java implementation of the iFit treadmill audio-chirp control protocol

  49. Tacx-Virtual-Shifting★ 7 · active · C++

    Adds virtual shifting to legacy Tacx smart trainers that lack the vendor firmware update

  50. TreadmillSync★ 7 · dormant · Swift

    Syncs workout data from LifeSpan treadmills to Apple Health

  51. Peloton★ 6 · slowing · Jupyter Notebook

    Walk-through of the onepeloton.com private API

  52. tonal-api★ 6 · active · Python

    Unofficial Python toolkit, CLI and MCP server for the Tonal smart cable machine API

  53. walkingpad-controller★ 6 · active · Python

    Python library for KingSmith WalkingPad over BLE, supporting FTMS and proprietary WiLink protocols

  54. KeiserKit★ 5 · dormant · Objective-C

    iOS library for decoding Keiser M3i exercise bike BLE broadcasts

  55. tpv-zclick★ 5 · slowing · Python

    Lets Zwift Click controllers drive TP Virtual and IndieVelo

  56. Arduinifit★ 4 · slowing · C++

    Arduino firmware that drives an iFit ProForm Pro 5000 treadmill without the iFit console

  57. echelon-connect★ 4 · active · Dart

    Reads basic metrics from Echelon EX-3 bikes over their proprietary BLE protocol

  58. hass-pitpat★ 4 · active · Python

    Home Assistant integration for PitPat walking treadmills over BLE

  59. Keiser2Garmin★ 4 · dormant · Monkey C

    Garmin Connect IQ app that records Keiser M3 bike BLE broadcasts

  60. zwift-virtual-shifting★ 3 · active · Python

    Virtual shifting for Wahoo KICKR V5 using Zwift Click controllers in any app

  61. echelon-ftms-bridge★ 2 · active · C++

    ESP32 bridge that converts the Echelon rower's proprietary BLE protocol to standard FTMS

  62. nordictrack-ftms-bridge★ 2 · active · Java

    Runs a Bluetooth FTMS treadmill bridge directly on the NordicTrack/iFit Android console

  63. nordictrack_t5★ 2 · active · C

    ESP32 bridge for the proprietary iFit I_TL BLE protocol of NordicTrack treadmills to MQTT/Home Assistant

  64. T618-FTMS-Bridge★ 1 · active · C++

    ESP32 bridge from the Nautilus T618 treadmill's proprietary BLE protocol to FTMS

  65. ehealth-ble-poc★ 0

    Reverse engineering of the eHealth BLE app for the SportsTech ES600

  66. fitpro-ftms-bridge★ 0 · active · Kotlin

    FTMS bridge for iFit/FitPro exercise bikes such as the NordicTrack S15i and S22i

  67. jlauth-reverse-engineering★ 0

    Reverse engineering of the device handshake in the ZRun treadmill Android app