Uncategorized

Renter-Safe DIY Smart Curtains with ESP32, AS5600 & Home Assistant

Renter-Safe DIY Smart Curtains with ESP32, AS5600 & Home Assistant

.cr-article{font-family:-apple-system,BlinkMacSystemFont,”Segoe UI”,Roboto,”Helvetica Neue”,sans-serif;line-height:1.75;color:#2c3e50;font-size:1.05rem;max-width:760px;margin:0 auto}
.cr-article p{margin:0 0 1.25em}
.cr-article p:first-of-type::first-letter{font-size:1.15em;font-weight:600;color:#1a1a2e}
.cr-article h2,.cr-article h3,.cr-article h4{font-family:inherit;color:#1a1a2e;line-height:1.3;font-weight:700}
.cr-article h3{font-size:1.5rem;margin:2em 0 .7em;padding-bottom:.4em;position:relative}
.cr-article h3::after{content:””;position:absolute;left:0;bottom:0;width:64px;height:3px;background:linear-gradient(90deg,#ff6b35,#f7931e);border-radius:2px}
.cr-article h4{font-size:1.2rem;margin:1.5em 0 .5em}
.cr-article ul,.cr-article ol{padding-left:1.4em;margin:1em 0 1.5em}
.cr-article ul li,.cr-article ol li{margin-bottom:.55em}
.cr-article ul li::marker{color:#ff6b35}
.cr-article a{color:#ff6b35;text-decoration:none;border-bottom:1px solid rgba(255,107,53,.35);transition:color .2s,border-color .2s}
.cr-article a:hover{color:#d94d12;border-bottom-color:#d94d12}
.cr-article strong{color:#1a1a2e;font-weight:700}
.cr-article em{color:#495057}
.cr-article blockquote{margin:1.5em 0;padding:1em 1.4em;background:#fff7f2;border-left:4px solid #ff6b35;border-radius:0 8px 8px 0;font-style:italic;color:#495057}
.cr-article hr{border:none;height:2px;background:linear-gradient(90deg,transparent,#ff6b35,transparent);margin:2.5em 0;opacity:.7}
.cr-article img{max-width:100%;height:auto;border-radius:10px;box-shadow:0 4px 18px rgba(0,0,0,.08);margin:1.2em 0}
.cr-article code{background:#f3f4f6;padding:.15em .45em;border-radius:4px;font-size:.92em;color:#d94d12;font-family:”SF Mono”,Menlo,Consolas,monospace}
.cr-article pre{background:#1a1a2e;color:#e9ecef;padding:1.1em 1.3em;border-radius:10px;overflow-x:auto;line-height:1.55;margin:1.4em 0}
.cr-article pre code{background:transparent;color:inherit;padding:0}
.cr-faq{margin:2.5em 0 1.5em}
.cr-faq-title{font-size:1.5rem;text-align:left;margin:0 0 1em;color:#1a1a2e;position:relative;padding-bottom:.4em}
.cr-faq-title::after{content:””;position:absolute;left:0;bottom:0;width:64px;height:3px;background:linear-gradient(90deg,#ff6b35,#f7931e);border-radius:2px}
.cr-faq-item{background:#fdfdfd;border:1px solid #e9ecef;border-radius:10px;margin-bottom:.85em;overflow:hidden;transition:box-shadow .25s,border-color .25s}
.cr-faq-item[open]{box-shadow:0 6px 18px rgba(255,107,53,.10);border-color:#ffb593}
.cr-faq-q{padding:1em 1.4em;cursor:pointer;font-weight:600;color:#1a1a2e;display:flex;justify-content:space-between;align-items:center;gap:1em;list-style:none;outline:none;font-size:1.02rem;user-select:none}
.cr-faq-q::-webkit-details-marker{display:none}
.cr-faq-q::after{content:”+”;flex:0 0 28px;width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;font-size:1.4rem;font-weight:300;color:#ff6b35;background:#fff5f0;border-radius:50%;transition:transform .3s ease,background .2s}
.cr-faq-item[open] .cr-faq-q::after{transform:rotate(45deg);background:#ffe0d0}
.cr-faq-q:hover{background:#fff7f2}
.cr-faq-q:focus-visible{box-shadow:inset 0 0 0 2px #ff6b35}
.cr-faq-a{padding:0 1.4em 1.1em;color:#495057;line-height:1.7;animation:cr-faq-fade .25s ease}
.cr-faq-a p{margin:0}
@keyframes cr-faq-fade{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
.cr-attribution{margin-top:2em;padding:1em 1.4em;background:#f8f9fa;border-left:4px solid #ff6b35;border-radius:0 8px 8px 0;color:#6c757d;font-size:.95rem}
.cr-attribution em{color:#495057;font-style:normal}
@media (max-width:640px){.cr-article{font-size:1rem}.cr-article h3{font-size:1.3rem}.cr-faq-title{font-size:1.4rem}.cr-faq-q{padding:.85em 1.1em;font-size:.98rem}.cr-faq-a{padding:0 1.1em 1em}}

Want automated curtains without drilling a single hole or losing your security deposit? One maker has built a removable, ESP32-powered smart curtain rig that proves you can have a fully connected home even when the walls aren’t yours to modify.

Rooster Robotics, a home automation enthusiast, ran into the classic renter problem: commercial smart curtain kits either didn’t fit the existing rods or required permanent modifications to the walls. So instead of compromising, they built their own from scratch — designing it specifically to clip on, perform reliably, and clip off again when the lease ends.

The first prototype used a geared DC motor and timing-based control, but it drifted out of alignment within days. The current version is a much smarter machine: a tidy little ESP32 module that talks to Home Assistant, knows exactly where the curtain is at all times, and lives inside a custom 3D-printed enclosure that slides on and off without tools.

What’s inside the build

The mechanical heart is a properly sized DC motor driving a set of 3D-printed nylon bevel gears arranged at 90 degrees, so the motor sits flush against the wall instead of jutting out. An ESP32 dev board runs the firmware, paired with a motor driver to handle current. For position feedback, an AS5600 absolute magnetic angle sensor reads 4,096 positions per revolution — precise enough that the curtain stops in exactly the same spot every cycle. Everything sits on a custom PCB with a dedicated Wi-Fi patch antenna for reliable signal around the metal hardware.

Build it yourself

  • ESP32 development board — the brains, with Wi-Fi for Home Assistant
  • Geared DC motor + motor driver — size the motor to your curtain’s actual pull force
  • AS5600 magnetic angle sensor — absolute positioning, no drift
  • 3D-printed nylon bevel gears and enclosure — for the right-angle drive and renter-friendly mount

Pair these with a custom PCB and a Wi-Fi patch antenna and you’ve got a removable, reliable curtain controller that integrates locally with Home Assistant for sunrise/sunset automations.

Frequently Asked Questions

How does the curtain know its exact position?

The build uses an AS5600 absolute magnetic angle sensor that reads 4,096 positions per revolution. Unlike timing-based control or a basic Hall effect sensor, the AS5600 gives the ESP32 a true absolute angle, so the curtain stops in exactly the same spot every cycle with no drift.

What makes this design renter-friendly?

The whole unit sits on a custom 3D-printed sliding rail mount with locking clips, so it can be installed and removed without drilling, screws, or any permanent modification. When the lease ends, the curtains go back to their original state and the controller comes with you.

What will I learn if I build this?

You’ll get hands-on practice with ESP32 firmware, motor driver wiring, and reading an I2C magnetic encoder like the AS5600. You’ll also pick up real-world skills in 3D-printed gear design, sizing a DC motor to a mechanical load, and integrating a custom device with Home Assistant for local smart-home automation.

This article was inspired by reporting from Hackster. Find the parts and modules to build it at Circuitrocks.

// written by Ann Arandia

Ann Arandia covers community projects and maker events for the Circuitrocks blog. She writes about local workshops, kid-friendly electronics, and the Philippine maker scene — the people, the meet-ups, the projects that come out of them.