Looking for support with AT commands and troubleshooting knowledge (Hardware, Software). Arduino UNO, SIM800F GSM Shield.

26 views (last 30 days)
emmanuel jallas
emmanuel jallas on 23 May 2022
Commented: emmanuel jallas on 2 Jun 2022 at 18:08
Hello to everyone.
I will be very gratefull for support and knowledge sharing with AT commands and troubleshooting knowledge with hardware setup and software.
Hardware context :
  • Arduino Uno, SIM800F GSM shield , USB connection and power, Rx -Tx GSM connection strapped on Software Serial
  • Concerning SIM card. Inserted on a mobile phone, can send and receive SMS and phone communications. Data plan available.
Software context : I'm using Serial monitor to send AT commands and receive answers. Aim : to follow manually the proper AT sequence to send one piece of data to one field of one channel.
Code :
// Sending AT commands via Serial Monitor interface
SoftwareSerial mySerial(2,3); // setting up GSM serial communication
void setup()
digitalWrite(8, HIGH); // Switching on GSM shield
Serial.println("Type AT command :");
void loop()
if (mySerial.available())
if (Serial.available())
Setup :
  • AT returns OK, SMS ready, CALL ready
  • AT+CPIN? returns ready
As far I understand the proper sequence of AT commands to connect device to thingspeak server and send data should be this :
  • AT // is SIM800F ready ? good return is : OK
  • AT+CGREG? // is SIM800F registered on GPRS provider network ? good return is : +CGREG: 0,1 (edited)
  • AT+CGATT? // is GPRS attached or not ? good return is : +CGATT: 1
  • AT+CIPSHUT // resets previous IP session if any. good return is : SHUT OK
  • AT+CIPSTATUS // Check if IP stack is intitalized. good return is : STATE: IP INITIAL
  • AT+CIPMUX=0 // Sets single connection mode. good return is : OK
  • AT+CSTT="APN","","" // Starts task. good return is : OK
  • AT+CIPSTATUS // Not needed but for troubleshooting Check IP status. good return is : STATE: IP START
  • AT+CIICR // Brings up wireless connection. good return is : OK and quick flashing led (edited)
  • AT+CIPSTATUS // Not needed but for troubleshooting Check IP status. good return is : STATE: IP GPRSACT (edited)
  • AT+CIFSR // Gets local IP adress. good return is : anything else than ""
  • AT+CIPSTART="TCP", "api.thingspeak....","80" // Starts connection with TCP protocol, TCP, domain name, port. good return is : CONNECT OK
  • AT+CIPSEND // Data sending request. good return is : >
  • > data string // Sends data to the proper field and channel
  • >#026 // Ctrl+Z input to indicate the end of data
  • AT+CIPSHUT // Shuts down UDP context. good return is : SHUT OK
At this time :
  • AT+CGREG? is returning : +CGREG: 1,0 which states : network registration is enabled, device is not registered and searching for operator's network (edited)
  • AT+CGATT? is returning : 0, which states GPRS is detached
  • AT+CIICR is returning +PDP: DEACT, ERROR
Question :
What may prevent network registration and getting a +CGREG: 0,1 return ? (edited)
How can I troubleshoot and assess actual situation ?
Thank you for your insights.
emmanuel jallas
emmanuel jallas on 2 Jun 2022 at 18:08
You are welcome Vinod.
After one month of wandering, I've found that my SIM is partially down, and my GSM shield too. Two problems without any diagnosing methods. SIM worked well in a mobile phone but didn't worked on 2G networks. It was unable to attach to GPRS.
Here are some AT commands that worked well, while SIM and SHIELD didn't...
Start by typing AT+CMEE=2 to get verbose error messages.
  1. if AT+CPIN? returns READY, it's not due to a PIN missing
  2. AT+CCID should return your SIM number
  3. if AT+CSMINS? returns you either +CSMINS: 0,1 or 1,1 your sim is inserted, 0,0 or 1,0 means it's not
  4. AT+CIMI should return your IMSI code which is needed for network registration
  5. AT+GSN should return you the IMEI code of your GSM chip
  6. AT+GMM should return you your GSM chip model
  7. AT&V should return you Default profile, User profile and Active profile, the last one is actual profile used, with parameters set to values shown. Go see your AT command manual for your GSM chip.
  8. AT+CSQ should return you a value <> 99, 0 is best.
The shield perfectly sent data to thingspeak, but didn't sent any SMS... So I spent days checking and testing working programs that didn't worked.
Partially working devices are time gluttons.

Sign in to comment.

Answers (0)


More Answers in the  ThingSpeak Community

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by