Now your Raspberry Pi can water your lawn

No readers like this yet.
Grasshopper outside with graph overlay

Modified by Jen Wike Huger, CC BY-SA

Open source has a long history of developers scratching their own itches, and few itches are as itchy as money spent unnecessarily.

Lawn watering systems are notorious for sending money down the drain. When Robert Booth was looking to get started on a robotics project, it's no surprise that a sprinkler system was at the top of his list. Booth will be presenting his "Strawberry Pi" system at Texas Linux Fest this year. We talked to him about it.

What inspired you to build your lawn watering system?

My son and I started attending a local robotics meetup group and I was amazed at how simple some of the projects were. It seemed easy enough to get into, so I just needed a project to work on. That's when the Strawberry Pi project was born.

For those who can't make it to San Marcos, can you describe how you designed and built the system?

This project started a year before Raspberry Pi was released, so I built the first version with an Arduino (and a net shield) as the controller. It was a challenge to get the required logic and all the libraries to load in the available memory, so I dropped a few features from this first version. It worked great and provided me with a network interface into my sprinkler system, but wasn't everything I really wanted. If I needed to turn on or off the sprinkler system, I could do it from anywhere I had Internet connectivity.

When Raspberry Pi came out, it provided me the ability to quickly update the code and also include all the features I wanted to (such as zone cycle watering). Raspberry Pi provided me a wider platform to work from—now I had the ability to use the entire Python module library to do whatever I wanted. If I wanted to post a message to a monitoring system such as Zenoss, then I could. It really made things easier.

Arduino is a great micro-controller, but it was a little overkill for a simple project like this. If the project required time-sensitive actions then Arduino would be the only platform to use for this, but I don't care if one zone starts watering a few seconds later than the others.

Strawberry Pi

Image courtesy of Robert Booth. CC-BY-SA 4.0

Basically, the system is a controller (Arduino in my first version and Raspberry Pi in the second), that sends a signal over to a relay board to turn on or off the zones. I only have four zones, so both versions had enough pins to directly connect to each zone. If I'd had to control a larger number of zones then I would have to find some kind of SPI relay board, but I wanted to keep this simple as possible.

Is the source code available?

All of the source code, along with plans, will be available on GitHub in the coming weeks.

Do you have plans for future improvements or new functionality?

I'm currently working on putting sensors in the soil to measure moisture, then using that to determine whether watering needs to be done. My goal is to have this done before Texas Linux Fest.

I would be particularly interested in a self-guided lawnmower that knows when the grass is just the right height to be cut.

You and me both. This would be super cool, but a little above my abilities.

What other neat Raspberry Pi projects have you done?

Well, it's not done with a Raspberry Pi, but the Arduino that I recycled from version 1 of the Strawberry Pi. When I worked at Zenoss, we had an annual event where the company came together for two days to discuss all things Zenoss. One year, we did a Zenoss Top Hacker event that allowed us to submit a project that "hacked" Zenoss in some way. It was an awesome event and some really cool projects were showcased, one of which was a soil moisture monitor using Arduino. I took a slightly different route.

I was looking to entertain the audience, so my project was all about fun. At Zenoss we handed out "stress ball" zebras that we affectionately call "Zenny." People love them, and I wanted to do something with them for the demo. I began to hollow out the center of a Zenny so I could fit wiring inside, and then proceeded to replace his eyes with multi-colored LEDs. The wiring went into a black box on which Zenny was mounted, and that housed my Arduino board with a Emic text-to-speech board. Now, when Zenoss had an event trigger, it would send that event to my network connected Zenny. The eyes would change color based on the event type (red for "error," green for "clear" and yellow for "warning"), and the event would be converted to speech and played over the speakers. It was a hit and I won the first Zenoss Top Hacker!

What are your can't-miss talks at Texas Linux Fest this year?

There are a ton of really good talks this year. I'm excited that I get to go.

I'm split between two can't-miss talks: "Leveraging Linux platform for identity management in web applications" by Nathan Kinder and "Surveillance and the erosion of weirdness" by Deb Nicholson.

Identity management has always been a pain to deal with, so I'm interested in ways to make it better.
I'm not a big fan of mass surveillance, but I never realized the impact on creativity that it might have, so I'm also interested in hearing what Deb has to say on this topic.

Texas Linux Fest
Speaker Interview

This article is part of the Speaker Interview Series for Texas Linux Fest. Texas Linux Fest is the first state-wide, annual, community-run conference for Linux and open source software users and enthusiasts from around the Lone Star State.

User profile image.
Ben Cotton is a meteorologist by training, but weather makes a great hobby. Ben works as the Fedora Program Manager at Red Hat. He is the author of Program Management for Open Source Projects. Find him on Twitter (@FunnelFiasco) or at


Thanks for sharing this! Great article and idea.

I've been watering my garden for two years with an Open Sprinkler Pi board. It runs off a 24 VAC sprinkler valve transformer, and powers the R-pi and the sprinkler valves. It came with an enclosure that holds both boards, and some python code (a scheduler with a Web interface) that I didn't use. I chose to run it from cron with a shell script instead. There are two versions now, so choose the one that matches your R-pi.

Is that Calendar link generic, or is that an API I need to get ?
If, so, how do I go about getting it?

Creative Commons LicenseThis work is licensed under a Creative Commons Attribution-Share Alike 4.0 International License.