Giter Site home page Giter Site logo

rnd-ash / mbux-port Goto Github PK

View Code? Open in Web Editor NEW
136.0 22.0 29.0 33.27 MB

Custom Infotainment UI for older Mercedes vehicles (2000-2007), inspired loosely by the 2021 S Class MBUX UI

C++ 9.22% C 2.00% Kotlin 75.57% Java 7.60% CMake 1.78% Python 2.10% Makefile 1.71%
canbus mercedes android kotlin java arduino w203 w211 w209 w219

mbux-port's Introduction

MBUX-Port

Project

A hobby project of mine to get MBUX working on my W203 Mercedes, using an android tablet made by XTRONS to run the UI, with an Arduino linked to both CAN C + B as a decoder and encoder box, encoding can frames as Serial and sending them to the android tablet over USB Serial. It can even make the car run DOOM

This series goes through the entire installation progress, as well as docmenting some stages you can go through to add features or change features yourself!

What works?

Currently, I have been able to process and de-code every can frame on the cars bus, allowing for reading and writing any possible valid frame to the cars ECU network.

UI Wise, it is still in early development, but allows for showing some interesting metrics that are not avaliable over ODB2

What cars are supported?

I've only tested on my W203 C200 CDI, but in theory, any W203/211/219/209 should work as their underlying CANBUS architecture is the same

What you'll need

  • Android headunit - preferably rooted
  • Arduino Uno
  • Canbus shields (2x). Each MUST have a 16Mhz clock
  • Wires to run from the back of the cars IC to the Arduino (Located in the glovebox)
  • Serial - USB cable for Arduino

Directory overview

  • UNO_CODE - Code for Arduino uno. See README within the folder for more details
  • app - Code for android application

Useful files

  • parse_dat_v3.py - Processes data files from XSMonitor into CAN descriptor files
  • db_converter.py - Converts files generated by parse_dat_v3.py into Kotlin object classes

mbux-port's People

Contributors

rnd-ash avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

mbux-port's Issues

Working with one shield

Hello,
Sorry if this isn't the correct place to make a question, isn’t an issue.
Today I have received two CAN bus shield. Lamentably one of them are clearly broken. It is possible to test the Arduino code and app with only one shield?
I am not an Arduino expert but I tried to analyzed the code in order to answer me that question. I have a doubt, perhaps a basic doubt about CAN bus shield:
Readme file says
_"## Connections
I have Set the CS Pins on my CAN C Module to Pin 5, and CAN B Module to Pin 4. Feel free to change these in code:..
// Change these 2 defines if your CS pins are different
// They CANNOT be the same
#define CANB_CS 4
#define CANC_CS 5
"

But seeing the BUS shield board it seems that the pins 4 and 5 are not connected to any component. How the code chooses the correct CAN with each shield? How the code knows that the upper shield is CANB and lower shield is CANC? Do shields need any configuration? or how I can connect one or both to Arduino UNO?
Thank you very much in advance for your help

Object TPM_A1 (ID 0x02FF) makes app crash

Hello,
When calling object TPM_A1 (from Can bus B of 203 C-Class), application always crash.
For example, adding TPM_A1.toString() to display tire pressure monitoring data makes app crash when opening display
Issue does not occur when calling other objects like EZS_A6

Adress 0x000C offset 25 len 1

HI
I don’t know if I am doing thing right.
After read my CAN (B) I have a log about 30 seconds, I think enough to see the data.
Analyzing the data received from CAN 0x000C I read the offset 36, length 4 in order to check the language. The data[4] is 0xF4 (dec 244;bin 11110100) seeing the last 4 bits (0100 = dec4=Spanish), therefore, it is correct.
This meaning that I have reading OK.
But when I read the bit offset 25 (data[3] from the same Id) the value is 0x40 (dec 64;bin 01000000), I was very surprised because the value of the offset 25 is “1”. I understand that the “Mirror folding in with vehicle locking” is activate but it is not not active in my car. I understand that this bit is “1” when you close the car, the mirrors are folder automatically, and when the car is open, the mirrors are unfolder. In my car I can folder the mirror electrically but push a button. For me, this function is interested to have active.
Is this address bad documented? Or What is my error?
Thank you very much in advance.

App crahs in Android 8.1 setting in Spanish

Hello

I tried to run the app in a tablet with Adroid 8.1 set in Spanish language. The app start but in one second crashed, but when I changed the tablet language to English-Usa or Gb, the app worked.
I think that is something about regional setting (decimal separator, I think), But I am not able to find where the problem is.
Thank for your help.

CAN crazy

Hello again
At the end yesteday i could connect the Arduino + CAN Bus shield to my Mercedes W203. As I have only one shield, I have made a bridge between pin 10 and pin 4 under the shield. Pin 10 is bended for no connect to Arduino UNO.
Code change to:
#define CANB_CS 4 #define CANC_CS 10
CAN Bus wires connected to the connector shield (in correct order)
Arduino+Shield connected to USB.
Shield power red led is on. RX green led flashing softly. It seems that the CAN Bus is receiving data.
App code compiled and install apk on my Android 8.1 audio car system. App crash. (Need permission to USB) Solved.
Run App again. Run OK.
TX and RX and power grenn led are fix on (no flashing). INT red led is fix on. No error to start app. Arduino is recognized. App no error.
But not, all icons from stack are on, fan switch off, no light, no claxon, nothing work, stack screen says SRS Error...
I disconnected the wires CAN Bus from the shield and all comeback to work again. (Breath)
I review all Arduino-shield connections, welding, wire, continuity, etc, and it seems be OK, and reload the Arduino code but all is the same, CAN Bus crazy.
Tested with other tablet (not connected to car) but Android 5.1. All the same (lights on) but the car CAN Bus is not crazy. But nothing happen. TR and TX text in app remaining 0. If chcek some of screen linght TX change to 0,1.
Shield is CAN-BUS Shield V1.2 manufactured by Diymore and has 16MHz. As I can see in your video is the same but this board is in black color. CAN Bus wires are CANB_L & CANB_H which arrived to the old Mercerdes 20 Sound System in order to send messasjes to LCD stack (name of rardio station or track form CD-ROM)

That could be happening?
Thank

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.