A simple web-based BLE remote for Yesoul walking pad treadmills. One page, no app install, no account required.
Chrome only (macOS, Windows, Android). Safari, Firefox, and iOS browsers are not supported — they lack Web Bluetooth API.
Built as a replacement for a broken physical remote. Opens in Chrome, connects via Bluetooth, and gives you Start/Stop/Speed controls with big touch-friendly buttons.
Speed calibration is tuned for Yesoul W2 (non-standard BLE speed resolution). Other FTMS treadmills may work but might need calibration adjustment — see Speed Calibration.
- One-click connect via Web Bluetooth (Chrome)
- Preset speeds: 1.0 / 1.5 / 1.8 / 2.5 / 3.0 km/h (auto-starts the treadmill)
- Fine control: +/- buttons with 0.1 km/h step
- Live speed display from treadmill data (BLE notify)
- Auto-reconnect on page reload (no re-pairing needed)
- Dark theme, large buttons (designed for use while walking)
- Diagnostics panel: GATT services, hex BLE log, connection state
- Workout history: session log stored locally in browser (duration, distance, avg speed)
- Mobile-friendly: works on phone screens too
- Yesoul W2 walking pad (FTMS protocol with non-standard speed resolution)
- Chrome on macOS (MacBook Pro M4 Pro)
Should work with other FTMS-compatible treadmills. Speed calibration may differ per model (see Speed Calibration below).
Open https://pistoganza.github.io/walkpad-remote/ in Chrome.
git clone https://github.com/pistoganza/walkpad-remote.git
cd walkpad-remote
python3 -m http.server 8092
# Open http://localhost:8092 in Chrome- Turn on the treadmill (step on the belt or press the power button)
- Wait 5 seconds for Bluetooth to initialize
- Open this page in Google Chrome
- Click "Connect Treadmill" and select your device from the popup
- Done! Use preset buttons or Start/Stop to control the treadmill
Important: Do NOT pair the treadmill through System Settings. Web Bluetooth handles the connection. If already paired, remove it from Bluetooth devices first.
| Browser | Status |
|---|---|
| Chrome (macOS, Windows, Android, ChromeOS) | Supported |
| Edge, Opera | Supported |
| Safari (macOS, iOS) | Not supported |
| Firefox | Not supported |
Web Bluetooth requires HTTPS or localhost.
The Yesoul W2 uses a non-standard speed resolution. Instead of the FTMS standard 0.01 km/h per BLE unit, it uses 0.006 km/h per unit (a 0.6x factor).
If your treadmill shows different speeds than the app, you can adjust the SPEED_RES constant in index.html:
// Standard FTMS: 0.01
// Yesoul W2: 0.006
const SPEED_RES = 0.006;To find your treadmill's factor:
- Connect and set speed to any value
- Compare the app display with the treadmill display
- Calculate:
SPEED_RES = treadmill_display / (ble_value) - Open Diagnostics to see raw BLE values
Uses FTMS (Fitness Machine Service) — a Bluetooth SIG standard for fitness equipment.
| Characteristic | UUID | Purpose |
|---|---|---|
| Control Point | 0x2AD9 |
Send commands (start, stop, set speed) |
| Treadmill Data | 0x2ACD |
Live speed, distance, time (notify) |
| Speed Range | 0x2AD4 |
Min/max speed, step |
| Machine Status | 0x2ADA |
Running/stopped state (notify) |
If your treadmill doesn't support FTMS, the app will detect it and show raw BLE data in the Diagnostics panel for reverse engineering.
MIT