Runmate
Local Run Tracker · Self-hosted
Demo: mathis / runmate123
Runmate
Local Run Tracker
MB
Mathis Bossuyt
Pi IP Address
192.168.1.42
Bluetooth Connected
Motion Idle
MariaDB OK
Light mode
Runmate

Live Status

● Session Active
🔵
ESP32 connected via Bluetooth
MAC: E8:DB:84:A2:3F:11 · last ping 0.3s ago
00:27:14
⏱ Pace
5:42
/km · ▼ 0:08 avg
🦶 Steps
3,847
IMU · MPU-9250
📍 Distance
4.72
km · target 10 km
⛰️ Altitude
38
m · BME280
60%
Weekly Goal
36.4 / 60 km this week
🌡️ Temperature
14.2°C
🦵 Cadence
178 spm
📊 Pressure
1013 hPa
🔵 BT Signal
–72 dBm
Live Pace + Altitude — rolling 30s
● Streaming
📡 GPS Track
NEO-M8N
51.054°N 3.404°E
Base Station
🔍
RCWL-0516 Motion
No motion detected
RFID activates on detect
📶
RFID-RC522
Waiting for shoe scan…
—
Idle

Run History

Total Distance
284.6
km · last 90 days
Total Runs
41
avg 3.2× / week
Best Pace
4:51
/km · June 3
Elev. Gained
3,820
m cumulative
Weekly km by surface — last 12 weeks
Compare:
Recent Sessions
Click to expand map · Shift+click to compare

Shoe Tracker

RFID Auto-Detection Active
Hold a shoe with its RFID tag near the scanner. The Pi identifies it automatically and updates mileage after each Bluetooth sync. After every run you can log the terrain surface — Runmate weights shoe wear accordingly.
Wear Index Comparison
⚖️ Terrain Wear Factors
🏙️
Asphalt
× 1.3
🪨
Gravel
× 1.1
🌿
Grass
× 0.7
🌲
Trail
× 0.85

LED Matrix

WS2812B 16×16
Commands sent via FastAPI POST /matrix/*
The matrix also activates autonomously on RFID scan, weather condition changes, and dark-outside detection.
Live Preview
70%
Presets
Send Text
Autonomous Triggers
On scan: green = OK, amber = wear soon, red = replace. Held 5s then returns to idle.
BME280 pressure below 1000 hPa triggers storm pattern. Above 1020 hPa shows sunny animation. Updated every 5 min.
After local sunset or if light drops, the matrix flashes a reflective-gear reminder for 10 seconds.

System Info

Raspberry Pi 5
IP Address192.168.1.42
CPU Temp48.2 °C
CPU Usage12.4 %
RAM Used1.1 / 8 GB
Disk Used14.3 / 64 GB
FastAPIRunning :8000
Socket.ioActive
MariaDBOnline
ESP32 Tracker
TransportBluetooth LE
MACE8:DB:84:A2:3F:11
GPSu-blox NEO-M8N
IMUMPU-9250 9-axis
Baro/AltBME280
BatteryLiPo 74%
Vibration MotorCoin · Armed
OLED Display Message (Pi)
Current: 192.168.1.42
Shutdown Raspberry Pi
Sends a graceful halt via FastAPI POST /system/shutdown. Ensure all run data has been written to MariaDB first.
Weekly Goal
Add New Shoe
📶
Hold shoe near RFID scanner
Place the RFID tag (in the shoe sole) against the RC522 reader on the Pi base station
Waiting…
Log Terrain
What surface did you mainly run on today?
Last run: 8.2 km · 47:12 · Nike Pegasus 40
🏙️
Asphalt
Wear factor × 1.3
🪨
Gravel
Wear factor × 1.1
🌿
Grass
Wear factor × 0.7
🌲
Trail
Wear factor × 0.85
Compare Runs