A high-performance, real-time navigation dashboard for motorcycles and bicycles. This project acts as the physical interface for the BikeNav ecosystem, receiving and visualizing telemetry and guidance data from the Android Companion app via low-latency BLE.
- Real-time Navigation: Synchronized turn-by-turn guidance with maneuver icons, distance, and ETA.
- Smart Speedometer: Integrated speed display with visual safety alerts:
- Blue: Normal speeds (< 55 km/h)
- Orange: Caution threshold (55 - 70 km/h)
- Red: Danger/High-speed threshold (> 70 km/h)
- Phone Health Monitoring: Live sync of phone battery percentage (🔋) and signal strength (📶).
- Communication Hub: Incoming call notifications with caller ID and remote accept/decline actions.
- Context Awareness: "Smart Throttling" support to maximize battery life during cruising.
- MCU: ESP32 (38-pin DevKit recommended)
- Display: 3.5" TFT with ST7796 Driver (320x480 resolution)
- Touch: Capacitive or Resistive touch controller support
- UI Framework: LVGL v8.3
TIP
Search on Aliexpress for: 3.5 inch TFT LCD 320x480 ST7796 for ESP32 OR Google for Cheap Yellow Display ESP32 (3.5 inch) to skip DIYing your own PCB or Display.
The easiest way to get started is by flashing the unified firmware file:
- Download
BikeNav_vx.x_Full.binfrom releases. - Use a web flasher like ESP Web Flasher.
- Set the flashing address to 0x0.
- Flash and Reboot.
- Install PlatformIO IDE.
- Clone this repository.
- Adjust
platformio.iniif using different pin configurations. - Build and Upload:
pio run -t upload
The system communicates via BLE using a lightweight JSON schema.
{
"nav": {
"m": "Maneuver_ID",
"d": "Distance",
"t": "ETA"
},
"speed": "65",
"bat": 85,
"sig": 4
}This project is part of a dual-component system. To function correctly, it must be paired with the BikeNavMobile companion android application.
This project is licensed under the MIT License - see the LICENSE file for details.

