VY/VZ Headunit custom Aux input - Reverse Engineering

A place For General Chit Chat Etc
User avatar
Tazzi
Posts: 3626
Joined: Thu May 17, 2012 10:53 am
cars: VE SS Ute
Location: WA

VY/VZ Headunit custom Aux input - Reverse Engineering

Post by Tazzi »

Sooo, I cant seem to stick to one project at a time.. mainly due to I hit limitations from lack of equipment/testers ect. But a recent project Iv been hammering into is reverse engineering the stock blaupunkt headunit in VY's and VZ's.

So the main aim is to add in a custom aux input (or iphone input) into the headunit. Hoping for a clean/seamless integration with an android/iphone cable that automatically swaps input and begins playing music and displays info on the headunit screen.

There have been a couple that have successfully implemented this into there cars. This includes Vlad (currently selling commercially for $300+), and also Nem from carmodder who managed to get the radio to switch to a spare input and start playing music and also displaying song info on the lcd screen. Both of these great developers have left a trail of clues and hints to get the development on the way!

Now, Iv commited to this project, picked up a buspirate and dived head first in! So the TDA7348 audio input control has 3 stereo inputs and 1 mono (AM Radio) input that can be initiated. Only 2 of the stereo inputs are used leaving 1 spare input for us to attack! :twisted:
TDA7348 communicates over the I2C (TWI) bus, this is easy to log communication using the bus pirate (I will post some content up on next post) and allows us to clearly see where the input is changed allowing for a software solution to switching to our unused input.
i2cbus.jpg

Next is controlling the LCD over the SPI bus. I found this a little more difficult as the buspirate has many different options to choose from which affects the end result. But once the correct settings were selected, my results matched up with Nems findings meaning we could decipher the LCD commands which are quite similar to how ALDL frames are constructed kinda.
eg [0x80(0x02)0x80(0x5A)0x80(0x7F)0x80(0x00)0x80(0xDB)0xAD(0x00)] (MOSI and MISO responses)
Where the lcd command is: 02 5A 7F 00 DB 00
02 = length of data (7F 00)
5A = Command
DB = 2's checksum
00 = End of frame
lcd_interface_label.jpg

So now, that a very rudimentary understanding has been achieved, I am now trying to control the lcd using my arduino mega over SPI. The arduino is set as the master SPI device.. and as soon as the arduino connects to the motherboard, all communication between lcd and board stop and screen stops updating. At first I thought it was additional noise introduced but now I believe it is because there cannot be two master devices on one line as both will hold CS high causing no communication to ever occur!


I then thought of setting the arduino as a slave using a software implementation.. but again, even if I am to wait until CS is low, I would be communicating at the same time as another device causing issues again! I know that Vlad and Nem have managed to get past this, but I cant figure out how! Is there a way to disconnect/disable communication to one device? Hold a pin low/high to reset or something?

I *Attempted* to place the arduino between the lcd and motherboard, in the hope to produce a "midi" device that can hold comms from the motherboard when requested and directly communicate with the faceplate without an issue... but being lazy and too excited I didnt insulate the cut wires and managed let some of that magical smoke out that makes everything work... RIP radio number 1.

So...which that all said.. ideas!?!
Iv got radio number 2 up and running, Im thinking of trying to do the "midi" device again, and pass through all info between motherboard and LCD, then when requested, it will begin transmitting desired info to LCD and motherboard.
You do not have the required permissions to view the files attached to this post.
Your Local Aussie Reverse Engineer
Contact for Software/Hardware development and Reverse Engineering
Site:https://www.envyouscustoms.com
Mob:+61406 140 726
Image
slushbox
Posts: 10
Joined: Wed Jun 05, 2013 6:44 am
cars: VYII Berlina V6
Location: Bass Coast, VIC

Re: VY/VZ Headunit custom Aux input - Reverse Engineering

Post by slushbox »

Sweet! Looks awesome Tazzi!
Had kind of hoped someone would take a more open look at this again besides the kits that are out there. Unfortunately I can't offer much help as my level of hobbyist electronics is way behind even this, but I'm keen to see this project keep going. Don't know whether you're thinking of making a kit/hardware, but for me if you can get this as far as producing a comms/pinout spec so that some of us could make our own microprocessor-based mods that would be totally awesome! Keep up the good work.
User avatar
Tazzi
Posts: 3626
Joined: Thu May 17, 2012 10:53 am
cars: VE SS Ute
Location: WA

Re: VY/VZ Headunit custom Aux input - Reverse Engineering

Post by Tazzi »

Yeah thats the plan, Im just using an arduino and using google to bring up some example sketches of SPI and i2c communication to try it out. The above two images are literally all thats needed to hook up to the radio and start communicating.
Your Local Aussie Reverse Engineer
Contact for Software/Hardware development and Reverse Engineering
Site:https://www.envyouscustoms.com
Mob:+61406 140 726
Image