Hacking car stereos

| #audio | #cars | #crv | #hacking | #Hard Hackin | #honda |

I recently bought a new car (A 2005 Honda CR-V), and it had steering wheel controls for the stock stereo. The stock stereo totally sucked though, so I replaced it, and of course the unit used a different remote control protocol, so the steering wheel controls stopped working.

Luckily the new unit was a Pioneer MVH-355BT with a wired remote option, so it was trivially easy to repurpose the existing controls. It seems that most or all of Pioneer’s head units with a R/W port (remote/wired) use the same interface. Yay!

The Pioneer interface is very simple, and it uses only two lines (in and out, basically) and a different resistor for each button input. The circuit (click to view) is super simple (credit to jvde.net) as you can see.

Honda’s control box was almost as simple, and also used only two wires to communicate with the head unit. By contrast, my old car was a Renault with a more complicated design (no resistors, more wires). The Renault, however, had a much better control box… Anyway. The two wires from the Honda steering control box go straight through to the stereo bay in the dash, however the colours of the wires do change en route. They’re red and green/red in the dash, white and yellow at the wheel.

Remove two Phillips-head screws and the steering box falls right off. The wires are incredibly, annoyingly short, but are removed easily so long as you press the central lever in the connector.

Above, you can see the inside of the Honda control box. The first thing I did was remove all the existing resistors, and the capacitor.

The values of the Pioneer unit’s expected resistors are approximate, I was able to achieve the proper functionality by staying within 10% of the indicated values. In the illustration below the A line connects to every switch below the PCB. All that’s needed is to connect the convenient vias (yellow rings) to the blue pads via the appropriate resistor. Choose the desired function, connect gold to blue, and done! (You’ll obviously need to connect two resistors to one blue pad, but I mean, DUH).

And my apologies, I realize this isn’t super helpful if you’re not electronically inclined, but maybe you’ve got a friend who solders stuff. =)

The buttons I used were volume up and down, mute, and source (which doubles as the off button when held). You’ll note that one switch has two resistors, because I planned this poorly and didn’t have the right value… So I doubled one up.

After hooking it all up I realized that the Pioneer unit could also control my phone via bluetooth, allowing track selection during playback. And so I needed two more buttons.

I could have re-wired the control box and gone with volume +/- and track +/- instead of cutting out mute and source, but with two small holes and a couple of switches purchased at a local electronics shop (Jaycar in this case, part SP0609 I think) I could add two new buttons to the control box.

On the Renault track selection was behind the box, using a silly rolling selector. With the new system I could use two switches instead, and in the same position as I was used to. Click NEXT, click PREV. Awesome.

I suck at drilling, so the holes don’t quite line up, but you don’t notice it when you use the buttons, and it doesn’t look that far off… The holes I drilled were 3.5mm and the switch was slightly smaller, so it was a perfect fit.

Drill two holes here:

There was not enough room behind the control box PCB for the switches, so I filed down the edge of it to fit. Because of the location I was also able to use the PCB to clamp the switches in place. It’s locked in by the design, and the switches press against it so can’t be pushed into the control box.

I filed it down flat until I started filing the black of the connector housing, then angled the PCB to match the angle of the switches. This was not incredibly difficult, just file and check and file and check until the PCB snaps into place, holding the switches like so:

Once the switches were placed and the PCB filed, I just added two wires to them, one with a resistor in series, connected to the PCB. I used the large connector mounts on the bottom (the top was a bit awkward because of the resistors I had already added). Note that it doesn’t matter which wire is which when you connect to the Pioneer unit.

The only flaw in my plan is the wiring on the switches, it’s a little fiddly resting the two switches in place and not yanking them out while settling the PCB – to which they’re attached! – back into the control box. Once it’s snapped in and screwed into place, the whole assembly is solid. There are no loose parts, and it goes back into place on the steering wheel without trouble.

And now I have a six-button steering control box that does pretty much everything the Renault did.

But slower. Maybe I’ll turbocharge the CR-V next, and see what happens. ;)

The Connector

Also of note, the wiring for the Honda stereo. It was incredibly difficult finding the pinout for the 8YN0 Type-B Kenwood-made head unit, and I never did find one that was complete and matched the wire colours in this Australian CR-V. A lot of them were close, but if the colours matched the pinout was incomplete, if the pinout was complete none of the colours were the same. I found the right colours at modifiedlife.com but they didn’t include the pinout or the steering control colours.

So here’s the pinout for a 20-pin Honda stereo connector:

[ Sep 30 2013 ]



Mar 5 2017

Sorry for my bad english, hopefully you understand my question :)

I understood that you connected A from steering wheel to tip connector and B to the sleeve. Is this correct? How about ring?
Or does A goes to tip, B to ring and sleeve to ground?

Thanks for great post


Mar 5 2017

Glad you like the post, I hope it’s helpful. =)

I ignored the RING because it only offered functions I didn’t want.

Everything important was on GND and TIP.

Also, there is no sleeve on the 2-wire A/B cable.


May 2 2020

I know this is old but excellent write up. Thanks!

Got something to add?

Your Comment