Arduino in a MINI Cooper

Hi,

I've created a circuit to use an Arduino to monitor the on board communications used by a MINI (R53 2002-2006 model years, as well as some BMW's) for low priority information (ie. stereo controls, steering wheel controls, CD Changer information, window open/close states, etc) via it's internal I-Bus data bus.

In this hack, I used the Arduino to monitor a hacked/pre-made I-Bus communications module. The Arduino looks for specific I-Bus codes triggered by pressing otherwise unused Multifunction Steering Wheel buttons (unused unless a rather expensive factory Cellphone/Blue Tooth adapter is installed) and upon seeing the appropriate code will trigger/switch some external hardware.

As a result, I can now mute my Radar Detector and control an iPod's Play/Pause, FF, Rev functions from my steering wheel without having to alter any of the stock wiring.

Details are posted on this MINI forum thread if you are interested: http://www.northamericanmotoring.com/forums/showthread.php?t=155161

Information on the I-Bus used on some older BMW's and MINI's (2006 model year and earlier) for internal communcations can be found here: http://autos.groups.yahoo.com/group/HackTheIBus/

Most people on the Hack the I-Bus group have used a full blown Car PC to interface with the I-Bus. In this case, for simple control of some hacked external hardware, the humble but very capable Arduino more than holds its own.

Thanks again for a great hacking resource. Arduinos rule!!!

Dave

I don't have much to say so I'll make this short.

Nice hack! :D

Interesting work.
Is the lcd on the radio also controlled by the same I-BUS?
Maybe you could make the LCD display things.

Yes, there is a way to send signals over the I-Bus tagged for the Stereo or factory GPS Nav screen to display text/numbers. I haven't implemented it yet, but it has been done.

Dave

So if i understand your post correct from the mini forum this I-BUS you are talking about is the K-Line ?

Yes, I'm afraid I'm using the I-Bus and K-Line/K-Bus interchangeably here. The MINI's wiring documentation actually refers to the data bus as the K-Bus, but since all the reference information is from the BMW I-Bus hacking side, I've kept referring to it as the I-Bus.

Dave

DCC just a small correction, the Arduino is an Atmel chip not a PIC

Good point. At some point I was using the term "PIC" to refer to programmable controllers/microprocessors interchangeably, perhaps erroneously.

So PIC is a specific brand/processor like Amtel and not a generic term?

Dave

Good point. At some point I was using the term "PIC" to refer to programmable controllers/microprocessors interchangeably, perhaps erroneously.

So PIC is a specific brand/processor like Amtel and not a generic term?

PIC is a specific range of embedded controllers from a company called Microchip, Atmel is a company that produce various micro controllers including the ATmega range used in the Arduino.

Calling the arduino chip a PIC is like calling linux windows ;)

Got it, not sure when I started mixing up the term PIC which I thought stood generically for a "Programmable Integrated Circuit/Micro Processor". I stand corrected. It was much easier to use the the term PIC rather than typing out the phrase "Programmable self contained Micro Processor with multiple configureable digital and analog inputs/outputs" over and over again, or something like that. :)

I'll see if I get a chance to go back and revise the posts.

Dave

:exclamation

Nice job. Too bad I just got rid of my Mini :(