Solved: Sllloooowwww Screen redraw and other RA issues

Basic / Standard Reef Angel hardware
Post Reply
cgravelle
Posts: 8
Joined: Sun Jul 14, 2013 12:45 pm

Solved: Sllloooowwww Screen redraw and other RA issues

Post by cgravelle »

I purchased an RA+ in May (2013) and it has been running great the whole time. Never had any issues until this evening.

I typically use the Android App to control things (obviously have the WiFi adapter) and it stopped responding. I tried to manually use the RA and the screen wouldn't illuminate. I tried rebooting (just unplugging, not sure if there is something else I can do) and it came up but is very, very slow to redraw. I cannot get into any menus and I cannot access the wifi.

On boot, both temperature probes (I have two) read 185.0 (not a typo) degrees and of course turns off all the lights and the heater. The temperature did even out but I can't exit the overheat mode. The only way that I could get it to boot without this temperature issue was to reload the code. It was slow (compared to before) to reboot, but at least it didn't go instantly into overheat mode. I tried unplugging the two temperature probes but the screen redraw is still very slow so I am pretty sure the probes aren't causing an issue.

Things are kind of "running" but the RA+ is still very slow to refresh. As an example, my lights just went out as expected, but it took about 20 seconds before my fuge light turned on which normally happens pretty much instantaneously. The wifi light is blinking as normal, but I cannot connect to it (figure because things are taking too long to respond) and I cannot access any of the menus on the RA+ itself. Not sure what I can do.

Any thoughts?
Last edited by cgravelle on Mon Nov 11, 2013 12:56 pm, edited 1 time in total.
rimai
Posts: 12857
Joined: Fri Mar 18, 2011 6:47 pm

Re: Sllloooowwww Screen redraw and other RA issues

Post by rimai »

Do you have expansion modules?
Roberto.
cgravelle
Posts: 8
Joined: Sun Jul 14, 2013 12:45 pm

Re: Sllloooowwww Screen redraw and other RA issues

Post by cgravelle »

I do. I tried unplugging and plugging back in and rebooting. Admittedly I did not try unplugging the expansion module and rebooting without it. I can try that in the morning but I only have one relay expansion. I got the expansion hub because I also purchased the rope detection which I have yet to install.

On a side note, the WiFi is working in that if I go to the portal it has been recently updated, just not in realtime when I go to the page. It says its unreachable but if I check later the last updated has a newer time stamp.
User avatar
lnevo
Posts: 5422
Joined: Fri Jul 20, 2012 9:42 am

Re: Sllloooowwww Screen redraw and other RA issues

Post by lnevo »

Thats a symptom of port forwarding issues. Controller sends data every 5 but when you view portal it tries to connect directly.

Can you post your code?
cgravelle
Posts: 8
Joined: Sun Jul 14, 2013 12:45 pm

Re: Sllloooowwww Screen redraw and other RA issues

Post by cgravelle »

Just an update. I have disconnected the expansion module (including the moonlights connected to night dimmer) and the wifi is not connected. So all that is connected is the RA+ and the single power relay. After a reboot it continues to be slow. If the temperature probes are connected it still does the 185.0 degrees and goes into overheat mode, but reloading the code (posted below) and rebooting (done automatically after code upload) helps it function. If you want I could take a video of the screen redrawing so you can see how slow it actually is (I could type the numbers out faster with a single finger).

Regarding the port forwarding, I am not too concerned about that for now (although I do appreciate any help) as I have changed nothing on my router and the Wifi Module is assigned a static IP. Even if I try to access port 2000 directly internally (eliminating the port forwarding issue) it returns nothing. But I am posting my code just in case. Please remember, that this is all generated by the wizard (I made no modifications) and it has been working for months. It is also the same code that I use to reload and reboot the controller so that things function, just at a snails pace.

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 = Port6Bit | Port8Bit;
    ReefAngel.FeedingModePortsE[0] = Port3Bit | Port5Bit | Port6Bit | Port7Bit;
    // Ports toggled in Water Change Mode
    ReefAngel.WaterChangePorts = Port6Bit | Port7Bit | Port8Bit;
    ReefAngel.WaterChangePortsE[0] = Port2Bit | Port3Bit | Port4Bit;
    // Ports toggled when Lights On / Off menu entry selected
    ReefAngel.LightsOnPorts = Port1Bit | Port3Bit | Port4Bit;
    ReefAngel.LightsOnPortsE[0] = 0;
    // Ports turned off when Overheat temperature exceeded
    ReefAngel.OverheatShutoffPorts = Port1Bit | Port2Bit | Port3Bit | Port4Bit | Port7Bit;
    ReefAngel.OverheatShutoffPortsE[0] = 0;
    // Ports turned off when Leak is detected
    ReefAngel.LeakShutoffPorts = 0;
    ReefAngel.LeakShutoffPortsE[0] = 0;
    // Use T1 probe as temperature and overheat functions
    ReefAngel.TempProbe = T1_PROBE;
    ReefAngel.OverheatProbe = T1_PROBE;
    // Set the Overheat temperature setting
    InternalMemory.OverheatTemp_write( 810 );

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


    // Ports that are always on
    ReefAngel.Relay.On( Port5 );
    ReefAngel.Relay.On( Port8 );
    ReefAngel.Relay.On( Box1_Port1 );
    ReefAngel.Relay.On( Box1_Port2 );
    ReefAngel.Relay.On( Box1_Port3 );
    ReefAngel.Relay.On( Box1_Port4 );
    ReefAngel.Relay.On( Box1_Port5 );
    ReefAngel.Relay.On( Box1_Port6 );
    ReefAngel.Relay.On( Box1_Port7 );

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

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

void loop()
{
    ReefAngel.Relay.Set( Port1, !ReefAngel.Relay.Status( Port3 ) );
    ReefAngel.StandardLights( Port2,20,45,5,0 );
    ReefAngel.StandardLights( Port3,11,0,21,0 );
    ReefAngel.StandardLights( Port4,12,30,19,30 );
    ReefAngel.WavemakerRandom( Port6,10,20 );
    ReefAngel.StandardHeater( Port7,777,783 );
    ReefAngel.PWM.SetActinic( MoonPhase() );
    ReefAngel.DCPump.UseMemory = false;
    ReefAngel.DCPump.SetMode( ReefCrest,30,10 );
    ReefAngel.DCPump.DaylightChannel = Sync;
    ReefAngel.DCPump.ActinicChannel = AntiSync;
    ////// Place your custom code below here
    

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

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

void DrawCustomMain()
{
    int x,y;
    char text[10];
    // Parameters
#if defined DisplayLEDPWM && ! defined RemoveAllLights
    ReefAngel.LCD.DrawMonitor( 15, 62, ReefAngel.Params,
    ReefAngel.PWM.GetDaylightValue(), ReefAngel.PWM.GetActinicValue() );
#else // defined DisplayLEDPWM && ! defined RemoveAllLights
    ReefAngel.LCD.DrawMonitor( 15, 62, ReefAngel.Params );
#endif // defined DisplayLEDPWM && ! defined RemoveAllLights
    pingSerial();

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

    // Relay Expansion
    TempRelay = ReefAngel.Relay.RelayDataE[0];
    TempRelay &= ReefAngel.Relay.RelayMaskOffE[0];
    TempRelay |= ReefAngel.Relay.RelayMaskOnE[0];
    ReefAngel.LCD.DrawOutletBox( 12, 107, TempRelay );
    pingSerial();

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

void DrawCustomGraph()
{
    ReefAngel.LCD.DrawGraph( 5, 5 );
}
As always, any help is appreciated. While I do like a good mystery, this is not an enjoyable one.
rimai
Posts: 12857
Joined: Fri Mar 18, 2011 6:47 pm

Re: Sllloooowwww Screen redraw and other RA issues

Post by rimai »

Humm...
Is the red status led blinking?
Roberto.
cgravelle
Posts: 8
Joined: Sun Jul 14, 2013 12:45 pm

Re: Sllloooowwww Screen redraw and other RA issues

Post by cgravelle »

Nope. When I unplug it to reboot, it goes solid red, I am assuming because of the overheat status (I know it is the overheat status not just because of the lights going out but it also turns on my fan). When the temperature changes from the 185.0 to the actual temperature the status light goes out. But I can't get in to exit the overheat state.

It also blinks rapidly when I upload the code to reboot it, which is the same as it has always done so I assume that is normal. It doesn't appear to take any longer to actually upload the code, but it does appear to take a little longer before it actually does the reboot.

On a side note, when the screen is dark (usual time out) and I press the stick to illuminate it, it takes the 10-15 seconds to come up (about the same time I figure it took when the refugium light came on after the lights went out last night). Everything appears to be working in that the lights and heater are turning off and on properly. I just can't access the menus (it seems to start to draw but either goes blank or bounces out to the main screen) or through the app.

Is it possible there is an issue with a capacitor or bad memory or something that would cause it to slow down? I have done electronics assemble and built PCs, but I am not electronics engineer and this is beyond me.
rimai
Posts: 12857
Joined: Fri Mar 18, 2011 6:47 pm

Re: Sllloooowwww Screen redraw and other RA issues

Post by rimai »

Does it work fine without the probe or it is slow too?
Can you load any of the example codes and see if it does the same thing?
Also, please remove the SDA and SCL jumpers from the head unit and see if it helps anything?
Roberto.
cgravelle
Posts: 8
Joined: Sun Jul 14, 2013 12:45 pm

Re: Sllloooowwww Screen redraw and other RA issues

Post by cgravelle »

When I was first troubleshooting I removed the pH and both temperature probes (because of the overheat issue) to see if I could plug in the temperature probes after reboot but learnt that the temperature probes need to be in when rebooting for them to register anything other than an "Error". All that to say, when I rebooted with no probes connected it still did the same slow response.

Are there any example codes that you want me specifically to try? I will also try loading the preloaded code to see if that makes a difference (this evening when I am home).

I am assuming that the SDA and SCL jumpers are inside and that I will not be voiding any warranty if I open it up. In addition to removing them both, assuming that actually makes a difference, should I try with one or the other? I ask simply because I don't want to break anything further.
rimai
Posts: 12857
Joined: Fri Mar 18, 2011 6:47 pm

Re: Sllloooowwww Screen redraw and other RA issues

Post by rimai »

No, you can open it. Remove both jumpers and reboot.
Try the ControllerTester code in the examples folder and see if it is slow too.
Roberto.
cgravelle
Posts: 8
Joined: Sun Jul 14, 2013 12:45 pm

Re: Sllloooowwww Screen redraw and other RA issues

Post by cgravelle »

Bad news. Removing the two jumpers and loading the ControllerTester code did not help. I also removed all probes and expansion modules at the same time. While it was going through the test, turning the status light on and off and turning the ports on and off, I noticed the time on the bottom of the screen.

Just to give you an indication as to how slow the screen is redrawing, instead of the clock counting the seconds, this is what the time on the clock looked like (i.e., it only changed the time once it finished redrawing the last line):

06:55:29
06:56:06
06:56:42
06:57:19
06:57:56
etc.

On a side note, once putting the jumpers back on and loading my code (so that the aquarium would at least function) I looked at the clock again. This time it was:

07:10:50
07:11:12
07:11:37
07:12:02
07:12:27

So with my generated code (noted in an earlier post), probes, and expansion modules, the screen appears to take about 25 seconds to redraw each time, where with the test code and jumpers/probes/modules removed it was about 37 seconds.

Thoughts? Next steps? I guess for now I will have to manually unplug pumps to feed them. At least it wasn't a catastrophic failure of the controller; knock, knock, knock.
cgravelle
Posts: 8
Joined: Sun Jul 14, 2013 12:45 pm

Solved: Sllloooowwww Screen redraw and other RA issues

Post by cgravelle »

For those that are interested. We ended up doing an RMA for the board. Still using the same screen, hardware, and code with only the board swapped out and everything is back to normal. Thanks for the help.
Post Reply