Page 1 of 3

Re: WIFI Cloud and WIFI Attachment on 2 RA plusses

Posted: Wed Aug 23, 2017 12:01 pm
by ecam
Getting this error on the code generated...

Code: Select all

Compiling code for RA_PLUS board

firmware.ino:29:26: error: 'MQTTServer' was not declared in this scope
PubSubClient CloudClient(MQTTServer, MQTTPORT, mqttcallback, mqttclient);
^
firmware.ino:29:38: error: 'MQTTPORT' was not declared in this scope
PubSubClient CloudClient(MQTTServer, MQTTPORT, mqttcallback, mqttclient);
^
firmware.ino: In function 'void loop()':
firmware.ino:52:22: error: 'WIFI_SSID' was not declared in this scope
Serial.println(WIFI_SSID); // print the network name (SSID);
^
firmware.ino:53:33: error: 'WIFI_PASS' was not declared in this scope
if (WiFi.begin(WIFI_SSID, WIFI_PASS) == WL_CONNECTED)
^
firmware.ino:128:38: error: 'PortalServer' was not declared in this scope
if (portalclient.connect(PortalServer, 80)) {
^
firmware.ino:152:40: error: 'CLOUD_USERNAME' was not declared in this scope
char pub_buffer[sizeof(CLOUD_USERNAME) + 5];
^
firmware.ino:153:25: error: 'pub_buffer' was not declared in this scope
sprintf(pub_buffer, "%s/out", CLOUD_USERNAME);
^
firmware.ino:189:30: error: 'CLOUD_USERNAME' was not declared in this scope
char sub_buffer[sizeof(CLOUD_USERNAME) + 6];
^
firmware.ino:193:15: error: 'sub_buffer' was not declared in this scope
sprintf(sub_buffer, "RA-%s", CLOUD_USERNAME);
^
firmware.ino:194:59: error: 'CLOUD_PASSWORD' was not declared in this scope
if (CloudClient.connect(sub_buffer, CLOUD_USERNAME, CLOUD_PASSWORD))
^
firmware.ino: In function 'void wdt_initialize()':
firmware.ino:258:3: error: 'GCLK' was not declared in this scope
GCLK->GENDIV.reg = GCLK_GENDIV_ID(2) | GCLK_GENDIV_DIV(4);
^
firmware.ino:258:38: error: 'GCLK_GENDIV_ID' was not declared in this scope
GCLK->GENDIV.reg = GCLK_GENDIV_ID(2) | GCLK_GENDIV_DIV(4);
^
firmware.ino:258:59: error: 'GCLK_GENDIV_DIV' was not declared in this scope
GCLK->GENDIV.reg = GCLK_GENDIV_ID(2) | GCLK_GENDIV_DIV(4);
^
firmware.ino:259:40: error: 'GCLK_GENCTRL_ID' was not declared in this scope
GCLK->GENCTRL.reg = GCLK_GENCTRL_ID(2) |
^
firmware.ino:260:23: error: 'GCLK_GENCTRL_GENEN' was not declared in this scope
GCLK_GENCTRL_GENEN |
^
firmware.ino:261:23: error: 'GCLK_GENCTRL_SRC_OSCULP32K' was not declared in this scope
GCLK_GENCTRL_SRC_OSCULP32K |
^
firmware.ino:262:23: error: 'GCLK_GENCTRL_DIVSEL' was not declared in this scope
GCLK_GENCTRL_DIVSEL;
^
firmware.ino:264:23: error: 'GCLK_CLKCTRL_ID_WDT' was not declared in this scope
GCLK->CLKCTRL.reg = GCLK_CLKCTRL_ID_WDT |
^
firmware.ino:265:23: error: 'GCLK_CLKCTRL_CLKEN' was not declared in this scope
GCLK_CLKCTRL_CLKEN |
^
firmware.ino:266:23: error: 'GCLK_CLKCTRL_GEN_GCLK2' was not declared in this scope
GCLK_CLKCTRL_GEN_GCLK2;
^
firmware.ino: In function 'void wdt_enable()':
firmware.ino:271:3: error: 'WDT' was not declared in this scope
WDT->CTRL.reg &= ~WDT_CTRL_ENABLE;
^
firmware.ino:271:21: error: 'WDT_CTRL_ENABLE' was not declared in this scope
WDT->CTRL.reg &= ~WDT_CTRL_ENABLE;
^
firmware.ino:273:39: error: 'WDT_CONFIG_PER' was not declared in this scope
WDT->CONFIG.reg = WDT_CONFIG_PER(0xA); // 0xA = 8192 ms
^
firmware.ino:275:24: error: 'WDT_INTENCLR_EW' was not declared in this scope
WDT->INTENCLR.reg |= WDT_INTENCLR_EW;
^
firmware.ino: In function 'void wdt_disable()':
firmware.ino:282:3: error: 'WDT' was not declared in this scope
WDT->CTRL.reg &= ~WDT_CTRL_ENABLE;
^
firmware.ino:282:21: error: 'WDT_CTRL_ENABLE' was not declared in this scope
WDT->CTRL.reg &= ~WDT_CTRL_ENABLE;
^
firmware.ino: In function 'void wdt_reset()':
firmware.ino:288:3: error: 'WDT' was not declared in this scope
WDT->CLEAR.reg = WDT_CLEAR_CLEAR_KEY;
^
firmware.ino:288:20: error: 'WDT_CLEAR_CLEAR_KEY' was not declared in this scope
WDT->CLEAR.reg = WDT_CLEAR_CLEAR_KEY;
^
exit status 1

Progress: 41.38%
Your code has some errors and couldn't be compiled.
Please fix the errors above and try again.

Re: WIFI Cloud and WIFI Attachment on 2 RA plusses

Posted: Wed Aug 23, 2017 12:02 pm
by ecam
code generated by wizard

Code: Select all

#include <SPI.h>
#include <WiFi101.h>
#include <PubSubClient.h>
#include <RA_CustomSettings.h>

//char ssid[32];
//char pass[32];
//char username[16];
//char password[16];

unsigned long client_timeout = millis();
unsigned long wifi_connection = millis();
unsigned long serial_timeout = millis();
unsigned long led_blink = millis();
unsigned long MQTTReconnectmillis = millis();

boolean LED_status = false;
boolean PortalConnection = false;
boolean power_status = true;
boolean data_ready = false;
int status = WL_IDLE_STATUS;
WiFiServer server(2000);
WiFiClient client;
WiFiClient portalclient;
WiFiClient mqttclient;

void mqttcallback(char* topic, byte* payload, unsigned int length);

PubSubClient CloudClient(MQTTServer, MQTTPORT, mqttcallback, mqttclient);

String currentLine = "";                // make a String to hold incoming data from the client

void setup() {
  Serial.begin(57600);      // initialize serial communication
  Serial1.begin(57600);      // initialize serial communication
  pinMode(6, OUTPUT);      // set the LED pin mode
  pinMode(7, OUTPUT);      // set the LED pin mode
  wdt_initialize();
  wdt_enable();
}

void loop() {
  wdt_reset();
  status = WiFi.status();
  while ( status != WL_CONNECTED) {
    digitalWrite(6, true);
    digitalWrite(7, false);
    if (millis() - wifi_connection > 1000)
    {
      wifi_connection = millis();
      Serial.print("Attempting to connect to Network named: ");
      Serial.println(WIFI_SSID);                   // print the network name (SSID);
      if (WiFi.begin(WIFI_SSID, WIFI_PASS) == WL_CONNECTED)
      {
        status = WiFi.status();
        server.begin();                           // start the web server on port 2000
        printWifiStatus();                        // you're connected now, so print out the status
        digitalWrite(6, false);
        digitalWrite(7, true);
      }
      Serial.println("Not connected...");
    }
    wdt_reset();
  }

  client = server.available();   // listen for incoming clients

  if (client) {                             // if you get a client,
    Serial.println(F("new incoming client"));           // print a message out the serial port
    client_timeout = millis();
    while (client.connected()) {            // loop while the client's connected
      if (millis() - client_timeout > 2000) client.stop();
      if (client.available()) {             // if there's bytes to read from the client,
        char c = client.read();             // read a byte, then
        Serial.write(c);                    // print it out the serial monitor
        Serial1.write(c);                   // send to Reef Angel
      }
      if (Serial1.available())
      {
        char c = Serial1.read();
        //Serial.write(c);
        currentLine += c;
        serial_timeout = millis();
        if (currentLine.length() == 255) {
          SendData();
        }
      }
      if (millis() - serial_timeout > 400)
      {
        if (currentLine.length() > 0) {
          SendData();
          Serial.println();
          client.println();
        }
      }
      if (millis() - led_blink > 50)
      {
        led_blink = millis();
        LED_status = !LED_status;
        digitalWrite(6, LED_status);
      }
    }
    // close the connection:
    client.stop();
    Serial.println(F("incoming client disconnected"));
    digitalWrite(6, false);
  }
  else
  {
    while (Serial1.available())
    {
      char c = Serial1.read();
      currentLine += c;
      if(c==10) data_ready=true;
      serial_timeout = millis();
      digitalWrite(6, true);
      if (millis() - serial_timeout > 200 || data_ready)
      {
        if (currentLine.length() > 0) 
        {
          data_ready=false;
          serial_timeout = millis();
          //        Serial.print(currentLine);
          if (currentLine.startsWith("GET"))
          {
            PortalConnection = true;
            Serial.println(F("Connecting to Portal Server"));
            if (portalclient.connect(PortalServer, 80)) {
              Serial.println(F("Connected"));
              // Make a HTTP request:
              portalclient.print(currentLine);
              portalclient.println(F(" HTTP/1.1"));
              portalclient.println(F("Host: forum.reefangel.com"));
              portalclient.println(F("Connection: close"));
              portalclient.println();
            }
            else
            {
              Serial.println(F("Failed to connect"));
            }
          }
          if (currentLine.startsWith("CLOUD:"))
          {
            //Serial.print(currentLine);
            if (currentLine.length() < 32)
            {
              if (CloudClient.connected())
              {
                //Serial.println(F("Publishing "));
                currentLine.replace("CLOUD:", "");
                Serial.print(currentLine);
                char pub_buffer[sizeof(CLOUD_USERNAME) + 5];
                sprintf(pub_buffer, "%s/out", CLOUD_USERNAME);
                char pub_msg[currentLine.length() + 1];
                currentLine.toCharArray(pub_msg, currentLine.length() + 1);
                CloudClient.publish(pub_buffer, pub_msg);
              }
            }
            else
            {
              Serial.print(F("Error on incoming data: "));
              Serial.println(currentLine.length());
            }
          }
          currentLine = "";
          digitalWrite(6, false);
        }
      }
    }
    digitalWrite(6, false);    
    while (portalclient.available()) {
      char c = portalclient.read();
      //      Serial.write(c);
    }
    if (PortalConnection && !portalclient.connected()) {
      PortalConnection = false;
      //      Serial.println();
      Serial.println(F("Disconnecting from Portal Server"));
      digitalWrite(6, false);
      portalclient.stop();
    }
  }

  CloudClient.loop();
  if (millis() - MQTTReconnectmillis > 5000)
  {
    if (!CloudClient.connected())
    {
      char sub_buffer[sizeof(CLOUD_USERNAME) + 6];
      MQTTReconnectmillis = millis();
      digitalWrite(6, true);
      Serial.println(F("MQTT Connecting..."));
      sprintf(sub_buffer, "RA-%s", CLOUD_USERNAME);
      if (CloudClient.connect(sub_buffer, CLOUD_USERNAME, CLOUD_PASSWORD))
      {
        sprintf(sub_buffer, "%s/in/#", CLOUD_USERNAME);
        Serial.println(F("MQTT succeeded"));
        CloudClient.subscribe(sub_buffer);
      }
      else
      {
        MQTTReconnectmillis = millis();
        Serial.println(F("MQTT failed"));
        CloudClient.disconnect();
      }
      digitalWrite(6, false);
    }
  }
  if (analogRead(0) < 600 && power_status)
  {
    power_status = false;
  }
  if (analogRead(0) > 600 && !power_status)
  {
    power_status = true;
  }
}

void SendData()
{
  serial_timeout = millis();
  //  Serial.print(currentLine);
  client.print(currentLine);
  currentLine = "";
}

void printWifiStatus() {
  // print the SSID of the network you're attached to:
  Serial.print("SSID: ");
  Serial.println(WiFi.SSID());

  // print your WiFi shield's IP address:
  IPAddress ip = WiFi.localIP();
  Serial.print("IP Address: ");
  Serial.println(ip);

  // print the received signal strength:
  long rssi = WiFi.RSSI();
  Serial.print("signal strength (RSSI):");
  Serial.print(rssi);
  Serial.println(" dBm");
}

void mqttcallback(char* topic, byte* payload, unsigned int length)
{
  Serial1.print("cloud:");
  for (int a=0;a<length;a++)
  {
    Serial1.write(payload[a]);
    Serial.write(payload[a]);
  }
  Serial1.print(" ");
  Serial.println();
}

void wdt_initialize()
{
  GCLK->GENDIV.reg = GCLK_GENDIV_ID(2) | GCLK_GENDIV_DIV(4);
  GCLK->GENCTRL.reg = GCLK_GENCTRL_ID(2) |
                      GCLK_GENCTRL_GENEN |
                      GCLK_GENCTRL_SRC_OSCULP32K |
                      GCLK_GENCTRL_DIVSEL;
  while (GCLK->STATUS.bit.SYNCBUSY);  // Syncronize write to GENCTRL reg.
  GCLK->CLKCTRL.reg = GCLK_CLKCTRL_ID_WDT |
                      GCLK_CLKCTRL_CLKEN |
                      GCLK_CLKCTRL_GEN_GCLK2;
}

void wdt_enable()
{
  WDT->CTRL.reg &= ~WDT_CTRL_ENABLE;
  while (WDT->STATUS.bit.SYNCBUSY);  // Syncronize write to CTRL reg.
  WDT->CONFIG.reg = WDT_CONFIG_PER(0xA);  // 0xA = 8192 ms
  while (WDT->STATUS.bit.SYNCBUSY);  // Syncronize write to CONFIG reg.
  WDT->INTENCLR.reg |= WDT_INTENCLR_EW;
  WDT->CTRL.reg |= WDT_CTRL_ENABLE;
  while (WDT->STATUS.bit.SYNCBUSY);  // Syncronize write to CTRL reg.
}

void wdt_disable()
{
  WDT->CTRL.reg &= ~WDT_CTRL_ENABLE;
  while (WDT->STATUS.bit.SYNCBUSY);  // Syncronize write to CTRL reg.
}

void wdt_reset()
{
  WDT->CLEAR.reg = WDT_CLEAR_CLEAR_KEY;
  while (WDT->STATUS.bit.SYNCBUSY);  // Syncronize write to CLEAR reg.
}



// RA_STRING1=U2FsdGVkX1859UVHjcA82FKL34O7gI0+3D0wze1dIOM=
// RA_STRING2=U2FsdGVkX18RIQkGAAF0rkdVJ2ruvQy7RqGUkgMpI9M0ehuHpb/kUDEUu11GcIxK
// RA_STRING3=FiOS-R7W45

Re: WIFI Cloud and WIFI Attachment on 2 RA plusses

Posted: Wed Aug 23, 2017 12:03 pm
by ecam
my current code

Code: Select all

    #include <Salinity.h>
    #include <Relay.h>
    #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>
    #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>fa
    #include <RA_CustomColors.h>f
    #include <RF.h>
    #include <IO.h>
    #include <ORP.h>
    #include <PH.h>
    #include <WaterLevel.h>
    #include <ReefAngel.h>

    ////// Place global variable code below here
        byte myRFMode=0;
        byte myRFDuration=0;
        byte myRFSpeed=0;
    ////// Place global variable code above here

    void setup()
    {
        // This must be the first line
          ReefAngel.Init();  //Initialize controller

        // Ports toggled 
      ReefAngel.WaterChangePorts = Port5 |Port6; // Turn off Return, UV, Skimmer, Heater, Sump Equipment, ATO
      ReefAngel.FeedingModePorts = Port6; // Turn off Return and Skimmer
      ReefAngel.LightsOnPorts = Port2|Port4|Box1_Port1|Box1_Port8; //Turn on ATI lights, Fan and Fuge Light
      ReefAngel.OverheatShutoffPorts = Port1 |Port4|Port6| Box1_Port1| Box1_Port4|Box1_Port6;
      ReefAngel.TempProbe = T2_PROBE;
        ReefAngel.OverheatProbe = T2_PROBE;
                InternalMemory.OverheatTemp_write( 825 );   // Set the Overheat temperature setting
          
        // Ports that are always on
       ////// Place additional initialization code above here
    }

//           ReefAngel.StandardLights( Port3,23,0,12,0 );                      // Fuge Light
//           ReefAngel.Relay.On(Port3);                                       //  Port3 Return Pump -- Always on
          //ReefAngel.StandardLights( Port2,10,0,23,0 );                      // ReefBrites
         //   ReefAngel.Relay.Off( Port4);                                      //  11 Box1_Port3 UV - Only turn on UV Sterilizer between 11pm and 4am
//  if ( (hour() >= 7) && (hour() < 23) )  
                 //     ReefAngel.Relay.Off(Port4);
                   //   else ReefAngel.Relay.On(Port4);
     
//           ReefAngel.StandardLights( Port4,12,00,20,30 );                      //  Light --- Actinic  12 to 8:30
           //ReefAngel.Relay.On(Port5);                                      //  Port5 Saltwater Change 

//           ReefAngel.Relay.On(Port6);                                           //ATO
   //     ReefAngel.Relay.Set(Port6, ReefAngel.HighATO.IsActive());          //Turns port 6 off when High ATO is on 

          //ReefAngel.StandardHeater(Port7,777,790 );                         //  9 Box1_Port1 Heater   
//          // ReefAngel.Relay.On (Port7);                             //  Port7 Frag Tank -- Always on
           //ReefAngel.Relay.On( Port8);                            //  Port8 Skimmer -- 5 min delay start
         
    void loop()
      {
           //Box1
          ReefAngel.StandardHeater(Port1,778,790 );                        // 1 Heater  
          ReefAngel.StandardLights( Port2,13,0,22,0 );                      // 2 ReefBrites
          ReefAngel.Relay.Off(Port3) ;                                       // 3 Saltwater Pump
          ReefAngel.StandardLights( Port4,14,0,20,0 );                      // 4 Daylights
          ReefAngel.SingleATO( true,Port5,900,0 );                          // 5 ATO - RODI
          ReefAngel.Relay.On(Port6) ;                                        // 6 Return Pump
          ReefAngel.Relay.Set(Port7,ReefAngel.Relay.Status(Port6));         // 7 UV Pump
          ReefAngel.Relay.Set(Port8,ReefAngel.Relay.Status(Port6));         // 8 Calcium Reactor faPump
          
    ReefAngel.UseFlexiblePhCalibration();         
    
          //box 2 (Box1_Portxx)
//!flips the status of the port for conditional statements
          ReefAngel.StandardLights( Box1_Port1,13,30,21,0 );                    // 9 Actinics
          ReefAngel.StandardHeater( Box1_Port2,778,790 );                      // 10 Heater   
          ReefAngel.Relay.Set(Box1_Port3,ReefAngel.Relay.Status(Port6));       //  11 Skimmer
          ReefAngel.Relay.Set(Box1_Port4,!ReefAngel.Relay.Status(Port2));       //  12 Fuge Lights
          ReefAngel.Relay.On(Box1_Port5);                                      //  13 Ecotech Pumps
          ReefAngel.StandardHeater(Box1_Port6,770,790 );                       //  14 Heater
          ReefAngel.CO2Control( Box1_Port7,720,725);                           //  15 Box1_Port7 Regulator   (PhLow,PhHigh)
          ReefAngel.StandardLights( Box1_Port8,12,0,21,45 );                   //  16 Box1_Port8 Fan

          


//    ReefAngel.StandardLights( Port1,12,0,19,0 );
  //  ReefAngel.StandardLights( Port2,9,0,19,0 );

                          // Old Code
                              //moonlight dimming
                                     //    if (hour()>=6 && hour()<10) ReefAngel.PWM.SetDaylight( PWMParabola(6,0,10,0,9,100,9) ); // Moonlight Between 5-10am turn the relay on
                                     //    if (hour()>=20 && hour()<=23) ReefAngel.PWM.SetDaylight( PWMParabola(20,0,23,0,100,0,100) ); // From 8pm-Midnight turn the relay on
                                     //    else ReefAngel.PWM.SetDaylight(0);
                                     //  ReefAngel.Relay.Set( Port2, !ReefAngel.Relay.Status( Port4 ) ); //Refuge opposite of Actinic
                                     //  ReefAngel.Relay.Off( Box1_Port3); // Start with the relay off       Port #11 Moonlight
                                        //if (hour()>=5 && hour()<10) ReefAngel.Relay.On(Box1_Port3); // Moonlight Between 5-10am turn the relay on  
                                        //if (hour()>=20 && hour()<=23) ReefAngel.Relay.On(Box1_Port3); // From 8pm-Midnight turn the relay 
                                     //    ReefAngel.PWM.SetDaylight( PWMSlope(20,0,23,0,100,0,180,100) );
                                     //   ReefAngel.PWM.SetDaylight( PWMSlope(6,0,10,0,9,100,240,9) );  
                                     //ReefAngel.Relay.off(Box1_Port3);
                                     //  if (hour()>=10 || hour()<20) ReefAngel.PWM.SetDaylight(0);
                                     //    ReefAngel.PWM.SetDaylight( MoonPhase()+10 );
                                    // ReefAngel.PWM.SetDaylight(PWMParabola(20,0,23,0,0, MoonPhase(),0 ));
                                    //ReefAngel.PWM.SetDaylight(PWMSlope(6,0,23,0,0,100,240,0));
                                    //if (hour()>=5 && hour()<20) ReefAngel.PWM.SetDaylight(0);
                                    //ReefAngel.PWM.SetDaylight( PWMParabola(20,0,23,0,100,0,100) );
                                    //ReefAngel.PWM.SetDaylight( PWMParabola(6,0,10,0,9,100,9) );

////// Place your custom code below here
       
       
  //     ReefAngel.RF.UseMemory = false;
   //       if (hour()>=6 && hour()<11)
     //       myRFSetMode(ReefCrest,85,10);
       //   else if (hour()>=11 && hour()<13)
         //   myRFSetMode(ReefCrest,85,10);
          //else if (hour()>=13 && hour()<16)
            //myRFSetMode(Smart_NTM,85,50);
          //else if (hour()>=16 && hour()<19)
            //myRFSetMode(ReefCrest,65,10);
          //else
           // myRFSetMode(Lagoon,40,10);
             
                    
        // Hardcode PH calibrations
         //ReefAngel.PHMin=544; // PH7.0
         //ReefAngel.PHMax=830; // PH10.0

      //   RunDosingPumps();
       //  LogDosingPumps();
        ////// Place your custom code above here

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

void DrawCustomMain()
{
  ReefAngel.LCD.DrawDate(6, 122);
  pingSerial();

        // Parameters
#if defined DisplayLEDPWM && ! defined RemoveAllLights
 ReefAngel.LCD.DrawMonitor( 15, 20, ReefAngel.Params,
 ReefAngel.PWM.GetDaylightValue(), ReefAngel.PWM.GetActinicValue()
 );
#else // defined DisplayLEDPWM && ! defined RemoveAllLights
 ReefAngel.LCD.DrawMonitor( 15, 20, ReefAngel.Params );
#endif // defined DisplayLEDPWM && ! defined RemoveAllLights
//sALINITY
  pingSerial();
  char text[10];
  ConvertNumToString(text, ReefAngel.Params.Salinity, 10);
  strcat(text,"  ");
  ReefAngel.LCD.DrawText(DefaultFGColor,DefaultBGColor,15,50,"Salinity:");
  ReefAngel.LCD.DrawText(DefaultFGColor,DefaultBGColor,75,50,text);
              
//PH Expansion

 pingSerial();
  ConvertNumToString(text, ReefAngel.Params.PHExp, 1);
  strcat(text,"  ");
  ReefAngel.LCD.DrawText(DefaultFGColor,DefaultBGColor,15,60,"pH_Expan:");
  ReefAngel.LCD.DrawText(DefaultFGColor,DefaultBGColor,75,60,text);

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

        TempRelay &= ReefAngel.Relay.RelayMaskOff;
        TempRelay |= ReefAngel.Relay.RelayMaskOn;
        ReefAngel.LCD.DrawOutletBox( 12, 102, TempRelay );
        pingSerial();

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

    /////////////////////////////////////////
    // Define Your dosing pumps
    /////////////////////////////////////////
    //#define numDPumps 3
// byte pumpRelays[numDPumps]={ Box1_Port2};
  //  int DPVolume[numDPumps]={ 0, 25,28} ; // 1ml for each alk and calcium - total volume for the day
    //int DPRepeat[numDPumps]={ 360, 240, 240 } ; // Repeat every 4 hrs 6x a day --- in mins
    /////////////////////////////////////////
    // Define Calibration here
    /////////////////////////////////////////
   // int CalTime[numDPumps]={ 600, 600, 600 }; // 10 minutes / 10 minutes
    //int CalVol[numDPumps]={ 350, 300,384 }; // 350ml / 300ml... .58 / .5/.64


    /////////////////////////////////////////
    // Function: RunDosingPumps()
    /////////////////////////////////////////
    //void RunDosingPumps() {
      //float rate;
      //int calcTime[numDPumps];

//      for (int i=0;i < numDPumps; i++) {
    //    rate=(float)CalVol[i]/CalTime[i];
  //      calcTime[i]=DPVolume[i]/rate/(1440/DPRepeat[i]);

        // Run the pumps
      //  ReefAngel.DosingPumpRepeat(pumpRelays[i], i*5, DPRepeat[i], calcTime[i]); // Offset between each pump is 5 minutes
//      }

      // Display Time calculated in portal
     // ReefAngel.CustomVar[0]=calcTime[0];
     // ReefAngel.CustomVar[1]=calcTime[1];
      ///ReefAngel.CustomVar[2]=calcTime[2];
//    }

    /////////////////////////////////////////
    // Function: LogDosingPumps()
    /////////////////////////////////////////
    //void LogDosingPumps() {
      //static time_t pumpTimer[numDPumps];
      //static boolean pumpStatus[numDPumps];
      //float rate;

      //for (int i=0;i< numDPumps;i++) {
       // if (ReefAngel.Relay.Status(pumpRelays[i])) {
        //  if (!pumpStatus[i]) {
          //  pumpTimer[i]=now()-pumpTimer[i]; // Pump was off, timer is now a time
            //pumpStatus[i]=true;
//          }
//        } else {
  //        if (pumpStatus[i]) {
    //        pumpTimer[i]=now()-pumpTimer[i]; // Pump was on, timer is now a timer
      //      pumpStatus[i]=false;
       
        //    rate=(float)CalVol[i]/CalTime[i];

            // Report How much volume has been dosed per day.fa
            // Could make this in minutes... excercise for the reader..
          //  ReefAngel.CustomVar[3]=pumpTimer[0]*rate;
            //ReefAngel.CustomVar[4]=pumpTimer[1]*rate; 
            //ReefAngel.CustomVar[5]=pumpTimer[2]*rate; 
//          }
 //      }
     
        // Clear timer at end of day
//        if (now()%SECS_PER_DAY==SECS_PER_DAY-1) pumpTimer[i]=0;
   //   } 
   // }


        void DrawCustomGraph()
        {
        }

        void myRFSetMode(byte m, byte s, byte d)
        {
          if (m!=myRFMode || s!=myRFSpeed || d!=myRFDuration || millis()<5000)
          {
            myRFMode=m;
            myRFSpeed=s;
            myRFDuration=d;
            ReefAngel.RF.SetMode(m,s,d);
          }
        }


Re: WIFI Cloud and WIFI Attachment on 2 RA plusses

Posted: Wed Aug 23, 2017 12:04 pm
by ecam
Thanks for the continued patience and guidance on this Roberto!!!!!!!!!!

Re: WIFI Cloud and WIFI Attachment on 2 RA plusses

Posted: Wed Aug 23, 2017 12:05 pm
by rimai
Once again, your cloud wifi attachment is Rev2. There is no need to upload any code to it.
You need to update your RA+ controller and not the cloud wifi

Re: WIFI Cloud and WIFI Attachment on 2 RA plusses

Posted: Wed Aug 23, 2017 12:17 pm
by ecam
ecam wrote:Getting this error on the code generated...

Code: Select all

Compiling code for RA_PLUS board

firmware.ino:29:26: error: 'MQTTServer' was not declared in this scope
PubSubClient CloudClient(MQTTServer, MQTTPORT, mqttcallback, mqttclient);
^
firmware.ino:29:38: error: 'MQTTPORT' was not declared in this scope
PubSubClient CloudClient(MQTTServer, MQTTPORT, mqttcallback, mqttclient);
^
firmware.ino: In function 'void loop()':
firmware.ino:52:22: error: 'WIFI_SSID' was not declared in this scope
Serial.println(WIFI_SSID); // print the network name (SSID);
^
firmware.ino:53:33: error: 'WIFI_PASS' was not declared in this scope
if (WiFi.begin(WIFI_SSID, WIFI_PASS) == WL_CONNECTED)
^
firmware.ino:128:38: error: 'PortalServer' was not declared in this scope
if (portalclient.connect(PortalServer, 80)) {
^
firmware.ino:152:40: error: 'CLOUD_USERNAME' was not declared in this scope
char pub_buffer[sizeof(CLOUD_USERNAME) + 5];
^
firmware.ino:153:25: error: 'pub_buffer' was not declared in this scope
sprintf(pub_buffer, "%s/out", CLOUD_USERNAME);
^
firmware.ino:189:30: error: 'CLOUD_USERNAME' was not declared in this scope
char sub_buffer[sizeof(CLOUD_USERNAME) + 6];
^
firmware.ino:193:15: error: 'sub_buffer' was not declared in this scope
sprintf(sub_buffer, "RA-%s", CLOUD_USERNAME);
^
firmware.ino:194:59: error: 'CLOUD_PASSWORD' was not declared in this scope
if (CloudClient.connect(sub_buffer, CLOUD_USERNAME, CLOUD_PASSWORD))
^
firmware.ino: In function 'void wdt_initialize()':
firmware.ino:258:3: error: 'GCLK' was not declared in this scope
GCLK->GENDIV.reg = GCLK_GENDIV_ID(2) | GCLK_GENDIV_DIV(4);
^
firmware.ino:258:38: error: 'GCLK_GENDIV_ID' was not declared in this scope
GCLK->GENDIV.reg = GCLK_GENDIV_ID(2) | GCLK_GENDIV_DIV(4);
^
firmware.ino:258:59: error: 'GCLK_GENDIV_DIV' was not declared in this scope
GCLK->GENDIV.reg = GCLK_GENDIV_ID(2) | GCLK_GENDIV_DIV(4);
^
firmware.ino:259:40: error: 'GCLK_GENCTRL_ID' was not declared in this scope
GCLK->GENCTRL.reg = GCLK_GENCTRL_ID(2) |
^
firmware.ino:260:23: error: 'GCLK_GENCTRL_GENEN' was not declared in this scope
GCLK_GENCTRL_GENEN |
^
firmware.ino:261:23: error: 'GCLK_GENCTRL_SRC_OSCULP32K' was not declared in this scope
GCLK_GENCTRL_SRC_OSCULP32K |
^
firmware.ino:262:23: error: 'GCLK_GENCTRL_DIVSEL' was not declared in this scope
GCLK_GENCTRL_DIVSEL;
^
firmware.ino:264:23: error: 'GCLK_CLKCTRL_ID_WDT' was not declared in this scope
GCLK->CLKCTRL.reg = GCLK_CLKCTRL_ID_WDT |
^
firmware.ino:265:23: error: 'GCLK_CLKCTRL_CLKEN' was not declared in this scope
GCLK_CLKCTRL_CLKEN |
^
firmware.ino:266:23: error: 'GCLK_CLKCTRL_GEN_GCLK2' was not declared in this scope
GCLK_CLKCTRL_GEN_GCLK2;
^
firmware.ino: In function 'void wdt_enable()':
firmware.ino:271:3: error: 'WDT' was not declared in this scope
WDT->CTRL.reg &= ~WDT_CTRL_ENABLE;
^
firmware.ino:271:21: error: 'WDT_CTRL_ENABLE' was not declared in this scope
WDT->CTRL.reg &= ~WDT_CTRL_ENABLE;
^
firmware.ino:273:39: error: 'WDT_CONFIG_PER' was not declared in this scope
WDT->CONFIG.reg = WDT_CONFIG_PER(0xA); // 0xA = 8192 ms
^
firmware.ino:275:24: error: 'WDT_INTENCLR_EW' was not declared in this scope
WDT->INTENCLR.reg |= WDT_INTENCLR_EW;
^
firmware.ino: In function 'void wdt_disable()':
firmware.ino:282:3: error: 'WDT' was not declared in this scope
WDT->CTRL.reg &= ~WDT_CTRL_ENABLE;
^
firmware.ino:282:21: error: 'WDT_CTRL_ENABLE' was not declared in this scope
WDT->CTRL.reg &= ~WDT_CTRL_ENABLE;
^
firmware.ino: In function 'void wdt_reset()':
firmware.ino:288:3: error: 'WDT' was not declared in this scope
WDT->CLEAR.reg = WDT_CLEAR_CLEAR_KEY;
^
firmware.ino:288:20: error: 'WDT_CLEAR_CLEAR_KEY' was not declared in this scope
WDT->CLEAR.reg = WDT_CLEAR_CLEAR_KEY;
^
exit status 1

Progress: 41.38%
Your code has some errors and couldn't be compiled.
Please fix the errors above and try again.

Roberto in this first line it say updating to RA board.. I am connecting to board through Webwizard.

can you send me a sample code you want me to upload thorught IDE or Web wizard that initiates the Cloud wifi... completely loss now...

Re: WIFI Cloud and WIFI Attachment on 2 RA plusses

Posted: Wed Aug 23, 2017 1:08 pm
by rimai
When you click the wizard, you have an option to pick which controller you want to generate codes.
You are selecting cloud WiFi. You don't need to generate nor upload code for cloud WiFi. You are picking the wrong thing.
Again, you need to update the code of your RA and not cloud wifi. Just make sure that you pick cloud WiFi on the attachment section and not the standard WiFi. This wizard is just like the one from Arduino IDE. Go through the pages and pick what you want.
You have to make sure the code on your RA is cloud enabled.

Re: WIFI Cloud and WIFI Attachment on 2 RA plusses

Posted: Wed Aug 23, 2017 1:12 pm
by ecam
okay... so I can now upload to RA wizard using the web wizard...

there must be some initiate command I need to put on the top to activate cloud. What is that... and do I leave the
reef angel.(cam). - old wifi. still in code?

Re: WIFI Cloud and WIFI Attachment on 2 RA plusses

Posted: Wed Aug 23, 2017 1:21 pm
by ecam
under attachments in wizard all I Have is RA Net... nothing about cloud

Re: WIFI Cloud and WIFI Attachment on 2 RA plusses

Posted: Wed Aug 23, 2017 1:32 pm
by rimai
Huh??
What is "reef angel.(cam). - old wifi"?
Just use the web wizard to generate your code.
Post a picture of your attachments options.

Re: WIFI Cloud and WIFI Attachment on 2 RA plusses

Posted: Thu Aug 24, 2017 3:34 pm
by ecam
Hey roberto. Can you confirm if you are getting any info from
My new id. EcamFT. This would be under the old wifi not the cloud unit

Re: WIFI Cloud and WIFI Attachment on 2 RA plusses

Posted: Thu Aug 24, 2017 3:40 pm
by rimai

Re: WIFI Cloud and WIFI Attachment on 2 RA plusses

Posted: Thu Aug 24, 2017 7:17 pm
by ecam
Thanks for that Roberto... now here is an interesting one. I fixed the original WIFI extender.

When I attach it to the controller it transmit information under ecam but doesn't transmit when I change the forum name to ecamFT. I'm probably going to change the name on the cloud wifi...

but wanted to know if there is some code embedded in the wifi module itself that holds on to my user name.

Also even if I upload code with ecamFT in the code. the module still transmits it under ecam.

Hope this makes sense


I'm about to start working on the cloud wifi next.. hopefully we can put this thread to rest....

Again thanks for all the help

Re: WIFI Cloud and WIFI Attachment on 2 RA plusses

Posted: Thu Aug 24, 2017 7:28 pm
by rimai
Which one are you talking about?
Regular wifi only uses information from RA.
Could wifi uses information from RA and attachment itself.

Re: WIFI Cloud and WIFI Attachment on 2 RA plusses

Posted: Thu Aug 24, 2017 7:51 pm
by ecam
The regular WIFI... I fixed it and placed it on my second controller. the one that I named ecamFT.

this will only work if I keep the name ecam. If I change it to ecamFT it doesn't matter and will not feed any data. it will only transmit under ecam.

Either way... I can control the second controller with the old wifi... I am happy...

now I will focus on getting the cloud wifi working. Only catch with that is that I have to use the ecamFT to make that work..... So here goes nothing... Get the popcorn ready!!!!!

Re: WIFI Cloud and WIFI Attachment on 2 RA plusses

Posted: Thu Aug 24, 2017 9:28 pm
by ecamFT
Okay here is the new code generated and uploaded from the web wizard. this was done as ecamFT But there is still no data being relayed to the server (still getting Connected but 0.0) and my cloud link is blinking cyan. Whats next boss

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 <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.AddStandardMenu();  // Add Standard Menu
    ReefAngel.Use2014Screen();  // Let's use 2014 Screen
    ReefAngel.AddSalinityExpansion();  // Salinity Expansion Module
    ReefAngel.AddPHExpansion();  // pH Expansion Module
    // Ports toggled in Feeding Mode
    ReefAngel.FeedingModePorts = Port1Bit | Port6Bit | Port7Bit | Port8Bit;
    ReefAngel.FeedingModePortsE[0] = 0;
    ReefAngel.FeedingModePortsE[1] = Port3Bit | Port5Bit;
    // Ports toggled in Water Change Mode
    ReefAngel.WaterChangePorts = Port1Bit | Port5Bit | Port6Bit | Port7Bit | Port8Bit;
    ReefAngel.WaterChangePortsE[0] = 0;
    ReefAngel.WaterChangePortsE[1] = Port2Bit | Port3Bit | Port6Bit | Port7Bit;
    // Ports turned off when Overheat temperature exceeded
    ReefAngel.OverheatShutoffPorts = Port4Bit | Port6Bit | Port7Bit | Port8Bit;
    ReefAngel.OverheatShutoffPortsE[0] = 0;
    ReefAngel.OverheatShutoffPortsE[1] = Port1Bit | Port2Bit | Port3Bit | Port6Bit | Port7Bit;
    // Ports toggled when Lights On / Off menu entry selected
    ReefAngel.LightsOnPorts = Port2Bit;
    ReefAngel.LightsOnPortsE[0] = 0;
    ReefAngel.LightsOnPortsE[1] = Port1Bit | Port4Bit | 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( 825 );

    // Ports that are always on
    ReefAngel.Relay.On( Port3 );
    ReefAngel.Relay.On( Port6 );
    ReefAngel.Relay.On( Port7 );
    ReefAngel.Relay.On( Port8 );
    ReefAngel.Relay.On( Box2_Port5 );

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


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

void loop()
{
    ReefAngel.StandardLights( Box2_Port1,13,30,21,0 );
    ReefAngel.StandardHeater( T1_PROBE,Port1,778,790 );
    ReefAngel.StandardLights( Port2,13,0,22,0 );
    ReefAngel.StandardHeater( T1_PROBE,Box2_Port2,778,0 );
    ReefAngel.Relay.DelayedOn( Box2_Port3,2 );
    ReefAngel.StandardLights( Port4,14,0,20,0 );
    ReefAngel.Relay.Set( Box2_Port4, !ReefAngel.Relay.Status( Port2 ) );
    ReefAngel.SingleATO( true,Port5,900,0 );
    ReefAngel.StandardHeater( T1_PROBE,Box2_Port6,770,0 );
    ReefAngel.CO2Control( Box2_Port7,725,720 );
    ReefAngel.StandardLights( Box2_Port8,13,30,21,30 );
    if ( ReefAngel.Relay.Status( Port6 ) ) ReefAngel.Relay.On( Port7 );
    if ( ReefAngel.Relay.Status( Port6 ) ) ReefAngel.Relay.On( Port8 );
    if ( ReefAngel.Relay.Status( Port6 ) ) ReefAngel.Relay.On( Box1_Port3 );
    if ( ReefAngel.Relay.Status( Port2 ) ) ReefAngel.Relay.Off( Box1_Port4 );
    if ( ReefAngel.HighATO.IsActive() == 1 ) ReefAngel.Relay.Off( Box1_Port3 );

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


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

    ReefAngel.CloudPortal();
    // This should always be the last line
    ReefAngel.ShowInterface();
}



// RA_STRING1=null
// RA_STRING2=null
// RA_STRING3=null

Re: WIFI Cloud and WIFI Attachment on 2 RA plusses

Posted: Sat Aug 26, 2017 7:10 am
by ecam
Bump

Re: WIFI Cloud and WIFI Attachment on 2 RA plusses

Posted: Sat Aug 26, 2017 7:52 am
by rimai
There was data right after you posted this.
http://forum.reefangel.com/status/chart ... &filter=t1
Then you did something yesterday that changed

Re: WIFI Cloud and WIFI Attachment on 2 RA plusses

Posted: Sat Aug 26, 2017 9:42 am
by ecamFT
Roberto. Can you look at the post of my code. I don't know what to do from this point.

From my end portal still says 0. I introduced the code for reef angel cloud and I'm able to upload from webwizard.

But it still not working. What's missing ?

Re: WIFI Cloud and WIFI Attachment on 2 RA plusses

Posted: Sat Aug 26, 2017 9:44 am
by ecamFT
[quote="rimai"]There was data right after you posted this.



Did this data come from cloud or regular wifi. I was messing around with the user names.

Ecam = is old wifi units. This is working no issues

EcamFT is cloud wifi now. Still no data for me from the cloud uapp

Re: WIFI Cloud and WIFI Attachment on 2 RA plusses

Posted: Sat Aug 26, 2017 10:01 am
by rimai
I don't have a way to tell.
It is your head unit that controls it what to send and the server just stores it.
So at some point, you programmed the head unit with the correct username.
It must be wrong now.
Make sure you are logged in with the correct username when uploading your code to your RA. The user logged in when you upload the code is the one that RA will use to send data to the server.

Re: WIFI Cloud and WIFI Attachment on 2 RA plusses

Posted: Sat Aug 26, 2017 2:00 pm
by ecamFT
Roberto,

My WIFI unit is reporting under both ecam and ecamFT. if you notice the only thing that works is the portal.


the cloud is still all zero so i have never connected to it yet with the Cloud WIFI....

How is this possible? the 2nd controller is setup under ecam... How can it be simultaneously reporting under ecam and ecamFT?


Any thoughts... would really like to get this working. or is it not possible to have a Cloud and original WIFI unit working on different units?

Re: WIFI Cloud and WIFI Attachment on 2 RA plusses

Posted: Sat Aug 26, 2017 2:10 pm
by rimai
Your RA is programmed wrong. It is probably programmed using the same username.
Connect your RA to the USB TTL cable and open Arduino serial monitor.
Wait 5 minutes, it should write something on it.
Paste here.
Do it for both controllers.

Re: WIFI Cloud and WIFI Attachment on 2 RA plusses

Posted: Sat Aug 26, 2017 2:21 pm
by ecamFT
Okay this is my display tank RA_DT

Code: Select all

CLOUD:PH:719
GET /status/submitp.aspx?t1=793&t2=0&t3=0&ph=719&id=ecamFT&em=72&em1=0&rem=3&bid=1&key=&ddns=&af=0&sf=0&atohigh=1&atolow=0&r=234&ron=0&roff=255&r1=149&ron1=0&roff1=255&r2=16&ron2=0&roff2=255&sal=335&phe=792


Code: Select all

CLOUD:EM:72
CLOUD:REM:3
CLOUD:BID:1
CLOUD:R1:149
CLOUD:ROFF1:255
CLOUD:R2:16
CLOUD:ROFF2:255
CLOUD:ROFF3:255
CLOUD:ROFF4:255
CLOUD:ROFF5:255
CLOUD:ROFF6:255
CLOUD:ROFF7:255
CLOUD:ROFF8:255
CLOUD:R:234
CLOUD:ROFF:255
CLOUD:T1:793
CLOUD:PH:720
CLOUD:SAL:335
CLOUD:PHE:793
CLOUD:PH:721
CLOUD:PHE:794
CLOUD:PH:720
CLOUD:PHE:793
CLOUD:PHE:794
CLOUD:PHE:793
CLOUD:PH:721
CLOUD:PH:720
CLOUD:T1:795
CLOUD:T1:793
CLOUD:PH:721
CLOUD:PH:720
CLOUD:PH:721
CLOUD:PHE:794
CLOUD:PHE:793
CLOUD:PH:720
CLOUD:PHE:794
CLOUD:PH:721
CLOUD:PHE:793
CLOUD:PH:720
CLOUD:PH:721
CLOUD:PH:720
CLOUD:PH:721
CLOUD:PH:720
CLOUD:PH:721
CLOUD:PH:720
CLOUD:PH:721
CLOUD:PH:720
CLOUD:PH:721
CLOUD:PH:722
CLOUD:PH:721
CLOUD:PH:722
CLOUD:PH:724
CLOUD:PH:722

Re: WIFI Cloud and WIFI Attachment on 2 RA plusses

Posted: Sat Aug 26, 2017 2:27 pm
by ecam
Here id RA_FT


GET /status/submitp.aspx?t1=788&t2=0&t3=0&ph=710&id=ecam&em=0&em1=0&rem=1&bid=1&key=&ddns=&af=0&sf=0&atohigh=0&atolow=0&r=241&ron=0&roff=255&r1=0&ron1=0&roff1=255




Re: WIFI Cloud and WIFI Attachment on 2 RA plusses

Posted: Sat Aug 26, 2017 2:51 pm
by rimai
ecamFT is setup to be used with cloud wifi attachment and ecam is setup to be used with the standard wifi attachment.
We can say that these 2 are programmed good with this log since they are sending the correct username.
Just make sure you connect the correct attachment on the proper RA head unit.
The ecam unit, should be sending data to portal. Is it the unit you sent back? If it is, I'm afraid it is the corrosion on that unit.
The ecamFT unit should also connect to the portal, which it is.
This log shows it has been sending data just fine: http://forum.reefangel.com/status/chart ... &filter=ph
So, if you are not getting data on uapp, you may have messed up the settings when setting up the unit.
Let's check.
You will need to open the unit.
Connect the cloud wifi attachment with the USB cable to the computer. Not the USB-TTL cable.
Use a micro usb on the side of the unit.
Open serial using the COM port for this cloud wifi attachment.
You should see a bunch of scrambled up data:

Code: Select all

GDÚQ…@@HdI•÷LÑ»ëCP@æïTWZµ•FÄTÖ…é`\‰dHŠ`H…Öj¡VpJ…ØõëdJÄÚã…ÌTQÕ÷ß…HµZÄfû`\‹A±`H`HÄ^¥…
This is normal.
Press and hold the "debug" button on the top left corner.
Now press the "reset master" button on the top right corner.
It should print some stuff.
Paste here.

Re: WIFI Cloud and WIFI Attachment on 2 RA plusses

Posted: Sat Aug 26, 2017 3:40 pm
by ecamFT

Code: Select all

GDÚQ…@@HdI•÷LÑ»ëCP@æïTWZµ…ÆÄT

Re: WIFI Cloud and WIFI Attachment on 2 RA plusses

Posted: Sat Aug 26, 2017 3:44 pm
by rimai
you must hold the debug while pressing the master reset, then you can release both

Re: WIFI Cloud and WIFI Attachment on 2 RA plusses

Posted: Sat Aug 26, 2017 3:51 pm
by ecamFT
opened up the serial on Com3 on arduino.... the cloud is attached to computer via mini usb.....

it keeps spittng out the same giberish

Re: WIFI Cloud and WIFI Attachment on 2 RA plusses

Posted: Sat Aug 26, 2017 3:58 pm
by rimai
It should and then you press debug and master reset and it should print something else.