Instructions for home-grown Garadget clone

To facilitate the grassroots development of apps, integrations and hardware extensions we’re opening the Garadget’s hardware for personal use. Below instructions will help you create your own Garadget clone and take advantage of its firmware and other software that exists and coming soon.

New to Garadget? Learn about our smart garage door controller, it’s features and how it can improve your daily life.

What you’ll need

  1. Particle Photon x1
  2. USB charger or other 5V source x1
  3. Relay Module x1
  4. Red Laser diode x1
  5. Phototransistor x1
  6. 2N2222 NPN transistor x1
  7. 1K, 10K, 100K Resistors x1 each
  8. Reflective Tape
  9. Project Enclosure

#Electric Diagram


Additionally to Photon module at its core, Garadget’s hardware consists of the three elements:

##1. Laser transmitter
Laser transmitter acts as the sending part of the door state sensor. We used inexpensive low power red laser similar to those found in presentation pointers. The circuit contains NPN transistor to drive the laser because Photon’s outputs can not supply the sufficient power for it (Max 25mA @ 3.3V while needed 40mA @ 5.0V). The base of the transistor is connected to Photon’s D2 pin through 1K current limiting resistor.

##2. Laser receiver
Laser receiver circuit uses metal photo-transistor on one side of the voltage divider to detect the amount of reflected light from the laser. When retro-reflective tag is illuminated by the laser, the significant amount of light is bounced back at the device where it can be sensed by the photo-transistor. As result its resistance drops significantly, pulling the middle point of the voltage divider closer to the ground. The Analog-to-Digital converter at Photon’s pin A0 measures that voltage.

##3. Garage opener control circuit
The mechanical relay simulates the push of the garage door opener’s wall button while keeping the two systems electrically isolated. The simplest approach is to use a relay module; it can be driven directly by chip’s output pin. The module’s circuit contains a transistor, current limiting resistor (similar to #1) as well as flyback diode. Additionally we use a 10K pull-down resistor to ensure that during the reset, the relay remains open. The normally open contacts of the relay are connected to the garage door opener’s terminals for wall button.

#Other Considerations

  • Power: the circuit is powered by 5V provided by USB adapter. The micro-USB connector needs to be connected to Particle module and 5V also has to be supplied to other parts of the circuit. This can be done by splicing the wires of USB cable so they can be first connected to the board, and then the remaining short part of the cord with micro-USB connector plugged into Photon.

  • Polarity: Laser’s anode (+) is typically red, photo-transistor’s emitter (-) is one marked with a small tab on the side. The pins on the relay module are silkscreen labeled.

  • Firmware: the stock firmware for the Garadget is offered to you under GNU General Public License. It can be downloaded from github repository. For Photon programming instructions please visit Particle Website.

  • Original Garadget: factory manufactured units are available for purchase at very reasonable price. Just as your home-built clone, they welcome firmware tinkering and custom hardware extensions. Your purchase will support the small development team in Colorado and encourage the creation of more open projects like Garadget.

#Permissions and disclaimers
Garadget’s door state sensor technology is subject to pending patent 62/294,886. You’re granted the permission to utilize said technology for your personal use as part of described here build. By taking on this project you understand that we provide no warranty and assume no liability for the process or the results.

Questions? Suggestions? We’re excited to hear from you.


One question : How do we get the iPhone app for home grown builds?
The Kickstarter mentions a QR Code… but I don’t see any mention of anything here…

When released the mobile apps are going to support home-grown builds as well as factory-made units.

I’ve noticed at least one error on the fritzing diagram. The color code on the resistor on the bottom (between D3 and Ground) is the same as the resistor up near the top of the diagram. According to the parts list there aren’t two of the same value resistors. From one I gathered from the eagle schematic it looks like the bottom one is incorrect.

Do I have that correct?

And are there any other errors that you know of on the fritzing diagram?
(that’s what I’ve built from… so far I still have a short or something, so I"m thinking something else might be wrong. (it did take me a little bit to realize that the D3 resistor wasn’t connected to D7 just between D3 and ground…)


Thanks for spotting the issue in fritzing diagram. I updated the resistor at the bottom, it’s 10K pull-down.
When it comes to debugging your build - you should be able to set digital write on D2 & D3 using Particle’s Tinker app and turn on the laser and relay respectively. You should also be able to read the analog level from A0 which depends on the level of illumination. If that all works then try the Garadget’s firmware.

Thanks! I got the first one working (4 more to go… ) at least to the point the lazer is flashing and it shows open and closed on the web app.

1 Like

New Question :

I have first unit mounted underneath the garage door opener. I made a wedge of foam core so that it is angled to project the laser on the door.

At this point it is all installed. But the status on the web app shows open constantly. So I’m thinking that the angle might be a problem. I tried playing with the sensitivity in the web app and got it to show closed. But I think it didn’t show that it was closed until the light in the garage door opener was off. Do I need some sort of shield for the light pickup?

So next I tried a flatter stand-off. So far not a lot difference. The mounting was one part that wasn’t given an equivalent in the DIY guide.

How what is the proper way to install and properly calibrate?

I just posted a separate topic on improving the Garadget’s sensor reading. See if it is helpful in your situation.

I’ve replied on the other thread about configuration (with pictures)

What would you suggest for a stand / mount for the DIY configuration?
What I have in the pictures is obviously temporary… just not sure what a proper long term solution should/would be.


Here’s the picture of the mount in of the early Garadget prototypes. You can use something like that in your setup. Keep in mind that it has to be pretty sturdy because the vibration from the opener can throw the alignment off.

That’s a good idea. I’ve been debating how to do it.

Since the bottom of the opener is plastic, I’ve been going with foam of some sort and double stick tape.
The garadget doesn’t seem to move much. I was thinking of perhaps making the reflector area a bit wider to
accommodate any slight movements.

Where did that bracket come from? Wood I got :slight_smile:

I know, it’s an exciting project…
If my memory serves me right, the steel came from the cover of cannibalized 5" CD-ROM drive.

Yet another question:

On the Relay (I’ve not gotten the door to open via the Garadget yet) mine is wired on one side with DC+, DC- and IN (that I’m hooking up to +5, GND, Signal)

The other side I have COM, NC, NO (thinking that’s common, Normally Closed, Normally Opened).
From what I can see on the picture I connect common and NO to the garage door switch.

That sound right?

Last, I also have a jumper for High/Low trigger. The jumper came with it set for High.
Is that correct for the firmware?

The connection you described sounds right. Additionally, the relay modules often have LED to indicate when they are activated; that should give you idea if it’s being triggered by the Photon. If yours doesn’t have LED, then you can just listen for the click and/or use continuity tester on the load side.

High signal (3.3V) on D3 is what triggers the relay in firmware.

FYI, I have the first unit working now. A few points to share.

  1. For mounting, a piece of flat metal (with holes) similar to what’s used to secure garage door openers,
    bent into a U shape is what I went with. Didn’t get it perfect (first time bending metal with a new vise)
    but is functional.

  2. I did move the laser and sensor closer together. Hot Glue and an X-acto knife ended up with a fairly smooth plug
    (on the second unit… the other was a bit messy, but I count that as practice… still functional, just not as pretty)

  3. I did end up having to put a “visor” over the front edge of the unit, to protect the sensor from being overloaded by the light from the Garage Door Opener itself. Without the visor, I was getting < 10% pick up with the light on. I put my hand over it and it jumped to 70-ish. With a cardboard visor, I get 80-85% when the light is on, and over 90% when the light finally goes off.

Thanks for the assistance (I’m adding two pictures to show mount. I used nylon screws and wing nuts to attach it to the side of the enclosure. It’s a very snug fit and locks down quite well. All parts easily found at Home Depot or Lowes)
This is the unit with the “messy” plug (and hole that was a bit too large for laser that I also added some glue to, before I had cleaned it up.

This picture shows how it hangs down from the opener. I used some 3M tabs for picture hangers… you can just buy the sticker part as a “refill” for the wall hooks… these have rated weight and are easy to remove.

1 Like

Howdy! I am looking to do this on a Marantec Garage Door Opener I have and had a few newb questions.

I’ll be using it with OpenHab.

Does this only work with the Particle Photon or will it work with any WiFi ESP8266 Board?

The wall controller has a way to turn the light on & off, has anyone figured out a way to get the light to flash when the door is closing remotely (similar to the Liftmaster MYQ).

Is the Photon capable of driving some sort of buzzer to warn of the door closing?


Current iteration of Garadget requires Particle Photon and relies on Particle cloud API.
ESP8266 version is not out of the question eventually, but not in the plans for nearest future.

Photon in Garadget has about a dozen of unconnected GPIO pins which can be used for driving relays, buzzers or any other periphery. In factory version, the strobe and siren will be added via I2C serial interface exposed through the hardware extension port on the back.

Thanks for the reply and clearing that up for me as I’m not really familiar with the Photon.

I was also trying to see how much I’d save doing it myself vs purchasing from you.

Is there any ETA on the Strobe/Siren Addon?

Strobe & siren are not difficult to add, but currently the priority is on fulfillment of pre-orders and getting core features fully polished. ETA maybe half year or so. Please stay tuned.

If your Marantec is like mine (I’m assuming it is) they achieve the light function by a VERY momentary push of the contacts. I can not tell you what that time is. I do know on the very basic doorbell type switch I added. If I quickly tap it. I’ll get just a light. If I hold it for even a moment it will open/close the door. I’m just getting mine setup now and I see a setting in the control panel for “relay on time” that is default to .3 seconds. I will have to drop that to .1 seconds and see what happens with the Marantec.

A buzzer would be great though. I have figured out a way to simulate this through smartthings of which I’m using garadget with. My “auto close” after 30 minutes routine includes sounding an alarm through a speaker in the garage. Could also easily flash a light but for me the alarm works better because it’s usually going down in daylight and I doubt you’d really notice a flashing light. I guess a great setup would be alarm during the day and flashing light x minutes after sundown.

1 Like