I am using the sim800l gsm module with nodemcu esp8266 and comunicating with it using AT+ commands. The module is working correctly but I am trying to use the command AT+CLCC to get all the current calls' state but it responds with only the first call information and a part of the second call.

This is the response while there are two active calls

15:37:19.156 -> AT+CLCC
15:37:19.156 -> +CLCC: 1,0,1,0,0,"+0123456789",145,"name"
15:37:19.156 -> 
15:37:19.156 -> +CLCC: 2,

I think it is the Serial buffer's problem because the size of the serial buffer is 64 bytes and the response is more than that but I don't know how to handle that

I hope someone can help.

EDIT: this is the code i am using

#include <SoftwareSerial.h>
#include <cstring>

#include <Arduino.h>

#define simTX D3
#define simRX D4

SoftwareSerial sim800l(simRX, simTX);  //RX, TX

void setup() {

  Serial.begin(115200);  //Begin serial communication with Arduino and Arduino IDE (Serial Monitor)

  sim800l.begin(115200);  //Begin serial communication with Arduino and SIM800L


void loop() {



// this method takes input from the serial monitor the pass it to sim800l via serial communication
void updateSerial() {
  while (Serial.available()) {
    sim800l.write(Serial.read());  //Forward what Serial received to Software Serial Port
  while (sim800l.available()) {
    Serial.write(sim800l.read());  //Forward what Software Serial received to Serial Port
  • Could you please share your code? Buffer size shouldn't be an issue depending on how you're fetching the response.
    – Nick S.
    Commented Jul 12, 2023 at 22:38
  • @NickS. i added it in the question :) Commented Jul 13, 2023 at 0:29
  • get rid of delay() ... change while to if ... see what happens
    – jsotola
    Commented Jul 13, 2023 at 1:52
  • @jsotola i removed the delay() and changed the while to if as you mentioned and that was the result 22:54:55.552 -> AT+CLCC 22:54:55.552 -> +CLCC: 1,0,0,0,1,"+0123456789",145,"name" 22:54:55.552 -> 22:54:55.552 -> +CLCC: still the same problem Commented Jul 13, 2023 at 20:57

1 Answer 1


Just for someone in the future who is having the same issue.

the problem was because of the boadrate 115200 is pretty fast for a software serial implementation so i just changed it to 9600

 sim800l.begin(9600);  //Begin serial communication with Arduino and SIM800L

good luck from the past :)

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.