The way of water: The WaterWorx

I get quite some questions regarding the water household in the new paludarium. When I try to explain, I was always like “wish I had a picture of this”. And now I do!

Introducing “The WaterWorx”

The WaterWorx is a compilation of all water management related things that drive the paludarium. It consists of pumps, valves, tubes, containers, level sensors and things like a reverse-osmosis unit. All of these things are controlled by Artemis, the embedded controller (that is actually Arduino based). The Raspberry Pi on top of Artemis also does some monitoring and higher-level controlling as well. To just drop you an image of the WaterWorx, here it is:

Part 1: Reverse osmosis unit

As I have to start somewhere, I figured I’d start on the left side of the schematic you see above. First you’ll notice there are two 6mm tubes entering the Waterworx from external. One is directly connected to the tap water, the other to the sewer in our house. As both are only 6mm tubes (4mm internal), it is not a huge plumbing issue and these are simply 2x 10m osmosis tubing.

The tap water first goes through a valve. These valves are all 12VDC, normally-closed valves. This valve can take the water pressure off of the reverse osmosis unit. The reverse osmosis unit has three lines: One for incoming “dirty” tap water, one leaving the unit with pure osmosis water, and the third one dumps water with contaminated water. Through regular tap water pressure both outgoing lines will force the water out, either into the sewer (orange line) or out to the paludarium (blue line).

These are the valves used in the WaterWorx to control the flow of osmosis water. They directly connect to the 6mm (1/4″) osmosis tubes.

The blue line comes up to three different valves. This allows me to select where the purified osmosis water should go. Down at the bottom there is a valve named “VLV_OSM2JERRY”. When I open this valve the purified water will flow into the left jerrycan. I need to store this water as the rain I want to be able to spray into the paludarium need more water than the osmosis unit can provide. The jerry can serves as a buffer.

The second valve is called “VLV_OSM2AQUA”. It allows me to top-up the aquatic part of the paludarium. Any excess water during the top-up will overflow into the sump (more on that later). As you can see, the tubing into the paludarium goes through what we call a “mineral filter”. Actually this does not filter anything, in reality it ADDS the necessary minerals back into the purified water. So this allows me to have tap water purified by the osmosis unit, then remineralized as it enters the aquatic part of the paludarium… And still have pure osmosis water for the rain and the mist makers!

The third valve is called “VLV_AERYN”. This valve allows me to top-up the container that sits on top of the paludarium called “the Aeryn module”. It conditions the air blowing into the paludarium, and this container filled up with osmosis water holds three 24VDC mist maker units. So this allows me to mist the air that flows into the paludarium.

To close off the osmosis water part: There is a pump called “PMP_OSMORAIN” that can pump the water from the jerrycan into the sprayers above. Most of the water coming from those sprayers will land on the island land portion, some will land into the aquatic part which is fine too.

Part 2: Tea water, sump & sewer

The second part focuses more on the land portion. This paludarium has two near-separated water households going on: The aquatic part, and the sump / island part. The aquatic part is mostly about (remineralized) osmosis water (see mostly part 1), and in this part 2 I’ll get into the water management of the island section (or the “tea water”).

It has always been a problem seeing so many nutrients flow into the aquatic parts of paludariums. It caused fish to die over time (high nitrates and phosphor), and aquatic plant life would basically NOT grow. This is why I attempted to separate them out.

The sump in the schematic above is basically a place where water can collect that is “dirty”; it either flowed form the aquatic part (overflowed actually) into the sump, or the island hovering above the aquatic part drained its moisture down into the sump. Whenever the water level in the sump becomes too much, it will in turn overflow into the rightmost jerrycan (indicated with brown water). And in reality it IS brown water (or rather: tea). whenever the right jerrycan fill up, there is a pump called “PMP_SEWER” to suck the water out of the jerrycan and dump it into the external sewer. Another route the water from this jerrycan can take is through another pump, namely “PMP_BACKWATER”. This pump will force the water up into the top of the paludarium where it gets forced into a tube with tiny holes, mounted over the fern-root back panels. This keeps the background very moist. The water that flows over the background will eventually flow back into the island, where through a false bottom with eggcrate and window screen the water drains back into the sump (and in turn might overflow into the jerrycan on the right).

Some of the (diaphragm) pumps on the left. These are 12VDC pumps that are able to pump 2-3 litres of water per minute. In the center you can see the “mineral filter” and the reverse-osmosis unit in the back.

Part 3: The external canister filter

Not as interesting as you might think, this is just an external canister filter like you’d find under a larger aquarium. It basically sucks water from the aquatic part, filters it and then feeds it back onto the waterfall. The waterfall in turn will return the water (or at least most of it 😉 ) back into the aquatic part.

The external canister filter. No surprise I used an Eheim professional 4+ filter here 😉
On the left you see part of the WaterWorx, on the right you can just make out the Artemis controller and the Raspberry Pi 3B+ (which I call the PaluPi2022).

Do I “loose” water? Definitely. Whenever moss grows into the waterfall or a frog decides it wants to sit inside the waterfall, water might spill over the edge of the waterfall stream and land into the island. From there it drains into the sump, and it basically tends to pump the aquatic part empty (slowly but surely). This is where the software comes in: By refilling the aquatic part twice a day with remineralized osmosis water, the water level stays exactly the same (until it overflows into the sump making it a constant level). This also “naturally” does water changes for me!

As you might notice there is also an aquatic external heater into the tube feeding the water back into the paludarium. This heater heats the water to keep the fish (and occasionally swimming frogs as well) happy.

Part 4: Can computers see water

The short answer: Yes they can. As the logic needs to intervene with the WaterWorx, it also needs to be in the know of different levels in the system. For example, after rainfall the water level in the osmosis jerrycan will have dropped (as PMP_OSMRAIN has pumped out osmosis water). Now this water needs to be replenished…. But when to stop? It is impossible (and downright risky) to “guess” how long the osmosis valve needs to be opened to correct for a number of seconds of rainfall.

A detail of the lid of the osmosis jerrycan. The two white tubes are for allowing osmosis water in and out, the black tube is just a small piece of open tube to allow the jerrycan to “breathe” as I pump water in and out. The light blue unit with the yellow wires is a level sensor. Underneath there is a pin with a floater. As the floater moves up along the pin, the sensor activates.

This is why there are several level sensors incorporated into the system. Let’s focus on the osmosis jerrycan first: A level sensor called LVL_OSMOSIS places in the lid of the container will automatically KILL the VLV_OSM2JERRY as soon as it activates. This will make sure the osmosis jerrycan is always filled, but never overflows.

A second level sensor sits in the Aeryn module called “LVL_AERYN”. Similar to the osmosis level sensor the activation of this level sensor will cause Artemis to KILL VLV_AERYN. This again makes sure the Aeryn module is always filled, but never overflows.

Finally (in reality almost finally, see part 5) there is a level sensor in the sewer jerrycan. The behavior of this sensor is slightly different. Instead of having Artemis KILL a channel, it activates a channel for a certain amount of time, in this case PMP_SEWER. So as soon as the sewer jerrycan fills up, the sewer pump will activate and draw out about half of the water in the sewer jerrycan into the external sewer. It pumps out only half, as we need some water to remain for PMP_BACKWATER to still be able to moisturize the background from time to time.

Part 5: The safety nets

Never do tricky things (such as pumping water) without having a safety net. To avoid flooding the room where the paludarium is, I added some layers of protection: Timing state machines in the logic and if all else fails the flood detector and pump.

First for the timing state machines. In the logic I can program the valves or pumps to manipulate the water levels in the WaterWorx. The software can time how long it should have to run and when it would expect level sensors to come on or drop. If that goes out of whack, the system can take precautions like closing valves or starting pumps to avoid a disaster. The software in these cases will also shoot me a message on Telegram, so if something unexpected occurs I’ll get a notification.

The second safety net is a more physical one: Both jerrycans and the external canister filter all sit inside a low, plastic container. This container also has a level sensor called LVL_FLOOD and a separate pump called PMP_FLOOD. If the software detects LVL_FLOOD coming on, Artemis will automatically activate the PMP_FLOOD pump to drain the flood container. The higher level software in the Raspberry Pi will also realize there is a flood or a leak somewhere. It will then proceed to enter an ERROR state. In this ERROR state the valves will close, the external canister filter will be stopped and PMP_SEWER will be proactively powered on for a short time. This behavior is programmed because a flooding should NEVER occur… So when there is a flooding going on there must be either a leak somewhere or a failing level sensor.

A 3D printed platform holds a very important level sensor: the flood level sensor. Here you can clearly see the floater underneath. As water rises it will raise the floater and the sensor will activate. When that happens, the flood pump will draw the water out through the white tube you can see just behind the level sensor.

The system will remain in this ERROR state until there is manual intervention. Someone would have to physically LOOK at the environment in this case to verify what is wrong, correct the situation and only then resume normal operation.

I surely hope it will never come to the system going into this ERROR state; so far it has been solid in pumping sewer water out and osmosis water into the jerrycans without fail. But I would not sleep well if this second stage of safety net wasn’t there!

Leave a Reply

Your email address will not be published. Required fields are marked *