3rd Party Sim - flashing cyan - faster flashing cyan - red blink - repeat

Have a strange behaviour when using my 3rd Party SIM.

I am getting through the network connection phase (having a valid IP Address) using the APN of my provider but whenever I start to connect to the Particle Cloud I fail with the following endless cycle:

flashing cyan - faster flashing cyan - red blink

Anyone an idea what’s going wrong?

PS: Whenever I use my particle SIM it works like a charm.

Solved the problem:

After successful registration (AT+COPS) I manually get my GPRS connection through:

AT+UPSD=0,1,"web.vodafone.de"
AT+UPSD=0,7,"0.0.0.0"
AT+UPSDA=0,1
AT+UPSDA=0,3
AT+UPSND=0,8
AT+UPSND=0,0 // Show IP

Afterwards I call cellular.connect().
Then I call particle.collect().

Voila it works!

Did you try using the 3rd-party credentials API and Particle.connect() first?

I did set the credentials … but it looks like at the wrong position. If I set it right before the particle.connect then it works. If I set it before the cellular.connect() then it doesn’t work. Thanks for the hint!

As the docs tell, you should do it in STARTUP() meaning before any of the above.

Hi ScruffR, I am still not able to run the following loop process that I would need for my app: cellular connect -> cloud connect -> cloud disconnect - cellular disconnect .
Any Idea what I am doing wrong? I need manual mode in order to inject code between the connect & disconnect steps.

//STARTUP(cellular_credentials_set("web.vodafone.de", "", "", NULL));
SYSTEM_MODE(MANUAL);
#include "cellular_hal.h"

void setup() {
Serial.begin(9600);
}

void loop() {
    delay (2000);
    Serial.println("LOOP");
    if ((Particle.connected() == true) && Cellular.ready() == true) {
        Serial.println("Disconnecting from Particle Cloud");
        Particle.disconnect();
        if (Particle.connected() == true) {
            Serial.println("Disconnecting from Particle Cloud - Established");
        }
        else Serial.println("Disconnecting from Particle Cloud - NOT Established");
        Serial.println("");
    }
    
    delay (2000);
    
    if ((Cellular.ready()== true) && (Particle.connected() == false)) {
        Serial.println("Disconnecting from Newowrk / Turn Modem Off and go to Sleep");
        //Deregister from Network Properly
        if (RESP_OK == Cellular.command(20000, "AT+COPS=2\r\n"))
          {
            Serial.println("Deregistration executed properly");
          }
        Cellular.disconnect();
        Serial.println("Disconnecting from Network - Established");
        Cellular.off();
        Serial.println("Cellular Modem Turned Off - Established");
        Serial.println("");
        System.sleep(SLEEP_MODE_DEEP, 60);
        
    }

    //delay (2000);
    
    if (Cellular.ready() == false) {
        Serial.println("Connecting to Network");
    //    cellular_credentials_set("web.vodafone.de", "", "", NULL);
        Cellular.on();
        delay(5000);
        Cellular.connect();
        Serial.println("Connecting to Network - Established");
        Serial.println("");
    }     
    
    //delay(2000);
    
    if ((Particle.connected() == false) && (Cellular.ready() == true)) {
        Serial.println("Connecting to Particle Cloud --- LOOP WILL BE EXECUTED AGAIN ONLY IF CONNECTED TO PARTICLE CLOUD");
    //    cellular_credentials_set("web.vodafone.de", "", "", NULL);
        Particle.connect();
        Serial.println("Connecting to Particle Cloud ...");
        Serial.println("");
    }
    
    Particle.process();
    //delay (2000);
}

I never see (or missed it) you calling Cellular.on()
SYSTEM_MODE(MANUAL) does not turn the module on and I’m not sure that Cellular.connect() would do it implicitly.

It indeed does it it implicitly … but to be on the safe side I included it in the script … after some further testing I assume the problem is not related to the 3rd Party SIM as I changed the code back to Particle SIM (see above) and the same problem occurs … as of what it looks now is a blocking from the Cell Provider if you register too often in a certain period … if I execute a AT+CREG? after reseting the particle, the command returns a ‘3’ which indicates that my registration is denied … would that be feasible explanation … could you please elaborate?

If you search the net for “at+creg registration denied” you will see that lots of folks have had this problem. There are several potential causes mentioned, including antenna problems, but one likely problem is that your carrier is blocking either your exact device for registering too often or a range of IMEI numbers to block this type of device from their network. Vodaphone in Germany was mentioned several times as being a carrier that blocks ranges of IMEI numbers.

So for your third-party SIM, I would call your carrier and ask if devices like Electron are allowed.

For your Particle SIM, I don’t know what is happening and perhaps you should ask in the official support channel so they can look at the carrier logs for your IMEI.

1 Like

Soved due to this: Electron: U have a particle.connect() or cellular.connect() problem?