How does this button circuit work - Page 1
Forum section: electronics / beginners

author: symbianas
author_rank: Regular Contributor
timestamp: May 19, 2021, 04:47:14 pm
content: Hi, I am trying to figure out how does my car steering wheel buttons work and maybe change their functions as some are useless.So on the board there are 12 buttons + backlight, some resistors and 6 wire output. The circuit looks like this:On manufacturers documentation it writes that 6 wire output is SPI-interface pins:But SPI-interface would have chip on the button circuit? So its not SPI?Do these buttons work by providing different resistance? Any idea what is the button amount limit? And what resistance values I should expect for each button?

author: ledtester
author_rank: Super Contributor
timestamp: May 19, 2021, 05:01:04 pm
content: QuoteCan you draw out a schematic for the boards? That will shed a lot of light on these questions.

author: varunkoganti
author_rank: Contributor
timestamp: May 20, 2021, 03:05:41 am
content: the first step that you need to do is take up a multimeter and trace out the singal paths usingthe continuity function.draw our a paper schematic, this will help you.

author: sleemanj
author_rank: Super Contributor
timestamp: May 20, 2021, 03:32:29 am
content: The set of smaller resistors at the bottom form a chain, the intersecting points between each resistor connect to a pair of buttons.Looking from the resistor side the 2nd pin from the left is most likely the input to an ADC in a microcontroller, and the 3rd pin from the left is ground.When a button is pressed it connects one of the points between those smaller resistors to ground shorting out the rest, thereby the ADC pin can sense the change in resistance and know which button is pressed. Each button pair (assuming they are not the same function for 2 buttons) must have enough difference in the trace length from the first to the second button in the pair to be detectable.The 3 rightmost pins just pass through to the pin header, they don't interact on this PCB.The Leds do not appear to be controllable individually, the larger resistors are current limiting resistors for them, 2 in series for each LED, the through holes between those LED resistors are just test points

author: Jwillis
author_rank: Super Contributor
timestamp: May 20, 2021, 03:59:55 am
content: Those are contact points where the rubber contacts sit over . The rubber has a conductive surface on the bottom. Usually what happens is this conductive surface wears off and can no longer cross the paths of the contact points on the PCB.There are repair kits to fix this issue or you can use various hacks , Some are temporary fixes and other work a little longer.Using a conductive paint pen or equivalent works .paint a little on the black dot on the rubber bottom . Small dots of adhesive metal foil works. Even the graphite of a pencil works , but its a temporary fix .

author: ledtester
author_rank: Super Contributor
timestamp: May 20, 2021, 04:19:33 am
content: QuoteWhat kind of functions did you have in mind?I could see wiring up the buttons to your own microcontroller which would then control electronics which are totally separate from the car's own electronics -- like controlling your own interior lighting system. I don't see modifying an unused button to, say, turn on and off the windshield wipers.To utilize an unused button in this way you might have to cut a track to isolate it from the car's controller. Again, drawing up a schematic of the board would be very helpful.

author: RichC
author_rank: Contributor
timestamp: May 20, 2021, 09:05:14 am
content: Quote from: sleemanj on May 20, 2021, 03:32:29 amOr possibly the button contacts have different resistances? Is that even a thing? The trace lengths don't look like they would provide more than a fraction of an ohm difference which would be indistinguishable judging by the differences in the resistor ladder.Quote from: sleemanj on May 20, 2021, 03:32:29 amI imagine the LEDs are just for general button lighting for use at night rather than as status.

author: Ice-Tea
author_rank: Super Contributor
timestamp: May 20, 2021, 09:38:11 am
content: I doubt you'll be able to change the functionality. The functionality will be whatever the software assigns to that particular button. It's not like there's a direct link between the button and whatever it controls...

author: sleemanj
author_rank: Super Contributor
timestamp: May 20, 2021, 11:54:27 am
content: Quote from: RichC on May 20, 2021, 09:05:14 amCould do, certainly it's possible to have different resistance in the carbon rubber. But I imagine that would add a lot of expense to mix-and-match, way more than just an extra resistor I would have guessed.It could of course just be buttons with two pads each for reliability, just the placement of the pads doesn't really look like that. If OP posted a picture of the buttons then that might be helpful.

author: symbianas
author_rank: Regular Contributor
timestamp: May 20, 2021, 11:57:42 am
content: Quote from: ledtester on May 19, 2021, 05:01:04 pmSo this is the circuit:Quote from: sleemanj on May 20, 2021, 03:32:29 amThanks! Spot on with my analysis! Also thanks for pointing out those "Test points" I was wondering "what are they" and does this simple circuit had multiple circuits hidden inside. So its just a two sided circuit with test points.Quote from: ledtester on May 20, 2021, 04:19:33 amI would like to change useless music audio source switching to turn on/off radio for example, or similar. These buttons are sent through CAN so I hope by adding different resistors I could send different message and change the functionality.Quote from: Ice-Tea on May 20, 2021, 09:38:11 amYes, its far shot. But I hope that there are other car models of same car which has more buttons and by adding more resistors I could have more buttons.So my question, can this ADC handle more resistors with more buttons or 4 buttons is the limit?What are the ressistors values 32B 77A 50A 31R 89X? do they represent incremental value and could I add 5th button with incremented resistance?Code:Hardware:Port1AirPrevNextCDPort2Phone-vol+volVoiceR32B|77A|50A|31R|89XGND2.1 kΩ|619 Ω|324 Ω|31 Ω|82.5 ΩCAN BUS messages:no button1100 0000 0000 1100 = R (2.1 kΩ + 619 Ω + 324 Ω + 31 Ω + 82.5 Ω) = 3156,5 ΩAir1100 0000 0001 1100 = R (619 Ω + 324 Ω + 31 Ω + 82.5 Ω)= 1056,5 ΩPrev1101 0000 0000 1100 = R (324 Ω + 31 Ω + 82.5 Ω)= 437,5 ΩNext1110 0000 0000 1100 = R (31 Ω + 82.5 Ω)= 113,5 ΩCD1100 0000 0100 1100 = R (82.5 Ω)= 82,5 ΩPhone1100 0001 0000 1100 = R (619 Ω + 324 Ω + 31 Ω + 82.5 Ω)= 1056,5 Ω-vol1100 0100 0000 1100 = R (324 Ω + 31 Ω + 82.5 Ω)= 437,5 Ω+vol1100 1000 0000 1100 = R (31 Ω + 82.5 Ω)= 113,5 ΩVoice1100 0000 0000 1101 = R (82.5 Ω)= 82,5 Ω