Not Registered On the Network Problem

I have picoLTE and try to communicate with thingspeak. I registered it with sixfab and it is active now. I created a thingspeak channel and mqtt device truely. I wrote a micropyton code and config.json file and added pico_lte file then run it. However, I get the response below

INFO: Result: {‘status’: 1, ‘response’: [‘+CREG: 0,2’, ‘OK’], ‘interval’: 0}

It seems “Flicker slowly (200 ms High/1800 ms Low)” when I check the status led. In troubleshooting page, it is stated that AT command output returns “+CREG: 0,2” it indicates that your device is not registered on the network. I wait response for minutes but still not. How can I solve the registeration problem ? Can anyone share a solution suggestion about my problem? Thank you.

----------------------------------- MICROPYTHON CODE----------------------------------------------------

from pico_lte.core import PicoLTE
from pico_lte.common import debug
import time

picoLTE = PicoLTE()

payload = {"field1": 30, "field2":40, "status": "picoLTE_THINGSPEAK_EXAMPLE"}"Publishing data to ThingSpeak...")
result = picoLTE.thingspeak.publish_message(payload)"Result:", result)
-------------------------------------CONFIG.JSON FILE-----------------------------------------------------
    "thingspeak": {
        "channel_id": "XXXXXXX",
        "mqtts": {
            "client_id": "XXXXXXXXXXXXXXXXXXXXX",
            "username": "XXXXXXXXXXXXXXXXXXXXX",
            "password": "XXXXXXXXXXXXXXXXXXXXX"


The troubleshooting page provides solutions for this problem. Here’s a helpful topic:


I gave priority to GSM. I could make data transfer succsessfully for once. I ensure that the device is active. The problem may be about balance but I could not solve it and I do not know how to solve.

When I checked, your device is in an inactive state. When you activate it, it will register on the network.


I activeted it again. Could you register it ? Thank you.

This is not a manual process. Can you run your code and try it? Or check with the AT+CREG? AT command. Results indicating registration should be like: +CREG: 0,1 / +CREG: 0,5

I am trying but still get +CREG: 0,2
INFO: Result: {‘status’: 1, ‘response’: [‘+CREG: 0,2’, ‘OK’], ‘interval’: 0}

Can you share the following AT command outputs:


AT+COPS? → {‘response’: [‘AT+COPS?\r’, ‘+COPS: 0’, ‘OK’], ‘status’: 0}
AT+COPS=? → {‘response’: ‘timeout’, ‘status’: 2}
AT+CSQ → {‘response’: ‘timeout’, ‘status’: 2}
AT+CGATT? → {‘response’: ‘timeout’, ‘status’: 2}
AT+QNWINFO → {‘response’: ‘timeout’, ‘status’: 2}

AT+COPS=? has a response time of 180 sec. If you exit early or don’t set the proper timeout, It will lead to a timeout error and similar for the following commands.


Helpful topic about timeout: Pico LTE Troubleshooting - AT Commands


I set AT+COPS=? response time to 180 sec then I sent query about related command. I still can not make data transfer. Responses are as follows.

AT+COPS? →{‘response’: [‘+COPS: 0’, ‘OK’], ‘status’: 0}
AT+COPS=? → {‘response’: ‘timeout’, ‘status’: 2}
AT+CSQ → {‘response’: [‘AT+CSQ\r’, ‘+CSQ: 99,99’, ‘OK’], ‘status’: 0}
AT+CGATT? → {‘response’: [‘AT+CGATT?\r’, ‘+CGATT: 0’, ‘OK’], ‘status’: 0}
AT+QNWINFO →{‘response’: [‘AT+QNWINFO\r’, ‘+QNWINFO: No Service’, ‘OK’], ‘status’: 0}