The Project
Motorize the tilt on ordinary 2" horizontal blinds with nothing visible on the window: no pod stuck to the glass, no replacement wand. Everything lives inside the headrail and drives the tilt rod directly. Matter over Wi-Fi means it shows up in HomeKit, Google Home, Alexa, or Home Assistant with no hub, no bridge, no cloud, no app.

The project started the way most do: eight windows retrofitted with commercial smart-tilt motors that all died — batteries that wouldn't hold charge, stripped gears, $200-per-window replacements. Worse, installing them had required removing the native cord spool, so every dead motor left a window with no manual control at all. The requirements wrote themselves:
- The pull cord always works — motorized or dead
- The blind always knows its real position, even after a manual move
- When something wears out, you replace a cheap part, not the product
Eight months of gearbox architectures later — planetary, harmonic drive (4.5 versions), magnetic gearing, TPU belts, three separate cycloidal campaigns, a capstan — the transmission that won is a preloaded friction clutch: a stack of washers pressed to a set torque. One mechanism is simultaneously the drive coupling, the overload protection, the manual override, and the end-stop tolerance. The failure I'd spent months engineering against became the feature.
The whole eight-month build journal: https://www.tiltforge.com/blog
Position feedback comes from an AS5600 magnetic absolute encoder reading the drivetrain itself, so clutch slip never loses position — and when a human grabs the cord and tilts the blinds by hand, the encoder sees the real position and the smart home stays in sync. No competitor does that.
One confession up front: every part of this was designed in TinkerCAD. Laugh, then watch the video.

What's open and what isn't — honestly, because that word gets abused: the build journal and docs are free to read and share (that's what this page's CC license covers). The dead architectures from the journal — the cycloid drive and friends — are headed to Printables as free models. The shipping kit's STLs come with the hardware, or as a $20 Studio pack licensed for personal use — because the wear parts you might ever need to reprint should never be hostage to the company. And the device itself is local-first Matter: no cloud, no account, no bridge, no app. Every wearing part is available as a cheap replacement, and the whole thing is documented as it's built — this page is the living build log.
The technical story
Why every gearbox failed. The headrail's own worm gearing is not backdrivable, and the cord spool needs a 90° direction change plus reduction — exactly what the worm already does. So the only way to keep the cord working is to drive the same axis the worm and spool live on. A planetary, harmonic, or cycloid stage sitting in-line on the tilt rod ends up on the wrong side of the worm, where a cord pull can't reach it: dead cord, dead requirement. Each architecture failed this same geometry test before it got the chance to fail on its own terms. (Full teardown of each attempt in the build journal, linked below.)

What won. A custom N20 gearmotor (Hotec HT-SOG12C, 60 RPM @ 6 V) — built to spec with an M4-threaded shaft after months of fighting D-shaft geometry — drives the tilt rod through a preloaded friction stack that threads directly onto the motor-side spur: fiber clutch washers under set compression, slip torque set by locknut preload ("set preload, check feel" — a coil spring auditioned and lost). Putting the clutch on the motor side eliminated the middle axle that once carried it, collapsing the drivetrain to the motor plus one fixed axle (driven gear, worm, spool) — and the blind's own worm gearing downstream keeps the pull cord alive. The clutch slips at end-of-travel, slips when a kid yanks the blinds, and slips below motor...
Read more »
Joe Hill
Rocketburns
Alex Carpenter
Scott Duckworth
MasterOfNull