Problems with sim800l

Hello everyone !

I’m trying to use the module SIM800l for a project. As a beginner, I’m using tutorials to understand how it works. Every tutorials I could find use the library SoftwareSerial. But, if I have well understood, it isn’t compatible with my module or it doesn’t exist anymore since I can’t install it. So I’m trying to adapt the code without SoftwareSerial. But I don’t understand how the updateSerial() function works and so I can’t replace it. Here is the code I’m studying.

#include <SoftwareSerial.h>

//Create software serial object to communicate with SIM800L
SoftwareSerial mySerial(3, 2); //SIM800L Tx & Rx is connected to Arduino #3 & #2

void setup()
{
  //Begin serial communication with Arduino and Arduino IDE (Serial Monitor)
  Serial.begin(9600);
  
  //Begin serial communication with Arduino and SIM800L
  mySerial.begin(9600);

  Serial.println("Initializing...");
  delay(1000);

  mySerial.println("AT"); //Once the handshake test is successful, it will back to OK
  updateSerial();
  mySerial.println("AT+CSQ"); //Signal quality test, value range is 0-31 , 31 is the best
  updateSerial();
  mySerial.println("AT+CCID"); //Read SIM information to confirm whether the SIM is plugged
  updateSerial();
  mySerial.println("AT+CREG?"); //Check whether it has registered in the network
  updateSerial();
}

void loop()
{
  updateSerial();
}

void updateSerial()
{
  delay(500);
  while (Serial.available()) 
  {
    mySerial.write(Serial.read());//Forward what Serial received to Software Serial Port
  }
  while(mySerial.available()) 
  {
    Serial.write(mySerial.read());//Forward what Software Serial received to Serial Port
  }
}

Thank you in advance for your help !

That delay(500) looks like loosing up to 500 characters at the baud rate 9600.

See my tutorial on Arduino Serial I/O for the Real World
and Arduino Software Solutions for how to read/write to Serial without blocking

and this project that uses a similar SIM900 SMS remote control

Thank you ! I’ll try following it =)