Banner image

cypho's 36" DIY reef (1 Viewer)

I added a 2nd wavemaker pump yesterday. It does make the maximum wave I can generate larger and gives more options for flow patterns. But it sure made the coding more complicated.

For timing, I found that when the pumps precisely alternate (the 2nd turns on the exact moment 1st turns off) they fight each other a bit from momentum of the water they have already started pushing when the prop cuts off. So I tweaked the timing so that there is a 75ms delay (5% of wave the cycle) after one pump cuts off before the next starts up.


Then there is wave scaling. My goal was to have a pattern that hits these 4 points and smoothly transitions between them:

Low tide. Both wavemakers 100%. Sump 0% (Waves crashing over the reef, no tidal flow)

Rising tide (midpoint). Wavemaker West 100%, Wavemaker East 0%, Sump 100% (the tide is coming in, when a wave passes overhead the water takes 2 steps forward, 1 step back)

High tide. Both wavemakers 0%. Sump 0% (deeper water lets the waves pass over the reef with minimal disturbance, no tidal flow)

Falling tide (midpoint). Wavemaker West 0%, Wavemaker East 100%, Sump 100% (the tide is going out, when a wave passes overhead the water takes 1 step forward, 2 steps back)

I may have just been tired last night and not running at full capacity, but working out reasonable equations to accomplish that took a lot longer than I expected. After I failed to work it out on paper, I ended up simulating random equations on the computer, looking at the computer generated graphs pattern until I found something that looked right.

After more trial-and-error than I would like to admit, I finally ended up with a pattern that looks good (at least when graphed) and hits my 4 points.

tide_wave.JPG

The equations are:

Wavemaker West = ( 1 - tide.height% )*(1 + tide.slope%)
Wavemaker East = ( 1 - tide.height% )*(1 - tide.slope%)
Sump Pump = sqrt( abs( tide.slope% ) )+0.1



And just to be clear: I don't believe that the fish or coral care about any of this - at all. But I find it fun.
 
Last edited:
Come on, Will. You're beating me to the punch!
My notes for programming a tidal surge are still stashed on my desk in a folder. I was hoping to find some time this summer to figure this out with my Vortechs and the Apex, but I've been too busy.
I have had a couple of quick looks into Apex programming threads on the Neptune forums, but I haven't tried to incorporate my thoughts into anything applicable yet. Some day.

And just to be clear: I don't believe that the fish or coral care about any of this - at all. But I find it fun.

Exactly!
But... there may be one aspect we can document and that would be coral growth patterns.
Taking a photo record of how frags grow out with having a tidal surge water flow may yield interesting results. I'm thinking a fuller and more even growth form. But then I suppose having a static lighting source may affect those results.
But I find it fun also. Good job!
 
I am reasonably confident that whatever was causing the death was removed by the big waterchanges. Most of the survivors are looking reasonably happy and nothing is RTNing anymore.

But I am still nervous that I have not addressed the underlying source of the contamination since I don't know what the source was. For now there is nothing else that can be done but wait and see what happens next. I'm not going to add anything new until I start to see some new growth which will be my sign that the issue is 100% resolved.
 
Add a float switch in chamber 2 of the filter sock box. Then you can be notified when the sock is clogged :)


I have not yet added an emergency overflow bulkhead to the filter sock box, but I did add a float switch and programmed the controller to kill the sump pump if the box was about to overflow.

Yesterday I was feeding the fish and I noticed the pump was stopping for a few seconds every few minutes. I checked the sump and sure enough, the filter sock needed to be cleaned. Glad to know it works, but I should really install that emergency bulkhead for double fail-safe protection.

Thanks Jeremy, you saved me from a flood.
 
I really like the idea of syncing my water temperature with water temperature at the site that I am using for tides and sunrise/sunset synchronization.

I have looked at this before and as much as I like the idea of a live temperature sync, the historical temperatures at all of the sites I can find with a reliable data stream, don't look completely safe. I am very uncomfortable with water temperatures above 84 and below 76, both of which have occurred in the last year at the site I am using. I think part of the problem is that the stations are near shore and the sensor is only 5.3 ft below the low tide level.

For example, here is the 2014 temp data at the tide station I am syncing to. http://tidesandcurrents.noaa.gov/ph...s=standard&timezone=GMT&id=1617433&interval=h

So, here's the plan. To simulate a slightly deeper and more stable reef I am going to take the average of 80 deg and the live temperature at the tide station. So the station would have to report >88 or <72 before causing problems. This will also cut the day/night swing in half. Just to be safe I will also put in hard-coded min/max settings of 76 and 84.
 
Last edited:
This older pic shows what he looked two months ago. Hard to believe it is the same fish.

attachment.php
 
Last edited:
That is quite the color change; almost a color negative with the oranges and blues.

And we get to see where the anemones sat when out front.
 
I wonder if the blues could be contagious? Perhaps he caught it from the tang.

IMG_5904.JPG
 
I had an almost-disaster last week.

The noaa website that publishes the tide and water temperature data I am using was offline for a while. I somehow forgot to consider that possibility and the error caused a partial crash of my controller. The main control loop was still running, but the tank temperature reading was stuck at the temperature the tank was at the time of the crash. This went unnoticed for almost a day.

I have two heaters, a 50W and a 500W. I was really lucky that that the stuck temperature reading was in a place where the 50W heater is on, and the 500W heater is off so I think the temperature remained in a reasonable range for most of that day.

This was not too bad until the noaa website came back to life and the target temperature increased above the stuck temperature reading. This caused the 500W heater to become stuck in the ON position. Fortunately I was home when this happened and noticed when anemones closed up all of a sudden. By the time I figured out what was wrong, the water was up to 90 degrees.

I quickly reset the controller and added 15lbs of ice to the sump to bring the temperature back down. Fortunately was home and noticed the problem quickly so nothing died from the brief temperature spike. But if it had happened when I was not watching, I am sure it would have been a total loss.

__________________


To prevent this from happening in the future:

I fixed the bug that caused the partial crash. Next time the noaa website goes down the controller will just continue to use the last known tide/temp info.

I have added a timestamp to all sensor data. Critical systems like ATO and heaters will fallback to a safe setting if the sensor data they need is too old, instead of happily chugging along with outdated info.

I should also look into adding an independent thermostat that can shut the big heater off if the controller goes nuts and tries to cook the tank.
 
Last edited:
90 pretty scary, what kinds of heaters you using? For Ebo's I always set their thermometer at 85 or something as a final fail safe in case the controller goes buggers.
 
Ouch! El Niño strikes again!
 
The 50W heater heater is an old glass heater from the late 90's or early 00's, I'm not sure what brand off the top of my head, probably Ebo Jager or Visi-Therm. It has a built in thermostat, but I doubt it works anymore. Replacing it with something newer and around 150W is on my to-do list. But that is not very relevant to this near-miss as one purpose of the low-power heater is to be a fail-on device that is small enough that even when stuck-on it cannot overheat the tank.

The 500W heater is a new finnex titanium tube without any built-in thermostat. It is supposed to fail-off. I obviously need to work on the off part a bit more. Since this happened late last week, heaters were on my mind at the frag swap. One vendor had finnex thermostats, I would have got one, but the model they had was only rated up to 300W.
 
I think I spend more time playing with the DIY controler than I spend looking at the tank.

I figured out how to calculate tides with the pytides library! So now I don't have so scrape tide data from the NOAA website all the time.

The calculated high/low times are pretty much a perfect match to NOAA's. The calculated high/low heights are not a perfect match, but they are pretty darn close and the precision of the calculated data is much better. The increased precision is especially noticeable on the tide speed.

Tide and Tide Speed are the new calculated predictions. Tide2 and Tide Speed2 are NOAA predictions I was using before.

attachment.php
 

Attachments

  • noaa-vs-calculated.PNG
    noaa-vs-calculated.PNG
    71.9 KB · Views: 155
IMG_20151206_183147.jpg

At the frag swap I got a pair of BRS dosing pumps from Noob_dude. I finally got around to setting them up this weekend to autodose Calcium and Alkalinity. The jars are from target and each hold 1/2 gallon.

I feel a bit guilty that the jars and pump are not DIY, but I wanted the jars to have an airtight lid which would not be so easy to build myself the materials would have cost quite a bit more than target sells jars for. The DIY dosing pump parts I have been able to find are either poor quality, or much more expensive than BRS's pumps. When DIY is both more expensive and less functional than what you can just buy, off the shelf wins.

The pumps and the jars are in the closet behind the tank. I originally planned to place the jars in the stand, but I couldn't decide if that would make checking on and refilling the jars harder or easier. So I went with the closet for now because that required half as much plumbing.

For some reason, when the relays cut power to the dosing pumps, it causes all of the other relays to freak out for a second or two. At first I thought it was a programming error, but it does not happen when the dosing pumps are unplugged so it must have something to do with the dosing pumps.

I ordered 2 more of the snubbers that I used to fix a similar problem I had with the ATO solenoid. Hopefully that will fix this problem too. For now I am only running the dosers at night so the freakouts don't kill the lights (which take ~15 minutes to reboot).
 
Last edited:
Are you supplying power to your relay to the from the raspberry pi or does it have its own power? I've had issues on my project where when I connect to many things to my relay it wacked out until I provided its own power instead of powering from the pi.



Sent from my Nexus 5 using Tapatalk
 
Are you supplying power to your relay to the from the raspberry pi or does it have its own power? I've had issues on my project where when I connect to many things to my relay it wacked out until I provided its own power instead of powering from the pi.



Sent from my Nexus 5 using Tapatalk

Yep, the relays have their own 5v power source. I ran into that problem a few months ago. Here is part of a post earlier in the thread.

I've been having troubles with my controller for the last several weeks. After a while, some sensors would stop producing valid data and/or relays would fail to activate.....Once I had the cause of the problem pinned down, the solution was easy. The relay boards have 2 power inputs, 1 for logic, and 1 for actually driving the relays. Instead of driving the relays with the PI's 5v pin, I just needed to give the relays their own power supply....
 
Last edited:

Users who are viewing this thread

Back
Top