ATO Timeout issue (SingleATOlow)

Basic / Standard Reef Angel hardware
Post Reply
astralmind
Posts: 99
Joined: Fri Apr 01, 2011 10:53 am

ATO Timeout issue (SingleATOlow)

Post by astralmind »

Hi,

All has been working as expected since I setup my RA except for the ATO.

Using 1 floatswitch, SingleATOLow, code generated by the wizard on port 6 I got what seemed to be logically working.

Manually triggering by pushing on it confirmed all worked well and respected the time out (or so it seemed).

I've been constantly getting time outs at default 60 secs, I raised it to 80 and further more until I got to 300 and messed by having excess top off dumped in the sump.

I'm using a standard aqualift pump and very moderate length of tubing. What I find extremely odd is that most of the time, if the ATO timeout happened recently and I happen to be close to the tank when I reset it, I clear the ATO timeout flag, red light goes off and the pump doesn't turn back on which is perfectly fine as the water level is actually in the right place! If that's the case then why did the timeout happen ?

The issue seems mechanical (switch unable to float back in realtime, takes a while to pop back up and timeout is triggered) but I don't see or feel any resistance when moving it around.

I tried swapping the switch wit the other included one but it looks like that one is inverted (open closed backward) and don't want to needlessly chop it off.
User avatar
cosmith71
Posts: 1437
Joined: Fri Mar 29, 2013 3:51 pm
Location: Oklahoma City

Re: ATO Timeout issue (SingleATOlow)

Post by cosmith71 »

Could possibly be a bad switch, if it's moving as it's supposed to.

On the other switch, you can take off the retaining ring and flip the float over to change the polarity.

--Colin
User avatar
madweazl
Posts: 44
Joined: Tue Dec 03, 2013 3:08 am
Location: Fredericksburg, VA

Re: ATO Timeout issue (SingleATOlow)

Post by madweazl »

Inverted? You can swap the polarity (if that is an issue); you can use a pin/xacto knife or any other narrow item to gently push down on the lead in the connector (visible from the top of the connector). The leads will slide right out with almost no resistance (if there is resistance, don't pull).

Can you post the code you're using for the ATO function?

Edit: had no idea you could simply swap the drum!
Last edited by madweazl on Fri Jun 24, 2016 6:03 am, edited 1 time in total.
Image
User avatar
cosmith71
Posts: 1437
Joined: Fri Mar 29, 2013 3:51 pm
Location: Oklahoma City

Re: ATO Timeout issue (SingleATOlow)

Post by cosmith71 »

Switches don't have polarity.

What he means is one float switch is off in the up position, and the other one is on in the up position. Solved by turning the float over. :D
User avatar
madweazl
Posts: 44
Joined: Tue Dec 03, 2013 3:08 am
Location: Fredericksburg, VA

Re: ATO Timeout issue (SingleATOlow)

Post by madweazl »

cosmith71 wrote:Switches don't have polarity.

What he means is one float switch is off in the up position, and the other one is on in the up position. Solved by turning the float over. :D
So I could have both switches mounted in the down position and just flip the drum (float)? That would make my OCD happy LOL.
Image
User avatar
cosmith71
Posts: 1437
Joined: Fri Mar 29, 2013 3:51 pm
Location: Oklahoma City

Re: ATO Timeout issue (SingleATOlow)

Post by cosmith71 »

Yup. There is a magnet on one end of the inside of the float. Flipping it over changes the switch from normally open to normally closed. :D
astralmind
Posts: 99
Joined: Fri Apr 01, 2011 10:53 am

Re: ATO Timeout issue (SingleATOlow)

Post by astralmind »

Wow thanks for the quick reply guys! I'll swap the drum and let you know if changing the switch did the trick! It seems there are 2 possible levels for the retaining ring. Any idea if lower or higher is better ?

As for the code, since I'm using the Wizard and internal memory, it doesn't look like much (any way I can get the memory portion of the code ?):

#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 <PAR.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
ReefAngel.Use2014Screen(); // Let's use 2014 Screen
// Ports toggled in Feeding Mode
ReefAngel.FeedingModePorts = Port1Bit | Port3Bit | Port4Bit | Port5Bit | Port6Bit;
// Ports toggled in Water Change Mode
ReefAngel.WaterChangePorts = Port1Bit | Port2Bit | Port3Bit | Port4Bit | Port5Bit | Port6Bit;
// Ports toggled when Lights On / Off menu entry selected
ReefAngel.LightsOnPorts = Port7Bit;
// Ports turned off when Overheat temperature exceeded
ReefAngel.OverheatShutoffPorts = Port2Bit | Port7Bit;
// Use T1 probe as temperature and overheat functions
ReefAngel.TempProbe = T1_PROBE;
ReefAngel.OverheatProbe = T1_PROBE;


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

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


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

void loop()
{
ReefAngel.StandardHeater( Port2 );
ReefAngel.Relay.DelayedOn( Port3 );
ReefAngel.SingleATOLow( Port6 );
ReefAngel.DayLights( Port7 );
ReefAngel.ActinicLights( Port8 );
ReefAngel.PWM.DaylightPWMParabola();
ReefAngel.PWM.ActinicPWMParabola();
////// Place your custom code below here
//if (!ReefAngel.HighATO.IsActive) ReefAngel.Relay.Off(Port1);

////// Place your custom code above here

// This should always be the last line
ReefAngel.Portal( "XXXXXXX" );
ReefAngel.DDNS( "XXXXX" ); // Your DDNS is XXXXXX.myreefangel.com
ReefAngel.ShowInterface();
}
Post Reply