Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BlindPuller

CI

Turn your 3D printer's spare parts into a silent, cloud-free smart blind motor.

BlindPuller is an open-source, 3D-printable retrofit device for the beaded-chain roller blinds found in most homes across Australia, North America and Europe. It mounts on the wall below your blind, the bead chain runs through it, and it opens your blinds at sunrise — so you wake up with natural light and still sleep in full darkness.

No cloud. No app account. No modification to the blind itself. Renter-friendly.

Assembled BlindPuller — front view

Render from assembly.scad: blue = printed bracket, orange = printed sprocket, teal = printed chain guard (translucent for illustration), grey = NEMA17 motor, white = your blind's bead chain. Side view.

Status: v0.1 — early development. The parametric CAD and firmware are here and documented, but the design has not yet been validated on a physical build. First test build is the current milestone. Issues and PRs very welcome.

Why this exists

Waking up to sunlight is the best-known fix for groggy mornings, but sleeping well requires a dark room. The only way to have both is something that opens the blinds before you wake up.

Commercial options exist (RYSE SmartShade ~US$150–200, SOMA Smart Shades ~US$150, AliExpress AM43 ~US$25) but they are either expensive, tied to a proprietary cloud app, or both. Meanwhile, if you own a 3D printer you very likely already have the two most expensive parts of such a device sitting in a drawer:

Part Why you already have it
NEMA17 stepper motor Standard 3D printer motor — most people have spares
TMC2209 stepper driver The standard silent driver for printer mainboards

Add a ~US$2 ESP32-C3 board, a 12 V power brick and some printed parts, and the total cost of a BlindPuller is under US$15 if you have the motor and driver, or about US$25 if you buy everything new.

How it works

   ┌─────────────┐
   │ roller blind │
   └──────┬───────┘
          │  bead chain (continuous loop)
          ▼
   ╔═════════════╗
   ║ BlindPuller ║   ← wall-mounted below the blind
   ║  ┌─────────┐ ║
   ║  │ sprocket │ ║   printed bead-chain sprocket on a NEMA17 shaft
   ║  └─────────┘ ║
   ║  ESP32 + TMC ║   ESPHome firmware, silent stepper driver
   ╚═════════════╝
  1. The bead chain loops through the device and engages a printed sprocket whose pockets match the chain's ball spacing.
  2. An ESP32-C3 running ESPHome drives the NEMA17 through a TMC2209 in near-silent StealthChop mode.
  3. The device shows up in Home Assistant as a standard cover entity — automate it with the built-in sun integration ("open at sunrise"), scenes, voice assistants, whatever you like.
  4. Manual control is never taken away from you. Two hardware buttons jog the blind up/down, and when the motor is idle it is de-energised, so you can still pull the chain by hand like you always did.

Design principles

  • Built from parts the target audience already owns. The bill of materials is optimised for 3D-printer people, not for a factory.
  • Local-first, cloud-never. ESPHome + Home Assistant. Works on your LAN with the WiFi router unplugged from the internet.
  • The user keeps manual control. Idle motor = free-spinning chain. Physical buttons always work, even with WiFi down.
  • Parametric everything. Bead diameter, chain pitch, sprocket tooth count, shaft size — all variables in config.scad. Bead chains vary by country and manufacturer; yours will fit.
  • Rental-friendly. Mounts with two screws or 3M VHB tape. Removal leaves no trace and the blind is untouched.

Bill of materials

See hardware/BOM.md for the full list with links. Summary:

Item Qty ~Cost (new)
NEMA17 stepper (≥40 N·cm) 1 US$9 (or free from your spares)
TMC2209 driver module 1 US$2
ESP32-C3 SuperMini 1 US$2
12 V 2 A DC power supply + barrel jack 1 US$5
Buttons, wires, M3 hardware US$3
Printed parts (~80 g PETG) US$2

Quick start

  1. Measure your chain: ball diameter and centre-to-centre pitch (typical "#10" chain: 4.5 mm balls, 6 mm pitch — the default). Measure across 10 gaps and divide by 10.
  2. Verify with the gauge: set your chain dimensions in hardware/openscad/config.scad, print gauge.scad (a 5-minute strip) and lay your chain into it — every ball should drop into a pocket. This catches measurement errors before you print anything big.
  3. Print the real parts: render sprocket.scad and housing.scad to STL, print in PETG (sprocket at 100% infill). Pre-rendered STLs for the default #10 chain are in releases/v0.1.
  4. Flash: copy firmware/esphome/secrets.yaml.example to secrets.yaml, fill in WiFi credentials, then esphome run firmware/esphome/blindpuller.yaml.
  5. Assemble & mount: see docs/assembly.md.
  6. Automate: in Home Assistant, add an automation — trigger: sun rises → action: open cover. Enjoy waking up like a plant.

Related projects & prior art

Credit where due — this project stands on a well-trodden path:

  • nidayand/motor-on-roller-blind-ws — the classic ESP8266 roller-blind motor (2017-era, replaces the blind's tube mechanism rather than pulling the chain).
  • RYSE SmartShade / SOMA Smart Shades — commercial chain-pulling retrofits; polished, but cloud-dependent and US$150+.
  • A-OK AM43 — cheap commercial chain motor; hardware is fine, the mandatory Tuya cloud app is not.

BlindPuller's niche: chain-through design (zero blind modification), fully parametric printable CAD, ESPHome-native, and a BOM made of 3D-printer spares.

Roadmap

  • v0.1 — first physical test build; validate sprocket engagement and lifting torque
  • v0.2 — endstop-free calibration via TMC2209 StallGuard (no limit switches, no over-travel)
  • v0.3 — printed 3:1 planetary gearbox option for heavy blinds
  • v0.4 — battery + solar option (18650 + TP4056 + solar panel)
  • v1.0 — Matter-over-WiFi build profile for non-Home-Assistant users
  • Cord-loop (fabric loop) variant of the sprocket

License

MIT for everything in this repository — firmware, CAD sources and documentation. Print it, sell it, remix it; attribution appreciated.

Contributing

See CONTRIBUTING.md. The most valuable contribution right now is a test build report — even (especially) a failed one.

About

Turn your 3D printer's spare parts into a silent, cloud-free smart blind motor. Parametric, ESPHome-native, renter-friendly.

Topics

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages