Help with Breathing Blue LED

I can try with a phone hotspot, meanwhile here is a video so you can see the sequence:

https://dl.dropboxusercontent.com/u/4158782/IMG_2448.MOV

Hey @nmattisson,

that pattern looks like incorrect Spark server pubic key to me. I wonder why they got corrupted and i hope i got it right.

Do you have Spark-cli? You can use spark keys server cloud_public.der

Make sure that the core is in DFU-mode (flashing yellow) before you perform the command. Also, you will need to manually reset the core once that is done. :wink:

Download the public key from: https://s3.amazonaws.com/spark-website/cloud_public.der

I hope it works!

1 Like

Also just a heads up you can also repair your core keys with:

1.) Place core into dfu mode:
2.) spark keys doctor your_core_id

Thanks,
David

Hi everyone!

Sorry I have been away and have not had a chance to work on this issue. The “breathing blue” I described is exactly the same pattern as the “breathing cyan”, except the colour being blue.

Today I came back to it and turned it on, it behaved the same. Then I tried again, reset the firmware and re-flashed the code. It seemed to have resolved!

I will continue to monitor this core and let you know if it behaves odd again.

Hope other’s problems get resolved soon too!

Regards,
Tim

1 Like

However, since I have re-flashed the firmware of the same code. It seems like the connection is very unstable and dropping out and reconnecting frequently.

Somehow UDP is also extremely slower than how it used to be and behaving strangely…" :frowning:

Regards,
Tim

We just rolled out a firmware update on Friday to the build servers, if you’re seeing instability you feel is new, could you pm me, or email me at david@spark.io from the account you’re registered with, and I can check the logs for ya, and look into it.

Thanks,
David

Hi,

I am also seeing this breathing blue. It’s the same rhythm as breathing cyan, just with the blue led. Using the following code. I’m basically trying to implement functionality to disconnect and reconnect to the cloud.

SYSTEM_MODE(SEMI_AUTOMATIC);
SYSTEM_THREAD(ENABLED);

// Pin Constants
// const int blueLED  = D7;                                         // This LED is on the Electron itself

String cloud = "CLOUD CONNECTION STATUS: ";
String cell = "CELL CONNECTION STATUS: ";
String data = "";

void setup() {
//   pinMode(blueLED, OUTPUT);                                       // declare the Blue LED Pin as an output
  Serial.begin();
  Serial.println("Setup Complete");
}

void loop() {
    Serial.println("************LOOP START*************");
    data = "Time: " + String(Time.local());
    Serial.println(data);
    
    connectCloudAndCell();
    delay(60000);
    // connectToCell();
    Serial.println("*****************LOOP END******************");
}

void connectCloudAndCell(){
    Serial.println("CLOUD CONNECTED: " + String(Particle.connected()));
    Serial.println("TURN ON CELL");
    // if (!Cellular.connecting() && !Cellular.ready()) Cellular.on();
    Cellular.on();
    if (waitFor(Cellular.ready, 120000)) {
        // do whatever intended when we got a connection
        Serial.println("CELL CONNECTED: " + String(Cellular.ready()));
        Serial.println("TURN ON CLOUD");
        if (!Particle.connected()) Particle.connect();
        if (waitFor(Particle.connected, 120000)) {
            Serial.println("CLOUD CONNECTED: " + String(Particle.connected()));
        }
        else{
            Serial.println("***ERROR COULD NOT CONNECT TO CLOUD***");
            Serial.println("CLOUD CONNECTED: " + String(Particle.connected()));
        }
    }
    else {
        // do something when the connection couldn't be made
        // e.g. storing data for a later time or re-arm for a new connection attempt
        Serial.println("***ERROR COULD NOT CONNECT TO CELLULAR***");
        Serial.println("CELL CONNECTED: " + String(Cellular.ready()));
    }
}

You are only calling Cellular.on() and then waitFor(Cellular.ready, ...) but in order to get the cell connection ready for further use you also need to call Cellular.connect() :wink:

Ah brilliant, thank you very much.

Should I put the cellular.on and cellular.connect into a waitFor also?

Nope, Cellular.on() doesn’t need to be waited for.

Thanks for your help! Have a great weekend.

1 Like