Continue to Site

Welcome to our site!

Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

  • Welcome to our site! Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

Hacking steering wheel controls to radio

Status
Not open for further replies.

therossinator

New Member
I never did well in my EE classes, I got Ds in them both semesters. Now I am doing projects of my own and love working on circuits outside of the classroom. I have designed and assembled my own solar system atop an Airstream trailer complete with MPPT, battery bank and sine wave inverter. I hard wired all of my electronic components to the 12v battery bank and use 12v to 5v cigarette lighter USB adapters for the smaller stuff and a 12v to 19v for my laptop charger and my mini projector.
I've really enjoyed it all and am always eager to learn more, but enough with introductions.

On to my current project:
I have a car radio that I want to add steering wheel controls to. The steering wheel already has the buttons on it but due to the limitations of the wiring harness and steering column limitations I can only use 2 wires to get to the 4 steering wheel buttons. The buttons on the wheel itself I want to be used for volume up, volume down, track up, and track down. I know some aftermarket car stereo wired remotes use resistor networks and I wanted to use the same theory: have one wire going in and each button has a different resistor on it and the voltage drop on the other end of the wire will determine which button I pressed.
Based upon which button I pressed I want to send voltage to the gate of one of four transistors. Each of these transistors will close a circuit in the faceplate of the radio, acting just like I pressed a button on the faceplate itself.
Can this be done?

The buttons in the faceplate are all connected to an IC (PCF8574T) and the detachable faceplate connects to the radio via 6 contacts. Is there a way I could use these contacts to utilize the functions I mentioned earlier(vol up, etc.)? From looking at the IC data sheet it looks to be more complicated than my pea brain can figure out, it seems to utilize a clock which I guess if for detecting long button presses.

Any guidance here would be very much appreciated.
Thanks,
-Jeffrey Rossman
 
Last edited:
You can convert from you resistance to up to nine outputs using an LM3914 bar graph LED driver IC. In place of the LEDs you'd put pull-up resistors, and the outputs can then be connected to where the buttons would connect otherwise. This is assuming that you are just connecting across the mechanical switches in the front panel.

The PCF8574 is a bus expander, that is it converts from the two-wire serial IIC protocol to eight parallel inputs or outputs. To connect into the 6-pin connector, you'd have to disable the functions on the faceplate and connect them to your own circuit instead. Your circuit would probably contain a PCF8574 with the button switches/transistors connected to its inputs.
 
I recently did something similar, it is described at a basic level in this thread:

https://www.electro-tech-online.com...n-my-new-youtube-channel.140105/#post-1169531

When I first started thinking about the project, I thought that I would need to wire to the back of the buttons, but the radio actually had a connector for a "wired remote".

All I had to do was make a box of tricks which converted from the Mazda steering wheel controls to the Pioneer radio controls.

Does your radio have the connector for a wired remote?

JimB
 
All I had to do was make a box of tricks which converted from the Mazda steering wheel controls to the Pioneer radio controls.

Does your radio have the connector for a wired remote?

JimB

Unfortunately no, the radio in question is a stock cassette deck off a 1996 Porsche. It is a Becker CR-210 and I've had one heck of a time finding a service manual for it, btw. What spurred the idea was **broken link removed** to add steering wheel controls to an aftermarket radio with an actual hookup for a wired remote. I want to keep the stock look and have already soldered on an aux input for my phone to play music. I thought "how hard could it be?"

Dougy's first paragraph seems to hit on what I'm looking for but as with most ICs I can't really figure out which wire goes where or what resistors to use on the buttons. I would think that with all the ICs out there one has to fit the bill perfectly: control 4 different switches when one of its 4 voltage bands are met via a single input. The number of ICs on Digikey are boggling to me and I'm pretty useless at figuring out what each one does.
 
Last edited:
I know thisisnt hwat you asked, there are several companies that specialise in code converters and remote controls for car stereo's, theres probably something allready available to do the trick.
 
I know thisisnt hwat you asked, there are several companies that specialise in code converters and remote controls for car stereo's, theres probably something allready available to do the trick.
I really don't see another way to do this other than breaking out the soldering iron. If there was another way I'm sure I would have ran into it on the Porsche forums as this is a stock Porsche stereo.

I've been looking into the LM3914 and am wondering if the lower voltage switches will remain closed when a higher voltage is applied.
 
Theres an i/p pin on the lm3914 'dot' mode, only 1 o/p is active at one time.
 
The keys of the radio may be matrix scanned and in such case, it's sometimes more difficult to interface to. One way that works for me is an OPTO FET across the contacts.
 
Unfortunately, I do not understand most of what was said in the previous two posts. Being the neophyte that I am my understandings are this: the only way to make the volume go up and down aside from pressing the physical buttons is to create another way to close the circuit that the pressing the button closes, the circuit must be closed before reaching the IC that both ends of the circuit are connected to because the IC turns it into digital data-speak and that cannot be replicated with another IC since the one on the PCB already has a specific address within the I2C protocol.
Therefore the best way to close the circuit would be to use a transistor and the gate would be connected to a "black box." This "black box" uses a single input of varying voltage an based on the voltage of that input one of the gates will be opened. Important to note that it must only operate one gate at that voltage, not that gate and all other gates that correspond to a lower voltage.

I have attached a picture of a drawing of a map of the buttons on the faceplate, the two on each side correspond to the volume up/down (left) and track up/down (right). keep in mind that the IC is on the other side of the PCB.
therossinator-albums-aux-in-diy-picture25117-img-20140314-025224.jpg


Here is a picture of the grand scheme
therossinator-albums-aux-in-diy-picture25116-img-20140314-025205.jpg


If pictures of the actual board would help I can post those too.
 
Last edited:
Therefore the best way to close the circuit would be to use a transistor and the gate would be connected to a "black box." This "black box" uses a single input of varying voltage an based on the voltage of that input one of the gates will be opened. Important to note that it must only operate one gate at that voltage, not that gate and all other gates that correspond to a lower voltage.
This was covered above, but the LM3914 can operate in 'dot' mode, in which only a single output is activated at a time. You can use four optocouplers to interface from the LM3914 to the switches that you showed in your diagrams. You'll only need four, as you only want to interface to four switches. Pretty much any standard transistor-output optocoupler should work if you connect it around the right way. Resistors in series with the LEDs are not required.
 
Wonderful, I purchased 2 of each (in case I fry one) LM3914 and 160-1364-5-ND as well as 2 A9AAT-0808E-ND. Aside from wires and the resistors to put in the steering wheel, that should be all I need, right?
 
you'll also need a few resistors to configure the lm3914
 
dougy83Resistors in series with the LEDs are not required.
Please explain.
In first paragraph of the datasheet:
The LM3914 is a monolithic integrated circuit that senses analog voltage levels and drives 10 LEDs, providing a linear analog display. A single pin changes the display from a moving dot to a bar graph. Current drive to the LEDs is regulated and programmable, eliminating the need for resistors.
 
Usually, you would use a regulated supply like 5V so weird things don't happen when cranking, etc.
What weird things? You just have to protect your circuit from transients that would damage it. There's no need for regulation.
 
Well, for one the 12 V will change when in ACC and running. This will change the thresholds. It could be 12.6 in ACC and nearly 14 V when charging. The voltage will change with temperature too.

It might be best to drive the resistors with a current source such as an LM334 or an LT3092.

Do we know the resistor values or better yet, the resistance for each function? I see the we have to pick them.

FWIW at 5 mA and 1K you get 5V

You can get 100, 200, 300, 400 and 500 ohm resistors so up the current a bit. 10 mA would be a better number anyway.
 
Last edited:
Well, for one the 12 V will change when in ACC and running. This will change the thresholds. It could be 12.6 in ACC and nearly 14 V when charging. The voltage will change with temperature too.
That's of no consequence when comparing ratiometric values.

The resistors in the steering wheel can be connected in series and all be the same value. The switch contacts that aren't connected to 12V can then be connected to the junctions of these resistors. Another resistor can be connected from the LM3914 input to ground so that Vin=0V when no switch is pressed, and some larger value when a switch is pressed (due to the voltage divider formed by the resistors).
 
Status
Not open for further replies.

Latest threads

New Articles From Microcontroller Tips

Back
Top