Minimalistic Motorized Roller Blinds - NEMA 17 stepper motor gear and mount

Copyright Claim

Minimalistic Motorized Roller Blinds - NEMA 17 stepper motor gear and mount

Boost
6
6
0

Print Profile(1)

All
A1

0.2mm layer, 3 walls, 15% infill
0.2mm layer, 3 walls, 15% infill
13 min
1 plate

Open in Bambu Studio
Boost
6
6
0
0
10
3
Released

Description

Minimalistic Motorized Roller Blinds

via esphome and homeassistant.

To automate your roller blinds for:

  • open blinds slowly and noiseless when waking up, coupled to your alarm clock
  • close blinds on hot summer days
  • control blinds if you are not home

and you are still able to move the blinds by hand in case of power outages

Hardware

The hardware I used is a 3d printing board with 4 stepper drivers, so the code can be extended to control 4 blinds from one board. The motors are not energized when not in use, so there is no energy wasted. The motors are standard NEMA17 1.2A 0.42Nm stepper motors just like used in 3D printers.

Before you take on this project, keep in mind the maximum achievable pulling force, as it may not be enough for your roller blinds. To calculate the approximate pulling force, you can use the equation below. The calculation is valid for my stepper and gear setup. (The unit is in kg for better understanding)

To adapt the ESPHome config to your connections, you can look up the pinouts and jumper configuration on the FYSETC-E4 Github Repository. My provided yaml uses

  • the X-axis driver to control the stepper motor for my blinds (tmc uart address 0x01)
  • a window sensor imported from home assistant
  • GPIO34 for the stall detection signal which is also shared with the X-MIN connector
  • GPIO35 for the reed endstop switch plugged in via the Y-MIN connector

Note: The X-MIN and stall signal (X-DIAG) of the X Stepper controller are using the same pin. That is also the case for y and z axis. E axis has no stall signal output. To enable stall detection you have to configure the jumpers according to the section Sensorless homing enable jumper. You can still attach a switch (normally opened) while using stall detection on the same pin, but just be aware that you can't distinguish between the two signals. Thats why i used the Y-MIN endstop.

ESP32 based 3D printer board FYSETC-E4: Buy on Aliexpress

NEMA 17 stepper motor 0.42Nm: Buy on Aliexpress

Power supply 24V 1A: Buy on Aliexpress

DC power jack adapter to screw terminal: Buy on Aliexpress

(Optional) Reed endstop switches for position feedback: Buy on Aliexpress

Software

ESPHome is used to flash the Esp32 module. It is connected via WiFi to Homeassistant where it can be controlled by all kinds of devices and automations. There are many YouTube tutorials on how to config and flash ESPHome and its Homeassistant integration.

In my config there is a window sensor and a roller blind endstop configured to prevent any kind of error with the roller blades. Additionally the TMC2209 stepper drivers are configured to detect the blinds stalling and the motor will turn off if something blocks the blinds.

ESPHome config yaml: Github yaml

Customize

My dimensions are about 4.5mm for the balls with a spacing of about 6.1mm. Use the f3d file provided if your chain has different dimensions.

If you like my work, you can support me with a donation via paypal! Or use the affiliate links to show support without additional charge.

Comment & Rating (0)

Please fill in your opinion
(0/5000)

No more