Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ERROR: operation not allowed #1

Open
kedzior-io opened this issue Jan 28, 2021 · 21 comments
Open

ERROR: operation not allowed #1

kedzior-io opened this issue Jan 28, 2021 · 21 comments

Comments

@kedzior-io
Copy link
Owner

I get this:

Connecting to kedzior-test.azure-devices.netAT+CIPCLOSE=0,1

+CME ERROR: operation not allowed
AT+CIPSSL=1

OK
AT+CIPSSL=1,1

+CME ERROR: operation not allowed
Failed to reconnect to the broker.
Status: -2
=== MQTT NOT CONNECTED ===
=== MQTT NOT CONNECTED ===
=== MQTT NOT CONNECTED ===
=== MQTT NOT CONNECTED ===
AT+CIPRXGET=4,0
@lewisxhe
Copy link

I noticed that you have enabled the SSL certificate verification function, but I did not see that you imported the SSL certificate in the code. Is this the problem?

@kedzior-io
Copy link
Owner Author

@lewisxhe it can be an issue actually.

MS recommends these for Azure IOT https://github.com/Azure/azure-iot-sdk-c/blob/master/certs/certs.c

Is there any code sample I could use to import those?

@lewisxhe
Copy link

I have written an example, but I still encounter a little problem. You can refer to the documentation to test it first, and I will share it if I finish it.

@kedzior-io
Copy link
Owner Author

@lewisxhe thank you!

@kedzior-io
Copy link
Owner Author

@lewisxhe any luck?

@lewisxhe
Copy link

I have no luck.

  1. SIM800L is not in the latest firmware and does not have built-in MQTT service. Therefore, the built-in MQTT service cannot be used, which is owned by SIM800C.
  2. When I use a similar SIM800C to connect to a server that needs to verify the certificate key, I encountered the problem of the maximum 32-character limit for importing private keys. (This option limits most IOT clouds)

@lewisxhe
Copy link

I can’t use Azure IOT. I know whether Azure IOT can enable key authentication instead of certificate verification?

@kedzior-io
Copy link
Owner Author

kedzior-io commented Apr 22, 2021

@lewisxhe
https://docs.microsoft.com/en-us/azure/iot-hub/iot-hub-devguide-security

So if I understand i well to connect to Azure IOT I need to establish connection over secure port 8883 - that requires to import SSL certificate. If that's the case do you have any example out there?

Assuming that SSL certificate is all good the connection gets established by specifying:

  • username
  • password

So it's down to using commands here https://cdn-shop.adafruit.com/product-files/2637/SIM800+Series_FS_Application+Note_V1.01.pdf

What could help is this I guess : https://github.com/vshymanskyy/TinyGSM/blob/master/examples/more/SIM800_SslSetCert/SIM800_SslSetCert.ino

Certificated needed would be this one: https://github.com/Azure/azure-iot-sdk-c/blob/master/certs/certs.c

Actually I have just updated the code (untested): https://github.com/kedzior-io/esp32-sim800l-tinygsm-azure-iot-hub-mqtt-ssl/blob/master/mqtt-azure.ino#L59

Does it make sense?

@ThamerLeme
Copy link

Hey guys, any updates? I am running the same issue and couldn't find a solution

@kedzior-io
Copy link
Owner Author

@ThamerLeme nope.
I gave up and went for different device that uses SIM7000G and was able to avoid this problem but now there is another 😭

Xinyuan-LilyGO/LilyGO-T-SIM7000G#114

@ThamerLeme
Copy link

@kedzior-io thats sad...
Thanks for the reply

@SebastienBrun
Copy link

Any news about the problem SIM800L and MQTTS ? Thank you :(

@NoNamedCat
Copy link

Bump

@SebastienBrun
Copy link

I finally changed my module sim800 to sim7000g...
Mqtts work fine!

@NoNamedCat
Copy link

So is not possible to use a sim800l on AWS?

@kedzior-io
Copy link
Owner Author

kedzior-io commented May 11, 2022

@SebastienBrun yes I did the same used SIM7000G and it works with self hosted MQTT broker (Mosquitto). I haven't been able to get it working with Azure IOT though:

Here I get DNS errors when using Azure IOT Free Tier (it's more than enough for my needs)
Xinyuan-LilyGO/LilyGO-T-SIM7000G#120

Here I get issues when connected to Mosquitto:
Xinyuan-LilyGO/LilyGO-T-SIM7000G#163

It works but it gets constant re-connects.

Where you able to get it running smoothly?

@NoNamedCat
Sorry I have no idea if it would work with AWS.

@SebastienBrun
Copy link

SebastienBrun commented May 11, 2022

@kedzior-io
I had the same issue, constantly reconnect !

For me the issue was : i connected two devices with the same username/password and client-ID.

Other thing , i authorized on my mosquitto server to self define your own client-ID
I don't know how to configure that on self hosted mosquitto, I use mosquitto on stackhero.io service.

I thicked on stackhero.io :
[X] Set client ID as username
Recommended, unless you want to let your clients define there own client ID

The code of my POC :

#define TINY_GSM_MODEM_SIM7000SSL 
// Set serial for debug console (to the Serial Monitor, default speed 115200)
#define SerialMon Serial

// Set serial for AT commands (to the module)
// Use Hardware Serial on Mega, Leonardo, Micro
#define SerialAT Serial1

// See all AT commands, if wanted
//#define DUMP_AT_COMMANDS

// Define the serial console for debug prints, if needed
#define TINY_GSM_DEBUG SerialMon

// Add a reception delay, if needed.
// This may be needed for a fast processor at a slow baud rate.
// #define TINY_GSM_YIELD() { delay(2); }


// set GSM PIN, if any
#define GSM_PIN "1503"

// Your GPRS credentials, if any
const char apn[]      = "TM";
const char gprsUser[] = "";
const char gprsPass[] = "";

// MQTT details
const char* broker = "hostname";          
uint32_t brokerPort = 8883;
const char* mqttUsername = "user";  // MQTT username
const char* mqttPassword = "password";  // MQTT password


const char *topicLed       = "GsmClientTest/led";
const char *topicInit      = "GsmClientTest/init";
const char *topicLedStatus = "GsmClientTest/ledStatus";

#include <TinyGsmClient.h>
#include <PubSubClient.h>


#ifdef DUMP_AT_COMMANDS
#include <StreamDebugger.h>
StreamDebugger debugger(SerialAT, SerialMon);
TinyGsm        modem(debugger);
#else
TinyGsm        modem(SerialAT);
#endif

TinyGsmClientSecure client(modem);
PubSubClient  mqtt(client);


#define uS_TO_S_FACTOR 1000000ULL  // Conversion factor for micro seconds to seconds
#define TIME_TO_SLEEP  60          // Time ESP32 will go to sleep (in seconds)

#define UART_BAUD   115200
#define PIN_DTR     25
#define PIN_TX      27
#define PIN_RX      26
#define PWR_PIN     4
#define LED_PIN     12

int ledStatus = LOW;

uint32_t lastReconnectAttempt = 0;

void mqttCallback(char *topic, byte *payload, unsigned int len) {
    SerialMon.print("Message arrived [");
    SerialMon.print(topic);
    SerialMon.print("]: ");
    SerialMon.write(payload, len);
    SerialMon.println();

    // Only proceed if incoming message's topic matches
    if (String(topic) == topicLed) {
        ledStatus = !ledStatus;
        digitalWrite(LED_PIN, ledStatus);
        SerialMon.print("ledStatus:");
        SerialMon.println(ledStatus);
        mqtt.publish(topicLedStatus, ledStatus ? "1" : "0");

    }
}

boolean mqttConnect() {
   int16_t signal =  modem.getSignalQuality();
   Serial.print("Signal: ");
   Serial.print(signal);
   Serial.println(" ");
  
    SerialMon.print("Connecting to ");
    SerialMon.print(broker);

    // Connect to MQTT Broker
    //boolean status = mqtt.connect("TestSeb");

    // Or, if you want to authenticate MQTT:
    boolean status = mqtt.connect("TestSeb121355", mqttUsername, mqttPassword);

    if (status == false) {
        SerialMon.println(" fail");
        return false;
    }
    SerialMon.println(" success");
    mqtt.publish(topicInit, "TestSeb started");
    mqtt.subscribe(topicLed);
    return mqtt.connected();
}


void setup() {
    // Set console baud rate
    Serial.begin(115200);
    delay(10);

    // Set LED OFF
    pinMode(LED_PIN, OUTPUT);
    digitalWrite(LED_PIN, HIGH);

    pinMode(PWR_PIN, OUTPUT);
    digitalWrite(PWR_PIN, HIGH);
    delay(300);
    digitalWrite(PWR_PIN, LOW);

    delay(1000);

    SerialAT.begin(UART_BAUD, SERIAL_8N1, PIN_RX, PIN_TX);

    // Restart takes quite some time
    // To skip it, call init() instead of restart()
    Serial.println("Initializing modem...");
    if (!modem.restart()) {
        Serial.println("Failed to restart modem, attempting to continue without restarting");
    }

    String name = modem.getModemName();
    DBG("Modem Name:", name);

    String modemInfo = modem.getModemInfo();
    DBG("Modem Info:", modemInfo);

    String res;
    res = modem.setNetworkMode(13);
    if (res != "1") {
        DBG("Set Network Mode GPRS false");
        return ;
    } else {
      DBG("Set Network Mode GPRS true");
    }
    delay(200);

    res = modem.setPreferredMode(2);
    if (res != "1") {
        DBG("setPreferredMode  false ");
        return ;
    } else {
      DBG("Set Preferred Mode true");
    }
    delay(200);

    // Unlock your SIM card with a PIN if needed
    if (GSM_PIN && modem.getSimStatus() != 3) {
        modem.simUnlock(GSM_PIN);
    }

    SerialMon.print("Waiting for network...");
    if (!modem.waitForNetwork()) {
        SerialMon.println(" fail");
        delay(10000);
        return;
    }
    SerialMon.println(" success");

    if (modem.isNetworkConnected()) {
        SerialMon.println("Network connected");
    }

    // GPRS connection parameters are usually set after network registration
    SerialMon.print(F("Connecting to "));
    SerialMon.print(apn);
    if (!modem.gprsConnect(apn, gprsUser, gprsPass)) {
        SerialMon.println(" fail");
        delay(10000);
        return;
    }
    SerialMon.println(" success");

    if (modem.isGprsConnected()) {
        SerialMon.println("GPRS connected");
    }

    // MQTT Broker setup
    mqtt.setServer(broker, brokerPort);
    mqtt.setCallback(mqttCallback);

}

void loop() {
    // Make sure we're still registered on the network
    if (!modem.isNetworkConnected()) {
        SerialMon.println("Network disconnected");
        if (!modem.waitForNetwork(180000L, true)) {
            SerialMon.println(" fail");
            delay(10000);
            return;
        }
        if (modem.isNetworkConnected()) {
            SerialMon.println("Network re-connected");
        }

        // and make sure GPRS/EPS is still connected
        if (!modem.isGprsConnected()) {
            SerialMon.println("GPRS disconnected!");
            SerialMon.print(F("Connecting to "));
            SerialMon.print(apn);
            if (!modem.gprsConnect(apn, gprsUser, gprsPass)) {
                SerialMon.println(" fail");
                delay(10000);
                return;
            }
            if (modem.isGprsConnected()) {
                SerialMon.println("GPRS reconnected");
            }
        }

    }

    if (!mqtt.connected()) {
        SerialMon.println("=== MQTT NOT CONNECTED ===");
        // Reconnect every 10 seconds
        uint32_t t = millis();
        if (t - lastReconnectAttempt > 10000L) {
            lastReconnectAttempt = t;
            if (mqttConnect()) {
                lastReconnectAttempt = 0;
            }
        }
        delay(100);
        return;
    }
    mqtt.loop();
}

Let me know if it works. :)

@NoNamedCat
Copy link

@kedzior-io I had the same issue, constantly reconnect !

For me the issue was : i connected two devices with the same username/password and client-ID.

Other thing , i authorized on my mosquitto server to self define your own client-ID I don't know how to configure that on self hosted mosquitto, I use mosquitto on stackhero.io service.

I thicked on stackhero.io : [X] Set client ID as username Recommended, unless you want to let your clients define there own client ID

The code of my POC :

#define TINY_GSM_MODEM_SIM7000SSL 
// Set serial for debug console (to the Serial Monitor, default speed 115200)
#define SerialMon Serial

// Set serial for AT commands (to the module)
// Use Hardware Serial on Mega, Leonardo, Micro
#define SerialAT Serial1

// See all AT commands, if wanted
//#define DUMP_AT_COMMANDS

// Define the serial console for debug prints, if needed
#define TINY_GSM_DEBUG SerialMon

// Add a reception delay, if needed.
// This may be needed for a fast processor at a slow baud rate.
// #define TINY_GSM_YIELD() { delay(2); }


// set GSM PIN, if any
#define GSM_PIN "1503"

// Your GPRS credentials, if any
const char apn[]      = "TM";
const char gprsUser[] = "";
const char gprsPass[] = "";

// MQTT details
const char* broker = "hostname";          
uint32_t brokerPort = 8883;
const char* mqttUsername = "user";  // MQTT username
const char* mqttPassword = "password";  // MQTT password


const char *topicLed       = "GsmClientTest/led";
const char *topicInit      = "GsmClientTest/init";
const char *topicLedStatus = "GsmClientTest/ledStatus";

#include <TinyGsmClient.h>
#include <PubSubClient.h>


#ifdef DUMP_AT_COMMANDS
#include <StreamDebugger.h>
StreamDebugger debugger(SerialAT, SerialMon);
TinyGsm        modem(debugger);
#else
TinyGsm        modem(SerialAT);
#endif

TinyGsmClientSecure client(modem);
PubSubClient  mqtt(client);


#define uS_TO_S_FACTOR 1000000ULL  // Conversion factor for micro seconds to seconds
#define TIME_TO_SLEEP  60          // Time ESP32 will go to sleep (in seconds)

#define UART_BAUD   115200
#define PIN_DTR     25
#define PIN_TX      27
#define PIN_RX      26
#define PWR_PIN     4
#define LED_PIN     12

int ledStatus = LOW;

uint32_t lastReconnectAttempt = 0;

void mqttCallback(char *topic, byte *payload, unsigned int len) {
    SerialMon.print("Message arrived [");
    SerialMon.print(topic);
    SerialMon.print("]: ");
    SerialMon.write(payload, len);
    SerialMon.println();

    // Only proceed if incoming message's topic matches
    if (String(topic) == topicLed) {
        ledStatus = !ledStatus;
        digitalWrite(LED_PIN, ledStatus);
        SerialMon.print("ledStatus:");
        SerialMon.println(ledStatus);
        mqtt.publish(topicLedStatus, ledStatus ? "1" : "0");

    }
}

boolean mqttConnect() {
   int16_t signal =  modem.getSignalQuality();
   Serial.print("Signal: ");
   Serial.print(signal);
   Serial.println(" ");
  
    SerialMon.print("Connecting to ");
    SerialMon.print(broker);

    // Connect to MQTT Broker
    //boolean status = mqtt.connect("TestSeb");

    // Or, if you want to authenticate MQTT:
    boolean status = mqtt.connect("TestSeb121355", mqttUsername, mqttPassword);

    if (status == false) {
        SerialMon.println(" fail");
        return false;
    }
    SerialMon.println(" success");
    mqtt.publish(topicInit, "TestSeb started");
    mqtt.subscribe(topicLed);
    return mqtt.connected();
}


void setup() {
    // Set console baud rate
    Serial.begin(115200);
    delay(10);

    // Set LED OFF
    pinMode(LED_PIN, OUTPUT);
    digitalWrite(LED_PIN, HIGH);

    pinMode(PWR_PIN, OUTPUT);
    digitalWrite(PWR_PIN, HIGH);
    delay(300);
    digitalWrite(PWR_PIN, LOW);

    delay(1000);

    SerialAT.begin(UART_BAUD, SERIAL_8N1, PIN_RX, PIN_TX);

    // Restart takes quite some time
    // To skip it, call init() instead of restart()
    Serial.println("Initializing modem...");
    if (!modem.restart()) {
        Serial.println("Failed to restart modem, attempting to continue without restarting");
    }

    String name = modem.getModemName();
    DBG("Modem Name:", name);

    String modemInfo = modem.getModemInfo();
    DBG("Modem Info:", modemInfo);

    String res;
    res = modem.setNetworkMode(13);
    if (res != "1") {
        DBG("Set Network Mode GPRS false");
        return ;
    } else {
      DBG("Set Network Mode GPRS true");
    }
    delay(200);

    res = modem.setPreferredMode(2);
    if (res != "1") {
        DBG("setPreferredMode  false ");
        return ;
    } else {
      DBG("Set Preferred Mode true");
    }
    delay(200);

    // Unlock your SIM card with a PIN if needed
    if (GSM_PIN && modem.getSimStatus() != 3) {
        modem.simUnlock(GSM_PIN);
    }

    SerialMon.print("Waiting for network...");
    if (!modem.waitForNetwork()) {
        SerialMon.println(" fail");
        delay(10000);
        return;
    }
    SerialMon.println(" success");

    if (modem.isNetworkConnected()) {
        SerialMon.println("Network connected");
    }

    // GPRS connection parameters are usually set after network registration
    SerialMon.print(F("Connecting to "));
    SerialMon.print(apn);
    if (!modem.gprsConnect(apn, gprsUser, gprsPass)) {
        SerialMon.println(" fail");
        delay(10000);
        return;
    }
    SerialMon.println(" success");

    if (modem.isGprsConnected()) {
        SerialMon.println("GPRS connected");
    }

    // MQTT Broker setup
    mqtt.setServer(broker, brokerPort);
    mqtt.setCallback(mqttCallback);

}

void loop() {
    // Make sure we're still registered on the network
    if (!modem.isNetworkConnected()) {
        SerialMon.println("Network disconnected");
        if (!modem.waitForNetwork(180000L, true)) {
            SerialMon.println(" fail");
            delay(10000);
            return;
        }
        if (modem.isNetworkConnected()) {
            SerialMon.println("Network re-connected");
        }

        // and make sure GPRS/EPS is still connected
        if (!modem.isGprsConnected()) {
            SerialMon.println("GPRS disconnected!");
            SerialMon.print(F("Connecting to "));
            SerialMon.print(apn);
            if (!modem.gprsConnect(apn, gprsUser, gprsPass)) {
                SerialMon.println(" fail");
                delay(10000);
                return;
            }
            if (modem.isGprsConnected()) {
                SerialMon.println("GPRS reconnected");
            }
        }

    }

    if (!mqtt.connected()) {
        SerialMon.println("=== MQTT NOT CONNECTED ===");
        // Reconnect every 10 seconds
        uint32_t t = millis();
        if (t - lastReconnectAttempt > 10000L) {
            lastReconnectAttempt = t;
            if (mqttConnect()) {
                lastReconnectAttempt = 0;
            }
        }
        delay(100);
        return;
    }
    mqtt.loop();
}

Let me know if it works. :)

But this example is using SIM7000g not the sim800l. And is not using certificates (tls 1.2). I have a problem with the connection when i introduce the certificates in the secure_presentation_layer.

@NoNamedCat
Copy link

NoNamedCat commented May 11, 2022

This is the log that i have when i comment this lines:

  secure_presentation_layer.setCACert(root_ca);
  secure_presentation_layer.setCertificate(client_cert_pem_start);    //x509 client Certificate
  secure_presentation_layer.setPrivateKey(client_key_pem_start);      //x509 client key
Wait...
Initializing modem...
AT

OK
AT&W

OK
AT+CFUN=0

+SAPBR 1: DEACT

+PDP: DEACT

+CPIN: NOT READY

OK
AT+CFUN=1,1

OK
[9035] ### TinyGSM Version: 0.11.5
[9035] ### TinyGSM Compiled Module:  TinyGsmClientSIM800
AT
�AT

OK
ATE0

OK
AT+CMEE=2

OK
AT+GMM

SIMCOM_SIM800L

OK
[9350] ### Modem: SIMCOM SIM800L
[9350] ### Modem: SIMCOM SIM800L
AT+CLTS=1

OK
AT+CBATCHK=1

OK
AT+CPIN?

+CME ERROR: CFUN state is 0 or 4
AT+CPIN?

+CME ERROR: SIM busy
AT+CPIN?

+CPIN: READY

OK
ATI

SIM800 R14.18

OK
Modem Info: SIM800 R14.18
AT+CPIN?

+CPIN: READY

OK
Waiting for network...AT+CREG?

+CREG: 0,2

OK
AT+CREG?

+CREG: 0,2

OK
AT+CREG?

+CREG: 0,2

OK
AT+CREG?

+CREG: 0,2

OK
AT+CREG?

+CREG: 0,2

OK
AT+CREG?

+CREG: 0,2

OK
AT+CREG?

+CREG: 0,2

OK
AT+CREG?

+CREG: 0,2

OK
AT+CREG?

+CREG: 0,2

OK
AT+CREG?

+CREG: 0,2

OK
AT+CREG?

+CREG: 0,2

OK
AT+CREG?

+CREG: 0,2

OK
AT+CREG?

+CREG: 0,2

OK
AT+CREG?

+CREG: 0,2

OK
AT+CREG?

+CREG: 0,2

OK
AT+CREG?

+CREG: 0,2

OK
AT+CREG?

+CREG: 0,2

OK
AT+CREG?

+CREG: 0,2

OK
AT+CREG?

+CREG: 0,2

OK
AT+CREG?

+CREG: 0,1

OK
 success
AT+CREG?

+CREG: 0,1

OK
Network connected
Connecting to internet.comcel.com.coAT+CIPSHUT

SHUT OK
AT+CGATT=0

OK
AT+SAPBR=3,1,"Contype","GPRS"

OK
AT+SAPBR=3,1,"APN","internet.comcel.com.co"

OK
AT+SAPBR=3,1,"USER","comcel"

OK
AT+SAPBR=3,1,"PWD","comcel"

OK
AT+CGDCONT=1,"IP","internet.comcel.com.co"

OK
AT+CGACT=1,1

SMS Ready

OK
AT+SAPBR=1,1

OK
AT+SAPBR=2,1

+SAPBR: 1,1,"100.85.149.89"

OK
AT+CGATT=1

OK
AT+CIPMUX=1

OK
AT+CIPQSEND=1

OK
AT+CIPRXGET=1

OK
AT+CSTT="internet.comcel.com.co","comcel","comcel"

OK
AT+CIICR

OK
AT+CIFSR;E0

100.85.149.89

OK
AT+CDNSCFG="8.8.8.8","8.8.4.4"

OK
 success
AT+CGATT?

+CGATT: 1

OK
AT+CIFSR;E0

100.85.149.89

OK
GPRS connected
MQTT not connected
Connecting to xxxxxxxxxxxxxxxx-ats.iot.us-east-2.amazonaws.comAT+CIPCLOSE=0,1

+CME ERROR: operation not allowed
AT+CIPSSL=0

OK
AT+CIPSTART=0,"TCP","xxxxxxxxxxxxxxxx-ats.iot.us-east-2.amazonaws.com",8883

OK

0, CONNECT OK
AT+CIPSEND=0,335

>JFLz	>U�SJ��K{
                 H��vʀ�H����:��,�0������$�(k�
                                             �9�����+�/������#�'g�	�3��������8��6�������7��5������=5�2�*��.�&������</�1�)��-�%������������������������31.xxxxxxxxxxxxxxxx-ats.iot.us-east-2.amazonaws.com
�
 #
DATA ACCEPT:0,335
AT+CIPRXGET=4,0

+CIPRXGET: 4,0,0

OK
AT+CIPSTATUS=0

+CIPSTATUS: 0,0,"TCP","18.224.85.111","8883","CONNECTED"

OK
AT+CIPRXGET=4,0

+CIPRXGET: 4,0,0

OK
AT+CIPSTATUS=0

+CIPSTATUS: 0,0,"TCP","18.224.85.111","8883","CONNECTED"

OK
AT+CIPRXGET=4,0

+CIPRXGET: 4,0,0

OK
AT+CIPSTATUS=0

+CIPSTATUS: 0,0,"TCP","18.224.85.111","8883","CONNECTED"

OK
AT+CIPRXGET=4,0

+CIPRXGET: 4,0,0

OK
AT+CIPSTATUS=0

+CIPSTATUS: 0,0,"TCP","18.224.85.111","8883","CONNECTED"

OK
AT+CIPRXGET=4,0

+CIPRXGET: 4,0,96

OK
AT+CIPRXGET=2,0,63

+CIPRXGET: 2,0,63,33
[Wdzf0����C��y��i��T~'��£J�(� F%k���\)@�m�B�����a
OK
AT+CIPRXGET=2,0,33

+CIPRXGET: 2,0,33,0
5[	8�ny�FL8
                �/
                  �
OK

+CIPRXGET: 1,0
AT+CIPRXGET=4,0

+CIPRXGET: 4,0,1348

OK
AT+CIPRXGET=2,0,63

+CIPRXGET: 2,0,63,1285

{x0�
    0���
        *�H��ӖP�ص�/0
0F
OK
AT+CIPRXGET=2,0,63

+CIPRXGET: 2,0,63,1222
1
U0	UUS10
 Amazon10U

U         Server CA 1B10
OK
AT+CIPRXGET=2,0,63

+CIPRXGET: 2,0,63,1159
220803235959Z0(1&0$U
                    *.iot.us-ea
OK
AT+CIPRXGET=2,0,63

+CIPRXGET: 2,0,63,1096
�0�2.ama*�H��s.com0�"0
�g���.��E7
OK
AT+CIPRXGET=2,0,63

+CIPRXGET: 2,0,63,1033
.�9e�(*Sc�d���(�
                �m1*'M͂j����ꇽ��K�A�f��g��J���.u�σ8R.$
OK
AT+CIPRXGET=2,0,63

+CIPRXGET: 2,0,63,970
,X��z�|���P�E�9ol>T�#_�}��򪋰�P��'ɂ��nV�J���ݫ�A[L�
OK
AT+CIPRXGET=2,0,63

+CIPRXGET: 2,0,63,907
����^7Qt�&�Ix!�K�~��`�FJ�P��:�gUUip�T���j��T�Q�6eC�����
OK
AT+CIPRXGET=2,0,63

+CIPRXGET: 2,0,63,844
�ҵ��N��(	~��H�p&;�}*�:f^�0t��!����)fK���֞>��$�\����
OK
AT+CIPRXGET=2,0,63

+CIPRXGET: 2,0,63,781
%pd��k�Y�fR�{��<��'�t[�=�0U�$�
OK
AT+CIPRXGET=2,0,63

+CIPRXGET: 2,0,63,718
�^Ϟ0EU>0<�*.iot.us-east-2.amazonaws.com�ot.us-east-2
OK
AT+CIPRXGET=2,0,63

+CIPRXGET: 2,0,63,655
.amazonaws.com0U��0U%+0;
OK
AT+CIPRXGET=2,0,63

+CIPRXGET: 2,0,63,592
U40200�.�,�*http://crl.sca1b.amazontrust.com/sca1b.crl0
OK
AT+CIPRXGET=2,0,63

+CIPRXGET: 2,0,63,529
U 
  0
   g�
     0+i0g0+0�!http://ocsp.sca1
OK
AT+CIPRXGET=2,0,63

+CIPRXGET: 2,0,63,466
b.amazontrust.com0+0�*http://crt.sca1b.amazontrust.com
OK
AT+CIPRXGET=2,0,63

+CIPRXGET: 2,0,63,403
/sca1b.crt0
           U�00�}
                 +�y�m�igu)y��99!�V
OK
AT+CIPRXGET=2,0,63

+CIPRXGET: 2,0,63,340
s�c�w�W}�`
          ��M]&\%]DŽ{z���F0D ��%��N�����'�R_�<
OK
AT+CIPRXGET=2,0,63

+CIPRXGET: 2,0,63,277
����8QfO ��Z���oh�#k/)���3@<(3oX>5��vQ����y�Vm�7x�
                                                  �z
OK
AT+CIPRXGET=2,0,63

+CIPRXGET: 2,0,63,1562
�ԋ�{z���G0E 8��4U��?���U�挕�RG�i�_���
OK
AT+CIPRXGET=2,0,63

+CIPRXGET: 2,0,63,1499
c\!��v���]m���
              hZ.q��T�fL=D��vA�ʱ�"FJơ:	B�^N1��
OK
AT+CIPRXGET=2,0,63

+CIPRXGET: 2,0,63,1436
K�h�b��{z��\G0E!�>jQe�쒤3<�:{�_�o�W�F��#�� 
OK
AT+CIPRXGET=2,0,63

+CIPRXGET: 2,0,63,1373
Lۖ�+Aڐ�v�*�H���p�a�J1�]��&��0
� ��'��_
OK
AT+CIPRXGET=2,0,63

+CIPRXGET: 2,0,63,1310
x���^Eka�R�ך��$��_
                  PVf̢F2!���O���s��1��XX�u>J���@}ޜOjM�
OK
AT+CIPRXGET=2,0,63

+CIPRXGET: 2,0,63,1247
j�{�ތ�ky�/Ĥ�:�У�ө���RR�ΰ�.Q%	;���6���q�\���B���Z�
OK
AT+CIPRXGET=2,0,63

+CIPRXGET: 2,0,63,1184
���H�-+�j�I�:CO��O���ɢR�D0(Xq8 ��Q���ͅt��̗� #pX
OK
AT+CIPRXGET=2,0,63

+CIPRXGET: 2,0,63,1121
b:p]g dK��4� �cPW.ض�`p���
           4a�:�����M0�I0
OK
AT+CIPRXGET=2,0,63

+CIPRXGET: 2,0,63,1058
01��W���*�H�����V
091
   0	UUS10
OK
AT+CIPRXGET=4,0

+CIPRXGET: 4,0,1058

OK
AT+CIPRXGET=2,0,63

+CIPRXGET: 2,0,63,995
U
251022000000Zzon Root CA 10
OK
AT+CIPRXGET=2,0,63

+CIPRXGET: 2,0,63,932
19000000Z0F1
U           0	UUS10
 Amazon10U

          Server CA 1
OK
AT+CIPRXGET=2,0,63

+CIPRXGET: 2,0,63,869
�0�azon0*�H��
   ��Ng�μj�7Z�
OK
AT+CIPRXGET=2,0,63

+CIPRXGET: 2,0,63,806
:0����(H��)��nSգ�9��w����p��k���q��m˦�*N֧��
                                          <
                                           �9�ĵ
OK
AT+CIPRXGET=2,0,63

+CIPRXGET: 2,0,63,743
X���V%�>Rz��)�nP��_1��Jb��>G�'�� ����5�_��M�k7�P>D��Z�
OK
AT+CIPRXGET=2,0,63

+CIPRXGET: 2,0,63,680
f�~jU��5���uNXU}Sk
                  k�B��������+
                              ���S�g�Ј�:�s�_���r
OK
AT+CIPRXGET=2,0,63

+CIPRXGET: 2,0,63,617
h�ӈ�Je�J��.L�U�����<��P�C�*�
OK
AT+CIPRXGET=2,0,63

+CIPRXGET: 2,0,63,554
;0�70U0�0U��0UY�fR�{��<�
OK
AT+CIPRXGET=2,0,63

+CIPRXGET: 2,0,63,491
�'�t[�=�0U#0��̅4�
                ��Y�DzN
                     0+o0m0+
OK
AT+CIPRXGET=2,0,63

+CIPRXGET: 2,0,63,428
0�#http://ocsp.rootca1.amazontrust.com0+0�.http:
OK
AT+CIPRXGET=2,0,63

+CIPRXGET: 2,0,63,365
//crt.rootca1.amazontrust.com/rootca1.cer0?U80604�2�0�.htt
OK
AT+CIPRXGET=2,0,63

+CIPRXGET: 2,0,63,1650
p://crl.rootca1.amazontrust.com/rootca1.crl0U 
                                              0
                                               g�

OK
AT+CIPRXGET=2,0,63

+CIPRXGET: 2,0,63,1587
0       *�H��
����5�yϣ�B��csS9R5�ѭ������/��o��Nr� 0a�
OK
AT+CIPRXGET=2,0,63

+CIPRXGET: 2,0,63,1524
�ma7{X��Q��(Ov����^�f��1�/1
OK
AT+CIPRXGET=2,0,63

+CIPRXGET: 2,0,63,1461
.���)� `H����Se5k�Q@UW_��">��^��ó��AZ�R���6�O-��h5��r�
OK
AT+CIPRXGET=2,0,63

+CIPRXGET: 2,0,63,1398
I'�8������H���-�w
            ����vRȼ�Axp�m��J�x-^��L`
OK
AT+CIPRXGET=2,0,63

+CIPRXGET: 2,0,63,1335
��G�x-�R��9,��/�3��ڔ�0��0�z��J*'���®+���0
OK
AT+CIPRXGET=2,0,63

+CIPRXGET: 2,0,63,1272
	*�H��
0��1
    0	UUS10Arizona10U
                       Scot
OK
AT+CIPRXGET=2,0,63

+CIPRXGET: 2,0,63,1209
tsdale1%0#U
           Starfield Technologies, Inc.1;09U2Starfie
OK
AT+CIPRXGET=2,0,63

+CIPRXGET: 2,0,63,1146
350525120000Zoot Certificate Authority - G20
OK
AT+CIPRXGET=2,0,63

+CIPRXGET: 2,0,63,1083
71231010000Z091
U              0	UUS10
 Amazon10UAmazon R
OK
AT+CIPRXGET=2,0,63

+CIPRXGET: 2,0,63,1020
�0� CA 1*�H��
   ��x�q�x��q�G�Pt}n�׈v��
OK
AT+CIPRXGET=2,0,63

+CIPRXGET: 2,0,63,957
h�X!`�t�/�-�ӠCzN���6����H�6L��#�>�7���Ih��׹v8a����6��
OK
AT+CIPRXGET=2,0,63

+CIPRXGET: 2,0,63,894
JV�E�����tڜ�59/�� PlzЀ�����G�P8ܢ�9X��թ�Hg0��x^o��Q�0�f
OK
AT+CIPRXGET=2,0,63

+CIPRXGET: 2,0,63,1783
�Ef�T�Ñ�H����0-}-tp5׈$���Yn�s��2F(�C���ʴ�$-K�q\^i���8
OK
AT+CIPRXGET=2,0,63

+CIPRXGET: 2,0,63,1720
��10�-0Ub�T�w�g���#�?@  �ĀL>;$&��l�Ȫ
OK
AT+CIPRXGET=2,0,63

+CIPRXGET: 2,0,63,1657
�0�0U��0U�̅4�
            ��Y�DzN
                 0
OK
AT+CIPRXGET=2,0,63

+CIPRXGET: 2,0,63,1594
U#0��_ߪ�0+8���mJ����0+l0j0+0�"http
OK
AT+CIPRXGET=2,0,63

+CIPRXGET: 2,0,63,1531
://ocsp.rootg2.amazontrust.com0+0�,http://crt.rootg2.a
OK
AT+CIPRXGET=2,0,63

+CIPRXGET: 2,0,63,1468
mazontrust.com/rootg2.cer0=U60402�0�.�,http://crl.rootg2.a
OK
AT+CIPRXGET=2,0,63

+CIPRXGET: 2,0,63,1405
mazontrust.com/rootg2.crl0U 
        *�H��               0U 0
�
OK
AT+CIPRXGET=4,0

+CIPRXGET: 4,0,1789

OK
AT+CIPRXGET=2,0,63

+CIPRXGET: 2,0,63,1726
b7B\��>�,�
          �lE�z��X
                  �>��%<�oP��5j��4�2!�HD���=��sm���l�
OK
AT+CIPRXGET=2,0,63

+CIPRXGET: 2,0,63,1663
(�Gy�~0[�;�`�w��|^����{"��	~�F�ܜ&W�09b����ު���ChlW
OK
AT+CIPRXGET=2,0,63

+CIPRXGET: 2,0,63,1600
�� .���j].�JmX���91_|sː�j��'��فF�~�r
                                    R>��cw�i9�EM�Q
OK
AT+CIPRXGET=2,0,63

+CIPRXGET: 2,0,63,1537
t��{E)P9����5%jG#1/\����bQ�*��
OK
AT+CIPRXGET=2,0,63

+CIPRXGET: 2,0,63,1474
�4�!y0�u*�H��	�JL4��0
0h1
   0	UUS1
OK
AT+CIPRXGET=2,0,63

+CIPRXGET: 2,0,63,1411
%0#U
    Starfield Technologies, Inc.1200U
                                     )Starfield Clas
OK
AT+CIPRXGET=2,0,63

+CIPRXGET: 2,0,63,1348
340628173916Z0��1 Authority0
OK
AT+CIPRXGET=2,0,63

+CIPRXGET: 2,0,63,1285

0	UUS10Arizona10U
                       Scottsdale1%0#U
                                      S
OK
AT+CIPRXGET=2,0,63

+CIPRXGET: 2,0,63,1222
tarfield Technologies, Inc.1;09U2Starfield Services Root C
OK
AT+CIPRXGET=2,0,63

+CIPRXGET: 2,0,63,1159
�0�ifica*�H��thority - G20�"0
   ��
     :�*
OK
AT+CIPRXGET=2,0,63

+CIPRXGET: 2,0,63,1096
NN����_��S�?�ϟ m):�}<�kv8c�6`��^\��/Y���%C��i���q��-
OK
AT+CIPRXGET=2,0,63

+CIPRXGET: 2,0,63,1033
o��Iٶ��V�+�t���&����.j;X��GV�%��pS�ڄt�g�h:ߎ@ZJN�C�;�V�
OK
AT+CIPRXGET=2,0,63

+CIPRXGET: 2,0,63,970
�3�G�k�:�1�E��`�Y+��4G߹ސem�,����ޅI|fN�:m���4.�
OK
AT+CIPRXGET=2,0,63

+CIPRXGET: 2,0,63,907
�%ٛ΁�EF2�p��IC��ls�d�aA���T߇/�"�&̟YTh���*/�Uu@`�U9�
OK
AT+CIPRXGET=2,0,63

+CIPRXGET: 2,0,63,844
���0��0U�0�0U��0U�_ߪ�0+
OK
AT+CIPRXGET=2,0,63

+CIPRXGET: 2,0,63,781
8���mJ����0U#0��_������[U�������0+C0A0
OK
AT+CIPRXGET=2,0,63

+CIPRXGET: 2,0,63,718
+0�http://o.ss2.us/0+0�http://x.ss2.us/x.cer0
OK
AT+CIPRXGET=2,0,63

+CIPRXGET: 2,0,63,655
&U00��http://s.ss2.us/r.crl0U 
        *                     0U 0
OK
AT+CIPRXGET=2,0,63

+CIPRXGET: 2,0,63,592
�H��
�#�W�}�yL�U��Sn>G��U�6�S�]4(k��U�g��?��
OK
AT+CIPRXGET=2,0,63

+CIPRXGET: 2,0,63,529
S���'�i�M^����v�3w
OK
AT+CIPRXGET=2,0,63

+CIPRXGET: 2,0,63,466
���u�XD-�<p���i��w1^,���:Gi�y_�T��^x`'Ο�w�#Sw]���Y��ϯ���
OK
AT+CIPRXGET=2,0,63

+CIPRXGET: 2,0,63,403
$�5z���}��?��rT��Y{��R.F��dvH��y�nV̮,��8���	[����4
OK
AT+CIPRXGET=2,0,63

+CIPRXGET: 2,0,63,340
I�V���_�3�G�0]��M
                 IA�CJ�=噷#ˆİ?`h�'?�rR�˲z
OK
AT+CIPRXGET=2,0,63

+CIPRXGET: 2,0,63,277
+�v��k`�Ԙ̈��~C�c��	/J�E?�
                              �\�or�G6
                                      �w�r�_=l�@9
OK
AT+CIPRXGET=2,0,63

+CIPRXGET: 2,0,63,214
��,/ӉE��L�U��?̶�-��!"b� %���-S�R�A���+��ÔB8Eub�neʠ
OK
AT+CIPRXGET=2,0,63

+CIPRXGET: 2,0,63,151
�<,��5�]2sb��ďH��t,i��H�[C�I�dɂ"�.~a9�@�
                                        >~@(-�2�<J�L%

OK
AT+CIPRXGET=2,0,63

+CIPRXGET: 2,0,63,88
��Ƈ" 0����Fewl��ȣ�RF���,;����9B%�.���?��pW�+8c�~
OK
AT+CIPRXGET=2,0,63

+CIPRXGET: 2,0,63,25
@�J�OolU3��>�߱�=��dWڍ+6y�a<���� 
OK
AT+CIPRXGET=2,0,25

+CIPRXGET: 2,0,25,0

OK
AT+CIPSEND=0,12

>

DATA ACCEPT:0,12
AT+CIPSEND=0,75

>FBA�X
      M~��>}+\�}�:NX�
                     k��<�q>	�'����cv�'�9Z��$��٦p�券�*K��
DATA ACCEPT:0,75
AT+CIPSEND=0,6

>
DATA ACCEPT:0,6
AT+CIPSEND=0,45

>(��j�#�QB��Gf��l��GO>Ҏ�|FLSd�
DATA ACCEPT:0,45
AT+CIPRXGET=4,0

+CIPRXGET: 4,0,0

OK
AT+CIPSTATUS=0

+CIPSTATUS: 0,0,"TCP","18.224.85.111","8883","CONNECTED"

OK
AT+CIPRXGET=4,0

+CIPRXGET: 4,0,0

OK
AT+CIPSTATUS=0

+CIPSTATUS: 0,0,"TCP","18.224.85.111","8883","REMOTE CLOSING"

OK
AT+CIPRXGET=4,0

+CIPRXGET: 4,0,0

OK
AT+CIPSTATUS=0

+CIPSTATUS: 0,0,"TCP","18.224.85.111","8883","REMOTE CLOSING"

OK
AT+CIPRXGET=4,0

+CIPRXGET: 4,0,0

OK
AT+CIPSTATUS=0

+CIPSTATUS: 0,0,"TCP","18.224.85.111","8883","REMOTE CLOSING"

OK
AT+CIPRXGET=4,0

+CIPRXGET: 4,0,0

OK
AT+CIPSTATUS=0

+CIPSTATUS: 0,0,"TCP","18.224.85.111","8883","REMOTE CLOSING"

OK
AT+CIPRXGET=4,0

+CIPRXGET: 4,0,0

OK
AT+CIPSTATUS=0

+CIPSTATUS: 0,0,"TCP","18.224.85.111","8883","REM
````  

@NoNamedCat
Copy link

And this is when i uncomment that lines:

OK
AT+CIICR

OK
AT+CIFSR;E0

10.145.77.146

OK
AT+CDNSCFG="8.8.8.8","8.8.4.4"

OK
 success
AT+CGATT?

+CGATT: 1

OK
AT+CIFSR;E0

10.145.77.146

OK
GPRS connected
MQTT not connected
Connecting to a385yk9ja6588n-ats.iot.us-east-2.amazonaws.comAT+CIPCLOSE=0,1

+CME ERROR: operation not allowed
AT+CIPSSL=0

OK
AT+CIPSTART=0,"TCP","a385yk9ja6588n-ats.iot.us-east-2.amazonaws.com",8883

OK

0, CONNECT OK
AT+CIPCLOSE=0,1

0, CLOSE OK
 fail
MQTT not connected
MQTT not connected
MQTT not connected
MQTT not connected

@SebastienBrun
Copy link

SebastienBrun commented May 12, 2022

@NoNamedCat
Yep , it is for the SIM7000G , i answered to @kedzior-io in the bad thread ! My bad!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants