The system uses a Raspberry Pi to control when each valve turns on and for how long. It does this via a custom RS-485 valve master board, whose code and design files are on GitHub. The master board communicates with the Pi over I2C and issues RS-485 commands while controlling the 12V line to the valves. Toggling the 12V supply is a smart move it lets [Vinnie] save power by not keeping the valves energized when idle.
At the valves themselves lives a valve node board (also on the GitHub repo). Each node has a unique address so it knows when its name is called to open or close a valve. The valves are latching solenoids, ideal because they don’t require constant current during the watering cycle. The Valve Nodes also support their own protocol to report state, firmware version, and allow in-situ configuration.
Be sure to head over to [Vinnie]’s project page and check out all the work that went into this great DIY irrigation control system, along with the thoughtful boards and tools he made to help others set it up. This is a welcome addition to the sprinkler-related projects we’ve seen.

A co-worker of mine, while he was on a kibbutz around 1980, recognized the need for some automation for the farm irrigation, and saw the problem was going to be wiring. He designed a valve and control system that used only two wires, and ran on 24 Vac: Power and signalling ran on the same wire pair, with the signalling being low-rate serial bits carried on an audio tone. It could be wired completely haphazardly: star, daisy chain, miles long, whatever.
Being AC and only two wires, it was impossible to wire a node with the wrong polarity, so even new people with near zero training could wire them. Each node was addressable and could independently control a valve and report its state. Pretty neat for the time.
When I read the description of this project, my first thought was also “why add a separate twisted pair wire, next to the 12V wire and the water hose?”.
I would have done the same as you co-worker. Superimpose some AC signal on the 12V power line using capacitors. If you want some sort of reliablity, you could use a modem IC (MM74HC942 for instance), basically using Frequency Shift Keying. The slower the baud rate, the less susceptible to noise FSK becomes.
You say “pretty neat for the time”, but this is really just technology from the beginning of the 60’s… The Bell 101 modem, from 1958, already used FSK at 110 baud. :)
For a two wire system, I think I would have a look at either frequency shift keying of phase shift keying. Phase shift can be done with just a low voltage mains transformer and some fast switches, phase shift can be generated by a class D audio amp.
But overall it’s a tradeoff between the wiring cost and the modules. An RS485 transceiver is small, simple and cheap, and can have a decent baudrate. It also has bidirectional communication, so you can read back valve state, or add other sensors (flow, water level, temperature, etc).
One word of caution is electro migration. Any DC will result in wire breaks after a few years. Commercial irrigation networks are designed to have no (minimal) dc bias while providing communication and power.
Good point, and worth keeping in mind for outdoor wiring.
In this design, though, the field bus is switched off when idle, and the latching solenoids only get short actuation pulses. So there is very little continuous DC bias sitting on the field wiring.
The real long-term risk is probably the usual outdoor wiring problem: wet splices, damaged insulation, exposed copper, and mineral-rich water turning everything into an accidental chemistry experiment. That is why sealed connections and keeping water out of the boxes matter.
Id simply use modbus, robust industrial protocol that would make very easy to add other nodes or remote controllers, like a PLC
Why can’t the valves be put at the supply side of the water lines inside some kind of outbuilding, all huddled together next to the controller?
Running out a star topology of hoses can be very expensive – much more so than control electronics
because it’s a farm. not a garden. It has a 2″ feeder line that goes out and gets picked up here and there.. https://www.vinthewrench.com/p/be-water-my-friend
Because then you need to run individual water lines to each sprinkler. This way you run just one water line and tap multiple sprinklers off it where you need them. You (probably) can’t run them all at the same time, but you just stagger their run times.
I hate to be a buzz-kill, but commercially produced 2-wire irrigation control has been around for years. Your local golf course or community park is probably using it. One pair of wires can operate hundreds of decoder equipped sprinkler valves.
https://www.youtube.com/watch?v=fOtoBuyCWpY&t=6s
This seems like it’d be a perfect application for wireless nodes (e.g. LoRa, ESP-NOW, etc.), powered by a tiny solar panel with a small battery or supercapacitor. Makes installation very simple, with no need to run wires, or maintain cabling.