Reef Angel Malfunctioning

Do you have a question on how to do something.
Ask in here.

Posts: 229
Joined: Thu Nov 15, 2012 11:27 am
PostPosted: Tue Sep 17, 2013 3:30 am
Good morning all...

Here is the issue I'm having. On Sunday, i finally connected all my cool new gadgets from the Roberto. I added:

- relay expansion (box1)
- lunar hub
- expansion hubs

in addition to that I have been using the Wifi and RF module.

Since the connection,

After a few hours, the reef angel will be flashing a red status on the box and then telling me false information on the wifi and portal (stuff is on when its not). The funny thing is the box is still running as normal (Return and Skimmer etc are still on.. even thouh the box says it off).

Could my new ATI fixture be too much? This only started happening when I added the relay expansion.

Please help. FYI: when i reset the head unit (pulling the plug) it works fine for a few hrs and then does this samething again

#include <RA_ATO.h>
#include <RF.h>
#include <ReefAngel_Features.h>
#include <Globals.h>
#include <RA_Wifi.h>
#include <Wire.h>
#include <OneWire.h>
#include <Time.h>
#include <DS1307RTC.h>fa
#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>fa
#include <IO.h>
#include <ORP.h>
#include <AI.h>
#include <PH.h>
#include <WaterLevel.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.WaterChangePorts = Port1Bit | Port8Bit; // Turn off Ports 5 and 6 when Feeding Mode is activated
ReefAngel.FeedingModePorts = Port1Bit | Port6Bit | Port8Bit; // Turn off Ports 1, 6, 7 and 8 when Water Change Mode is activated
ReefAngel.LightsOnPorts = Port2Bit | Port3Bit | Port4Bit| Port5Bit;
ReefAngel.OverheatShutoffPorts = Port2Bit |Port3Bit | Port4Bit | Port5Bit | Port7Bit; // Turn off Ports 3,
ReefAngel.TempProbe = T3_PROBE;
ReefAngel.OverheatProbe = T3_PROBE;
// Set the Overheat temperature setting
InternalMemory.OverheatTemp_write( 825 );

// Setup ATO Port for AI communication
ReefAngel.AI.SetPort( lowATOPin );

// Ports that are always on
ReefAngel.Relay.On( Port1 );
ReefAngel.Relay.On( Box1_Port2 ); // Razor Led
ReefAngel.Relay.On( Box1_Port4 ); // Sump Equipment - UV, Pump
ReefAngel.Relay.On( Box1_Port5 ); // MP40s
ReefAngel.Relay.On( Box1_Port6 ); // JBJ
////// Place additional initialization code below here

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

void loop()
// Port1 Return pump... on all the time!!!
ReefAngel.Relay.Set( Port2, !ReefAngel.Relay.Status( Port4 ) ); //Refuge
ReefAngel.Relay.Off( Port3); // Start with the relay off
if (hour()>=5 && hour()<10) ReefAngel.Relay.On(Port3); // Moonlight Between 5-10am turn the relay on
if (hour()>=20 && hour()<=23) ReefAngel.Relay.On(Port3); // From 8pm-Midnight turn the relay on
ReefAngel.StandardLights( Port4,10,0,20,0 ); //ATI Actinic
ReefAngel.StandardLights( Port5,11,0,19,0 ); //ATI Daylight
ReefAngel.StandardLights( Port6,10,0,20,0 ); //ATI Fan
ReefAngel.StandardHeater( Port7,778,790 ); //Heater
ReefAngel.Relay.DelayedOn( Port8,2 ); //Skimmer
ReefAngel.Relay.Off( Box1_Port7); // Lunar Hub Port #9
// Box1_Port2 Razor_LED (Sump)... on all the time!!! Port #10
ReefAngel.Relay.Off( Box1_Port3); //not used Port #11
// Box1_Port4 Ecotech MP_40 Pumps on all the time!!! Port #12
// Box1_Port5 Razor_LED (Sump)... on all the time!!! Port #13
// Box1_Port6 JBJ ATO ... on all the time!!! Port #14
ReefAngel.Relay.Off( Box1_Port7); // ALK Doser ... Port #15
ReefAngel.Relay.Off( Box1_Port8); // Calc Doser ... Port #16

// ReefAngel.AI.SetChannel( White, PWMParabola(11,0,17,0,0,75,0) );
// ReefAngel.AI.SetChannel( Blue, PWMParabola(9,0,20,0,15,100,0) );
// ReefAngel.AI.SetChannel( RoyalBlue, PWMParabola(9,0,20,0,15,100,(MoonPhase()/5)<3 ? 3:MoonPhase()/5) );
ReefAngel.RF.UseMemory = false;
ReefAngel.RF.SetMode( ReefCrest,85,10 );
// ReefAngel.RF.SetChannel( Radion_White, PWMParabola(9,0,20,0,0,60,0) );
// ReefAngel.RF.SetChannel( Radion_RoyalBlue, MoonPhase() );
// ReefAngel.RF.SetChannel( Radion_Red, PWMParabola(9,0,20,0,15,65,15) );
// ReefAngel.RF.SetChannel( Radion_Green, PWMParabola(9,0,20,0,15,50,15) );
// ReefAngel.RF.SetChannel( Radion_Blue, MoonPhase() );
// ReefAngel.RF.SetChannel( Radion_Intensity, PWMParabola(9,0,20,0,15,94,15) );
// if ( second()==0 ) ReefAngel.RF.RadionWrite();

////// Place your custom code below here

ReefAngel.RF.UseMemory = false;
if (hour()>=6 && hour()<11)
else if (hour()>=11 && hour()<13)
else if (hour()>=13 && hour()<16)
else if (hour()>=16 && hour()<19)

// Hardcode PH calibrations
//ReefAngel.PHMin=544; // PH7.0
//ReefAngel.PHMax=830; // PH10.0

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

// This should always be the last line
ReefAngel.Portal( "ecam" );

void DrawCustomMain()
int x,y;
char text[10];
// Aqua Illumination
x = 10;
y = 20;
ReefAngel.LCD.DrawText( COLOR_DODGERBLUE,DefaultBGColor,x,y,"WH:" );
ReefAngel.LCD.DrawText( COLOR_DODGERBLUE,DefaultBGColor,x+38,y,"BL:" );
ReefAngel.LCD.DrawText( COLOR_DODGERBLUE,DefaultBGColor,x+76,y,"RB:" );
for ( int a=0;a<3;a++ )
ReefAngel.LCD.DrawText( COLOR_DODGERBLUE,DefaultBGColor,x+18,y,ReefAngel.AI.GetChannel(a) );
x += 38;

// Parameters
#if defined DisplayLEDPWM && ! defined RemoveAllLights
ReefAngel.LCD.DrawMonitor( 15, 48, ReefAngel.Params,
ReefAngel.PWM.GetDaylightValue(), ReefAngel.PWM.GetActinicValue() );
#else // defined DisplayLEDPWM && ! defined RemoveAllLights
ReefAngel.LCD.DrawMonitor( 15, 48, ReefAngel.Params );
#endif // defined DisplayLEDPWM && ! defined RemoveAllLights

// Main Relay Box
byte TempRelay = ReefAngel.Relay.RelayData;
TempRelay &= ReefAngel.Relay.RelayMaskOff;
TempRelay |= ReefAngel.Relay.RelayMaskOn;
ReefAngel.LCD.DrawOutletBox( 12, 94, TempRelay );

// Date and Time
ReefAngel.LCD.DrawDate( 6, 122 );

void DrawCustomGraph()

Posts: 12475
Joined: Fri Mar 18, 2011 6:47 pm
PostPosted: Tue Sep 17, 2013 8:03 am
I'm starting to think it is the RF expansion module firmware and the twi.c change.
You are the 2nd with this problem.
I'm thinking that the twi.c change I have made a while ago is not doing its job and making things even worse.
Can we try reverting back to the original file?
Attached is the original twi.c file.
Please download and overwrite the existing one you have in your computer.
It is located at C:\Program Files (x86)\Reef Angel Controller\libraries\Wire\utility
Then upload your code to RA again to apply the change.
(15.98 KiB) Downloaded 94 times

Posts: 229
Joined: Thu Nov 15, 2012 11:27 am
PostPosted: Tue Sep 17, 2013 7:10 pm
Hey roberto. Just uploaded the code with the new TWI file. Will let u know what happens tomorrow morning

Posts: 229
Joined: Thu Nov 15, 2012 11:27 am
PostPosted: Wed Sep 18, 2013 7:46 am
Roberto... So far soo good. Everything appears to be functioning okay

Posts: 229
Joined: Thu Nov 15, 2012 11:27 am
PostPosted: Thu Sep 19, 2013 6:40 pm
Roberto... It happened again. What should i do

Posts: 12475
Joined: Fri Mar 18, 2011 6:47 pm
PostPosted: Thu Sep 19, 2013 8:19 pm
Let's try updating the firmware of the RF module.
Open the case
Remove the Ecotech RF module chip from the RF module
Use the same USB-TTL cable you program RA to program the new firmware
Plug the cable to the RF module with the black wire towards the LED.
Download the attached file and unzip it.
Modify the file update.bat with the same COM port used to upload to RA.
Double click the update.bat file to execute it.
It will show a command prompt window with a progress bar and you will see the RF LED blinking just like when you upload to RA.
At the end, the RF module will start blinking 3 times every second.
If the blink every second doesn't happen, something didn't go right
(425.21 KiB) Downloaded 85 times

Posts: 229
Joined: Thu Nov 15, 2012 11:27 am
PostPosted: Sat Sep 21, 2013 6:09 am

Can you tell me where in the Hex code do i find and change the COM? I am currently using COM1, if that helps

Posts: 12475
Joined: Fri Mar 18, 2011 6:47 pm
PostPosted: Sat Sep 21, 2013 8:08 am
Modify the file update.bat with the same COM port used to upload to RA.

Not the hex file.... It is in the bat file

Posts: 229
Joined: Thu Nov 15, 2012 11:27 am
PostPosted: Sat Sep 21, 2013 9:13 am
How do i do that?

Not sure how to modify the executable
User avatar
Posts: 5416
Joined: Fri Jul 20, 2012 9:42 am
PostPosted: Sat Sep 21, 2013 9:17 am
A .bat file is just a text file. You can use notepad/wordpad or any editor.

Return to How do I code ...

Who is online

Users browsing this forum: No registered users and 3 guests