TL, DR;
- I built a custom DIY driver display for the EX30 BEV using a Raspberry Pi and a companion AAOS app.
- The project is fully open-source and free for anyone who wants to build their own setup.
- It is a hobby project—all setup guides, requirements, and hardware details are documented in the repository linked at the bottom of this post. Any feedback is welcome!
Hey everyone! A few months ago, I discussed my plans to create a dedicated driver display for my EX30. After a month of real-world testing and bug fixing, the project is stable enough to share with the community.
AAOS Development Path
My initial goal was to get everything strictly via OBD-II readings, but mapping and cross-validating the correct DIDs was tough. I decided to pivot and leverage the Android Automotive OS (AAOS) platform instead.
I built a companion app, cross-validated data using Volvo’s official EX30-AAOS emulator, and tested it on my own vehicle. Massive credit to Volvo for providing a solid emulator—it streamlined development significantly.
The EX30 Companion App forwards essential telemetry directly from the vehicle’s head unit to the external display:
- Speed & Power Output
- State of Charge (Battery Level)
- Ignition Status, Gear Selection, Night Mode, etc.
Note on App Availability: The app is currently distributed via Google Play's testing track. Complete instructions on how to join the test build are available directly on the GitHub repo.
OBD Path Integration
While AAOS gave me most of what I needed, a few parameters like exact odometer data, brake status, and min/max battery temperatures required direct CAN/OBD access.
To bridge this gap, I captured btsnoop logs via a standard Bluetooth dongle and an Android scanner app. Cross-referencing timestamp logs with video recordings allowed me to quickly isolate the target DIDs and init sequences to pull those extra parameters.
UI & Iterations
Designing the user interface was the trickiest part. I started with a rough "vibe coded" prototype to get real-time data rendering. Over time, I iterated to add derived telemetry like trip statistics.
To refine the visual layout into something clean and modern, I utilized Claude Pro (Fable 5) to help generate and polish the UI concept. The result is a sleek, driver-focused interface that fits the EX30's aesthetic.
Next Steps & Hardware
Right now, the Pi and display assembly are mounted temporarily behind the steering wheel. I'm currently modeling a custom 3D-printable enclosure to neatly house the screen and board together. Once the design is finalized and tested, I'll upload the STL files directly to the repository!
Repository & Setup Guide:
You can find the source code, hardware list, and setup instructions on github repository