[MTCD  Android Head Units Q&A] UKSFM99:
This has been a little lockdown project for myself.

DISCLAIMER: I am not responsible for ANY distractions caused by the shiny new interface, or any bricking of peoples tablets caused by flashing a custom ROM!

For those who don't know, MBUX is the new UI design language that Mercedes uses in the W205 models and up.

I decided to have a go at porting the interface to my MTCE tablet, using assets pulled from reverse engineered cluster firmware for the W213 E class.

Currently, this application works as a new home launcher, being the exclusive application running on the device. There is no way to browse other applications currently (I need to integrate that into the interface), however, it decodes data from CANBUS, and displays a TON of information!

Limitations currently (Early developement)

1. Volume controls and brightness doesn't work. We are bypassing the stock headunit canbus decoder box! (Reasons below)

2. The app will crash on first launch due to USB permissions

Current data shown on interface

1. Fuel data (Consumption per second, Average + Current MPG)

2. Transmission status for 722.x transmissions - Gears, oil temp, Torque converter status and more

3. Climatronics data (Get to see interior and exterior temps, as well as current fan speed, AC work load, Refrigerant pressure, flap statuses)

Future additions

1. Sending track data to Instrument cluster display - full name supported, as well as play duration

2. Phone support on IC display (Show current caller name, as well as call duration)

3. LOADS more sensor data - I have full access to every module on the cars as well as all the messages on canbus and their containing data!

4. Possible 0-60 lap timer?

5.

Why bypass the stock canbus box?

1. The stock decoder box with headunits spam data to the instrument cluster. I've reverse engineered the cluster protocol in these cars, so i can display a lot more text on the display!

2. The stock decoder box triggers the headunit to force show the reverse screen when the car is in reverse. I want the app to be in control of what happens, not the headunit.

3. The arduino required for this project talks to BOTH Canbus C and B, so no need for the headunits own box (Which i found out was filtering data)

What you'll need to try it

1. Malysk ROM installed (Root is required to run it, and Malysk has WIFI ADB debugging enabled for ease of development!)

2. Arduino Uno with 2x CANBUS shields (We will bypass the Headunits own canbus box for our own!

3. Suitable wires for running the Arduino to the 2 CAN systems on the car (see below)

Installation

1. Connect your Arduino to CANBUS C. I have 2 wires running to behind the instrument cluster. These plug into the 2 green wires on the cluster harness (Green is CAN L, Green+White is CAN H):

2. Connect your Arduino to CANBUS B. I have 2 wires running to the hub connector, accessible by removing the panel on top of the driver's pedals. (Brown is CAN L, Brown+Red is CAN H)

3. Connect your Arduino to a laptop, and upload the code found in UNO_CODE in the code repository

4. Connect the Arduino to the headunit with a USB cable.

5. Compile and upload the APK to the headunit, and choose "MERCEDES UI" as your new home screen.

6. Enjoy!

Code repository: https://github.com/rnd-ash/MBUX-Port