Vehicle steering wheel controls convertor with Arduino

I have a 2002 Astra Bertone convertible which has a six button steering wheel control. It worked with the original Blaupunkt 520 radio, however I have since replaced that with a touchscreen (Android Auto/ Car Play) HUD which is "compatible" with original steering wheel controls.

All good so far.

BUT.

The steering wheel control lines are labelled GND, MRQ, SDA, and SCL, which makes me think that is I2C, and they are at a logic level of 5.01 volts (unsure what MRQ is, and nearly impossible to find info on Uncle Google).

The HUD has GND, KEY1, and KEY2, which are for a resistance based steering wheel control. Should be fairly doable to use an arduino to convert between the two, however when I hook an arduino up to the GND, SDA, and SCL lines with I2C scanner code, it cannot find an address.

Do I need to connect the 5v source between the two?

Could the issue be different I2C speeds, and if so, how do I work out the vehicle I2C speed, having not been able to find documentation?

How would you progress?

Could it be some other communication protocol? Could it be the fact that I don't know what MRQ is (any ideas on what that could be - maybe a master request?)?

Here is a link containing some possible related information:

http://forum.lcdinfo.com/viewtopic.php?f=6&t=2711

So if that is correct, how do I know what lengths of time the signal needs to be high or low?

What does this have to do with an Arduino?

Wow, I'm dense. What I forgot to say is that I want to use an Arduino as a convertor between the two.

That wasn't clear.

Does my Arduino have to somehow use MRQ as well as SDA and SCL?

Can you post links to the technical information on the switches. It may also be in the radio schematic. I do not have time to check but here are two links you need to check:

I have scoured high and low for that, but cannot find it.

I have the physical copy of that manual, it does not contain relevant information as to the communication protocol, or the wiring of those switches.

There has to be some reverse engineering done, and I'm very bad at that. I'm guessing that the MRQ line is a high/low "enable" line. I might play around with that and see what happens.

The key might lie in the radio schematic—you’ll need to determine what’s happening there. Resistor trees were commonly used in cars and were typically limited to about five buttons, which could be managed with just two or three wires. Keep in mind that ground may not necessarily be a separate wire.

There are six buttons, four wires with labels literally on them saying GND, MRQ, SDA, and SCL. I feel like that's not likely to be a resistor tree. Plus pressing the buttons does not change the output voltage, which I would think it would if the buttons had resistors on them? Though I don't know much about that, maybe the voltage isn't supposed to change from a resistor tree?

I also thought about CAN bus, but why would the wires be labelled SDA and SCL?

Maybe it is ICM2 rather than I2C

blaupunkt_420_435_520_620_635_7648381510_sch.pdf (2.4 MB)

You are a legend, a genius, amazing. The SDA and SCL on those wires aren't going to the steering control after all!

Look at that! They go to the display!!

But maybe what's worse is that there is now only ONE wire going to the steering wheel controls...
Time to stick my DMM on that and see what it's doing!! Is it possible for a resistor tree to use only one output like that?

that wire and ground

1 Like

Yes, it will need either a power source or ground as the second wire, but only one wire would need to return. I expect the voltage will change as you press the buttons. If it’s not powered, try measuring the resistance (ohms) between the positive and negative terminals, as I’m unsure how it’s powered.

2 Likes

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.