WorkSilicon

sprinklerd

Set-and-forget sprinkler controller: per-zone soil-water modeling and weather forecasts, no subscription.

Deployed2026

0
cloud services required: schedules, rain and freeze holds, and the water-balance model all run on the chip
2,115
lines of dashboard web app, served straight from the microcontroller
ECDSA P-256
signed firmware updates: an image with a bad signature is rejected on the device
AP + STA
Wi-Fi modes with captive-portal setup; three quick power cycles open a recovery access point, no tools needed
Dashboard: four zones shown as water buckets with fill level, next run or skip, and the heat-boost setting

sprinklerd does the job of a commercial irrigation controller, without the subscription. It switches standard 24 VAC zone valves through relays, manages each zone on its own, and once set up, adjusts its watering through the seasons for its location.

Each zone keeps a running soil-water deficit in millimetres. Evapotranspiration, taken from the forecast for the device’s configured location, adds to it; rain and watering take it away. A scheduled run waters only what the zone is short, or skips when it isn’t short at all, and a likely rain or a freezing night holds the valves closed. If forecasts are unavailable for two weeks, it falls back to the base schedule rather than stopping. Everything runs on the device: no account, no app, and the only outbound traffic is a time sync and a weather request that needs no API key.

The hardest problems were the filesystem and the network. Logs once filled the 128 KB filesystem and silently erased days of history, so logging became best-effort, with a free-space reserve, size and file caps, and failure counters; schedules and settings always have room to write. On a weak, lossy Wi-Fi link, the timeline, streamed in hundreds of tiny chunks, timed out and stalled the device. Responses now go out in 2 KB blocks, about thirty times fewer round trips; the dashboard retries with a timeout and keeps the last good view, and the Wi-Fi indicator shows signal strength. In use since May.