Page 1 of 1

ATO Timeout issue (SingleATOlow)

Posted: Fri Jun 24, 2016 5:14 am
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.

Re: ATO Timeout issue (SingleATOlow)

Posted: Fri Jun 24, 2016 5:57 am
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

Re: ATO Timeout issue (SingleATOlow)

Posted: Fri Jun 24, 2016 5:58 am
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!

Re: ATO Timeout issue (SingleATOlow)

Posted: Fri Jun 24, 2016 6:00 am
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

Re: ATO Timeout issue (SingleATOlow)

Posted: Fri Jun 24, 2016 6:11 am
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.

Re: ATO Timeout issue (SingleATOlow)

Posted: Fri Jun 24, 2016 6:20 am
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

Re: ATO Timeout issue (SingleATOlow)

Posted: Fri Jun 24, 2016 7:54 am
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();
}