Page 1 of 1

Serious ATO issues

Posted: Wed Jul 31, 2013 5:28 pm
by meadowsad
After a water change today my ATO decided to kick on and luckily only dumped 2-3 gallons of water in my sump. The water change was from the display tank so it shouldn't have triggered the low switch to start the pump. Prior to this the ATO has been working fine for about a week. Now the ATO will not shut off. I am using 2 float switches one pointing down, one pointing up.

I have unplugged everything and waited a minute or two and plugged it all back in. I verified the switches are working correctly by moving them by hand and verifying the Reef Angel Client shows ATO high or low as green. I have reuploaded the code twice now and still, everytime I plug the pump in it just starts pumping.

Below is my code. Any help would be greatly appreciated!

Code: Select all

#include <ReefAngel_Features.h>
#include <Globals.h>
#include <RA_Wifi.h>
#include <Wire.h>
#include <OneWire.h>
#include <Time.h>
#include <DS1307RTC.h>
#include <InternalEEPROM.h>
#include <RA_NokiaLCD.h>
#include <RA_ATO.h>
#include <RA_Joystick.h>
#include <LED.h>
#include <RA_TempSensor.h>
#include <Relay.h>
#include <RA_PWM.h>
#include <Timer.h>
#include <Memory.h>
#include <InternalEEPROM.h>
#include <RA_Colors.h>
#include <RA_CustomColors.h>
#include <Salinity.h>
#include <RF.h>
#include <IO.h>
#include <ORP.h>
#include <AI.h>
#include <PH.h>
#include <WaterLevel.h>
#include <Humidity.h>
#include <DCPump.h>
#include <ReefAngel.h>

////// Place global variable code below here


////// Place global variable code above here


void setup()
{
    // This must be the first line
    ReefAngel.Init();  //Initialize controller
    // Ports toggled in Feeding Mode
    ReefAngel.FeedingModePorts = Port3Bit | Port5Bit | Port6Bit;
    // Ports toggled in Water Change Mode
    ReefAngel.WaterChangePorts = Port1Bit | Port3Bit | Port5Bit | Port6Bit;
    // Ports toggled when Lights On / Off menu entry selected
    ReefAngel.LightsOnPorts = Port2Bit;
    // Ports turned off when Overheat temperature exceeded
    ReefAngel.OverheatShutoffPorts = Port2Bit | Port4Bit;
    // Use T1 probe as temperature and overheat functions
    ReefAngel.TempProbe = T1_PROBE;
    ReefAngel.OverheatProbe = T1_PROBE;
    // Set the Overheat temperature setting
    InternalMemory.OverheatTemp_write( 830 );

    // Feeeding and Water Change mode speed
    ReefAngel.DCPump.FeedingSpeed=30;
    ReefAngel.DCPump.WaterChangeSpeed=0;


    // Ports that are always on
    ReefAngel.Relay.On( Port3 );
    ReefAngel.Relay.On( Port5 );


    ////// Place additional initialization code below here
    

    ////// Place additional initialization code above here
}

void loop()
{
    ReefAngel.Relay.DelayedOn( Port1,1 );
    ReefAngel.StandardLights( Port2,23,0,11,0 );
    ReefAngel.StandardHeater( Port4,780,800 );
    ReefAngel.Relay.DelayedOn( Port6,1 );
    ReefAngel.StandardATO(Port8,1200); 
    ReefAngel.DCPump.UseMemory = false;
    ReefAngel.DCPump.DaylightChannel = Sync;
    ReefAngel.DCPump.ActinicChannel = AntiSync;
    ////// Place your custom code below here
    if (hour()>=0000 && hour()<8)
    {
    ReefAngel.DCPump.SetMode( Constant,30,10 );
    }
    if (hour()>=8 && hour()<9)
    {
    ReefAngel.DCPump.SetMode( Lagoon,40,10 );
    }
    if (hour()>=9 && hour()<20)
    { 
    ReefAngel.DCPump.SetMode( ReefCrest,55,20 );
    }
    if (hour()>=20 && hour()<21)
    {
    ReefAngel.DCPump.SetMode( Lagoon,40,10 );
    }
    if (hour()>=21 && hour()<2359)
    {
    ReefAngel.DCPump.SetMode( Constant,30,10 );
    }
    ////// Place your custom code above here

    // This should always be the last line
}

Re: Serious ATO issues

Posted: Wed Jul 31, 2013 5:56 pm
by lnevo
Well at initial observation, you have a 20 minute timeout on your pump. That seems a but excessive.

Also even if you are removing water from DT it will affect the water level in your return chamber as there is less water to overflow down your drain.

It could be a stuck relay. Do you have wifi? If you override the port to off does it still pump?

Re: Serious ATO issues

Posted: Wed Jul 31, 2013 6:07 pm
by meadowsad
I shut all the pumps off during a water change so yes the water level in the sump raises but that should trigger the ATO high switch, not the ATO low. Not sure what you mean here.

The 20 minute timeout was based on trial and error it could probably be lowered a bit but it was working fine for a week. With the pump I have at most it would pump in is a little over 1 gallon.

I have tried turning the ports on then off and even when they say off the pump still runs.

Re: Serious ATO issues

Posted: Wed Jul 31, 2013 6:24 pm
by lnevo
Sounds like a stuck relay. Try the controller test sketch and see if you can turn it off with that.

Alternatively you could put

ReefAngel.Relay.Off(Port8);

After the standard ato call. And see if it stays off.

Re: Serious ATO issues

Posted: Wed Jul 31, 2013 6:40 pm
by meadowsad
Thanks for the help. I'll give that a go and see what happens. My concern is if this happens again while I am away. Is this a somewhat common problem? Is there anyway this can be avoided?

Re: Serious ATO issues

Posted: Wed Jul 31, 2013 6:47 pm
by meadowsad
New development. I was watching TV and I heard a "grinding" sound coming from the fish tank. I checked the tank and the sound was coming from the relay box. The relay was turning on and off very rapidly. Not sure how I should proceed now but I assume something is not right.

Re: Serious ATO issues

Posted: Wed Jul 31, 2013 7:35 pm
by rimai
Your code seems to be missing something.
Where is ReefAngel.ShowInterface()?

Re: Serious ATO issues

Posted: Wed Jul 31, 2013 8:14 pm
by meadowsad
I have just added that in to my code based off of where it is in the preloaded code. This did not resolve the issue. One thing I did notice is the pump doesn't turn on until the delayed ports turn on.

Below is my new code:

Code: Select all

#include <ReefAngel_Features.h>
#include <Globals.h>
#include <RA_Wifi.h>
#include <Wire.h>
#include <OneWire.h>
#include <Time.h>
#include <DS1307RTC.h>
#include <InternalEEPROM.h>
#include <RA_NokiaLCD.h>
#include <RA_ATO.h>
#include <RA_Joystick.h>
#include <LED.h>
#include <RA_TempSensor.h>
#include <Relay.h>
#include <RA_PWM.h>
#include <Timer.h>
#include <Memory.h>
#include <InternalEEPROM.h>
#include <RA_Colors.h>
#include <RA_CustomColors.h>
#include <Salinity.h>
#include <RF.h>
#include <IO.h>
#include <ORP.h>
#include <AI.h>
#include <PH.h>
#include <WaterLevel.h>
#include <Humidity.h>
#include <DCPump.h>
#include <ReefAngel.h>

////// Place global variable code below here


////// Place global variable code above here


void setup()
{
    // This must be the first line
    ReefAngel.Init();  //Initialize controller
    // Ports toggled in Feeding Mode
    ReefAngel.FeedingModePorts = Port3Bit | Port5Bit | Port6Bit;
    // Ports toggled in Water Change Mode
    ReefAngel.WaterChangePorts = Port1Bit | Port3Bit | Port5Bit | Port6Bit;
    // Ports toggled when Lights On / Off menu entry selected
    ReefAngel.LightsOnPorts = Port2Bit;
    // Ports turned off when Overheat temperature exceeded
    ReefAngel.OverheatShutoffPorts = Port2Bit | Port4Bit;
    // Use T1 probe as temperature and overheat functions
    ReefAngel.TempProbe = T1_PROBE;
    ReefAngel.OverheatProbe = T1_PROBE;
    // Set the Overheat temperature setting
    InternalMemory.OverheatTemp_write( 830 );

    // Feeeding and Water Change mode speed
    ReefAngel.DCPump.FeedingSpeed=30;
    ReefAngel.DCPump.WaterChangeSpeed=0;


    // Ports that are always on
    ReefAngel.Relay.On( Port3 );
    ReefAngel.Relay.On( Port5 );


    ////// Place additional initialization code below here
    

    ////// Place additional initialization code above here
}

void loop()
{
    ReefAngel.Relay.DelayedOn( Port1,1 );
    ReefAngel.StandardLights( Port2,23,0,11,0 );
    ReefAngel.StandardHeater( Port4,780,800 );
    ReefAngel.Relay.DelayedOn( Port6,1 );
    ReefAngel.StandardATO(Port8,1200); 
    ReefAngel.DCPump.UseMemory = false;
    ReefAngel.DCPump.DaylightChannel = Sync;
    ReefAngel.DCPump.ActinicChannel = AntiSync;
    ReefAngel.ShowInterface();
    ////// Place your custom code below here
    if (hour()>=0000 && hour()<8)
    {
    ReefAngel.DCPump.SetMode( Constant,30,10 );
    }
    if (hour()>=8 && hour()<9)
    {
    ReefAngel.DCPump.SetMode( Lagoon,40,10 );
    }
    if (hour()>=9 && hour()<20)
    { 
    ReefAngel.DCPump.SetMode( ReefCrest,55,20 );
    }
    if (hour()>=20 && hour()<21)
    {
    ReefAngel.DCPump.SetMode( Lagoon,40,10 );
    }
    if (hour()>=21 && hour()<2359)
    {
    ReefAngel.DCPump.SetMode( Constant,30,10 );
    }
    ////// Place your custom code above here

    // This should always be the last line
    ReefAngel.Portal( "meadowsad" );
    ReefAngel.ShowInterface();
}



Re: Serious ATO issues

Posted: Thu Aug 01, 2013 4:29 am
by meadowsad
I uploaded the controller test code and went through all the ports.

What I noticed was when I turn on port 6(skimmer), port 8(ATO pump) also turns on. I didn't even make it all the way to port 8 before the pump started pumping. I went to port 7 and port 6 and 8 were still on even though they showed off. Going to port 8 and then back to 7 didn't do anything either. Only when I went back to port 5 then ports 6 and 8 turn off.

Re: Serious ATO issues

Posted: Thu Aug 01, 2013 8:45 am
by rimai
Are you using the original svga cable?

Re: Serious ATO issues

Posted: Thu Aug 01, 2013 9:10 am
by meadowsad
Everything is stock. The only add-on I have is the WiFi attachment.

Re: Serious ATO issues

Posted: Thu Aug 01, 2013 9:15 am
by rimai
You will need to send for repair then.
PM for RMA.