Roadmap
From OLED smoke-test to hardwired CAN bus
Each phase swaps exactly one thing from the previous one — display or data source. The code is layered so neither change has to touch both sides at once.
Fake animated data on 0.96" OLED
Display layer smoke-test on the cheapest possible hardware. Done on the bench.
Real OBD2 data via Bluetooth ELM327 on OLED
First live engine data. Bluetooth ELM327 dongle plugs into OBD2 port, pairs with the ESP32 over Bluetooth Classic SPP. No cables, no soldering, no USB-UART bridge — do NOT buy a USB ELM327 cable, the ESP32 can’t act as a USB host.
Full UI on 3.2" ILI9488 TFT with fake data
Production display comes in. Build the full dashboard UI — RPM arc, speed, boost bar — on fake data.
Real OBD2 data (Bluetooth ELM327) on ILI9488 TFT
Combines v0.3 UI with v0.2 Bluetooth ELM327 data layer. Validates the display/data separation.
Switch to direct CAN bus via MCP2515
Replace ELM327 with an MCP2515 controller tapped into CAN-H / CAN-L. Much faster refresh, no OBD negotiation.
Hardwired install in car (CAN tap + fuse box power)
T-tap connectors behind the dash, add-a-fuse in the E81 glovebox, MP1584 buck converter for 12V → 5V.
OTA firmware updates, companion app
Device will be hardwired with no USB access, so OTA is the only way to ship updates. HTTP pull from a firmware server.