Trigger Existing Garage Door Remote - Strategy

Hi all, my first post here and appreciate any help you can provide. I'm not completely new to all of this as I have experience coding, but am definitely new to the electronics aspect so please be gentle. I have searched all over but the only results I can find on this question relate to supplying power to DC motors which is not what this is about.

I'm in an apartment building and would like to control my garage opener via Alexa and/or iPhone/Apple Watch. It automatically closes after a moment, so I just need the remote to send the "Open" command when needed.

Obviously because it's an apartment building I cannot modify the garage door opener in any way. What I can do is wire my existing remote control (300MHz non-rolling code, operates on a 9V battery) into an Arduino board to trigger a "button press" that activates the transmitter. The Arduino and transmitter would stay in my apartment, which is in range of the garage opener. To me it makes the most sense to just use the existing remote instead of buying an RF transmitter and trying to replicate the signal.

My question is what strategy you would recommend for supplying the 9V power to the remote, and what parts apart from the Arduino board I would need. I'm looking for the simplest and preferably cheapest of options:

1) Solder the remote button contacts so that the button is always "pressed." Remove the 9V battery from the remote and instead use a 5V output from the Arduino and increase it to 9V (would a transistor be best for this?) Use a digital pin to allow power to the remote for about 3-4 seconds on command then revert to LOW when done. I am unsure of how to determine the level of current the remote would actually draw. It can't be much but obviously I don't want to fry it by supplying it with too much power from the Arduino.

OR

2) Leave the remote battery in tact and connect the Arduino pin to the button contacts on the remote to make it think the button is pressed and simply draw on the internal 9V remote battery. I am unsure how to do this without frying either device—would I need a relay for this or would the digital pin be able to function to simply close the circuit without supplying too much power?

Again, thanks for your help. I feel like this should be a very simple project and that's what I'm looking for. I will probably get an Uno with an ethernet shield unless there is an even easier way to enable Internet connectivity so I can use either an IFTTT recipe or other way to control via Alexa or an app.

I feel like this should be a very simple project

Maybe. Maybe not. How, exactly, is the Arduino supposed to know that Alexa wants the door opened?

How can pressing a button on the phone/watch/whatever be simpler than pressing a button on the remote?

The ESP8266 based NodeMCU or WeMOS boards have WiFi built in. Can be used standalone, no need for an Arduino.

Be sure to get your voltages right. The above boards and some newer Arduinos are on 3.3V. To convert 3.3V or 5V to 9V you need a step-up buck converter, not just a transistor. Or if you run the whole thing off a 9V supply just provide that to the Vin of the Arduino and let the on-board regulator take care of the 9V to 5V conversion.

Is this a personal garage or a garage door to parking spots for all residents? Sounds like the latter if you say it closes automatically.

PaulS: Maybe. Maybe not. How, exactly, is the Arduino supposed to know that Alexa wants the door opened?

How can pressing a button on the phone/watch/whatever be simpler than pressing a button on the remote?

Simpler because I do not have to carry yet another item with me if I go out for a walk (no keys needed, just go in through the garage). Or if my car is in the shop and I forget the remote. Or if a friend is visiting and just needs to drop off groceries. As for the Alexa skill I have seen people use IFTTT recipes to do this. Would have to look into it further but am confident I can make it work.

INTP: Is this a personal garage or a garage door to parking spots for all residents? Sounds like the latter if you say it closes automatically.

Correct. Shared garage for all residents, so I can't modify the opener itself at all. Otherwise I'd just wire a relay into the system itself.

wvmarle: The ESP8266 based NodeMCU or WeMOS boards have WiFi built in. Can be used standalone, no need for an Arduino.

Be sure to get your voltages right. The above boards and some newer Arduinos are on 3.3V. To convert 3.3V or 5V to 9V you need a step-up buck converter, not just a transistor. Or if you run the whole thing off a 9V supply just provide that to the Vin of the Arduino and let the on-board regulator take care of the 9V to 5V conversion.

Thank you, I will check those out! I have never heard of a buck converter but will look into it further. If I understand correctly, your recommendation is basically:

5V output pin from board > Buck Converter to convert 5V to 9V > positive battery contact on remote (with no battery present and button always pressed) > ground?

ScoobyDude: 5V output pin from board > Buck Converter to convert 5V to 9V > positive battery contact on remote (with no battery present and button always pressed) > ground?

Not sure if the 5V pin can supply enough current for your remote (probably it can), I was thinking connect the 5V supply to the buck converter, 9V to the remote, then find a way to "press the button" from the Arduino. How to wire it exactly depends on the remote and what you can do to it. Your way may work as well - you'll have to do some experimenting. Start by holding the button pressed, then connecting the battery, and see if that gets the door to open.

wvmarle: Not sure if the 5V pin can supply enough current for your remote (probably it can), I was thinking connect the 5V supply to the buck converter, 9V to the remote, then find a way to "press the button" from the Arduino.

I think that makes sense, but I'm not sure how I would wire up the "press the button" part. This is where I get confused. I understand the concept of completing a circuit but it almost sounds like I would need a low-voltage relay instead of using the digital output pin, since the power will already be supplied by the 5V output which goes into the buck converter. If I just use one of the output pins with the other end soldered to the button contact then it would still supply additional power to the circuit which I think would potentially fry the remote, right?

Here is an example that looks like basically exactly what I'm trying to do:

https://hackaday.io/project/21070-arduino-controlled-gate-remote-control

You can see that it looks like he just disassembled an existing remote and patched the Arduino into it, but I can't tell how the white wire is connected to the Arduino. My remote is a Linear Multicode 308911 which has what appears to be very similar design, with the exception of the 9V battery instead of the 12V as in the link above. I'm just having trouble envisioning how a single wire is causing the button to "push."

ScoobyDude: I'm just having trouble envisioning how a single wire is causing the button to "push."

You don't "push" with one wire. The second wire is the common ground. It's just not directly connected to the button. By grounding the second wire of the button as well, the remote reads it as a button push.

wvmarle: You don't "push" with one wire. The second wire is the common ground. It's just not directly connected to the button. By grounding the second wire of the button as well, the remote reads it as a button push.

Okay, makes sense. So even though the digital output pin would be supplying more voltage (3.3V or 5V, right?) to the button contact, in addition to the existing power supply, it wouldn't damage the components of the remote?

Would the same be true if I just left the battery installed in the remote, connected the output pin to the button contact, and then connected the ground terminal on the remote to the ground on the Arduino/controller?

Really appreciate your help! I am headed to the library this weekend for books to help solidify all this. I'm just really anxious to get started with a project that is useful :)

Likely there is a voltage over the two contacts of the button when open; when contact is made the high side is pulled to the ground, and that's sensed by the remote, triggering the door command. In other words: it's active LOW.

wvmarle: Likely there is a voltage over the two contacts of the button when open; when contact is made the high side is pulled to the ground, and that's sensed by the remote, triggering the door command. In other words: it's active LOW.

You were right! I used a multimeter to measure both the DCV and the current. When the button is NOT pressed, about 9.4V flows through the button contacts, which goes to 0 while pressed. Current is about 25mA, which from what I understand is typical of a healthy 9V battery. The remote did not trigger when I touched the multimeter probes to the contacts to measure the voltage, but it did when measuring the current. Annotated photos below where the ovals show the battery leads and the arrows show where I placed the multimeter probes.

So good news I guess is that the controller board should be able to power the remote with the use of a buck converter, but do I need a resistor to ensure the supplied current doesn't exceed 25mA?

I've been staring at the circuit board trying to figure out what the actual flow of power is when the button is pressed, and how that would hook into the controller, regardless of whether the controller or the battery supplies power. I have seen examples of using a transistor to act as a switch, which seems preferable given the physical actuation needed for the relay and the "click" sound it produces, but I'm unsure how all that would play into this. The relay would at least be a simple solution as I have confirmed that if the button contacts are shorted, the remote does in fact transmit as soon as it begins receiving power.

|375x500 |375x500

Go for it. Realize that the Arduino can't drive most relays directly. Use an NPN transistor with the emitter grounded, the collector to the switch terminal opposite the (-) of the remote (thus the red arrows), and the (+) of the remote to 9V. Drive the base of the transistor through a 500-1000 ohm resistor connected to an Arduino output pin. Like this: http://www.pighixxx.com/test/portfolio-items/connect-a-buzzer-with-transistor/?portfolioID=610

Try to avoid having the neighbors after you with pitchforks and torches.

aarg: Go for it. Realize that the Arduino can't drive most relays directly. Use an NPN transistor with the emitter grounded, the collector to the switch terminal opposite the (-) of the remote (thus the red arrows), and the (+) of the remote to 9V. Drive the base of the transistor through a 500-1000 ohm resistor connected to an Arduino output pin. Like this: http://www.pighixxx.com/test/portfolio-items/connect-a-buzzer-with-transistor/?portfolioID=610

Try to avoid having the neighbors after you with pitchforks and torches.

Thanks! When you say connect the + of the remote to 9V, is that assuming I have the buck converter wvmarle recommended connected to increase the 5V power supply to 9V, which I believe would give me the necessary 25mA current to emulate the power from a 9V battery? So I assume I would need to add that in between the power supply and the (+) on the remote? Do I need a resistor to limit the current to 25mA?

The diagram you linked makes sense, but since I'm still super new to this, let me make sure I understand: When the output pin is set to HIGH, this allows the transistor to close the circuit so that it's as if I pressed the remote button. When it's in LOW, the transistor prevents the circuit from closing which is equivalent to a button "up" state. Is that right? Based on the resistor amount you recommended, would this be assuming a 3.3V output pin?

And just for clarification, where does the ground from the emitter go? To the (-) on the remote? Then the ground wire from the remote should go into the ground pin on the controller board? That would make sense as it would ensure they share a common ground, right?

Really appreciate everyone's help and patience as I get a handle on all this :)

You're new indeed. Do read up more on voltage/current/power/etc. Power is work done. Voltage and current are different things; you don't have voltage flow through anything, least of all an open contact, and with a 25 mA constant current your 9V battery will be empty really soon (how did you even measure this current? When shorted I expect the battery to supply a bit more current than that). Same for buck converters: they supply a constant voltage, and current as needed within their limit which is usually far more than 25 mA.

There is an extremely simple solution but I don't understand your intent with this project. Why would you want to open the building's garage door while you are still in your apartment? Have you read all of the fine print on your lease agreement and perhaps any paperwork you had to sign when the garage remote was assigned to you?

wvmarle: with a 25 mA constant current your 9V battery will be empty really soon (how did you even measure this current? When shorted I expect the battery to supply a bit more current than that). Same for buck converters: they supply a constant voltage, and current as needed within their limit which is usually far more than 25 mA.

I used my multimeter on the 200mA setting (next one down was 20mA) per the instructions that came with the multimeter. Red probe to the positive contact on the battery, black to the negative. Same with measuring the current flowing through the switch contacts. The multimeter user's manual said a healthy 9V battery would produce approximately 25mA. So... all I know is what I measured which made logical sense to me since it was relatively the same reading from the battery contacts as from the remote.

I have already ordered books from the library to better acquaint myself with electricity basics and I do really appreciate everyone being patient with me in the meantime while I am conversely impatient to get my first project completed.

INTP: There is an extremely simple solution but I don't understand your intent with this project. Why would you want to open the building's garage door while you are still in your apartment? Have you read all of the fine print on your lease agreement and perhaps any paperwork you had to sign when the garage remote was assigned to you?

I appreciate you making sure that I have taken all the elements of this into consideration, but with all respect, I think it's quite a reach to propose that the fine print in my lease (which there was none on this entire subject) would actually distinguish between a human pressing a button versus a machine closing the same circuit. I earlier described several scenarios in which this would be useful and not necessarily while in my apartment—with rare exception, I would have line of sight to make sure the area around the door is clear. People copy these codes to their cars' universal transmitters all the time and it's easy for someone to buy a spare remote and set the DIP switches to match the original (obviously mine was changed for the photo I posted). I wouldn't be modifying the opener circuitry at all, and there is no pedestrian gate that would place anyone in danger even if I did trigger it sight unseen.

If there is an extremely simple solution not already proposed in this thread, I would be grateful for the information.

ScoobyDude: I used my multimeter on the 200mA setting (next one down was 20mA) per the instructions that came with the multimeter. Red probe to the positive contact on the battery, black to the negative. Same with measuring the current flowing through the switch contacts. The multimeter user's manual said a healthy 9V battery would produce approximately 25mA. So... all I know is what I measured which made logical sense to me since it was relatively the same reading from the battery contacts as from the remote.

You're effectively shorting the battery. Now I know a 9V battery has a pretty high internal resistance but hard to imagine it's that high.

At the button of the remote I would expect to find a current of well below 1 mA (with "well" being 1-2 orders of magnitude). If it really needs 25 mA running through the button (you did measure by putting the leads of your multimeter on the two traces of the PCB where the button presses, right?) you wouldn't be able to use an Arduino in the first place, too much for it's port. Also it'd drain the battery really really fast and probably cause all kinds of other issues. You could be measuring up to 25 mA when measuring how much current the remote as a whole takes when the IR LED is active, as a typical LED takes 10-20 mA, but 25 mA is also perfectly acceptable for an LED.

The PCB photo you posted shows that the button is also the battery switch, as you suspected. The negative battery lead is connected directly to a button terminal.

You will need to use a small relay or transistor if you want the remote triggered by the Arduino.

The easiest solution (as suggested in #11) is to use any small NPN transistor (e.g. 2N3904) across the button terminals (E to the button terminal now connected to the black battery lead, C to the other) and a 1K resistor from an Arduino port pin to the transistor base. Connect the Arduino ground to the negative battery lead.

The much more difficult part of the project will be to have the phone activate the Arduino, but there are projects on line that describe how to do that.

That looks like a PT2272/2262 IC based system. Both the receiver and transmitter IC can be emulated by the Arduino with the RCSwitch library. Lots of stuff on line.

I'd slow down and reevaluate the conclusions you've made from poking your meter around without understanding what you've done.

wvmarle: You're effectively shorting the battery. Now I know a 9V battery has a pretty high internal resistance but hard to imagine it's that high.

At the button of the remote I would expect to find a current of well below 1 mA (with "well" being 1-2 orders of magnitude). If it really needs 25 mA running through the button (you did measure by putting the leads of your multimeter on the two traces of the PCB where the button presses, right?) you wouldn't be able to use an Arduino in the first place, too much for it's port. Also it'd drain the battery really really fast and probably cause all kinds of other issues. You could be measuring up to 25 mA when measuring how much current the remote as a whole takes when the IR LED is active, as a typical LED takes 10-20 mA, but 25 mA is also perfectly acceptable for an LED.

Not sure, all I know is what the instructions said that came with the multimeter, which are not necessarily correct just because they're in print, but the battery contacts did return the reading that the instructions said would be the case with such a measurement. I suspect you are right about the 25mA as that is the only time it draws a current like that (while actively transmitting). Like I said, the remote did not begin transmitting when I touched the probes on the button contacts in DCV mode, but it did in 200mA mode, so I'm sure the current I was measuring was only while it was transmitting.

jremington: The PCB photo you posted shows that the button is also the battery switch, as you suspected. The negative battery lead is connected directly to a button terminal.

You will need to use a small relay or transistor if you want the remote triggered by the Arduino.

The easiest solution (as suggested in #11) is to use any small NPN transistor (e.g. 2N3904) across the button terminals (E to the button terminal now connected to the black battery lead, C to the other) and a 1K resistor from an Arduino port pin to the transistor base. Connect the Arduino ground to the negative battery lead.

The much more difficult part of the project will be to have the phone activate the Arduino, but there are projects on line that describe how to do that.

That looks like a PT2272/2262 IC based system. Both the receiver and transmitter IC can be emulated by the Arduino with the RCSwitch library. Lots of stuff on line.

Thanks for confirming that. That's the solution that made the most sense to me (in combination with other comments). I'm trying to onboard myself with a lot at once so it's helpful to have a clear solution. Once I had a chance to study the diagram that was posted it started making sense. I'm still fuzzy about where the power begins to flow while the button is pressed, but at this point, I think I will learn better just by getting it to work and then revisiting the "why" after I see it in action. I'll take a look at the RCSwitch library. Overall, I feel pretty comfortable with the software side even though I don't have a whole lot of experience with C. I've at least been able to read and understand the code I've seen, so I'm looking forward to it.

INTP: I'd slow down and reevaluate the conclusions you've made from poking your meter around without understanding what you've done.

Are there any specific resources you would direct me to in order to quickly onboard myself? Google returns so many results that often cover one little piece of a concept that it's hard to figure out how it all fits together. I'm posting here because I have questions and am trying to learn, not because I claim to have the correct answers. So far your only contributions to this thread have been admonishments about my lease agreement and coyly mentioning some "simple solution" that you've yet to share here.