Last night I had an idea for controls to my CarPC. I thought why not reverse engineer a headunit's face. It's cosmetically pleasing and looks nice in a car, it's backlit and has lots of buttons, and even an LCD. I assume most of them are either I2C, SPI or Serial data (depending on the era and date of the radio). Then I had an even further idea of the IPBus that Kenwood and Pioneer headunits use for external devices, like the kenwood keg or a cd changer, and I thought if I could monitor this bus while operating a device and figure out how the commands are sent and received, I could keep the functions of the radio and then switch to cd changer mode and then the buttons could operate the CarPC. Once the commands are deciphered, if it is anything other than Serial I could use an Arduino to watch the line and interpret the commands and send my own protocol of commands over a serial line to the CarPC for my software to interpret and issue actions on the CarPC based on the button pressed. If the IPBUS is found to be using a serial transmission that a computers serial port can read, I could have the decoding/deciphering done on the CarPC and eliminate the need for an arduino. What would be nice too would be to have the ability to inject code to the IPBus for sending LCD display data back.
I spent a few hours today looking and couldn't find anything much more than a pinout of the IP-Bus connector and a few posts on here. It looks like Jbor made a device that interprets buttons for Pioneer's IPBus but the thread seems to have abruptly stopped in 2007. I have an old tape deck (Yes, TAPE DECK!) kenwood radio that looks nice and has an LCD, so I'm using that to test with. From the pinout of the IPBus it looks like there is a pin for +12 (probably for motors, etc), 2 audio channels, an audio gnd, a turnon signal (similar to remote for audio amps) which is 4v, a GND, a "mute request pin" which essentially tells the radio to allow switch to CD changer mode and allow input from the 2 audio pins on the connector, a clock sync pin and 2 pins for data, one for in and one for out. So I am assuming it is just serial data. In any event, just to cover all bases I just bought the 16 channel logic analyzer. I should be able to watch serial data from as low as 1.8V logic with it. I suppose I can turn on CD-Text or something from an IPBus device and watch the data stream and try to find the cd text in ascii / hex / binary in the data stream and look for consistent patterns of data when I press a button on the head to trigger a function.
While I would be happy with a direct hack to the face, probably some kind of I2C or SPI to the LCD (A look at what chip is onboard inside the face would be of help), and probably resistance values on some pins or a matrix for the buttons, but I would be really thrilled if I could retain all of the functions of the radio and be able to have custom functions to the buttons when it's put in CD-Changer mode. So in the meantime while I am waiting for the logic analyzer in the mail, do any of you guys have some advice, input, experiences or knowledge as to how these things probably work? As I try to progress through this project and find a successful way to accomplish what I want to do, I will update everybody here with my findings and any help would be much appreciated!!