Simulating a button push on a garage door remote

Hey everyone, I'm very new to Arduino and I want to make an app controlled, remote garage door opener. What I was thinking is that the best approach would be to simulate a button press by wiring an existing remote to arduino, which would be controlled by a phone app.
From what I gather this approach is feasible by wiring a relay to the button which controls the garage door.
The garage door remote works on 433.92 MHz with rolling code. After pairing any of the buttons can be used to open/close the garage door (he only uses the top one). One press starts the motor to open the garage door, another press stops the motor, another press starts the motor to roll back the garage door. Measuring with the multimeter the connected points on the top button I get roughly 5V.
How should I go about this? Attached are the photos of the garage door remote pcb.


  • It would be best to draw out the switch circuit by looking at the PCB.

  • A peanut type relay(s) will work.

  • A MOSFET or BJT might work but you will need to experiment.

How about

?

A switch either does, or does not, provide a continuous path for electrons.

A set of normally open relay contacts can go one each to the two sides of the existing switch.

There should be no other electrical connection.

This is the easiest and safest if not the most elegant or smallest solution. As @LarryD points out, with a bit of investigation it is probable that a transistor (BJT or MOSFET or part of an optoisolator) could be used, turned on and off by the Arduino and providing the same continuity that the relay would.

a7

Hint: Not all garage door controllers are the same. The easiest method would be to place a NO (Normally Open) relay across the wall button contacts. You can test this by shorting the two wires to see if the garage door responds. If it does, you're good to go. However, some newer controllers exchange information between the button and the opener, so a simple button won't work. In that case, you can modify a remote by connecting the relay contacts across the switch contacts in the remote.

I chose a relay because it’s the easiest solution and requires no advanced electronics knowledge. The relay can be mounted in any convenient location. You will need to provide power, while the remote battery should last about a year under normal use, the Arduino will require a consistent power source.

Hey everyone, thank you for the great suggestions. I went with soldering a relay directly to the board of the garage door key (red is connected to NO on the relay / - side on the key and black to COM on the relay / + on the key). I am using Arduino UNO R4 WiFi (for future control from a phone app). It works great with this code:

void setup() {
  // put your setup code here, to run once:
  pinMode(7, OUTPUT);     // connected to S terminal of Relay
 
}

void loop() {
  // put your main code here, to run repeatedly:
  digitalWrite(7, LOW);   // LOW means on
  delay(300);

  digitalWrite(7, HIGH);    // HIGH means off
  delay(10000);
}

When it executes, the relay activates and the LED on the key PCB flashes (so I assume I "pressed the button"). To test that the key actually sends an RF signal I bought a CC1101 transceiver and connected it like this:


Now I would like to somehow see if when the "button is pressed" by the relay, there is actually something going on. I tried a library for this transceiver but it gives me nothing but errors when I tried to run the "ch_19_cc1101_tx" example in the library.(ELECHOUSE CC1101 Arduino library download)

How could I check if the key is actually doing something (aside from the LED flashing)?
As it stands this is the real implementation.

I tried to make a sketch how its connected but I dont know if its correct.

Does the garage door open? That is the best test.

1 Like

Hey, it worked amazing! One loop of the arduino code the garage door opened, the second it stopped and the third it reversed! So working as intended.
Now onto controlling it through a phone app, do you guys have any pointers I can take? I would like it to be an app on the home screen that opens an UI where there would be a button to "control" the garage door.

Easiest way would probably be arduino as web server for single page with button. Then make a widget for that page or build some web app.