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.

The problem

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 [4.0K]. 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 [4.0K] 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:

VoltageOhmsPulse time
None 4.65V OpenNone
Mute + on/off 2.93V 1k85000μs
Src 2.14V 1k36850μs
Next 1.41V 820 Ohm5660μs (right)
Vol+ 0.73V 330 Ohm2650μ
Vol- 0.04V 0 Ohm3250μ
Src+ n/a n/a8050μs
Up n/a n/a3850μs
Down n/a n/a4450μs
Left n/a n/a6280μs
Right n/a n/a5660μs
Ok n/a n/a7500μs
Releasen/a n/a2000μs

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.

The solution

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: Lacetti to Blaupunkt remote converter

Current status

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 [60K]

The GALA signal

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.

© Flemming Frandsen - Worst viewed with MSIE, because it sucks. - Firefox is ok though. - stopsoftwarepatents.eu petition banner