The 135i track build runs a Haltech Rebel LS with the factory BMW dash still in place — speed, temps, and the usual cluster stuff all work fine. What it does not show are Haltech-side warnings: high oil temp, low oil pressure, and other fault states the ECU knows about but never forwards to the BMW cluster.
This is a small Pip-Boy-style display mounted in the driver-side vent as a second readout, fed from the Haltech CAN bus over WiFi. Same car, two dashes — factory cluster for driving, Pip-Boy for the stuff Haltech won’t put on the BMW screen.
How it works
A RaceCapture ESP32-CAN-X2 (Autosport Labs) sits on the Haltech CAN network, reads the channels I care about, and sends updates wirelessly to the display module. The screen is a separate Waveshare ESP32-S3-Touch-AMOLED-2.41 — 2.41″ square AMOLED at 600×450, capacitive touch, WiFi/BLE — running a Pip-Boy boot sequence and alert UI.
On track, if oil pressure or oil temp crosses a limit, the display flashes the warning immediately.
Boot sequence and normal operation — Pip-Boy aesthetic, real Haltech data behind it.
Display hardware
Waveshare 2.41″ AMOLED in the vent gauge pod — USB power routed through the mount.
The dev board is a Waveshare ESP32-S3-Touch-AMOLED-2.41: RM690B0 AMOLED over QSPI, FT6336 capacitive touch on I2C, QMI8658 IMU and RTC on board. USB-C for power and programming.
Dash mount
Bracket modeled around the 2.41″ AMOLED module — replaces the vent louver section and keeps airflow slots.
Square gauge pod bracket — snap-fit geometry for the E82 driver-side vent.
Separate RAM-ball adapter if you want an adjustable arm instead of the fixed pod.
Both mounts fit the E82/128i/135i driver-side top vent. RAM ball for phone or secondary gauge; pod bracket for the Pip-Boy screen.
Two 3D-printed parts, both PETG or ASA minimum for in-car heat:
| Part | Link | Price |
|---|---|---|
| E82 vent gauge square gauge pod bracket (LCD mount) | Cults3D — free STL | Free |
| E82 driver left-side vent RAM mount | Cults3D — RAM ball adapter | Paid |
The free bracket is sized for the Waveshare 2.41″ AMOLED module. The RAM mount is a vent insert with a standard RAM ball — useful on its own or combined with the pod above it.
Parts list
| Item | Notes |
|---|---|
| Waveshare ESP32-S3-Touch-AMOLED-2.41 | 2.41″ AMOLED 600×450, touch, ESP32-S3 |
| RaceCapture ESP32-CAN-X2 | Autosport Labs ESP32-CAN-X2 — dual CAN, automotive power, WiFi/BLE |
| Haltech Rebel LS | Already in the 135i — CAN source for oil pressure, oil temp, fault flags |
| E82 vent gauge pod bracket | Free STL on Cults3D — print PETG/ASA |
| E82 vent RAM mount (optional) | Cults3D listing |
| RAM arm + phone holder (optional) | Standard 1″ RAM components if using the RAM vent mount |