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:
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!!!
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.
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.
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.