Skip to content

BixiSG/walkpad-explorer

Repository files navigation

Walkpad Explorer

Walkpad Explorer — a homebrew app for my walking pad

latest release last commit MIT license

A homebrew web app for the KingSmith WalkingPad.

I went looking for a decent app to use with my pad and found basically nothing — the manufacturer's app is bad, the community ones are abandoned. So I built this for myself: a browser dashboard that talks to the pad over Bluetooth, runs workouts, keeps stats, and stores everything locally. Sharing it in case it's useful to anyone else.

No backend, no account, no subscription. Open it in Chrome, walk.

Contents

What's inside · Install · Supported pads · How to use · Configuration · Troubleshooting · Tech · Morning coffee · Credits · Changelog


What's inside

Feature overview

Home

A personal dashboard per profile — streaks, totals, recent walks, a daily kcal ring, one big Start walking button. Two profiles ship by default (Me / GF); rename, recolor, or add more.

Home screen with stats

Workouts

10 built-in routines (recovery, fat-burn, intervals, tempo, pyramids, HIIT) — each one a real step-by-step plan with target speeds and durations. Or build your own in the editor. Or just pick "Free walk" and wander.

Workout picker

While you walk

Speed, distance, time, calories, max, pace, and the current zone (estimated from speed). Big numbers, easy to glance at from across the room. Pop-out floats the HUD as a draggable overlay if you want a video full-screen on the side.

Live walking session

AI coach (optional)

Plain English in, structured workout out. "Light cardio, 30 minutes, easy on the knees." It drafts a plan based on your recent walks, you tap Use this workout, tweak, save. Bring your own Groq key (free tier, ~14k req/day).

AI coach chat

Post-walk report

Distance, cadence, calories from your actual weight, zone breakdown, speed timeline. Stored locally and added to history.

Post-walk report

History

GitHub-style activity heatmap per profile. Total distance, total steps, sessions, kcal, streak. Sort, filter.

History view

Per-profile settings

Stride length, height/weight (used for real kcal), age, daily kcal goal, voice cues, voice control, voice gender, AI-TTS toggle, favorite YouTube URL, profile color. Tweak it, save it, done.

Profile edit


Install — 1 click

  1. Install Node.js LTShttps://nodejs.org (one-time, ~30s).
  2. Download this repo — green "Code" button → Download ZIP, or grab the latest Release. Unzip anywhere.
  3. Run it:
    • Windows: double-click START.bat.
    • macOS / Linux: bash start.sh in the unzipped folder.

The first launch installs dependencies (~30 s) and opens the app in Chrome / Edge / Brave automatically. Every launch after that is instant.

Web Bluetooth needs a Chromium-based browser on desktop. Safari and Firefox do not support it.

Supported pads

Pad Status
Xiaomi KingSmith WalkingPad R2 / R2 Pro ✅ Tested daily — this is what I built it on
Other KingSmith pads (A1 Pro, C2, P1, R1 Pro, X21, etc.) ⚠️ Not tested but should work — they share the same fe00 / fe01 / fe02 BLE service & broadly the same protocol

If you own a non-R2 KingSmith pad and want to help: open the app's BT debug screen, paste the service / characteristic dump as an issue. If anything is off, the protocol layer in src/lib/walkingpad.ts is short and easy to adapt.

How to use

Pair the pad once — Windows: Settings → Bluetooth & devices → Add device → Bluetooth → pick your WalkingPad. macOS: System Settings → Bluetooth → pair. From then on the app discovers it automatically.

Every walk after that:

  1. Pick your profile.
  2. Pick a workout (or "Free walk").
  3. Click Connect walking pad → the OS picker shows your pad → select it.
  4. Step on, start the pad as usual.
  5. End the walk when done → report saves to history.

Configuration

The app needs no keys to run. One key is optional, only for the in-app AI coach:

Key What it powers Where to enter Notes
VITE_GROQ_API_KEY AI workout coach (chat → plan) Workout → AI build → paste key, or .env Free tier ≈ 14k req/day. https://console.groq.com/keys
  • In-app (recommended for non-coders): open the AI coach from the workout picker. First time it asks for the key, stores it locally in IndexedDB, never re-asks.
  • .env file (recommended for devs): copy .env.example to .env and paste the key. The .env file is gitignored so your key stays local even after git pull or re-installs.

Both work simultaneously; .env wins if present, otherwise the in-app value is used.

Troubleshooting

Pad won't connect

Open BT Debug from the profile screen → "Scan a device" → pick your pad. Compare its services with the expected fe00 / fe01 / fe02. If different, paste the output as an issue.

Web Bluetooth not available

Use desktop Chrome / Edge / Brave / Comet. Not Firefox, Safari, iOS, or smart-TV browsers.

"No pad found" in the browser picker

The pad must already be paired with the OS and powered on. If it's been off for a while, walk on it for a few seconds to wake the BLE radio, then retry.

Tech

Stack & noteworthy choices
  • Vite + React 19 + TypeScript — plain SPA, no SSR, no framework.
  • Web Bluetooth API — no library. The pad's GATT service is implemented in src/lib/walkingpad.ts.
  • Dexie (IndexedDB) for sessions, settings, voice cache. Schema versioned (currently v8).
  • Zustand for app state.
  • Recharts for activity charts.
  • Optional Kokoro-82M for high-quality local TTS voice cues (~85 MB one-time ONNX download, cached in IndexedDB).
  • Document Picture-in-Picture API for the floating HUD overlay.
  • Web Speech API for voice control (pause / resume / faster / slower / end).
  • No backend, no analytics, no telemetry, no service worker (yet).

Morning coffee?

If this app saved you from the manufacturer's one and you feel like buying me a coffee, the jar is open. Totally optional — a star on the repo is plenty.

monobank donation QR

send.monobank.ua/jar/7Wo2uxjhdk — monobank jar (Ukraine). Scan with your phone or click the link. Any currency, any amount, no account needed on the sender side.


Credits

WalkingPad protocol reverse-engineered by:

License

MIT — see LICENSE. Use it, fork it, change it. It's a personal project, not a product.

About

Homebrew browser app for the KingSmith WalkingPad — local-first, Web Bluetooth, workouts, AI coach. No backend.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors