A compact DIY curtain opener that uses an ESP32 microcontroller and a NEMA 17 stepper motor to automatically open and close curtains. The device is powered directly from a wall outlet, ensuring consistent and reliable operation.
suu.mp4
- ESP32 C3 SuperMini
- NEMA 17 stepper motor
- TMC2209 stepper driver
- 12V DC power adapter
- MP1584EN step-down converter
- Paracord or Kevlar string for curtain movement
- Mounting hardware (screws, heat inserts, anchors)
See BOM.md for the full bill of materials.
- The NEMA 17 motor, controlled by the ESP32, pulls a string to move the curtain.
- Power is supplied by a 12V DC adapter connected to a wall outlet it is stepped down to 5v to power the ESP32.
- The ESP32 can be programmed for scheduled routines or remote operation.
- 3D print the enclosure and mechanical parts (see
src/CAD/). - Mount the motor, idler, and string to the curtain.
- Wire up the stuff and enclose it in a case (optional).
- Upload your control firmware to the ESP32. (see
src/code).
Motor Mount
Screws into the motor and then screws onto the wall near the curtain.
Idler
This uses a gt2 idler with 8mm bore, this attaches to the curtain rod. (you might have to redesign this based off your cutain rod diameter).
Enclosure
This holds all the electronics (motor drivers, step down, esp32 and wires). It has a detachable front panel and side mounts in case you need to update it later.
EN_PIN = 5
STEP_PIN = 6
DIR_PIN = 7
MS1_PIN = 8
Motor
Idler





