Skip to content
Ashcon Mohseninia edited this page Nov 29, 2019 · 2 revisions

Mercedes Canbus project

Cars supported

  • W203
  • W211 (Untested but should work)
  • W209 (Untested but should work)

Reasons for including the W211 and W209 is that their instrument clusters are cross compatible with the one found in the W203, so the canbus networks should in theory be identical in all 3 car models.

Project overview

This is a hobby project I'm doing to give some extra functionality to my W203 CDI. Using an Arduino it is possible to interpret messages running over Canbus, and even send out our own messages to various components on Canbus, in order to give the car extra features!

Custom control of the AUDIO Page on cluster display

This was the main feature of this project. Below are the controls whilst on the Audio page

When in normal mode

Normal mode is when the current track is displayed on the instrument cluster, showing what song is playing on an Android phone

  • Up Arrow -> Next track
  • Down Arrow -> Previous track
  • Telephone answer -> Launch diagnostic sensor mode (Shows various sensor data from the car)
  • Long hold Telephone answer -> Invoke digital assistant on phone (OK Google)
  • Long hold Telephone decline -> Close digital assistant if not already dismissed

When in diagnostic sensor mode

In this mode, the text on the screen will show various metrics of various sensors found over CANBUS

  • Up Arrow -> Show next sensor
  • Down Arrow -> Show previous sensor
  • Telephone decline -> Exit diagnostic mode and return to normal mode

Diagnostic sensor mode

Currently, the following metrics are supported, and can be cycled through using the Up/Down arrow:

  • Speed (MPH)
  • Engine RPM
  • Engine coolant temperature
  • Engine Torque (NM) ESTIMATE
  • Engine BHP ESTIMATE

About BHP / Torque calculations

Currently, Only using RPM of engine, weight of the car and Speed differences to estimate these readings. So it may not be 100% accurate!

The following sensors can be accessed but currently have not been programmed into the UI (AKA TODO):

  • Torque reading (Calculated based on RPM + HP)
  • HP reading (Calculated using acceleration and weight of the vehicle)
  • Interior temperature sensor
  • Transmission oil temperature
  • Current gear of transmission (when in sport / comfort mode)

The following sensors can be accessed via ODB2 interface via CANBUS C:

  • Boost pressure / vac
  • Oil temp
  • Fuel rail pressure
  • All other ODB2 PIDS

Possible features that Could be implemented but haven't programmed yet

  • Automatic roll up of windows when car is locked
  • Possibly create open source Xentry - As we have access to Can C and Can B, it should be possible to enter diagnostic mode and request data that only Xentry does currently like Injector calibration and transmission learning values
  • Automatic folding and unfolding of mirrors when car is locked / unlocked
  • Displaying data from Google Maps on the NAVI Screen (Ditch the current AUDIO Unit and use Google maps for navigation data)
  • Drawing vector images on the IC display (We can do this in KWP2000 mode but its VERY Slow (10 pixels/sec)

Future possible unreachable plans for this project:

  • Use a 2G SIM + Modem to create a Connected Car Concept (Sending SMS from App to car to do things like sound horn, flash lights etc), combine it with a GPS module to get full GPS Data from the car LIVE.