How andreibaw/honda_k-line_kwp2000 works
This firmware is a Honda motorcycle ECU diagnostic interface for ESP32-S3. A browser connects to the device-hosted web app, selects a mode or sends settings, and the network service dispatches commands to the application controller. The controller directs K-Line polling; ECU data is used for live display, table inspection, and gear calculation, then broadcast to browser clients or rendered on the optional OLED. The README documents configurable polling, Wi-Fi management, and offline OLED operation. Some subsystem behavior is represented from README or declarations because its implementation was not sampled.
Main entry points: AppController.cpp Application controller · NetworkService.cpp Network service · HondaKWP2000.cpp KWP2000 polling · OledManager.cpp OLED display
Components 15
Web interface
- Web UI
data/app.js - Hosted web assets
data/index.html - Network service
src/NetworkService.cpp
Application control
- Application controller
src/AppController.cpp - System status
src/SystemStatus.cpp
ECU diagnostics
- KWP2000 polling
src/HondaKWP2000.cpp - Gear calculation
src/GearCalculator.cpp - Table viewer
src/HondaKWP2000.cpp - Gear calibration settings
src/GearCalculator.cpp
Display and status
- OLED display
src/OledManager.cpp - OLED preferences
src/OledManager.cpp
Other components
- Rider / browser
- Honda motorcycle ECU
- Wi-Fi access point
- Device preferences
Connections 20
- Rider / browser → Web UI: uses
- Web UI → Network service: sends commands
- Network service → Application controller: dispatches messages
- Application controller → Network service: broadcasts updates
- Network service → Hosted web assets: serves assets
- Network service → Wi-Fi access point: joins
- Application controller → System status: starts tasks
- Application controller → KWP2000 polling: sets polling mode
- KWP2000 polling → Honda motorcycle ECU: exchanges KWP data
- KWP2000 polling → Application controller: signals new data
- Application controller → KWP2000 polling: reads snapshots
- Application controller → Gear calculation: calculates gear
- Application controller → Gear calculation: records ratios
- Application controller → Table viewer: selects table
- Application controller → OLED display: updates display
- OLED display → KWP2000 polling: reads live data
- OLED display → OLED preferences: persists settings
- Gear calculation → Gear calibration settings: loads and saves ratios
- Gear calibration settings → Device preferences: uses preferences
- OLED preferences → Device preferences: uses preferences