Automated Curtains

We have looked at many automated curtain and blind products over the years and even have a few products installed in our smart home. None of them really provide the user experience that we want though. To get a solution that meets all of our requirements we have taken a 'no compromise' approach and designed and built our own solution, using top quality components that are readily available online. This doesn't mean that our solution is amazingly expensive. The cost of the parts used is less than a price of commercially available solution from one of the mainstream companies making products like this.

Why Automate?

The primary reason to automate curtains is to improve the security of your home. When you are away on holiday, nothing says 'my home is empty' more than curtains left open at night or closed during the day. This is even more true if you have automated security lighting.

The second reason to automate curtains in your home is for convenience. This is even more true when you have multiple curtains or blinds at one window. They can be configured to close at dusk automatically or via the simple press of a button.


In our home user experience is everything:

  • We want automated curtains that can be both manually controlled and also intelligently controlled by our smart home.
  • We want a solution that is virtually invisible and silent.
  • Any exposed manual controls must be attractive, stylish and intuitive to use.
  • We want a system that is extremely reliable and also works during power cuts.
  • The solution must allow the curtains to be partially opened or closed.
  • The solution must work with existing track supports, tracks and finials.
  • The solution must provide a visible indication of any problems.
  • The manual controls must result in occupancy events being sent to our smart home.
  • Soft start motor control will be used to improve the user experience.

It goes without saying, but as an integrated device (and associated sensors) modelled within our smart home, all curtains will be able to be remotely controlled and also voice controlled within our smart home.



To ensure reliability of operation our automated curtains use a 12V dc supply from our 12V UPS but any 12V dc power supply could be used.


For reliability we are assuming a wired Ethernet connection to our curtain controller but, we are also developing a Wi-Fi based controller for those situations where network cables can't be installed.


For this project we are using a low-cost Arduino processor as the curtain controller. Our first installation is using an Arduino UNO with an Ethernet shield.

The controller accepts all manual inputs via momentary push switches and also accepts requests via the network interface.

The controller reports all input changes and status changes to our Home Control System (HCS). This includes warnings and errors messages.

Drive & Transmission

12V dc motor and gearbox
We are using 12V dc motors driven by PWM. This enables the soft-start capability required to provide smooth and quiet operation and improve the user experience. The motors are geared for 40rpm at full speed (unloaded).

The motors have a 6mm shaft and we have fitted 40mm diameter drive pulleys to the shaft. The shafts have a flat for a grub-screw.

HDT5 pulleys
We are using a 9mm HDT5 pulleys with flanges to keep the belt aligned. Only one pulley is driven, with the other pulley able to spin freely.

HDT5 belt
We have used a variable length (open) belt to move the curtains. Our first implementation uses a 3.5m long open belt which is joined to form a closed loop.

A 12V automotive relay is used to control the motor direction. The relay is only powered when the motor is moving (and only in one direction) and basically swaps over the positive and negative power lines to the motor.

IRF520 module
An IRF520 MOSFET module is used for the PWM supply to the motor. This is connected to a PWN capable pin on the Arduino controller. These modules can be bought very cheaply on eBay.


There are two sensors used to detect the fully open and fully closed position. When one of these sensors is not activated, the curtains are assumed to be in transition or stopped (due to manual intervention).

MK 4900 Grid Plus switch
There is a manual (momentary), two-way (on-off-on) switch used to manually open and close the curtains. We are using the MK Grid Plus K4900 (Retractive Centre Off) push switch, mounted horizontally. This approach works intuitively with the switch mounted either side of the curtains. If the switch is on the right, then pressing the right side opens the curtains and pressing the left side closes them.

The controller does the manual switch 'debouncing' in software and has been tested to optimise its behaviour. If the switch is pressed to open the curtains and is then pressed again (once they are in motion), it will stop the curtains in a partially open state and the curtains will report a 'stopped' state back to our Home Control System (HCS). The same technique works when attempting to close them. If someone presses the switch to open the curtains and then presses the switch to close them, they will stop and then close.

If the curtains are already closed and the closed switch is pressed, nothing will happen except for an occupancy event being sent to our Home Control System (HCS). This also holds true if the curtains are already open and the open switch is pressed.

Network Commands

The controller accept two main network commands, 'Open' and 'Close'. These are requests will over-ride any previous manual input. These can be sent as socket layer comms (TCP/IP) or via HTTP requests. The controller also accepts a 'Status' command and a 'Reset' command.

Network Events

The curtain controller will generate events when they reach the fully 'Open' state, fully 'Closed' state or are 'Stopped' due to manual input. It may also report 'Warning' and 'Error' events.

The manual input switches are modelled as objects in their own right (momentary buttons) and will report an event each time they are pressed. These are also generate occupancy data for the zone in which the curtains reside.

The controller also sends a regular 'Heartbeat' event to our Home Control System (HCS), which is used to detect failures.


There is a 5mm red LED fitted behind the manual switch control mounting plate (which it shines through) and this is lit when an error condition is detected. When off it is invisible. This will come on if a network connection error is detected, the curtain has timed out trying to open or close the curtains, or some other error condition has been detected.


The key challenge with the construction is to do it in such a way that the parts can be hidden.

T.B.C. - We are still writing this bit up.


There are a few minor limitations in our design, which we are happy to live with:

  • Our smart home can either open or close the curtains but it cannot partially open or close them. This can be achieved using the manual controls though.
  • There is no way to open/close these curtains without using the motor and associated users controls.

In Use

You really don't want to configure all of your automated curtains and blinds to close or open at the same time. This looks odd from outside your home and creates a large electrical load spike. We prefer to run a scene at twilight sensor, to close the curtains in a sequence, with a short delay between each one.

Voice Control

Our smart home artificial intelligence (AI) knows about all the objects and zones in our home, so it can process complex queries via text and voice. some typical examples are:

"Open the Study Curtains"
The study curtains are now opening.
The study curtains are stopped.
"Are the study curtains closed?"
No. The study curtains are open.
"Close them."
The study curtains are now closing.
"Close the study curtains."
The study curtains are already closed.
"Close the curtains in the Study."
The study curtains are now closing.

Some example videos will be linked here very soon.


There are commercially available automated curtain mechanisms available but none of them had the quality we required. None of them had the level of control we wanted either, or the ability to be integrated into our smart home and its associated context. For this reason we developed out our to meet our exacting requirements.

The cost of the parts to implement the solution outlined here is considerably less than £100. This compares well with the cost of current solutions on the market. And that's even before considering the quality, features and integration capabilities.

We are investigating various options to bring the solution described here to market in a self-install kit form.

Share ...
We are on ...
Facebook Twitter
YouTube Flickr Follow us on Pinterest