Skip to content

Repository files navigation

T-RGB Bike Computer

A bike computer built on the LilyGO T-RGB: a round 480×480 touch display, ESP32-S3 with BLE and WiFi, SD card, and a LiPo charger on board. It reads standard BLE bike sensors, shows turn-by-turn navigation from your phone, logs every ride to SD card and rates the road surface with its own accelerometer.

Main screen design Navigation screen design

Features

Display -- "Rim & Ridge" UI (LVGL 8, designed in EEZ Studio)

  • Main screen: speed with average marker on the outer ring, cadence, temperature, altitude, gradient, heart rate with zone band, distance, ride time/clock, driving state (pedalling / coasting / stopped / break), road-quality indicator, status icons for WiFi, GPS fix and battery
  • Navigation screen: opens by itself when the next maneuver comes close, closes after it. Shows large turn arrow, distance ring, street name, next maneuver, lane guidance and roundabout exits
  • Tap the nav pill to open it manually, swipe right to close it

Sensors

  • BLE: cycling speed & cadence (CSC), heart rate, battery level of each sensor; sensors are paired once and locked to their address
  • I²C: BME280 (barometric altitude and gradient, temperature), BMI160 accelerometer
  • Forumslader hub-dynamo charger via my BLE gateway (build variant -FL)

Navigation and GPS from the Android companion app TrailBridge, which forwards OsmAnd's turn-by-turn instructions and the phone's GPS position over BLE (protocol).

Road quality from the BMI160 at 400 Hz: roughness class per interval, shock detection (with second peak from the rear wheel), a calibration ride on smooth asphalt, and gradient from the accelerometer as an alternative to the barometer.

Logging

  • Binary ride log on SD card: ride data every 5 s incl. GPS, road quality per interval, every shock; raw accelerometer captures on demand
  • Debug log and raw Forumslader log (replayable on the device)
  • Tools/: Python CLI to convert logs to CSV and GPX (sensor data as Garmin TrackPointExtension, shocks as waypoints) and a small upload/archive service

Web interface (when on WiFi)

  • Download, replay and delete log files; live log with adjustable log levels
  • Ride statistics and charts, odometer and wheel calibration
  • Manage BLE sensors, sensor and accelerometer debug pages, calibration
  • Firmware and filesystem update over the air

Serial console with line editing, history and Tab completion: log levels, memory/stack report (mem), road-quality settings (rq), log replay.

Hardware

  • LilyGO T-RGB (the two builds differ in the touch controller variant, TRGB_ROUND / TRGB_OVAL, and in Forumslader support)
  • Optional: BME280 and BMI160 on the I²C bus
  • LiPo battery
  • 3D-printed case and handlebar mounts -- a parametric model for the Canyon CP0007 gravel cockpit is in cad/

T-RGB Bike Computer on the handlebar (older UI)

Build

PlatformIO, Arduino framework (pioarduino platform):

pio run -e trgb-esp32-s3 -t upload        # default: BLE + I²C sensors
pio run -e trgb-esp32-s3-FL -t upload     # Forumslader variant
pio run -e trgb-esp32-s3 -t uploadfs      # web interface files (data/site)

trgb-esp32-s3-ota and trgb-esp32-s3-FL-ota are the same builds, uploaded over WiFi to the device's /update endpoint. Target is TRGB-BC.local; if mDNS doesn't resolve, pass the IP: pio run -e trgb-esp32-s3-ota -t upload --upload-port 192.168.x.y

The build applies small patches to two libraries (apply_patches.py), which needs the patch tool.

Documentation

Contributions are welcome, see the roadmap for where help is wanted.

Licences and attributions

About

A bike computer using the LilyGO T-RGB devices. It supports BLE sensors for speed, cadence and heart reate and a classic Forumslader V5 bluetooth connection. Navigation hints can be received from the komoot App.

Resources

Stars

27 stars

Watchers

3 watching

Forks

Releases

Packages

Used by

Contributors

Languages