Need help troubleshooting Circuit

I’m trying to finish off a steering wheel interface i’m building for a 2012 Subaru forester using an Arduino.The sketch i’m using is based off a sketch that Yuri Brigance created for a 05’ Pontiac GTO that is widely circulated . The sketch works great to read the resistance values from the steering wheel controls although i’m having issues with outputting the proper resistance values that the head unit will see.

The resistance values between the steering wheel wires when the various steering wheel controls are pressed:

Mute 22 Ohms
Volume Up 80 Ohms
Volume Down 217 Ohms
Mode 324 Ohms
Channel Up 668 Ohms
Channel Down 988 Ohms
No buttons pressed 4700 Ohms

The head unit expects to see the following values when the steering wheel controls are pressed:

Pin 4 (wire) to headunit:
Seek Up 0 Ohms
Seek Down 330 Ohms
Volume Up 1000 Ohms
Volume Down 3110 Ohms
No buttons 100K Ohms

Pin 13 (wire) to headunit:
Mode 0 Ohms
No buttons 100K Ohms

Pin 14 (wire) is the common wire to the headunit (grounded inside the radio)

The head unit does not recognize the mute button on my steering wheel controls so I’m planning to use it as a way to turn on backup camera whenever I want. I vary the resistance using an digipot which work fairly well. The digital output pins from the arduino are used to control a series of transistors

The main issue I’m having is that the I’m not able to duplicate the 0 ohm values on the seek up or the mode, i believe it may have something to do with the pull down resistors I’m using (100 K) or the use of the transistors may prevent the near 0 ohm value.

I already know that the circuit that i have set up to turn on the backup camera may not be correct. It may need to use a 3904 and 3906 transistor to work properly I’m confident that I can figure that part out it’s mostly trying to replicate the 0 ohm issue i’m trying to solve. I’ve just attached the most recent circuit sketch I have which does not have the revised backup camera turn on circuit added.

subaru_forester_digipot.ino (5.76 KB)

eltonr: I'm trying to finish off a steering wheel interface i'm building for a 2012 Subaru forester using an Arduino.The sketch i'm using is based off a sketch that Yuri Brigance created for a 05' Pontiac GTO that is widely circulated . The sketch works great to read the resistance values from the steering wheel controls although i'm having issues with outputting the proper resistance values that the head unit will see.

The resistance values between the steering wheel wires when the various steering wheel controls are pressed:

Mute 22 Ohms Volume Up 80 Ohms Volume Down 217 Ohms Mode 324 Ohms Channel Up 668 Ohms Channel Down 988 Ohms No buttons pressed 4700 Ohms

The head unit expects to see the following values when the steering wheel controls are pressed:

Pin 4 (wire) to headunit: Seek Up 0 Ohms Seek Down 330 Ohms Volume Up 1000 Ohms Volume Down 3110 Ohms No buttons 100K Ohms

Pin 13 (wire) to headunit: Mode 0 Ohms No buttons 100K Ohms

Pin 14 (wire) is the common wire to the headunit (grounded inside the radio)

The head unit does not recognize the mute button on my steering wheel controls so I'm planning to use it as a way to turn on backup camera whenever I want. I vary the resistance using an digipot which work fairly well. The digital output pins from the arduino are used to control a series of transistors

The main issue I'm having is that the I'm not able to duplicate the 0 ohm values on the seek up or the mode, i believe it may have something to do with the pull down resistors I'm using (100 K) or the use of the transistors may prevent the near 0 ohm value.

I already know that the circuit that i have set up to turn on the backup camera may not be correct. It may need to use a 3904 and 3906 transistor to work properly I'm confident that I can figure that part out it's mostly trying to replicate the 0 ohm issue i'm trying to solve. I've just attached the most recent circuit sketch I have which does not have the revised backup camera turn on circuit added.

A transistor is a current device. Trying to achieve 0 ohms thru a transistor is going to be a exercise in futility. You are always going to have the E->C band gap (diode voltage 0.4v .. 0.7v) so your decoder is never going to see 0 volts. I would recommend using MOSFETs here is a good application note from ON Semiconductor AND9093/D Using MOSFETS in Load Switching Applications. It is a 7 page description that explains how to use N-MOSFETs and P-MOSFETs correctly. If you use N-MOSFETs with low Rds you could just add resistance to match your requirements.

Chuck.

I had a feeling the transistor was the issue, I do have some Darlington Transistors that I picked up awhile back I guess those would not be a suitable option in lieu of the MOSFETs?

your guess is right. A Darlington is just two transistors in line to achieve more current gain (hFE). The output stage is still an ordinary bipolar transistor.