BikeNav_C3 ist ein minimalistisches, Bluetooth-basiertes Head-Up-Display (HUD) für Fahrräder, basierend auf dem ESP32-C3 und einem 1.28" Rund-Display (GC9A01).
Das BikeNav_C3 verwandelt dein Smartphone in ein diskretes Navigationssystem. Anstatt während der Fahrt ständig auf das Handy am Lenker schauen zu müssen, liefert das HUD präzise Richtungsanweisungen direkt in dein Sichtfeld. Es ist ideal für:
- Sicheres Radfahren: Fokus bleibt auf der Straße, nicht auf dem Smartphone-Display.
- Minimalistisches Cockpit: Kein klobiges Handy am Lenker, sondern ein elegantes, rundes Display.
- Wetterunabhängigkeit: Das Display ist auch bei direkter Sonneneinstrahlung gut ablesbar.
![]() |
![]() |
![]() |
Das Herzstück des Systems ist die Kopplung mit der Android Bridge App TTS2BluetoothSerial. Diese fungiert als intelligentes Bindeglied zwischen dem Smartphone und dem HUD:
- TTS-Schnittstelle: Die Bridge App nutzt die Sprachausgabe (Text-to-Speech) des Android-Systems und wandelt diese in Echtzeit in visuelle Befehle für das Display um.
- Getestete Kompatibilität: Das System ist unabhängig von der genutzten Karten-App. Es wurde erfolgreich getestet mit:
- Organic Maps (und deren Forks)
- OsmAnd
- Allen Navigationssystemen, die standardisierte Android-Sprachanweisungen nutzen.
- Echtzeit-Navigation: Anzeige von Abbiegehinweisen (Icons), Distanzen und Straßennamen.
- Smart Preview: Vorausschauendes Icon für den darauffolgenden Manöver-Schritt ("Danach links").
- Dynamische Distanzberechnung: Automatisches Herunterzählen der Meter basierend auf der aktuellen Geschwindigkeit (
SPD-CALC), auch wenn die App gerade keine Daten sendet. - Intelligentes UI:
- Startscreen mit MAC-Adresse zur einfachen Kopplung.
- Farbliches Feedback bei kritischen Distanzen (Orange-Alarm bei < 30m).
- Gestensteuerung: Helligkeitsregelung und Display-Rotation (0-270°) per Touch-Geste am Display.
- Controller: ESP32-C3 (RISC-V).
- Display: 1.28 Zoll Round-LCD, 240x240 Pixel, IPS.
- Touch: Kapazitiver CST816S Controller.
- Kompatibilität: Der Code ist für das ESP32-2424S012 Display (häufig auf AliExpress zu finden) oder ähnliche GC9A01-basierte Displays anpassbar.
- Vorbereitung: Installiere PlatformIO (als VS Code Extension).
- Kompilieren & Flashen:
- Verbinde den ESP32-C3 via USB.
- Öffne das Projekt in VS Code.
- Nutze den "Upload"-Button in der PlatformIO-Leiste.
- Die
platformio.inikonfiguriert automatisch die notwendigen Bibliotheken (GFX Library,NimBLE,CST816S).
- Überwachung: Öffne den Serial Monitor (Baudrate: 115200), um den Boot-Vorgang und BLE-Status zu sehen.
- Starte die Android Bridge App.
- Suche nach "BikeNav_C3".
- Sobald verbunden, zeigt das Display den Navigations-Screen.
Letzte Aktualisierung: 2023-10-27
Das System folgt einem ereignisgesteuerten Datenfluss:
-
BLE-Kommunikation:
- Das Gerät fungiert als BLE-Server.
- Eingehende Nachrichten werden über den
NimBLE-Stack empfangen. - Wichtig: Gemäß der Verbosity Rule wird jede empfangene Nachricht zur Diagnose im Serial Monitor ausgegeben.
-
Datenverarbeitung:
- Die empfangenen Strings werden geparst (siehe
src/logic.cpp), um Icons, Distanzen und Straßennamen zu extrahieren. - Die
SPD-CALCLogik berechnet bei fehlenden Daten die Distanz basierend auf der letzten bekannten Geschwindigkeit.
- Die empfangenen Strings werden geparst (siehe
-
Rendering:
- Das UI wird über die
GFX Libraryauf dem GC9A01 Display gerendert. renderStartScreen(): Zeigt den Verbindungsstatus (Blau = Verbunden, Rot = Getrennt).renderNavScreen(): Aktualisiert dynamisch die Navigationsanweisungen.
- Das UI wird über die


