Project in progress
Custom Car Infotainment System for Old Mercs

Custom Car Infotainment System for Old Mercs © GPL3+

Custom car infotainment system with Arduino and Android head unit, interacting with the car over CAN BUS.

  • 5,287 views
  • 0 comments
  • 11 respects

Components and supplies

Ph a000066 iso (1) ztbmubhmho
Arduino UNO
×1
10039 01
SparkFun CAN-BUS Shield
2x for both CAN B + CAN C (16Mhz oscillators are REQUIRED...do NOT use the 8mhz oscillators)
×2
Adafruit industries ada260 image 90px
USB-A to Mini-USB Cable
×1

Apps and online services

About this project

This project was inspired by the 2020 S Class UI (MBUX)Originally, I wanted a replacement infotainment system for my car (An old W203 Mercedes Benz). So I bought an Android head unit (XTRONS Quad core Rockchip unit)Initially I was happy with the fact it had bluetooth (Stock radio required an MP3 cable for AUX), however I was unhappy with the interface on it. Inspired by the 2020 S class MBUX UI, I decided to write a custom Android app for it, which reads and writes CAN BUS frames to both networks of the vehicle (CAN C and CAN B)

This has allowed me to effectively control various features about my car, and read tons of sensor data that is normally not available via the ODB2 port.

Compatibility
This project (code base), will work with the following Mercedes models (due to CAN ECU architecture being the same:

  • W203 (C class)
  • W211 ( E class)
  • W209 (CLK class)
  • W215 (CL class)
  • W221 (S class)

To obtain what data is within my cars CAN Frames, I managed to reverse engineer the DAT file format Mercedes uses in DAS/Xentry for CAN BUS simulation. You can find the decompiled data here for my CANB network:

https://github.com/rnd-ash/MBUX-Port/blob/master/203_b.txtI then wrote another script (db_converter.py) to take this processed data and convert it to Kotlin class files for the Android app, meaning writing to CAN BUS and reading values is super easy since I don't have to do the manual bit shifting operations to extract values from the can frames, its all auto generated!

I have made a youtube series documenting the entire process and decisions I have mode during the creation of this long summer project:

As a future teaser, I am currently porting DOOM1 to the unit, using driving controls for player movement and using the lights show I created in Part 2 of the series to flash the lights based on weapon firing in game.


Code

Arduino + Android app code
Compile UNO_CODE folder and upload to Arduino board Compile android app and deploy on headunit

Comments

Similar projects you might like

Biometric Car Entry - True Keyless Car

Project showcase by Rajeev Velikkal

  • 18,676 views
  • 13 comments
  • 56 respects

Anti-Drunk Driving Car Safety System

Project tutorial by Ashwini kumar sinha

  • 8,872 views
  • 4 comments
  • 10 respects

Arduino 4WD RC Car

Project tutorial by Andriy Baranov

  • 58,744 views
  • 19 comments
  • 113 respects

Bluetooth Controlled Car

Project tutorial by Aniket Mindhe

  • 20,358 views
  • 7 comments
  • 25 respects

PlayStation Remote Controlled Wireless Car

Project showcase by Jasmeet Singh

  • 13,715 views
  • 6 comments
  • 25 respects
Add projectSign up / Login