Fitness Equipment (Devices, IoT & Hardware): open-source projects that exist because someone reverse engineered a closed product, sorted by GitHub stars.
Guide to repurposing a discontinued Lululemon Mirror as a smart mirror with a replacement mainboard
All-in-one data interface for WaterRower S4 and SmartRow rowers to BLE/ANT+
Library for Tindeq, Force Board, WH-C06 and other climbing force gauges over their BLE protocols
Python controller with reverse-engineered BLE protocol for Kingsmith/Xiaomi WalkingPad treadmills
Companion app on NordicTrack/iFit consoles that exposes speed and incline to QZ (qdomyos-zwift)
WaterRower S4 adapter that exposes the Bluetooth LE Cycling Power Service
Node.js library for communicating with the WaterRower S4 monitor
Application interface and logger for the WaterRower S4 monitor
Decodes Zwift Click controller BLE messages for use outside Zwift
Exports iFit workouts to Garmin Connect via iFit's private web API
Network controller for NordicTrack treadmills via the iFit console websocket interface
Node server for the WaterRower S4/S5 USB performance monitor
An ESP32 program + desktop application for serving as a mock Kilter Board.
Bridges old Kettler USB trainers to Bluetooth LE for Zwift and other apps
Home Assistant integration for KingSmith treadmills such as the WalkingPad
Syncs iFit workout data to Google Fit using the unofficial iFit API
Qt desktop application to control the Kingsmith WalkingPad over Bluetooth
Exports personal Tonal workout data to JSON via Tonal's private API
Elite Sterzo simulator built on an ESP32 and a joystick
Arduino replacement computer for the Keiser M3 bike with standard Bluetooth services
Bluetooth LE bridge converting a Concept2 PM5 rower into a device Zwift accepts
C# code for pulling fine-grained workout data from Peloton's private API
Web Bluetooth app to control KingSmith WalkingPad treadmills without the vendor app
Home Assistant integration for monitoring KingSmith WalkingPad A1 Pro metrics over BLE
Java library for the WaterRower S4/S5 performance monitor
Reverse engineering of the Bluetooth protocol of the Domyos EL500 elliptical
ESP32 bridge that connects to WalkingPad-style treadmills over BLE and exposes them via MQTT
macOS client for Kingsmith WalkingPad treadmills
Shows target metrics in the Peloton web app with resistance converted for the Schwinn IC4
Control and reporting for LifeSpan treadmills over their proprietary Bluetooth protocol
Virtual BLE bridge that lets Domyos treadmills work with Zwift and other apps
Postman collections documenting Peloton's private APIs
R package interfacing with the unofficial Peloton API
Connects to FitShow-based treadmills (F31) to run custom programs
Node.js tool that connects to iFit treadmills over BLE and logs their proprietary messages
ESP32 emulation of the Elite Sterzo steering device for Zwift
Software-only revival of the discontinued Lululemon MIRROR fitness mirror
Turns NordicTrack/iFit equipment into a standard Bluetooth FTMS peripheral for third-party apps
Subscription-free app for the Peloton Bike that plays free classes while reading the bike's sensors
Command-line client for the Peloton API
Reverse-engineered Echelon bike BLE protocol with nRF5 firmware
ESP32 project that turns Zwift Ride controller button presses into BLE keyboard input
Uses standard game controllers to send Zwift Play-style inputs to Zwift
Re-broadcasts Keiser M-series bike BLE data as ANT+ profiles
Android app bridging NordicTrack/ProForm (ICON Fitness) equipment to Zwift and other FTMS apps
Translates Keiser M3i broadcasts into standard Bluetooth fitness services on a Pi Zero W
TypeScript client for Tonal account and workout data
Java implementation of the iFit treadmill audio-chirp control protocol
Adds virtual shifting to legacy Tacx smart trainers that lack the vendor firmware update
Syncs workout data from LifeSpan treadmills to Apple Health
Walk-through of the onepeloton.com private API
Unofficial Python toolkit, CLI and MCP server for the Tonal smart cable machine API
Python library for KingSmith WalkingPad over BLE, supporting FTMS and proprietary WiLink protocols
iOS library for decoding Keiser M3i exercise bike BLE broadcasts
Lets Zwift Click controllers drive TP Virtual and IndieVelo
Arduino firmware that drives an iFit ProForm Pro 5000 treadmill without the iFit console
Reads basic metrics from Echelon EX-3 bikes over their proprietary BLE protocol
Home Assistant integration for PitPat walking treadmills over BLE
Garmin Connect IQ app that records Keiser M3 bike BLE broadcasts
Virtual shifting for Wahoo KICKR V5 using Zwift Click controllers in any app
ESP32 bridge that converts the Echelon rower's proprietary BLE protocol to standard FTMS
Runs a Bluetooth FTMS treadmill bridge directly on the NordicTrack/iFit Android console
ESP32 bridge for the proprietary iFit I_TL BLE protocol of NordicTrack treadmills to MQTT/Home Assistant
ESP32 bridge from the Nautilus T618 treadmill's proprietary BLE protocol to FTMS
Reverse engineering of the eHealth BLE app for the SportsTech ES600
FTMS bridge for iFit/FitPro exercise bikes such as the NordicTrack S15i and S22i
Reverse engineering of the device handshake in the ZRun treadmill Android app