An Off Grid Water Monitoring System

I got into Helium to deploy and use a LoRa Wide Area Network (you can read about that here). Along with everyone else, I then got caught up in the wild gold rush of ’20-’21, deploying hotspots and earning HNT, helping clients do the same, and occasionally just looking around and wondering at the madness of it all. While that was fun, and an incredibly profitable excuse to get out into some of my favorite parts of the backcountry in San Diego, that run is over and I can finally return to the reason I found and started with this project: Sensors.

As the VCs like to say, I have a thesis. My thesis is that widespread IoT deployment will create a new source of wealth from the streams of physical data these devices generate. This seems obvious: If you know more about the world than someone else (the fancy term is “information asymmetry”) you can trade your information for a market price.

Now, this idea isn’t new. Having information asymmetry is how businesses like Google and Facebook succeed, how governments fight and win wars, and how generally anyone succeeds. When you know more, you can do more.

What is different here is that a new fundamental structure for collecting that information has been built, is open to anyone, and is cheap to use. With almost a million Hotspots providing a gateway onto the Helium Network (as of late Aug 2022), there is no shortage of entry points to get information from where it is collected into your hands.

The hurdle at this point is two-fold. First, you’ve got to use your creative mind to develop an idea for the profitable use of the information collected by sensors. The information isn’t out there yet, just the framework for collecting it.

Second, you’ve got to have the technical ability to deploy those sensors, gather their data, and turn it into something useful. I’ve written about a very basic project before (how to get a sensor on the network), which is a great start. However…

The Network is in the process of changing from that method to one that is more traditional. Now, the guts of that are pretty technically complex but the upshot is not: With the move away from Helium Console and onto Chirpstack (or any LNS, which stands for LoRaWAN Network Server), it’ll be easier and more reliable to use the Helium Network.

Still, it ain’t iPhone simple yet, and I’ve found the best way to understand how it works is to use it for a specific purpose.

In my case, I was given the purpose by the usual purpose-giver in my life, my wife.


“Get up”, the DM read. “Don’t ask questions, don’t bargain, drive up there right now and buy it. It’s a steal at this price.”

One of Lee’s Instagram buddies was blasting her on a Friday morning about a fountain on Craigslist. Now, this wasn’t just any old fountain. This was a giant jagged concrete ball and cup, an odd design that was unusual, but not flat-out weird. It’s the kind of thing you might see in front of a small town bank that supported the arts. Technically the style is called “Brutalist”.

The fountain was up in Los Angeles, about a 2 hour drive north from our place in San Diego. So, about 2 hours and 10 minutes after we got the DM, we were pulling into the driveway of a gated community where the fountain was.

I can’t say the fountain was a horror show, but it sure didn’t look like the brochure. Faded blue paint, fountain lights only half attached, a few cut wires, and the “industrial water pump” in the ad was just a $20 special off Amazon that, well, wasn’t that special. Still, I’ve always liked a good project, and this had “project” written all over it. We loaded it into my truck and drove back home.

Of course, neither the ball nor the fountain are light or easy to move (they’re concrete, though at least the ball is hollow), so I enlisted the help of my neighbor Pete, and we got everything moved into the backyard using his little roller cart.

I spent the next month or so grinding off the paint with a wire wheel in 15 minute efforts slipped in between consulting, writing, State of the Network shows, and the rest of the GK life.

With help from Seeed, I put together a bevy of sensors to use in what I began calling “The Fountain Project.” There’s a Liquid Level Sensor, an Industrial EC and EDS Sensor, a SenseCAP LoRaWAN Data Logger, a Soil Moisture, Temperature, and Humidity Sensor, plus a Dragino LT-2222-L, the LDDS 20 Liquid Level Sensor (back up and cross check), a Water Flow Meter Sensor, and for the hell of it, a Dissolved Oxygen Sensor.

You see, I’ve seen a ton of different requests come through for various water data-collection projects in Helium. Flash floods warning systems, monitoring water levels in stock tanks, tracking water quality in ponds, etc. I thought it’d be pretty cool to take what was a small refurbishing project in my backyard and turn it into a giant super-fun example of a data collection machine.

I figured we’d track everything we could think of to track, from water temp to turbidity, acidity to depth, flow to TDS (total dissolved solids). As it turns out with water, there’s a lot to keep track of!

I reached out to local double-E (that’s Electrical Engineer) Dirk Beer at DB Tech to help design and build the system. I met Dirk through Helium, and saw right away that his knowledge and expertise would be critical on a project of this complexity if I wanted to finish it in any kind of reasonable time frame. Dirk is an Applied Cognitive Scientist, which basically means he figures out how to make sure you can use complicated technology.

This definitely seems like that. After all, we’re combining a bunch of sensors that aren’t yet user-friendly, sending that data through a growing network that is making a major shift in how the data is processed, and then displaying it in a variety of ways on technology that requires a fair amount of education to set up.

So that’s the baseline; we get and display the data. Pretty cool, but that ain’t the full value-add. I’m super curious about how we combine all the data we’re receiving to understand new aspects of water monitoring, as well as taking our “private” data stream and referencing it against publicly available data streams like weather, air quality, or even water quality.

This intersection of public and private data streams hold promise as a rich vein of information to mine, with lots of potential asymmetry options bubbling up.

With all that in my dreams and the future, I still had work to do. So I asked my wife Lee to help. 🙂

I finished up with grinding and painting the fountain, (Lee helped with the painting) replaced the pump, and got it working.

For a while, it was beautiful.

Then, another wrinkle popped up: Algae.

https://vimeo.com/745540237

Yep, with plenty of sun, constant water, and lots of little crevices, it turns out the fountain is an algae growing machine. This brings up an obvious point: You can track all the data you want, but if the medium you’re tracking in gets overwhelmed, well, you’re just tracking muddy waters.

That means I had to build a filter system in order to keep the water clean enough to monitor, and really to have something to monitor in the first place. Now, this may seem weird, but I discovered a personal obsession, almost a fetish, with designing a water filtering system. There’s so much to do, and know, and it’s easy (and fun) to go overboard. I mean, physical filtering is one thing, but why stop at screens and sand when there’s UV light, ozone bubbling, and protein skimmers?

I started off by dipping my toe in with a small $12 pump on Amazon and building my own DIY PVC filter, then sending the water out through a small (I thought it’d be a lot smaller) UV sterilization device. The pump was 12 VDC, which means I could use some of the off-grid components I’d bought for Helium the year before to run it. I pulled out a 100 watt solar panel and the 50 Ah battery along with a Victron charge controller, hooked it all up, and ran it for a day or so.

The good news was that the solar panel was generating enough energy. The bad news was it was only 78% of rated power. The ugly news was that I’d probably need more of everything to do the job I wanted to do.

It was a janky set up, I know. Still, I knew it wasn’t my final, it was my first, and I’d learn a bunch. I did.

First, even in a small water volume like mine (less than 15 gallons), with the amount of sun the fountain gets and our balmy outdoor temps, the pump wasn’t circulating enough water through the filter & treatment system to keep the water clean. It was mostly clear, but with a greenish hue. Not acceptable for Lee, plus the tiny pump had a loud whine running at high rpms.

Now, before you tell me to just add bleach every few days to kill the algae, I’ve got to tell ya: Bleach won’t fly with Lee. End of story. I know, I know. Bleach kills everything and will save me 40 hours and probably a thousand or so dollars. See the above re. Lee.

The second problem is that there isn’t enough water movement. Sure, the pump was moving water through the filter, and the filter was working, but the problem was that it wasn’t all the water in the tank, just some of it. In order to clean all the water you have to treat all the water. In order to treat all the water you have to move all the water past the pump, and an intake diameter smaller than my favorite pen just can’t create enough suction to generate tank-wide water movement.

Now, I’m sure eventually some aquarium expert will come here and shake her head at my ignorance in hoping my initial plan would work, but hell, for a first attempt it wasn’t bad.

For my second run, I decided I’d go more towards the overboard side, with a much larger pump housed in an external structure, ozone treatment on top of the UV light, multiple physical filters, and including water movement throughout the fountain in the design. If I can swing it, I’ll add in a protein skimmer. I mean, at this point, why not?

I also wanted to move all the machinery out of the fountain. The whole point of the thing is to add a little serenity into the backyard, and tubes and pumps and filters all jumbled together next to it don’t really add to the vibe we’re going for. Plus, I needed a roof big enough for the solar panels that’ll provide the power for all this. Moving water ain’t energy-cheap.

Since I was going whole-hog, I figured I’d add in a reservoir to the pumphouse where all the water treatment happens, pulling in untreated water from the fountain and returning clean water.

For all that to work, I’m planning on taking the fountain apart, drying it all out, drill a few new holes in the concrete bowl for drainage and return (you know I love drill concrete, right?), re-paint a color that makes algae less obvious, and build a stand to let gravity do at least some of the work for me. Oh, and build a little home for my mega pump & filter contraption.

So, that’s where we are now, at the end of Stage 2. Stage 1 was the purchase, prep, and initial setup. Stage 2 was adding in a separate pump and filter. Stage 3 will be building out a more robust filter and water movement system, and Stage 4 will be adding in sensors to the network in order to monitor whether or not the system is working, and when it isn’t, what exactly is going wrong.

If you’d like to follow along with this and keep up with all the sensor decisions and learnings, the best way to get the most information is to join the Gristle Crüe. The Crüe is a paid membership for folks serious about learning together. Think of it as a Mastermind for Blockchain & Meatspace projects, with Helium front and center. We meet once a week on Zoom for presentations by experts or discussion amongst ourselves (including in October our first Hotseat session!) and have our own private Discord to problem solve quickly with fellow experts. If you want to maximize the whole blockchain & meatspace opportunity, join the Crüe.

If you think I’m batshit crazy OR you’re a water treatment guru and can see clear flaws in my thinking, drop your comments below, and thanks in advance!

Leave a Comment

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Scroll to Top
[class^="wpforms-"]
[class^="wpforms-"]