Famously, Nikola Tesla won the War of the Currents in the early days of electrification because his AC system could use transformers to minimize losses for long distance circuits. That was well before the invention of the transistor, though, and there are a lot of systems that still use AC now as a result of electricity’s history that we might otherwise want to run on DC in our modern world. Sprinkler systems are one of these things, commonly using a 24V AC system, but [Vinthewrench] has done some work to convert over to a more flexible 24 VDC system instead.
The main components of these systems that are set up for AC are solenoids which activate various sets of sprinklers. But these solenoids can take DC and still work, so no major hardware changes are needed. It’s not quite as simple as changing power supplies, though. The solenoids will overheat if they’re fully powered on a DC circuit, so [Vinthewrench] did a significant amount of testing to figure out exactly how much power they need to stay engaged. Once the math was done, he uses a DRV103 to send PWM signals to the solenoids, which is set up to allow more current to pull in the solenoids and then a lower holding current once they are activated.
With a DC power supply like this, it makes it much easier to have his sprinkler system run on a solar powered system as well as use a battery backup without needing something like an inverter. And thanks to the DRV103 the conversion is not physically difficult; ensuring that the solenoids don’t overheat is the major concern here. Another great reason to convert to a DIY sprinkler controller is removing your lawn care routine from an unnecessary cloud-based service.
There might be some relevant code in the DIY fuel injection peojects. Some fuel injectors are driven the same way, high current to activate and lower current to hold.
I started with a “gateway timer” that had a photocell to detect sunrise and a knob to set run-time. Now I have a dual zone that connects to a hose bibb. But obviously I need to move up to the big boy multi-zone machine.
Sadly the big downfall is the logic behind the user interface. Usually it is convoluted and not obvious what is set and when.
I like OpenSprinkler. RaspberryPi based, open source hardware and software (natch), plenty of zones, expandable, and the remote interface is all hosted on the Pi.
The only drawback is there is no good interface on the Pi itself. There’s a two line LCD and a couple of buttons, and if you remember the click-A-while-holding-B nonsense you might be able to run a zone, or maybe stop one. Normally you’d just pull up the interface on your phone, but that doesn’t work for the irrigation maintenance contractors. All they know is Hunter or whatever brand they service.
One of the more interesting things in modern sprinkler systems is a lot of newer ones use a digital protocol to run a ring of two wires around an area, instead of one. Valves are either addressed via stand-alone decoders in the valve box (you run 2-wire to the decoder, and then wire the traditional valves to the decoder), or now increasingly via decoders built into the valve.
Valves and decoders are programmed digitally, via addresses (similar to how 1-wire works), into the controller.
Since its a digital signal, it also supports bi-directional communication. So a valve can report flow, stuck state, temperature, etc.
Sadly its not exactly a standard system yet, although there is overlap between manufacturers. RainBird and Hunter make most of the 2-wire systems, although I believe K-Rain and others support it as well. That said, things like OpenSprinkler do not support it, as far as I know. But given OpenSprinkler is completely open, from hardware on up, you could probably add support relatively easily.
That, or just use 1-wire or similar bus protocols for your sprinkler and have the next owner of your property hate you.