Ratgdo - local mqtt control for your Chamberlain/Liftmaster security+ 2.0 garage door opener

Chamberlain / Liftmaster Security+ 2.0 garage door openers use an encrypted rolling code serial protocol to control the door from a wired remote.

Until now it was impossible to open or close your own garage door without resorting to some sort of hack. You either had to subscribe to their cloud service and use myq, or subscribe to their service and rely on a polling script through an undocumented API, or soldering wires to a button and control it with a relay like a shelly one or something similar.

I refuse to allow a cloud service to have control over my house. Having to solder to a button is… not very elegant.

The whole thing annoyed me to the point that I decided to reverse engineer the wired serial encryption and release an ESP8266 shield that gives full local control over the door with dry contacts or with mqtt.

After months of work, I have a solution that is ready for some beta testers. As of this writing I have a batch of boards on order and expect to receive them in a couple of weeks. If you are interested in testing, please DM me!

Main Features:

  • Shield wires to the door opener’s terminals
  • MQTT control to open, close and toggle the light on the door opener. Status feedback for obstructions and door positions (opening, open, closing, closed, obstructed, clear).
  • Dry contacts for open/close/light and status contacts for obstruction/door state
  • WiFi & MQTT are optional, can be setup in dry contact mode only

Effort to fully document the solution with instructions and diagrams is ongoing…

ratgdo GitHub link: https://github.com/PaulWieland/ratgdo


It would be cool to have a version of this with the ability to solder buttons and lights, i.e. one that works like a regular physical garage door opener.

Is it possible to use this in combination with the regular wired door opener?

Anyways, I will DM to get this.

There are dry contacts on the board. I even made discrete open and close contacts so you can have one of those cool cah-chunk buttons :wink:


I’d be interested but when I tried to buy 3 of the shields from your site with either my pixel phone or my computer browser, nothing happens. That’s using the GPay option.

1 Like

Thanks for letting me know. It’s a square checkout url. I’ll have to figure out why it won’t let you checkout by trying to buy one from myself :joy:

So I don’t have gpay. I was able to checkout with credit card and with Apple Pay. Did you get an error message at the bottom near the place order button?

You can DM me if you like…

I didn’t see any errors, it just kept repeating the GPay checkout screen. I’ll try a regular CC.

I think you would have a broader acceptance in the HA community if you develop an ESPHome version that uses the ESPHome API and doesn’t rely on MQTT.

If possible of course.

I’m already using the “soldered wires to a relay” hack for the controls and a Ultrasonic distance sensor for the position feedback. Both use ESPHome as the interface and work pretty well for me.

I’m not averse to using MQTT since I already have a broker set up and use it for a couple of other things but I like the direct connection of ESPHome to HA. So if I could use your board with ESPHome I might just buy one.

Does your board do the security encryption or is it done in the firmware somehow?

1 Like

Native integration with ESP Home will come once I figure out how to do it (or someone from here wants to help and create a PR) :slight_smile:

First I had to get a fully functional solution. Second, gauge the interest - if only 3 people end up using this, then there isn’t any reason to develop it further. I have no way of really gauging how many people own these door openers, and then of that group, how many want local control.

If the interest is there, I’ll keep developing it!

And regarding the rolling code & encryption - I reverse engineered it and in doing so discovered a major design flaw in the whole scheme that allows me to use a special set of static commands to control the door opener.


I was able to use the CC option to order the boards.

1 Like

definitely would love to boot the cloud and shift to local. Been wanting something like this for a while for myQ.


Maybe it was a feature not a bug.

That way industrious people like yourself could come along later and find a way to add local control to their own equipment and not rely on the (often unreliable) MyQ app. :wink:

Riiigghht… :roll_eyes:

OK, what’s a “PR”?

PR = pull request on git. PRs are used to submit code changes to a project for review and acceptance.

The first batch of shields shipped out today and should arrive to most people by the end of the week. Thank you to the early adopters!

I expect to receive my boards by end of day so I’ve been reviewing the current docs on Github and have a few clarifying questions.

I intend to use MQTT as I already have the infrastructure in place for it and am integrated into HA. I will solder the board to the GDO for power, etc.

Looking at the wiring diagram, what are the minimum connections I need to make for MQTT feedback and control? The written instructions state 3.3V, RPM1, and RPM2 and then reconnect the original button wires to the shield, not the GDO. No ground connection? I’m assuming I can ignore the dry contact side of the board.

What are the MQTT commands we can publish for control and what are the status messages we expect to see back? I don’t intend to use Node Red and Home Assistant configuration details aren’t yet included. I can help with that once I have this configured.

There are six wires: 3.3v power (soldered), ground (white terminal on gdo), door control (red terminal), obstruction detect (black terminal), rpm1 (soldered) & rpm2 (soldered).

You could leave out the 3.3v power if you wanted to power it from a USB brick.

The button and ratgdo are wired in parallel so it doens’t matter if you use the GDO terminals or the ratgdo terminals. ratgdo’s terminals are bigger and have a screw to tighten them so it will accept more wires, but either will work.

The white terminal on the GDO is ground. The dry contact side of the board is not needed at all if you are only using MQTT.

The commands are listed under triggers on this page. I will also add them to the quickstart so they are easier to find.

They are:

  • open
  • close
  • light

That would be awesome!

Thought I had some spare D1 minis around but turns out they were NodeMCUs. Waiting on next day Amazon delivery now. Next hurdle will be bracing for the Texas heat in the garage to take out and solder the control board.

1 Like

Just put it on the sidewalk for a few minutes…

If you are taking about soldering the ESP, if it’s still in prototype then I would socket them.

Well I took my GDO apart and looked at the control board which is significantly different than the one posted in the docs. Mine is from 2015. The rotary encoder connection looks the same (6 pins) and I’d like to hear if you think the pinout there is the same. Unfortunately, there is no silkscreened 3.3V connection, so I will likely have to go fishing on the board. Looks like a PIC microprocessor on the control board so I have some candidates to test looking at the data sheet.

Here are some photos.

The control board connectors:

The board:

I buttoned it all back up after taking the pictures and had to reset the limits.

1 Like

@PaulWieland do you think the orange and brown wires on the rotary encoder connector are the RPM1 and RPM2 connections?