Reading many of the posts on this site (especially Scolley's) has inspired me to plan an auto WC system for my planned living room tank. This is a description of what I'm thinking of doing. Comments are welcome.
Some initial criteria:
-- I'm on well water; no need to worry about dechlor.
-- I'd like to minimize pipes going into the tank, but I not going the drilled tank route. But I'd like to use the filter intake and outflow pipes.
-- At the same time, I didn't want to put anything restrictive in the path normally used by the filtering system; that rules out most reasonably-priced solenoid valves.
-- I was first planning on running two pipes down to the laundry room, one for drain and one for fill. Then I realized they're never used simultanously, so I could run one fairly large diameter pipe (maybe even 1/2") and use it alternately for draining and filling.
-- I'll have a glass top, so I can hang level switches from it.
OK so here is the concept:
At the top are two liquid level switches used to determine the "Full" water level, with output signals Full-1 and Full-2. I use two for redundancy, since this is a very important function to prevent flooded floors.
Water can be drained from the tank by turning on the drain pump, Valve-1, and Valve-3. Water can be put into the tank by turning on Valve-2 and Valve-4. These four valves can be relatively inexpensive diaphram valves, as the drain pump and fresh water supply provide substantial pressure.
The check valve prevents any chance of the drain pump draining the canister filter and causing it to lose prime. This is a big check valve with 1.25" inputs, and a CV factor of 190(!). At 5 GPM flow, the pressure drop through it is 0.03 PSI. The valve also means there's no concern that the fresh water supply, when in Fill Mode, will flush crud out of the filter and back into the tank. This is a picture of the check valve and one of the subminiature level switches, with the Coke can for scale:
The adjusting valve can be used to reduce the flow from the fresh water supply in Fill Mode. I may also need an auxiliary heater to warm up the incoming fresh water: "back of the envelope" calculations show that with the one 300W Hydor inline heater in the system, I can only put in 1 gallon every 4-5 minutes. To up that, and be able to keep the water warm, I may need to turn on an auxiliary heater.
All of this is going to need some type of controller. The plan is that when the WC controller receives a trigger signal, from a timer or perhaps a PC application, it will start a drain/fill cycle. The following would then occur:
-- The tank is normally in an "overfill" condition; i.e., filled to a level a little above that needed to turn on the level switches.
-- When the Trigger signal is received, the WCcontroller first checks that both Full-1 and Full-2 signals are True. If either one is False, the controller turns on an alarm (now just a buzzer, but eventually could send and SMS message to my cellphone), and stops.
-- If Full-1 = Full-2 = True, then the controller drains out some water for a short time T1. T1 is long enough to guarantee that both level switches go to False if they are operating properly.
-- At the end of T1, if either Full-1 or Full-2 are still True, the alarm is turned on, and draining is turned off.
-- Otherwise, we know at this point that, fairly recently, both level switches read True when they were supposed to, and they both later read False when they were supposed to. So we can have confidence in them to proceed further. Draining continues for a period T2, which is chosen to be long enough to drain the desired amount.
-- At the end of T2, the controller stops draining and, after a brief pause, begins filling. It also starts timing a period T3. T3 is timed to be long enough to guarantee that the level switches will go True: in other words, if they don't both go true by the end of T3, something is wrong.
-- When either Full-1 or Full-2 go True before the end of the T3 period, the T3 timer is stopped, the controller continues filling, and starts a brief timer T4. If T3 expires before either Full-1 or Full-2 going true, then filling stops and the alarm is set. This prevents flooding the floor if both switches malfunction.
-- At the end of T4, filling stops, The tank should be in the proper "overfill" state now. If either Full-2 or Full-2 are still False, the alarm is set.
So I still have a bit of work to do. A design for the controller based on an Atmel AT89S51 microcontroller is here:
I included relays to turn the canister filter and the inline heater on and off as well, in case I need to. I also added switches to manually put it in either Drain or Fill mode. A 24 VAC power supply is included that can be used to operate the 4 valves. I got the PCB board design pretty much done. Now if I can just find the code to the last 8051 microcontroller project I did about 12 years ago, I'll have a jumpstart on doing the code.