Hack-a-Bot
Light-reactive automated blinds
Commercial smart blinds cost $300-500 per window. A tubular motor, an ESP32, and a light sensor do the same job for under $50. Your blinds track the sun, react to room temperature, close at sunset, and open at dawn — all without a subscription or a proprietary app.
This build teaches stepper motor control and analog sensor reading. The same skills apply to any project that needs precise rotational movement — plotters, turntables, camera gimbals.
The kit includes the motor, controller, and sensors. You supply:
The Full Send Kit includes all electronics and hardware. You supply:
Mount on your window frame, plug in USB power, and connect to WiFi. Shades move with the sun.
Every Zero Shot unit is hand-assembled, firmware-loaded, sensor-calibrated, and QA tested before shipping. Premium boxed packaging included.
You're adding a motor to your existing blinds — no permanent modification required. The chain drive adapter clips onto the bead chain, the stepper motor turns it, and the ESP32 decides when based on light levels, time, or your phone.
Attach the mounting bracket to the window frame or wall next to the blinds. The bracket holds the stepper motor at the correct height to engage the bead chain. Clip the chain drive adapter onto the chain and mesh it with the motor's gear.
Test manually: power the motor and run it in both directions. Verify the blinds open and close smoothly without the chain slipping or binding.
Connect the ULN2003 driver board to the ESP32 (GPIO pins 19, 18, 5, 17). Wire the LDR sensor to an analog input pin with the voltage divider circuit. Power everything from the USB-C cable.
# ESPHome stepper config
stepper:
- platform: uln2003
pin_a: GPIO19
pin_b: GPIO18
pin_c: GPIO5
pin_d: GPIO17
# ... full config in project files
Define the fully-open and fully-closed positions in steps. Run the motor from one end to the other, counting steps. Store these as endpoints in the config. Add intermediate positions — 25%, 50%, 75% — for partial shade control.
Read the LDR value every 30 seconds. Set thresholds: above 800 (bright sun) = close blinds; below 200 (dark) = open blinds; between = hold position. Add hysteresis to prevent flapping — require the reading to stay past the threshold for 2 minutes before acting.
Override with time-based rules: always open at 7 AM, always close at 10 PM. Phone commands override everything.
Tidy the wiring with cable clips along the window frame. The 3-meter USB cable reaches most outlets. For a cleaner install, use a rechargeable 18650 battery pack — the motor draws minimal current and a single charge lasts weeks.
Complete source code, wiring diagrams, and documentation. Enter your kit code to unlock.
Don't have a code? Get the kit — code included in every box.