Code Monkey home page Code Monkey logo

w203-canbus's Introduction

Mercedes canbus project for older W203/W209/W211 cars

A proof of concept application using an Arduino and Android phone to add extra features to these older Mercedes cars by tapping into their systems via canbus.

This project is now no longer my primary project for the car

If you want to fix things, feel free to submit pull requests to this repository

If you have an android head unit in your car, feel free to checkout a much more feature rich version of this that runs on the headunit here

DEMO VIDEOS

Can be accessed via this link

Project status

So far, the project has grown well out of proportion and has ended up being a way to modernise the W203 slightly. The arduino now requires a HC-06 bluetooth module, which then connects to the android application running on an android device. This now serves to give 'hands free music control' to the car, the steering wheel button presses in the AUX Page are now relayed to the phone in order to change tracks. The phone also then tells the Arduino via bluetooth what track is playing. The arduino will then send can frames to the IC Cluster to display the current track playing.

Controls enabled via the android application

  • Turn on / off indicators and hazard lights
  • Set custom interval for indicator clicks (faster / slower)
  • Unlock doors
  • Lock doors
  • Toggle ESP
  • Retract rear headrests
  • Display custom text on the IC display
  • Set scroll speed of text across the IC display (only if text > 8 characters)

Repo contents:

  • IC_CUSTOM_TEXT - Contains Arduino code for project
  • androidApp - Contains Android app code for project
  • can_read - Simple tool to read can frames from car
  • Replayer - Replays data captured by can_read in realtime. (Used to analyze can frames and work out functions of frames)

Reverse engineering documentation

See here

Hardware setup

Arduino setup

Currently, I have 2 MCP2515 modules. 1 with a 8Mhz Clock thats connected to CAN C, and 1 with a 16Mhz clock that is connected to Can B. (I found out that Can B is NOT compatible with the 8Mhz clock due to its odd bitrate of 83.3Kbps). If you end up using 2 modules with 16Mhz clocks, please change the following line in IC_CUSTOM_TEXT/canbuscomm.cpp:

this->canC->setBitrate(CAN_500KBPS, MCP_8MHZ);

to

this->canC->setBitrate(CAN_500KBPS);

Failing to do so may result in some absolutely wild behaviour with the rest of the car!

Connection to Can B

I am using the X30/7 connector to connect to Canbus B. This is a hub (with multiple wires coming out of it) located on the panel below the drivers steering wheel. you will notice it has a few free slots. This is where I have ran the cables to.

Connection to Can C

Canbus C is a little more difficult. I could not find a connector like for Bus B. Instead, I ran wires to the back of the Instrument cluster. Connected to the instrument are 2 green wires. The Solid green wire is CanH+, and the green wire with a white stripe is CanL-.

Project Limitations

Currently, I have only worked out how to display 1 line of maximum 8 characters on the IC Display. This means that if the track name is more than 8 characters, the Arduino will shift the string by 1 every 150MS, resulting in the text scrolling across the screen to display a longer message. However, the IC Displays response time is appaling, resulting in somtimes a slushy text animation. idealy, I would like to find out how to lower the size of the text on the display in order to display more than 8 characters at a time

w203-canbus'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  avatar  avatar  avatar  avatar  avatar  avatar

w203-canbus's Issues

PROJECT UPDATE

I will unfortunately be putting this on hold for a bit...

I rebuilt my transmission (722.6) and during the process didn't put enough ATF in. That's all fixed now however the TCM is now in hard limp home mode.

During these difficult times, everywhere is shut, so I likely can't get it cleared using a dealer. So, I have a new project.

I have Xentry passthru on my laptop, however no adapter. Only my Arduino. So my new project will be to turn my Arduino into a J2534 adapter so Xentry can use it.

There are 2 new repos on my account for this project should you be interested. I will however come back to this project once that's fixed as I still have a lot planned for this!

W209 Bluetooth A2DP Integration

Hello,

My friend bought a W209 with comand 2.0 navigation interface. We are looking for an integrated bluetooth a2dp solution which can work with cd-changer/aux input. Is your solution can be used with an IOS phone? How do you feed the audio line?

hardware?

Suggest fill in some details on hardware interfacing?

How do you get at the canbus?
What chipset are you using?

etc

Simple Example from Decoded Messages

Hello,
I am very interested in your project. I am trying to read the signal the can-bus sends to the factory alarm siren when the alarm goes off. i am trying to activate a relay when the alarm goes off. i already have an Arduino and mcp2515 controller but i cant find useful information about the BCM can bus signals.

unable to run the android app

Hi Dear,
i tried to debug the android app using android studio but with no luck, i think because of the difference in verisons.
any body have an idea.
even the arduino code is not compatible with UNO, may you please advise if you used UNO or MEGA board.

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.