(DIY) ATO for RO/DI with sump. Solenoid + Digital switches

hanslanda

Community Member
View Badges
Joined
Nov 14, 2018
Messages
50
Reaction score
17
Rating - 0%
0   0   0
Hello alll!

Not completely new to the hobby but you could still call me a newbie. Did a fresh 40gal tank install with lessons learned from failures of the past. One important factor for this setup being successful so far (knock-on-wood) is my terrible memory with topping off tanks. I've had a tendency to start a top off and forget to end it. I've seen some very conventional methods of using floats and such that all look great but I wanted to share my flavor with everyone.

Some basic attributes:
  • Arduino 2560 controlled
  • Digital float switches (food safe)
  • 1/4" water-line solenoid 12V
  • Controlled (actuated) at water-source and not at the sump
  • OLED read-out and debug screen
  • Standard 1/4" water-fittings and valves
  • 3D printed enclosure/project box
  • Bypass loop allows for manual control when wanted - also in event of solenoid failure

With enough interest I'm willing to make it open source. I have a BOM, wiring diagram, and models for the 3D printables. I put the cost around $75 if you buy everything... Though I had most of this laying around.



Full shot of fill-station

sump3.jpg





Close-up of enclosure

sump2.jpg





Close-up of digital float switches

sump1.jpg






Full-shot of switches in sump

SUMP12.jpg




A look at the internals of the project box

SUMP8.jpg




SUMP4.jpg SUMP5.jpg SUMP6.jpg SUMP7.jpg SUMP9.jpg SUMP10.jpg SUMP11.jpg
 
OP
OP
H

hanslanda

Community Member
View Badges
Joined
Nov 14, 2018
Messages
50
Reaction score
17
Rating - 0%
0   0   0
So if I am following this correctly, your RO/DI runs right into your sump?
That's correct. I use two valves and a T connector to manually choose if I'm doing ATO or filling my 60 gallon reservoir.

The bypass loop on the ATO allows me to fill 24/7 without needing the solenoid (for res filling).
 

Chbix

Active Member
View Badges
Joined
Sep 7, 2013
Messages
142
Reaction score
110
Location
Reno
Rating - 0%
0   0   0
That's correct. I use two valves and a T connector to manually choose if I'm doing ATO or filling my 60 gallon reservoir.

The bypass loop on the ATO allows me to fill 24/7 without needing the solenoid (for res filling).
Are you using any automation to flush the membrane? What conditions are you running in your coding? Did you build in any fail safe timers? Really looking to do something like this for my top off container. Love the build
 
OP
OP
H

hanslanda

Community Member
View Badges
Joined
Nov 14, 2018
Messages
50
Reaction score
17
Rating - 0%
0   0   0
Are you using any automation to flush the membrane? What conditions are you running in your coding? Did you build in any fail safe timers? Really looking to do something like this for my top off container. Love the build
Many thanks!

The program runs 4 different states and checks against the sensors and solenoid current state to see if a change is required.


CONDITIONS

Full - Triggered by both sensors being closed
Draining - Triggered by upper sensor being open
Empty - triggered by both sensors being open
Filling - opens solenoid as EMPTY is triggered, and runs until upper sensor is closed

(For me) This allows 2, maybe 3 top-offs per day. I didn't want the solenoid triggering anytime the upper float drops 1/4". This is dual feedback control loop. It watches for draining state, waits for empty, and then fills until full. For me its still around 0.5 gallons.

FAILSAFES

Solenoid timer - So this is more a specific failsafe. I know how long it takes for me to get from empty to full. This allows me to set a basic program timer. If the solenoid runs for more than this desired time plus a safety factor, it faults the program and turns everything off.
Note- this was an effort to avoid runaway skimmers. Undoubtedly SOMETHING went wrong that at minimum requires human attention.


FLUSHING


I likely have not learned my lesson on flushing the membrane yet and don't do it often (if ever) currently. Let me look into this. I am interested if it does anything to improve membrane life.
 

Chbix

Active Member
View Badges
Joined
Sep 7, 2013
Messages
142
Reaction score
110
Location
Reno
Rating - 0%
0   0   0
While I agree that I am not sure that benefit of flushing yet. But I will say that TDS creep I have seen first hand and is a concern. When I first start my RO/DI unit I see a pre DI TDS of over 100, and then it drops to 10-15 with in 10-15 seconds, I am running 2 DI stages so I am not sure if its an issue but will probably deplete my DI resin in the first stage faster.
 
OP
OP
H

hanslanda

Community Member
View Badges
Joined
Nov 14, 2018
Messages
50
Reaction score
17
Rating - 0%
0   0   0
While I agree that I am not sure that benefit of flushing yet. But I will say that TDS creep I have seen first hand and is a concern. When I first start my RO/DI unit I see a pre DI TDS of over 100, and then it drops to 10-15 with in 10-15 seconds, I am running 2 DI stages so I am not sure if its an issue but will probably deplete my DI resin in the first stage faster.


Alrighty so I did a look into it. What I'm seeing is essentially a bypass loop that allows the dirty water line to bypass the external flow restrictor(if yours is external).

Since it only reduces restriction... it would be extremely easy to run another solenoid, mosfet, and run the bypass loop by actuating the solenoid just like I do for feed water. My guess is, since there is no membrane back-pressure, all of the water(clean+dirty) bypasses into the dirty line.


So two ways we could accomplish this with the second being technically better but more challenging.

1) An arbitrary flush period at the beginning of every fill cycle. This removes the need for complicated timers and filter tracking but its more wasteful. I'm talking first two minutes is flush, the rest the solenoid shuts and full pressure resumes. (your measurement example drew me to this)

2) Filter life tracking. We track for how long or how many gallons have gone through the membrane and trigger a waste cycle to run independently of filling. This brings a few challenges.

a) I would need to have the ability to set when I change my ro membrane. I wouldn't want power outages or arduino resets affecting the starting point. If his isn't going to be reprogramming the arduino- I would need external storage to ensure these values aren't lost during a power-off/out.
b) I would need a semi-sophisticated program timer. Variable overflow for timers lasts about 45 days currently. I would need some fixing code to reset the timers or switch timers around overflow event. It can be done pretty easily I've just not done it here. OR I could encompass a RTC (real-time clock) and ping off regular time. Though I'd still need external storage to store the date of RO install.

I like the idea and if this helps preserve RO or DI I'm in lol. I have a standard 4 stage now but I think I may add a second carbon and a second DI to get longer lifespan. If this feeds into that concept all the better.
 
OP
OP
H

hanslanda

Community Member
View Badges
Joined
Nov 14, 2018
Messages
50
Reaction score
17
Rating - 0%
0   0   0
Scratch needing external storage. My mega has a sizable eeprom to store these values without issues. The main challenge with option two; then being how you input the date. I'll think on that. I don't know if I'm a good enough programmer to make that work but I have some ideas.
 
OP
OP
H

hanslanda

Community Member
View Badges
Joined
Nov 14, 2018
Messages
50
Reaction score
17
Rating - 0%
0   0   0
The other problem I'm thinking... since the dirty water is pressure sensitive; the solenoid doesn't open until it feels around 2-3psi of water pressure (which is why it works great for feed water under pressure). So in order to make that work properly it might be best as a valve unless I could find a solenoid that opens without restricting flow.


Here is how aquaticlife states their automatic flush works with their Smart Buddy Boost Pump.

Flushing the Membrane

Flushing the membrane is critical to obtaining peak performance from a RO unit. Flushing clears debris build-up on the membrane, thereby prolonging the membrane life. The Smart Buddie Booster Pump unit includes an internal automatic valve that flushes the membrane for 18 seconds every 24 hours (and when the unit is powered on). The internal valve allows water to bypass the flow restrictor located inside the Smart Buddie Pump housing. After 18 seconds, the valve will force the water to pass through the flow restrictor and build pressure against the Membrane. After flushing, Filtered Water production will begin.

Considering that system includes a boost pump and the auto-flush function its probably not a bad purchase on its own right.


TIP: When using a float valve to top off a tank or sump, plug the Smart Buddie Booster Pump into a wall timer so that the power is on only once a day for an hour or two. This will prevent the pump from turning on/off every time there is a little evaporation from the sump.

Boom. The preferred way to run this setup, run the valve on the clean-side of the output. The pressure switch built into the unit shuts off the water supply and boost pump when your solenoid shuts off.


You could still run the system the way I have it and add the dirty water bypass, would just need a valve that opens at no pressure.
 
Last edited:
OP
OP
H

hanslanda

Community Member
View Badges
Joined
Nov 14, 2018
Messages
50
Reaction score
17
Rating - 0%
0   0   0
I had a call with Aquatec around their booster pumps and a call with aquaticlife around the flushing systems today. It was pretty informational.

TDS creep isn't solved by flushing. Its solved by diverting your membrane water around your DI for a good minute before you put the RO filtered water into your DI. That should reduce DI consumption. Flushing is just an arbitrary concept to preserve membrane life and they still do this for the first 20 seconds or so of pump operation.

TDS creep is solved in practice, not in application. You solve the problem of DI consumption by only encountering TDS creep as little often as possible. This is why they run larger storage tanks. They don't divert with large storage tanks because... who cares? You only have one instance of TDS creep per week and it doesn't affect the DI resin to a noticeable level. If you do what I'm doing and encounter TDS creep every-time you top-off (3 times a day) then you might deplete DI faster and want something like that.

I might switch the design over to power a pump instead of the solenoid(or either). Sensors wouldn't change and the monitoring wouldn't change. You could also use same system to run a solenoid on the exit of the clean side of the RO storage tank... just more utilizing a float near the bottom of the tank and the top to minimize fills.
 

Attachments

  • 1608663575050.png
    1608663575050.png
    30.8 KB · Views: 45

Chbix

Active Member
View Badges
Joined
Sep 7, 2013
Messages
142
Reaction score
110
Location
Reno
Rating - 0%
0   0   0
This is why I have a valve on a T between my RO and the first DI state. I also run a booster pump. I am less concerned with an auto flush but more with allowing the ro to drain off for 1-2 min and then push into the DI. Also trying to decide if I do this all in an apex/hydros environment or a standalone arduino/pi setup like robotank.
 
OP
OP
H

hanslanda

Community Member
View Badges
Joined
Nov 14, 2018
Messages
50
Reaction score
17
Rating - 0%
0   0   0
This is why I have a valve on a T between my RO and the first DI state. I also run a booster pump. I am less concerned with an auto flush but more with allowing the ro to drain off for 1-2 min and then push into the DI. Also trying to decide if I do this all in an apex/hydros environment or a standalone arduino/pi setup like robotank.

The message I got from Aquaticlife was to not worry about it. Within practice if you are filling a storage tank from empty to full (25+ gallons), and only allow TDS creep one time during initial fill it is not significant enough to circumvent.

Even if the DI just passed it through it would be fine. You have maybe a cup of dirty water coming out mixing with 50 gallons (800cups). Even 800 TDS would only be 1TDS mixed into 50 gallons.

I get where you're coming from I just haven't decided if I'm working that into the system yet. For now I'm going to modify my system to run a little pump instead of the solenoid. The FET has a heatsink, thermally controlled fan, and can withstand 50amps so I'll just plug a pump into it.
 
OP
OP
H

hanslanda

Community Member
View Badges
Joined
Nov 14, 2018
Messages
50
Reaction score
17
Rating - 0%
0   0   0
I've since switched my design profile to align more with industry standards.

The mag floats still exist and operate as normal in the sump chamber... However, now the arduino actuates a 12v DC pump that pumps water out of my 30gal storage container. Run a small 5/16" hose to my overflow box where it thoroughly mixes on its way down to the sump. I also use a small ball valve to regulate the output to a light trickle.


I have begun to flush the dirty and clean side of the RO membrane before I do fills. But I only need to fill water into my storage tanks maybe once a month at this point. A 30gal top off tank, and a 75gal change water tank. So I make around 100gallons at a crack, one(continuous) time a month.

I do like the idea of automating the dirty flushing and the RO creep issue. For the dirty water its as simple as adding a T and a solenoid that has no backpressure to function. For the TDS creep, I would think again, a T in the line would be enough, as i'm guessing the DI cartridge has SOME level of backpressure so a solenoid that requires no back-pressure to operate, could do the trick.


Will let you know if I end up implementing this. I will likely add a few things like an auto shut-off for my skimmer if my waste bin is full (stop runaway skim and ATO) and maybe a water sensor that can live near the sump to monitor overflows.
 

Making aqua concoctions: Have you ever tried the Reef Moonshiner Method?

  • I currently use the moonshiner method.

    Votes: 24 22.0%
  • I don’t currently use the moonshiner method, but I have in the past.

    Votes: 2 1.8%
  • I have not used the moonshiner method.

    Votes: 79 72.5%
  • Other.

    Votes: 4 3.7%
Back
Top