Decipher electronics in rollerdoor

I have a few roller doors (Chamberlain, Merlin brand), which I'd like to automate and integrate with my home automation system (openHAB).

The door opener can be operated by:
a) remote 433Mhz (rolling code), stateless
b) a connected momentary switch, stateless
c) with an optional cloud-connected gateway
Stateless here means: push for open, stop, close

I do not use the cloud as a matter of principle; in automation it means when there is no Internet anything cloud connected won't work. Hence, c) is not an option.

a) and b) are fine, except I do not know, whether the door opens, closes or has stopped. I can't open it say to 70%. Why that? Well, the doors are 3 and 3.5m high, and do not need to open all the way for a human to enter.

Now my actual query...
The build in electronics uses an encoder of sorts. It has 5 wires, indicating to me that it provides directional information. The door, when programmed for the first use, requires it to run full up (press a button to record the end position) same for all down.No matter where the door stops in between, running to either end still allows it to slow down on the last 70mm.

I was wondering whether someone can reasonably guess what encoder type (not brand) is being used and what signals to expect at the pins to work with.


(Purple-coded wires are for the encoder)

I can use a relay to provide the required stateless input for open|close|stop, and use the encoder signal to tell me which state or motion the door is in.

I am asking, as it would avoid working on a ladder up 3m high and doing some testing :slight_smile:

... and of course, want to use an Arduino to 'control' the doors.

Any hits appreciated.

I would hazard a guess that it's an incremental encoder of some type rather than an absolute encoder. The installation process suggests that the controller is working out how many pulses from the encoder there are between open and closed. After that it just has to keep track of the pulse count (and direction) to know where the door is.

1 Like

Thanks! I never worked with encoders... but this should be doable... to hook into it. Will most likely create a cable with one plug and two connectors, to plug in the encoder and the connection to the Arduino.

I will test what happens when the power fails while the door is in operation. This should settle it.

As for he rest of the circuit shown, the black pair of cables is AC in, bridge rectifier; green/red for DC drive motor, white ground, the little black boxes are the relays for it.

In the meantime I have organised another roller door automation set, which I an run up in the lab... to figure out what is going on there.

The controller may "remember" the door position counter in non volatile or battery backed memory in case of power cuts.

If the controller has basic up & down buttons (maybe your option b), then you could use the Arduino to motor it up and down to preset positions using some microswitches set at various heights. Maybe one at 6in off the floor for ventilation, and one at 7ft for human entry (that should cover most of the population!).

I recently had to get a new garage door opener, silly thing wrong with it but no component level repair available, it lasted 2x its service life and someone wouldn't let me do it, so.

The new one is identical to the old one, and uses this clever analog mechanism for position open and close control:

image

Kinda blurry, but it's two switches running on worm gears run by the main drive shaft, which is tapped. Tots 20th century.

I wondered why no engineer was able to convince them to modernize the whole thing, I am sure you all could think of many ways to do…

But you really can't beat this old design - right there, clear what's going on, easily made to well outlast everything else, impervious to power outrage or outage &c.

We all run for the torch, sometimes butter is best cut with a knife.

Just sayin', and presented for you interest. I was surprised even when I first saw it never mind how long ago, and kinda fascinated to see it cranking away in the new one.

a7

Usually does not remember the position, just the distance between open and closed. When the power returns, it (for safety) does nothing, but when you press the button (either one) it tries to close and when it hits the stop, it "knows" where it is and how far it takes to open.

In order to remember the position when the power is cut, it would have to be storing that position in EEPROM continually which would mean extremely frequent writes and this would wear out the EEPROM over time, so they do not do that.

What is particularly clever is that using an incremental encoder, the controller can monitor when the door is moving and when it has hit an obstacle. There is no need to do this indirectly such as by measuring the motor current. The motor can cope with very brief overloads - less than a second - so it is conveniently protected by the controller.

1 Like

No, its perfectly possible to write EEPROM in the time between detecting power loss and the supply dropping too low for the microcontroller to function.

Possible indeed, but highly unlikely in a commercial product. :face_with_raised_eyebrow:

Incremental encoder would use 3 or 4 wires I think.
For 5 wires I would guess GND, bottom, near-bottom, near-top and top are the signal.

On this occasion, I don't think the encoder has any concept of top or bottom. The OP indicated that there was a process to follow on first use to "teach" the controller where fully up and fully down were. Presumably the controller then knows how many pulses there are between full up and full down, which may well be how it knows when to slow down the rate of opening/closing as these end points are reached.

As I said.

Yes, that's what my garage door does. :sunglasses: