Video introduction to GarageMote (older R1 version shown, all applies to R2):

GarageMote is a garage door controller shield kit for Moteino that can be used to remotely control a garage door from anywhere on the web or from your smartphone. There are commercial solutions that offer the same thing, but are more integrated with the opener. This solution requires assembly, and also installing this device on your garage opener.

This page applies to GarageMote R2. You can also find the instructions for the retired GarageMote R1 here.

GarageMote uses magnets mounted on the opener chain/belt to detect the door position; screw-drive openers might not be compatible with GarageMote or might need another way to detect the door position

GarageMote was created for several reasons. Mainly because as I’m adding more Moteino based home automation devices around my property, one of the nice things I wanted to be able to do is control the garage door remotely. It’s become so routine to close the garage door when I leave from home that sometimes when I’m already 5 or 10 minutes away I wonder if I actually closed it. And so I want to be able to check the door status and close it if it was left open by mistake, without having to drive back home. Or maybe it’s useful to be able to let someone in without giving them the garage code every time.

Safety & Disclaimer

Please read this warning before touching your garage door and/or opener!

Before you move on, make sure you fully understand this guide otherwise you might damage your opener or injure yourself!

LowPowerLab takes no responsibility for how you install GarageMote on your garage door and by doing this step yourself you accept that you are fully responsible for your actions. If you are unsure or how the belt or chain works and where to put the magnets, DO NOT buy GarageMote and do not ATTEMPT THIS.

How it works

The hardware is very simple, the shield has a small relay, a diode, 2 resistors, a momentary button that links D3 to GND (new in R2) and a 2.1mm barrel jack for optional power (new in R2). The 8 pin header has connections for 2 hall effect sensors and the door opener. I used a female header to connect an 8 wire cable to the two sensors. One sensor is for the open position one is for the closed position. That way you can tell whether the door is open, closed, or stuck somewhere in between. The other two wires are a contact closure driven by the small relay to trigger a door action, and are connected directly to the garage opener. This is equivalent to operating the garage from the regular door opener, and thus GarageMote does not interfere with the normal garage door operation.
The relay requires more current than one pin can supply and hence is driven by two digital pins (D6+D7). Pin D4 is the output from the “OPEN” hall sensor. Pin D5 is the output from the “CLOSED” hall sensor. The diode protects against the inductive kickback from the relay coil.


Start by preparing the parts needed. Cut the 40 pin female header into 4 parts: 2×13 (needed), 1×8 (optional if you don’t use the screw terminal), 1×3 (optional if you power via jack). As you cut each section, you will loose a position, and 40 pins won’t allow for slack so be careful. For instance, to cut the first two 13 pin female headers you always need to cut on the 14th position (which will be lost), as illustrated in the photos. You can use the shield to insert the header in the 13 pin holes and cut on the 14th position. Trim the excess plastic casing on the edges and you are left with the 4 pieces needed:

Now start soldering the small/low profile parts, resistors & diode. Mind the diode orientation, match the silver band to the white band on the silkscreen. Then add the headers, button, jack, relay. Now’s a good time to cut 2×13 male headers (from the provided 1×40 male header) for the Moteino (sold separately), then you can mate the male+female headers and use the Moteino to keep them straight and solder all joints on the GarageMote PCB and also on the Moteino. When finished, trim all the excess leads with a flush cutter to allow sticking the velcro:

When this is all done, your GarageMote should look like this. Note I added a 1×8 male header in the screw terminal since I

Proceed to prepare the 8-wire CAT5 cable. Remove about 70% of the cable wrapping. Since there is a screw terminal, you should probably just screw one end of the cable directly. I already had an older cable with headers already soldered, so I screwed in the male header instead. Use the wire colors to your advantage, make notes if necessary to make sure you match the pins for the sensors correctly. Note that the orientation of the sensor is important with respect to magnetic field orientation. GarageMote R2 now comes with unipolar sensors that will detect a magnet regardless of the magnet pole. See the pinout photo for details – each sensor has a GND, a VCC and an OUT, on the bottom silkscreen these are marked as “-” for GND, D4/5 for VCC, A0/1 for OUT. Cut the sensor leads short and tin all the sensor leads and wires before soldering, it makes it easier. Then cut little shrink tubing and apply it on the wiring before you solder, then proceed to solder the sensors and apply heat to the shrink tubing. Apply labels to help you distinguish the sensors when you install GarageMote on your garage door.

Magnets are included in GarageMote R2 – 2 rectangular magnets that you can snap onto your opener chain or use the provided velcro to attach to your opener belt. These are hard to find and are expensive but I prefer the rectangulars over circulars since they allow for the inaccuracy in my belt opener – the belt will stop the magnet at a slightly varying position every time, and sometimes the circular magnets were out of range of the sensors, causing UNKNOWN statuses, hence I upgraded to rectangulars and included them in the kit for your convenience.

The Moteino running GarageMote needs power, and since you have a plug that feeds your garage opener you can use an old phone charger. If you have a power supply with a 2.1 mm jack, like this one, then you can just plug it in directly in the soldered 2.1mm jack, like I did (see photos below). Any 5V supply is good enough. Cut the cable exposing the GND and VCC wires and solder them to the last remaining 3 pin header – this will plug into Moteino, these photos are from GarageMote R1 assembly:

Installation & Hookup

The final step is to prepare the magnets and install everything on the garage opener. Cut some small velcro tape and apply it to the sensors, and allow a larger pairing velcro tape for the belt. If you have a chain operated door, the magnets should just snap on to it without the velcro. You should first program the GarageMote and test it before installing (see programming section), to make sure the sensors work as expected. You can simulate the door actions by moving a magnet from one sensor to another. You can then use the remaining velcro to apply it to your opener side or top (I chose the side since I can see the status LED). Make sure the position will allow plenty of space for the sensor and opener wiring. The magnets should be placed very carefuly such that they will never get close or run through the spindle gear that turns the belt/chain. The two contact closure wires should be connected at the two terminals where your regular garage opener wiring connects (either way is fine). Here’s how my GarageMote R1 install looked like:

Now here are photos of my new GarageMote R2 installation, note the new rectangular magnets:

Once installed, operate the door normally to make sure the status LED works and received status is correct. Adjust the magnets as needed if the sensors are not picking them up. The solid copper wire in the cable also allows easy adjustment of the sensors, but don’t put them too close to the magnets to avoid any collision with the magnets. See the programming section for testing the install.


You may use the universal PiGateway sketch on your receiving side. This sketch can be used to communicate to all Moteinos with RFM69 radios, as well as Moteino based kits like GarageMote, BellMote, MotionMote, IOShield, etc.

The Moteino that controls GarageMote should be loaded with this GarageMote sample sketch.

Status tokens

The GarageMote sends and receives messages that control and reflect the status of the opener (based on the position of the magnets/sensors). Here are some of the tokens used in the sketch, note that the LED on the GarageMote Moteino will also reflect the state of the GarageMote:

  • CLOSED : when the garage door has finished closing and the belt/chain magnet has reached the closed side hall sensor (LED ON)
  • OPEN : when the garage door has finished opening and the belt/chain magnet has reached the open side hall sensor (LED OFF)
  • CLOSING : when the garage door is moving towards CLOSED position (LED pulses)
  • OPENING : when the garage door is moving towards OPEN position (LED pulses)
  • UNKNOWN : when neither open/closed hall sensors are near a magnet. This can be caused by magnet misalignment or belt/chain movement slack which needs to be adjusted (LED blinks)

You can test the relay by sending an ‘r‘ to GarageMote in serial monitor (right after programming), you should hear a short relay click.

Once you are confident the GarageMote is working, and consistent with the labels on the wiring, you are ready to install it on your opener. When you test it on your opener, present, except now you cannot talk to GarageMote directly, except if you power it from an FTDI adapter. The point here is to start interacting with GarageMote from the receiver Moteino (that has the PiGateway sketch). Here’s sample output from the Arduino IDE as you test GarageMote:

The RaspberryPi home automation gateway blog post series explains how GarageMote can be hooked to the web through a secured RaspberryPi webserver/websocket stack.

If you are using the LowPowerLab PiGateway software on your Pi, then you are already familiar with how GarageMote can be securely controlled directly from your browser or mobile device.

Schematic & Layout

3D Printed Case

Forum user [aw] has graciously shared a 3D printed case for Garage Mote. If you have a 3D printer you can download and customize/print the model from thingiverse. The model includes the option for a chain magnet snap-on which is really convenient for chain driven garage openers.