Okay. Both RANet Relay Boxes are freaking out. They did this just this morning:
https://youtu.be/D3wdGQi29lI
Turning the Relay boxes off then back on has no effect. Unplugging the RA itself causes the relay boxes to do the normal lost contact white only blink. The Freaky flash comes back as soon as it is powered back up. (I think the Dimming module is affected as well, as the LED's go out when this occurs.)
It is not:
My RA+ Board
My newer RA+ Board
Original Relay Box powering the RA - not in use (5v to the temp port)
First RANet Relay Box - Replaced the RANet receiver board in it as well, and the second RANet Relay box does it
Second RANet Relay Box - Freaks out at the exact same time as the first
RANet add on Board - Been changed twice now
May be:
Code - Changed it multiple times now? Posted below. Should I switch to IN Memory?
XBee Transmitter - Maybe I could try a Pro S1 vs S1 (Will the RA handle the extra mW required?)
Here is code that was running when freaked out this morning
Code: Select all
#include <SoftwareSerial.h>
#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
ReefAngel.AddRANet(); // RANet Add-On Module
ReefAngel.DDNS( "AARP" );
// Ports toggled in Feeding Mode
ReefAngel.FeedingModePorts = 0;
ReefAngel.FeedingModePortsE[0] = 0;
// Ports toggled in Water Change Mode
ReefAngel.WaterChangePorts = 0;
ReefAngel.WaterChangePortsE[0] = 0;
// Ports toggled when Lights On / Off menu entry selected
ReefAngel.LightsOnPorts = 0;
ReefAngel.LightsOnPortsE[0] = 0;
// Ports turned off when Overheat temperature exceeded
ReefAngel.OverheatShutoffPorts = Port1Bit | Port3Bit;
ReefAngel.OverheatShutoffPortsE[0] = Port1Bit | Port2Bit | Port7Bit | Port8Bit;
// Use T1 probe as temperature and overheat functions
ReefAngel.TempProbe = T1_PROBE;
ReefAngel.OverheatProbe = T1_PROBE;
// Set the Overheat temperature setting
InternalMemory.OverheatTemp_write( 790 );
// Feeeding and Water Change mode speed
ReefAngel.DCPump.FeedingSpeed=0;
ReefAngel.DCPump.WaterChangeSpeed=0;
// Ports that are always on
ReefAngel.Relay.On( Port3 ); // Little Skimmer
ReefAngel.Relay.On( Port7 ); // Nemo/Revolver Pump
ReefAngel.Relay.On( Box1_Port3 ); // Little Fish/HWSNBN Pump
ReefAngel.Relay.On( Box1_Port5 ); // Hospital Pump
ReefAngel.Relay.On( Box1_Port8 ); // Hospital Heater
ReefAngel.Relay.On( Box2_Port5 ); // Big Skimmer
ReefAngel.Relay.On( Box2_Port7 ); // Jebao Power
ReefAngel.Relay.On( Box2_Port8 ); // RA Dimmimg Power
////// Place additional initialization code below here
////// Place additional initialization code above here
}
void loop()
{
ReefAngel.StandardHeater( Port1,770,775 ); // 30g Heater
ReefAngel.StandardFan( Port2,776,780 ); // Chiller
ReefAngel.StandardLights( Port4,8,25,20,40 ); // LED Power
ReefAngel.StandardLights( Box1_Port1,9,5,20,5 ); // Extra Light
ReefAngel.StandardLights( Box1_Port2,9,2,20,32 ); // MH Light
ReefAngel.DosingPumpRepeat( Box1_Port4,0,120,8 ); // Ca Dose
ReefAngel.DosingPumpRepeat( Box1_Port6,0,191,6 ); // Mg Dose
ReefAngel.StandardLights( Box1_Port7,9,3,20,20 ); // Hospital Light
ReefAngel.StandardLights( Box2_Port1,19,0,19,03 ); // Top Off
ReefAngel.DosingPumpRepeat( Box2_Port2,480,780,60 ); // Drain
ReefAngel.DosingPumpRepeat( Box2_Port3,482,780,120 ); // Fill
ReefAngel.StandardHeater( Box2_Port4, 770,775 ); // 75g Heater
ReefAngel.StandardLights( Box2_Port6,9,0,20,0 ); // Big Lights
ReefAngel.PWM.SetChannel( 3, PWMSlope(8,30,20,30,0,90,60,0) );
ReefAngel.PWM.SetChannel( 4, PWMSlope(8,45,20,15,0,90,30,0) );
ReefAngel.PWM.SetChannel( 5, PWMSlope(8,50,20,20,0,90,45,0) );
ReefAngel.DCPump.UseMemory = false;
ReefAngel.DCPump.SetMode( Sine,40,10 );
ReefAngel.DCPump.DaylightChannel = None;
ReefAngel.DCPump.ActinicChannel = None;
ReefAngel.DCPump.ExpansionChannel[0] = Sync;
ReefAngel.DCPump.ExpansionChannel[1] = AntiSync;
ReefAngel.DCPump.ExpansionChannel[2] = Sync;
ReefAngel.DCPump.ExpansionChannel[3] = None;
ReefAngel.DCPump.ExpansionChannel[4] = None;
ReefAngel.DCPump.ExpansionChannel[5] = None;
////// Place your custom code below here
////// Place your custom code above here
// This should always be the last line
ReefAngel.Portal( "GiraffeCat" , "password" );
ReefAngel.DDNS( "AARP" );
ReefAngel.ShowInterface();
}
Here is the code that was running when it freaked out just before 20:00 hours. Running on the 5v to Temp port - NO contact with the Main Relay box at all.
Code: Select all
#include <SoftwareSerial.h>
#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
ReefAngel.AddRANet(); // RANet Add-On Module
ReefAngel.FeedingModePorts = 0; // Ports toggled in Feeding Mode
ReefAngel.FeedingModePortsE[0] = 0; // Ports toggled in Feeding Mode
ReefAngel.WaterChangePorts = 0; // Ports toggled in Water Change Mode
ReefAngel.WaterChangePortsE[0] = 0; // Ports toggled in Water Change Mode
ReefAngel.LightsOnPorts = 0; // Ports toggled when Lights On / Off menu entry selected
ReefAngel.LightsOnPortsE[0] = 0; // Ports toggled when Lights On / Off menu entry selected
ReefAngel.OverheatShutoffPorts = 0; // Ports turned off when Overheat temperature exceeded
ReefAngel.OverheatShutoffPortsE[0] = 0; // Ports turned off when Overheat temperature exceeded
ReefAngel.TempProbe = T1_PROBE; // Use T1 probe as temperature and overheat functions
ReefAngel.OverheatProbe = T1_PROBE; // Use T1 probe as temperature and overheat functions
InternalMemory.OverheatTemp_write( 790 ); // Set the Overheat temperature setting
ReefAngel.DDNS( "AARP" );
// Feeeding and Water Change mode speed
ReefAngel.DCPump.FeedingSpeed=0;
ReefAngel.DCPump.WaterChangeSpeed=0;
// Ports that are always on
ReefAngel.Relay.On(Box2_Port5 );
////// Place additional initialization code below here
////// Place additional initialization code above here
}
void loop()
{
ReefAngel.StandardLights( Box1_Port1,9,0,20,30 ); // Extra Light
ReefAngel.StandardLights( Box1_Port2,9,0,20,30 ); // MH Light
ReefAngel.DosingPumpRepeat( Box1_Port4,0,120,8 ); // Ca
ReefAngel.DosingPumpRepeat( Box1_Port6,0,191,6 ); // Mg
ReefAngel.StandardLights( Box1_Port7,9,0,20,30 ); // Hospital Light
ReefAngel.StandardLights( Box2_Port1,19,0,19,03 ); // Top Off
ReefAngel.DosingPumpRepeat( Box2_Port2,480,780,60 ); // Drain
ReefAngel.DosingPumpRepeat( Box2_Port3,482,780,120 ); // Fill
ReefAngel.StandardHeater( Box2_Port4,766,771 ); // 75g Heater
ReefAngel.StandardLights( Box2_Port6,9,0,20,0 ); // Big Lights
ReefAngel.PWM.SetChannel( 3, PWMSlope(8,30,20,30,0,90,45,0) );
ReefAngel.PWM.SetChannel( 4, PWMSlope(8,30,20,30,0,90,45,0) );
ReefAngel.PWM.SetChannel( 5, PWMSlope(8,30,20,30,0,90,45,0) );
ReefAngel.DCPump.UseMemory = false;
ReefAngel.DCPump.SetMode( Gyre,45,10 );
ReefAngel.DCPump.DaylightChannel = None;
ReefAngel.DCPump.ActinicChannel = None;
ReefAngel.DCPump.ExpansionChannel[0] = Sync;
ReefAngel.DCPump.ExpansionChannel[1] = AntiSync;
ReefAngel.DCPump.ExpansionChannel[2] = Sync;
ReefAngel.DCPump.ExpansionChannel[3] = None;
ReefAngel.DCPump.ExpansionChannel[4] = None;
ReefAngel.DCPump.ExpansionChannel[5] = None;
////// Place your custom code below here
////// Place your custom code above here
// This should always be the last line
ReefAngel.Portal( "GiraffeCat" , "password" );
ReefAngel.DDNS( "AARP" );
ReefAngel.ShowInterface();
}
Very random when it occurs. Lately it seems to be around the time the lights are coming on or going off. Freaks out 08:30 to 09:15 ish, then 20:00 to 21:00 ish. Never at the exact moment a light goes on/off, but around the times significant changes are occurring. Used to do it in the afternoons fairly regularly after a lightning storm. Lightning at 14:00 or so, freak out at 15:00 ish. Maybe it is related, maybe not.
Let me know if you have any ideas.
Thanks,
Dan
.....Your forefathers wisely set aside their compassion - Steeled themselves for what needed to be done.......