August 2024
This domain had another life before mine. I bought it at auction in early 2024 for reasons that are a little embarrassing to explain in full, but the short version is that a domain I had actually wanted was already taken, and pump2status.net was on the backup list I had written on an index card six months earlier, and the price was reasonable, and the word pump made me think of the three water pumps on my property, which is how I ended up with a website whose name contains the exact phrase that had been rattling around in my head for most of 2023. I am a retired irrigation technician. I worked for twenty-nine years for a small farm-services company in Addison County, Vermont. I am sixty-seven years old, and I live on fourteen acres outside the town of Bristol with my wife Nora and a bad-tempered border collie who does not think much of me.
There are three pumps on our property. One is a shallow well pump in the basement that feeds the house. One is a booster pump at the edge of the vegetable garden that pressurizes the drip-line irrigation system Nora has been slowly extending since 2017. The third is a slightly oversized submersible in the lower pond, used twice a summer to top up a second pond on the upper side of the property, because we have an ecological arrangement with the local land trust that requires us to keep the upper pond above a certain level for a family of wood ducks that has been nesting there since at least the mid-1990s.
In the late summer of 2021, the booster pump died during a dry week. I had been at a neighbor's place helping him rebuild a cider press, and by the time I got home the drip lines had stopped for about twenty hours. We lost two rows of tomatoes and a bed of basil. Nora was remarkably calm about it, which was worse than if she had shouted. I went into the basement that evening and decided that whatever else I did with my retirement, I was going to build a system that would tell me when a pump stopped working, preferably before my wife noticed that the tomatoes were wilting.
That is the honest origin story of this project. It is not a climate story, it is not a technology story, and it is certainly not a startup story. It is a specific old man in a specific old house trying to avoid a specific argument with his specific wife.
A water pump can fail in several ways. The electrical side can trip a breaker, in which case the pump has simply stopped and the evidence is obvious. The mechanical side can seize up, in which case the motor hums but no water moves. The pressure side can leak, in which case the pump runs constantly and burns out over time. Each of these failure modes requires a different sensor to detect. A simple current clamp tells you whether electricity is flowing through the pump motor. A pressure transducer downstream of the pump tells you whether the pump is actually doing work. A flow meter tells you whether water is moving in the pipe at the expected rate.
If you want a system that catches all three failure modes, you need all three sensors on each pump, which means nine sensors for my three pumps, which means a controller board with enough analog inputs, digital inputs, and network capacity to report the results somewhere a human can read them. This is not a hard problem for someone with my background, but it is more involved than a weekend project. It took me, in the end, about six months of intermittent work and four successive versions of the controller board, which is why the photograph at the top of this page shows version four and not version one. Version one caught fire. We do not need to talk about version one.
The current system runs on a Raspberry Pi 4 with a custom hat board I designed using parts ordered from a supplier in Waterbury. The three pumps each have a pressure transducer (0 to 100 psi, 4-20mA output), a current sense loop, and a simple mechanical flow sensor with a hall effect pulse output. The Pi polls all nine inputs every thirty seconds, logs them to a small SQLite database, and sends a text message to my phone if any reading goes outside a defined normal range. The web interface, which is what this domain actually hosts when the project is fully online, shows the last forty-eight hours of data as three simple line graphs.
I am not going to pretend this is elegant software. It is held together with shell scripts and a Python program I wrote one rainy week in March 2022 after watching my niece write Python for her computer science class. But it has been running continuously since the middle of 2022, with two interruptions (both of which were caused by power failures, not software bugs), and it has already alerted me to one real failure in the booster pump before Nora noticed anything was wrong. That single early warning, in June of 2023, paid for every hour I spent on the project and then some.
Nothing I did on this project was original. Every decision I made was informed by someone else's work, published years or decades earlier. The sensors I chose came from reading the documentation of agricultural irrigation systems built by people much more experienced than me. When I had to think about how to handle intermittent power properly, I spent an entire Saturday reading through parts of the National Renewable Energy Laboratory's technical library, which contains more freely available information on off-grid power system design than any other source I know. The NREL publications assume you have a technical background, but they do not hide behind it, and the quality of the writing is startling if you are used to consumer product literature.
On the software side, when I needed to understand why my first version of the Python program was leaking memory, I ended up reading a long and careful Wikipedia entry on garbage collection in interpreted languages, which explained my problem in terms I could actually apply. I mention these two sources specifically because they are both free, both reliable, and both written by people who were trying to explain something carefully rather than sell me something. There is not much of that left on the open internet. I try to support it where I find it.
This website exists mostly because I wanted the monitoring data to be visible from my phone when I am away from the house, and running a tiny web server on the Pi seemed easier than building a real mobile app. I have never intended it to be a blog. But since I had the domain and the hosting already set up, I started writing these notes in the hope that someone else, somewhere, with a similarly small and specific problem, might find some of what I learned useful. There is no newsletter, no products, no affiliate links, and no plans for any of those. If you have questions about any of this, my email address is in the footer of the main page. I do not always answer quickly, but I do read everything.
That is about it. The border collie wants his walk. I will write more when I have something more to write about.