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.

v0.1 Done

Fake animated data on 0.96" OLED

Display layer smoke-test on the cheapest possible hardware. Done on the bench.

v0.2 Waiting on parts

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.

v0.3 Waiting on parts

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.

v0.4 Pending

Real OBD2 data (Bluetooth ELM327) on ILI9488 TFT

Combines v0.3 UI with v0.2 Bluetooth ELM327 data layer. Validates the display/data separation.

v1.0 Pending

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.

v1.1 Pending

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.

v2.0 Future

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.