I have a new car, its a Daewoo Lacetti SX 1.6 and it has all the features I want (like A/C:), but it also has a major bug: The Radio.
For some odd reason they have stuffed a really nice set of speakers in the car and paid Blaupunkt to produce a fairly good but non-standard cassette radio, the problems are:
Well, there is not much I can do about the mounting problem and I guess I just have to get used to it and not yank the headunit out of the car as often as I might, but the steeringwheel remote is a problem I can fix.
The target is to get Blaupunkt remote signals like the ones the RC10 remote RC10.lirc [12K]. Each button is encoded as a pulse with a different length for each button, followed by a pulse which is always 660μs long, they look like this:
__ __ Scale: ( |_| is a 660 us pulse) Pulse time ____ _____ _____________________________________________________________ . 2 ms |_____| |_| ____ ______ __________________________________________________________ V+ 2.6 ms |_______| |_| ____ ________ _______________________________________________________ V- 3.2 ms |________| |_| ____ __________ ___________________________________________________ UP 3.8 ms |__________| |_| ____ ____________ _______________________________________________ DOWN 4.4 ms |____________| |_| ____ ______________ ___________________________________________ MUTE 5 ms |______________| |_| ____ ________________ _______________________________________ RIGHT 5.6 ms |________________| |_| ____ _________________ ____________________________________ LEFT 6.2 ms |__________________| |_| ____ ___________________ _________________________________ SRC 6.8 ms |___________________| |_| ____ _____________________ _____________________________ OK 7.4 ms |_____________________| |_| ____ _______________________ _________________________ SRC+ 8 ms |_______________________| |_|
The pulses above were generated by plot-raw-lirc.pl [12K] that takes a lirc file and plots the pulses using only ascii.
The remote in the Lacetti seems to be a simple resistor from each button to ground, so the headunit outputs 5V and simply measures the voltage to get the button pressed:
|Mute + on/off||2.93V||1k8||5000μs|
|Next||1.41V||820 Ohm||5660μs (right)|
Each button is repeated around 10 times pr. second until it is released, at which point the release code is sent. Except for the src key which turns into the SRC+ code after a while.
My solution is to take the Lacetti signals and generate Blaupunkt signals (well, duh), using a small 8 pin pic with an ADC, like the pic12f675 to repeatably measure the input voltage and generate the corrosponding Blaupunkt code from the buttons pressed whenever a match is found.
I've gotten an RC10 and verified that it does indeed output the codes above, I've also found out that the receiver outputs 0/5V and that the signal is inverted as pr. usual with IR receivers.
I have just gotten the plugs (mini-iso C2 and C3) for the remote control converter, the plastic parts cost 20DKK each, but the connectors themselves cost 11DKK each, along with a 50DKK fee for not spending enough money I had to bleed almost 200 DKK for just two simple connectors. I fucking hate the fact that I can't seem to find mini-iso connectors at a reasonable price.
Now that I'm building the steeringwheel-remote converter I want to throw in an iPod remote as well, the pic has an unused pin that could be used for this purpose and and I don't need to do any work to reverse engineer Blaupunkts cd changer protocol I'm thinking that the simplest thing to do is to send the skip command to the ipod when the next button is double-clicked.
This is the surprisingly simple schematic for the interface:
I've built the programmer and the converter on two vero boards and written the RC10 output routine.
I have the Lacetti Sterering wheel remote input interpreter working perfectly now, it debounces the signal, detects double clicks and when SRC is being held down, so all I need to do now is put it together with the RC10 output code (which looks ready btw) and the rs232 output code for the iPod, which is also in great shape as I've been using it for debug output to the PC.
I've taken a few snapshots of the whole deal, the first one is annotated.
The code is available under the GPL here: lacetti-blaupunkt.tar.gz [68K]
The GALA signal is what the radio uses to trim up the volume as the speed rises, it is a 8 pulses pr. wheel revolution and it is commonly available as an input for the speedometer.
On the Lacetti the speed signal is available on pin B5 on the back of the instrument cluster via a white/green wire.
The hardest part is actually taking the dashboard apart to get at the back of it as it is very well hidden and not meant to be taken apart.