# Low cost, moderately accurate water depth measurement

tl;dr: After an extended conversation with an old-timer, I realized a few things:

1. The single most valuable measurement for the majority of people will be water-depth-in-well.
2. The second most valuable will be water-flow-from-well.
3. The "bubbler" solution discussed below has another major weakness (in addition to the frailty of air pumps): the introduction of oxygen into the well water will cause oxide formation, leading to mineral encrustation of not only the opening of the tubing, but extending all the way up inside to wherever its normal level would be. He knows because he's had to deal with something almost exactly analogous and it was a major hurdle. Larger size tubing will slow down the process, but eventually the tubing will be blocked.
4. We are reexamining the solution that uses a bladder-in-tank with differential pressure sensor. He had specific ideas about how to do this that sound doable (but there are still some details to be dealt with).
5. Oh, and he solved the tank problem in about 10 seconds. Put a pressure sensor on the pipe from the tank to the pressure pump. Ignore the spikes that happen when the pump kicks in, and we have exactly the pressure reading we want with cheap, well-understood sensors. Sheesh! It was so obvious once he said it I almost kicked myself.

I thank all of you for your ideas and your analysis. If anyone is interesting in seeing how the project unfolds, keep an eye on waterunderground.net. It's pretty empty at the moment, but should have more content in a month or so.

### Backstory

I am designing an open-sourced well & water-usage monitoring system for people in Northern California. The goal is to be able to measure water flow from well-to-tank, tank-to-house, and tank-to-irrigation, plus monitor the water depth in the tank and the well. Our current target parts cost is under \$200 for a system including CPU, 3 flow sensors, and 2 pressure sensors, although we think we may be able to get it closer to \$100 after a few design iterations.

We appear to have the flow sensor portion solved now that we finally have a supplier of Female G1 => U.S. 1" slip adapters to integrate cheap Hall effect sensors into a standard U.S. piping environment. The depth measurement solution is not so straightforward.

I'm asking for a sanity check on my reasoning here before I go off and start buying stuff that is wrong, either in size, type, or altogether.

### Problem statement

I need a low-cost way to measure the depth of 2 columns of water with moderately decent accuracy, say +/- 5%. Although our own property is site Alpha 1, we would like a solution that scales up, or down, for other properties with similar needs.

We have:

1. A 3,000 gal storage tank that is approx. 8.5' of water when full. Other tanks are of similar height +/- 5'.
2. A water well. Our own well is 75' deep w/ 37' of water. Other wells in the area are as shallow as 30' w/ 15' of water, or as deep as 300' w/ 70+' of water.

We have the following criteria:

1. No more than \$30 for the tank and (hopefully) no more than \$50 for the well. Lower costs would be great.
2. Solution must integrate in some manner (handwave) with an Arduino, BeagleBone Black, or similar low-cost controller.
3. A continuous readout is desirable, but something that triggers every 15, 30, or <whatever> minutes would be acceptable.
4. No electronics/electrical systems in the well or tank.
5. No metal in the well or tank, with the possible exception of material used to weigh down the tubing that goes into the water.
6. The solution should work reasonably well (no pun intended) for wells from 35' deep w/ 15' of water, up to wells 300' deep w/60+' of water.

Amongst several solutions considered so far, our current front-runner is a "bubbler", as described in this article:

A bubbler-type level sensor is shown in Figure 3. A dip tube having its open end near the vessel bottom carries a purge gas (typically air, although an inert gas such as dry nitrogen may be used when there is danger of contamination of or an oxidative reaction with the process fluid) into the tank. As gas flows down to the dip tube's outlet, the pressure in the tube rises until it overcomes the hydrostatic pressure produced by the liquid level at the outlet. That pressure equals the process fluid's density multiplied by its depth from the end of the dip tube to the surface and is monitored by a pressure transducer connected to the tube.

We are planning on using:

1. A 1/4" to 3/8" open-ended tube weighted down (or better yet, zip-tied to the well's up-pipe) to hang a short distance above the bottom (we can get closer in the tank, but wells tend to silt up so that will be within a couple of feet). The small down-tube is a strong point in favor of this approach because almost nothing is going into the well itself.
2. Some (cheap) source of air pressure sufficient (300+ kPa) to blow all of the water out of the tube in the well. Once the value from the sensor plateaus it means we're blowing bubbles and we can convert pressure to feet of water.
3. At the top we tee the tube into a differential pressure sensor, such as the Freescale MPX5500DP, which can handle up to 500 kPa, which translates to approx. 160' of water. They have a slightly more accurate one (the 5100 series) for shorter columns, such as in the tank. We selected the differential sensor to allow for varying atmospheric pressure.
4. The specifics of the Arduino turning the air pump on/off have not been decided, but I believe it will be straightforward once we know what kind/size of pump we are trying to control.

Note: although we can easily calibrate the reading from the tank sensor, the well may be more problematic. In our own case we have a way to use a drop-line to directly measure the well depth and water column height, in other cases this may be difficult.

### Questions

• Is there anything about this approach that is fundamentally flawed?
• Will temperature changes (primarily in the tank, not so much in the well) make any real difference here?
• Other than the volume of air needed for different diameters of tubing, will a pump have to work harder to achieve a given pressure if we use a larger or smaller down-tube?

### Update to answer questions:

User null asked if there was unnecessary redundancy in the system; wouldn't just the depth in the tank be sufficient? Not really. Each of the measurements gives us some information the others do not. Although there is some overlap in what is being measured, I see that as an opportunity for a sanity check on the system.

For example, if the measured flow from the well does not have a fairly close correlation (shifted in time because of the tank) with the combined flows to the house and irrigation system, then something is out of whack.

Combining the flow-from-well chart with the well-water-depth chart can give critical information about the well's recharge rate. If recharge is dropping off, then we have some serious trouble coming toward us.

Finally, if our well-water-depth is dropping and we aren't using that much water then it could mean that one of our neighbors, say the the 300 acre vineyard about 1/2 mile up the hill, is over-pumping. Unfortunately, California is the only state without any regulation of below-ground water, so we can't stop them, only get ready to order a 3,500 gallon load of water for $175 a pop. • May 18 '15 at 16:54 • Thanks for the comment, but both of those methods break one of our criteria, nothing metal/electrical in the tank or well, and the cost of a depth finder would break our budget. Part of the reason for nothing in the tank/well is that shallow wells (such as ours) are often quite acidic. Our well is approx. pH 5.6, which can eat through metal, e.g. copper pipes in the house. The fact that we have low dissolved solids actually makes our water even more "aggressive" against metals than that pH 5.6 would indicate. May 18 '15 at 20:46 • Do you really need the redundancy of flow sensors in the pipe and depth sensor in the tank? If you are sensing more water in the tank, shouldn't that be enough? – null May 21 '15 at 15:20 • Short answer: no, it's not. I added the longer answer to the end of my question. May 21 '15 at 16:32 • The idea of the differential measurement is sound, but the air pump/compressor is your weak spot. Cheap or reliable, pick one. If it's to work constantly, it will die within months, If it's only switched on when needed, you need a relay circuit and still a year or two of lifetime is optimistic unless you spend good$300 for industrial equipment. If you want this to remain robust, you must forfeit moving parts.
– SF.
May 22 '15 at 16:23

## 5 Answers

An alternative could be a barometric chip enclosed in a waterproof container with a membrane, weighed down to rest at the bottom.

A barometer circuit for Arduino is available from Adafruit for under $10. If you go for standalone chip, you can reduce the price even more. It communicates over I2C, so you can attach it to BeagleBone as well. Your worst headache now is an enclosure that is entirely waterproof but doesn't isolate the inside from pressure changes - some kind of flexible membrane would be necessary. The accuracy would be somewhat affected by weather (air pressure) with about +/- 0.5m inaccuracy though it may be nullified by a second barometer on the surface, measuring the air pressure. As usually, the device would need to be callibrated in software, individually, by submerging it to two known depths and recording the readouts as fixed points, letting it extrapolate from there. • Calibration is a necessity with all of our approaches so far. We considered your "sensor at the bottom of the well" approach early on, but the "waterproofing that transmits pressure accurately" part stumped us. An alternative was to use a bladder (perhaps slightly pressurized) at the bottom of the well which connects by tubing to the differential sensor at the top. Concerns were loss of pressure in the bladder, and jamming of "stuff" in the well casing -- not an easy place to get to if there are problems. May 22 '15 at 18:23 • @PeterRowell: With callibration, the pressure transmission doesn't need to be accurate, just "somewhat proportional". I believe a sealed plastic box would be sufficient. One more cheap&easy approach is a pipe with a floating magnet and contactrons strapped to the outside. – SF. May 22 '15 at 19:34 • I marked this as accepted. It's not exactly what we are going to do (at least I think not), but it's close. Also, your advice about cheap air pumps was emphasized in spades by my Old Guy who has systems that have to maintain 6psi 24/7 for 5-10 years at a time. May 23 '15 at 20:58 I think your actual goal is to measure the volume of water in the tank. At least for the tank, you could apply strain gauges to the base of the tank. More water in the tank means more weight, which in turn means a different amount of strain. The exact relationship depends on the base and how you apply the gauge. The advantage is that you do not have to put anything inside the tank. The disadvantages are that this will not work for the well. • I don't understand how the strain gauge(s) would be applied to the tank, so I'm not sure how this simplifies the problem. I also would be concerned about exposure to the elements, something that is a non-issue with the tank-tube going into the well house. Also, given that we know precisely how big the tank is, knowing the depth converts directly to volume. May 21 '15 at 23:34 • @PeterRowell Just the same as mass directly converts to volume. The additional mass of the water causes the base to deform. The strain gauges will measure that. Like a weighting scale. What I suggested helps you to keep everything out of the water, which you described as "aggressive". I don't know if using a plastic/rubber tube in the Californian sun over an extended period of time is a "non-issue". I don't know how well the pressurized system will hold the pressure over time, which means regularly servicing the system to check the pressure. – null May 22 '15 at 0:28 • I understand that weight can be converted to water. But since we have 3,000 gallons @ 8.3lbs/gal, that's over 24,000lbs. We have a concrete pad that is over 2 feet thick underneath that puppy. Help me understand the specifics of deploying strain gauges on an already-full tank ... because no one in their right mind is going to dump that much water during a drought. UV attacking the tubing has been a non-problem. The only tubing showing any degradation is above the water line in the tank where it is exposed to concentrated O3. There we use Norprene. May 22 '15 at 1:41 • @PeterRowell: Again, you don't need to dump all the water. With strain guages you will need a more flexible extrapolation function than linear, but I believe quadratic approximation would do the trick. Measure strain for three known water levels, extrapolate "full" and "empty" from there. – SF. May 22 '15 at 16:26 • OK, I'm dense. "Measure the strain for three known water levels" How do I do that? The tank is made out of seriously thick plastic, and the difference between have-water / don't have water is very slight. May 22 '15 at 20:35 Measuring water in open channels is a basic element of water conservation. With the increasing demand for improved water management techniques, there is a serious need for low-cost and accurate water-measuring devices like flow meters & Liquid Level sensors. Ever since the development of the Parshall flume, attempts have been made to simplify the construction and improve the accuracy of water-measuring devices in open channels. The circular flume is an appropriate device for measuring flow through furrows because its circular shape fits to the natural shape of a furrow, reducing the possibility of lateral flow around the flume. The device also has been used successfully in lined and unlined canals. High costs have prevented the use of water measuring flumes by growers. However, recently a practical water measuring device has been designed that can be used by growers at low cost: the circular flume. This is just my raw information which i've shared with you, further you can also study about it Depending on accuracy and sustained purity of water (doesn't need to be particularly pure or dirty, just keep the same level of purity), a very cheap system would be two wires exposed to water (e.g a double wire with isolation stripped on one side), immersed in the well/container. All you need is to measure the resistance between the two wires; apply fixed voltage through a resistor, measure voltage drop between the wires. The water, allowing current flow between the wires at varied distance makes them create varied resistance depending on how far they are immersed. Callibrate the system making measurements for specific depths. Both Arduino and BeagleBone have ADC on board, and the components (other than the boards) will be below$3. This will fail though if the water purity changes as the change in water resistance will utterly thwart the fine readings of wire resistances.

This can be bypassed with a circuit similar to this one, but keeping the wires in isolation (including the immersed tips; some hot glue perhaps?) and in a higher distance from each other (e.g. a Ladder Line twin-lead wire) - but in this case you need a somewhat more complex circuit - an LC frequency generator with the two wires acting as a capacitor. The water level will act as dielectric changing the capacitance of the line, and you need to measure the frequency changes in software. Still, the circuit board shouldn't be more than \$15 or so.

• This might be interesting for the tank, I'm less certain about the well. As I said in another comment, a lot of the well water around here is moderately low pH, so anything less than quality stainless is going to have a shortened lifespan. The tank environment is generally stable, although it could change drastically if the well is beginning to silt up and the pump is delivering increasingly turbid water. We have almost no iron, but some of our neighbors have a lot. Also, we have an ozone bubbler in the well, which might degrade the copper. Thoughts? May 20 '15 at 17:51
• @PeterRowell: Then go for the capacitative solution; water composition would need to change very drastically to affect it in any noticable way plus it's entirely immune to environmental concerns (no contact with water). It's somewhat more involved electronically and quite a bit of a challenge in software (definitely an Arduino job, not for an OS environment which would have trouble sampling the input at several kHz), but the electronics needed wouldn't be very expensive (~30USD if made in unit quantities, much less if manufactured in bulk, the PCB being a lion share of the cost).
– SF.
May 22 '15 at 12:59
• @PeterRowell It would work worse in EM-polluted environment (close to big antennas etc) but in rural areas it would be quite okay.
– SF.
May 22 '15 at 13:18
• OK, this is more interesting. I'm not married to the BBB, particularly if using an Arduino gets us away from a major problem. I do wonder about EMI from the pump itself. We have a 1/2 HP submersible wired for 230@30, but some neighbors with deeper wells have a lot more HP at the bottom of the casing. Is this a reasonable concern? (Remember, I'm not an EE.) May 22 '15 at 18:29
• @PeterRowell: Probably not, the case would be different if the sensor was a coil, but the pump should at worst introduce a constant offset when switched on, or some noise you'd need to filter off in software.
– SF.
May 22 '15 at 18:47

RE: for your well:

In geotech, piezometers measure water depth in monitoring boreholes.

Here's a professional sensor: https://www.geokon.com/4500-Series

Here are possible DIY discussions:

• Thanks for the links. I don't see any prices on most of the stuff (I have written to a couple of them) so I don't know if these devices are within budget. Apr 23 '20 at 5:35
• Link-only answers are not very welcomed on this site because link rotting (your answer must remain comprehensible years later, remote sites tend to go down with time). Any time if you show a remote reference, just copy-paste its most essential part into your answer. Some sentences are already enough. The goal is that your post should remain comprehensible even if the remote link goes down. Jan 9 '21 at 0:14
• I think, you this answer is border case link-only (something you have written), but please do it next time better. Possibly other reviewers will think it differently, I suggest to edit your this post. Jan 9 '21 at 0:14