Affordable DIY Automated Blinds

Hey everyone!

I wanted to share my exciting project with you all, where I automated my blinds using Home Assistant. I’ve always been interested in home automation, but the off-the-shelf solutions available were too expensive, costing around $100 per window for a suboptimal plastic device. So, I decided to take matters into my own hands and find a more affordable and efficient solution. I ended up landing on a design that will cost you less than a $10 per window if you already own a 3 printer.

To see how it works in action, watch this demo video: 9g servo blinds automation demo - YouTube

To help you understand the project better, I highly recommend watching this video that explains how the blinds work: How do Window Blinds work? - YouTube

Initially, I started exploring different options using basic parts. The first design I came up with was simple, but it lacked the necessary torque when connected to the blind mechanism. In my second design, I connected a servo directly to the square axle, which worked well, but it had a major flaw - the manual mechanism had to be removed. The worm gear inside acted as a lock, allowing rotation only from the pull cords. Determined to find a better solution, I decided to 3D print a more complex design and came up with design number 3, which recreated the original tilt mechanism using PLA. Although it worked, it turned out to be too bulky to fit inside the rails.

Check out this photo showcasing the different designs:

Over the course of a few weeks, I continued iterating on the design until I reached version 4. This version utilizes a 9g servo controlled circuit, where the encoder (potentiometer) is coupled to the square axle. This modification simplified the software side of things, as I initially considered using an external accelerometer to pull the position. The design consists of two main parts: the gear with a thread spool and the rest of the mechanism that clips into the rail and locks against the existing mechanism in place.

If you’re interested in printing the 3D model yourself, you can find the file at this link: Venetian blinds tilt mechanism 9g servo adapter by kirill578 - Thingiverse

Here are the instructions for building your own automated blinds:

Start by printing the gear with the spool and try replacing the existing gear. This step can be a bit challenging, as you’ll need to wind it in a very specific way. I highly recommend threading the wire through all the holes, just like the original spool, to ensure that the wire doesn’t get tangled with the gear.

Keep in mind that this design is permanently coupled with the servo, meaning that if you manually adjust the blinds using the cord, it will require a stronger pull and may generate more noise.

Wiring the encoder and aligning the axle correctly can be a bit tricky. If the movement is in the wrong direction, rotate the encoder by 180 degrees. If it oscillates around the center, you have wired the encoder incorrectly.

The servo draws approximately 600mA when it stalls, which can cause the voltage on your esp8266 to drop below 3.3V and result in a crash. Make sure your power supply can handle this by adding a 100uF capacitor to the 3.3V line. It’s important to note that running long 5V lines won’t work; instead, use a step-down converter from 12V/24V to 5V.

I’m still working on figuring out how to wire the power to the circuit. If you have any suggestions, I’m open to hearing them!

Ensure that you print the parts in the correct orientation to prevent them from snapping when you attach them.


ESPhome config:

sensor:
  - platform: adc
    id: source_sensor
    name: "position sensor"
    update_interval: 1s
    pin: A0
    filters:
      - multiply: 3.3

number:
  - platform: template
    name: Servo Control
    min_value: -100
    max_value: 100
    step: 1
    optimistic: true
    set_action:
      then:
        - servo.write:
            id: my_servo
            level: !lambda 'return x / 100.0;'

servo:
  - id: my_servo
    auto_detach_time: 1s
    output: pwm_output
    transition_length: 5s
    min_level: 3%
    max_level: 12%

output:
  - platform: esp8266_pwm
    id: pwm_output
    pin: D1
    frequency: 50 Hz

d4

I hope these instructions help you in building your own automated blinds, I’d love to hear if you have any suggestions.

5 Likes

I am in the analysis stage to determine best way to automate some of my “more used” blinds in my house.
I like your idea and will give it a try. Can you be a little more specific with the details of the potentiometer (pot) that you have in this circuit? Where/ how it connects to the servo and what the ohm value of it is ( or is that the pot that is build into some servos and no additional pot required? I also do not see any references in the code to it.
Thanks.