Direkte BLE-Verbindung zum Dongle, simultane Ausgabe auf OLED, TCP und LoRa — ohne Smartphone-Zwang und ohne proprietäre Abhängigkeiten.
Der µC sucht selbständig nach BLE-OBD-Dongles und verbindet sich automatisch. Unterstützt UUIDs 0x18F0, 0xFFE0, 0xFFF0, 0xAE30 und 0xAE3A. Bei Verbindungsverlust wird automatisch neu gescannt.
NimBLE 1.4.x · 5 Profiles5 konfigurierbare Display-Seiten. Button für kurzen/langen Druck zum Blättern und Fixieren. Helligkeit per dim 0..255 regelbar — dim 0 schaltet das Display komplett aus (SSD1306 Sleep).
Verbindet sich mit dem Heimnetz (STA) oder öffnet einen eigenen Access-Point (AP, 192.168.4.1). TCP-Port 1234. Konfiguration über eine gemeinsame wifi_config.h — ein Symlink für alle drei Module.
Nur Extended-Paket (0x03, TLV): alle aktiven PIDs mit Scaling. Intervall wird automatisch aus echter Airtime berechnet (Semtech-Formel, 1% Duty Cycle DE/EU). Config-Paket (0x02): SF/Region/Power-Sync.
868 MHz · SF7 · SX1262 · DC-konformGemeinsame pid_registry.h/.cpp für Bridge und Receiver — verhindert Sync-Fehler. PID-Tabelle mit Prioritäten (HIGH/MED/LOW), Gruppen und Capability-Bits. Blind-Scan automatisch.
Tkinter-Dashboard mit 4 Styles (F1, Sci-Fi, Aviation, Luxury). Verbindet sich direkt mit Bridge (--bridge) oder Receiver. Polling läuft auf der Bridge unabhängig von TCP-Verbindungen durch.
ESP32 Task-Watchdog mit 60s Timeout in der Bridge. Loop-Reset verhindert Einfrieren. Wird bei Button-Wartezeiten und BLE-Scan-Wartezeiten explizit zurückgesetzt.
esp_task_wdt · 60sVollständig simulierte OBD-Werte für Test und Entwicklung ohne Fahrzeug. OLED, TCP-Live-Stream und LoRa laufen durch. Die Motor-PIDs werden realistisch simuliert.
demo · live on · LoRa TXIdentisches Textmenü über TCP (Port 1234) oder seriell (115200 Bd). Telnet-kompatibel (IAC-Filter). Vollständige Befehlsreferenz via help:
BLE: scan · disco · info
PID: pid list · pid status · pid scan · pid enable/disable <grp/id/all> · pid blind on/off · pid interval · pid profile fast/full/custom
DTC: dtc · cleardtc
Poll: poll <ms> · poll status
Live: live on/off
Display: next · prev · page N · pagetime N · pagelay R S · dim N · beep on/off/ack
LoRa: lora status · lora sf7..12 · lora de/int · lora pw<N>
CTRL: ctrl beep on/off/ack/pulse D N · ctrl gpio PIN [VAL] · ctrl ping
GPIO: gpio PIN · gpio PIN 0/1
System: demo · debug · version · reboot
ESP32 WROOM-32 + MCP2515 (CAN-Controller) + TJA1050 (CAN-Transceiver) simulieren ein Fahrzeug-ECU via CAN-Bus. Sendet ab Boot automatisch BSC/EXT-Live-Pakete (live off zum Abschalten). Web-Interface zum manuellen Setzen aller Werte.
obd_identify.sh erkennt automatisch welches Modul an welchem USB-Port hängt und gibt einen fertigen Flash-Befehl aus. obd_flash.sh kompiliert auf PC1 und flasht auf PC2 via SSH — mit Build-Zeitstempel im Binary.
Jedes Binary enthält Build-Zeit und Quell-Stand als Compiler-Defines. Abrufbar via version oder im status-Output — so ist immer klar, welcher Code-Stand geflasht ist.
Statischer Piezo-Beeper direkt an GPIO 48 des Heltec LoRa V3 (3,3V ausreichend). Per CLI steuerbar: beep on/off (Dauerton), beep ack (Doppelpiep). Zustand im status-Output sichtbar.
Der Receiver kann Befehle per LoRa an die Bridge senden. Befehl wird in eine Queue geschrieben und unmittelbar nach dem nächsten empfangenen Paket gesendet — die Bridge ist dann garantiert im RX-Fenster. Pakettyp 0x04 (CMD), 4 Byte mit XOR-CRC.