I'm very new to electronics so this is probably a very simple question.

I have a TV decoder that I want to control the "UP" button with via a Raspberry Pi I have on hand.

The "UP" button is a tactile button with 4 pins but I've learned already the pins work in pairs. The PCB has an input that says it is 3.3V so perhaps I won't need anything such as a relay between the Raspberry Pi GPIO pins and the PCB, but am I wrong? I do have a relay module if needed.

A commenter brought up another question which introduced me to the issue of having two-separate grounds which I wasn't aware to consider before and I believe I should add that the TV decoder is 12V but has a separate component (pictured below) that seems to be 3.3V. Not sure if this information changes anything.

My understanding is I just need to short the circuit somehow to trick the PCB to believe the physical button was pressed. That is about the limit of my understanding and how to short the circuit, where to solder the wires from the GPIO pins (or to the relay) is what I want to know.

Can someone help walk me though this problem? I've been spinning my wheels looking at other tutorials online and I may be searching for the wrong thing as most times my searches keep returning beginner guides to install a button onto a Raspberry Pi but this is not what I'm looking for.

This tutorial I found was almost exactly what I was looking for but do I need resistors and such as described if I am just trying to short a circuit that is also 3.3V?

Also, getting my hands on parts is near impossible since I live in a remote area of the world and our borders are closed and incoming goods are sparse and take months sometimes. So I'm looking for a dirty solution that uses what's on hand rather than the best solution. Although, I could perhaps get some parts off old PCBs laying around, I've just never done it yet so not sure if that is feasible or has it's own quirks and things to be careful of.

As asked by a commenter, I do have a voltmeter on hand to use.

Back side of PCB Front side of PCB Close up on connection to main PCB showing 3.3v

Similar posts

Triggering button press from raspberry pi


Solution: Although other users were technically correct and helped me, I could not find a PNP transistor but I had scavenged a broken security camera which has an LDR. Using that LDR and a simple LED connected to the raspberry pi gives me an isolated and simple method to "push" the button from code. I learned a lot along the way so thanks to everyone.


  • 1
    \$\begingroup\$ Does this answer your question? shorting a remote control pushbutton with GPIO and a transistor \$\endgroup\$ Dec 23, 2021 at 23:12
  • \$\begingroup\$ @ElliotAlderson not quite the answer I'm looking for. I'm a bit lost in the diagrams and how to relate them to the physical devices in front of me. Plus, the given link question starts off asking the same as me but has answers where they say they "prefer a more robust solution" and introduce more components/hardware but I'm curious if I need those things and getting my hands on the hardware mentioned is difficult, as stated, so I would like to hear some more possible answers from users here. \$\endgroup\$
    – Mike T
    Dec 23, 2021 at 23:35
  • \$\begingroup\$ make sure that there is no line voltage between the switch pins and frame ground \$\endgroup\$
    – jsotola
    Dec 24, 2021 at 0:10

3 Answers 3


Use a VACTROL. Easy to use and also easy to make if you don't want to buy one.

Commercial variant: Vactrol

Home made with LED, LDR and schrink tubing: Vactrol homemade

Example Example


  • No need to mix circuits (does not require shared gnd)
  • No voltage or polarity issues
  • Completely isolated, cannot mess/blow up anything
  • Easy and safe!

How it works:

  • When pin is LOW, LED is OFF, LDR resistance is infinite (open contact)
  • When pin is HIGH, LED turns ON
  • When LED is ON, resistance of LDR is low (simulates a key press)
  • 1
    \$\begingroup\$ I was having difficulty finding a PNP as recommended in another answer but did find a broken security camera and removed its LDR which does successfully flip the channel as you indicated. I will be constructing the LED interface next and appreciate your input since it seems to be the path forward for me. \$\endgroup\$
    – Mike T
    Dec 28, 2021 at 23:35

Do you have a voltmeter ? access to NPN and PNP transistors (nearly any one will do) ?

If you measure the button pins when not pressed, you may find one high, the other low; when pressed, both will be low or both high.

If both high when pressed, connect an NPN: C = high pin; E = low pin; B = GPIO. No resistor is needed.

Similarly, if the V is low when pressed, use a PNP: C = low pin; E = other pin, B = GPIO. You will have to 'invert' the GPIO in this case (low = 'on').

If this doesn't work, you'll also need a resistor. For the 'both high' case, use a PNP: E = one pin of button; C = other; B to the GPIO via a resistor (try anything between 10k and 100k). For the 'both low' case use an NPN: E = one pin; C = other; B = GPIO via 10..100k

  • \$\begingroup\$ I do have a voltmeter on hand. When I press the button the voltage drops to zero otherwise the voltage is hovering around 0.80 volts. I'll go looking for a PNP then? Might I be able to recover one from another device lying around? \$\endgroup\$
    – Mike T
    Dec 24, 2021 at 0:44
  • \$\begingroup\$ Nearly any one will do. But 1st - what is the V on EACH pin when not pressed ? \$\endgroup\$
    – jp314
    Dec 24, 2021 at 1:00

Seeing as the buttons and the 3 digit display are both controlled by the 16 pin IC the buttons must be matrixed with the LED display.

2 pins for power, 2 for communication 11 for the display, that leaves only one pin for the buttons! so the buttons are muiltiplexed with the display

Given that, the you need an isolated switch to drive the button signal.

Perhaps use an optocoupler (4N25 etc).


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.