GSM Module (SIM 800L) Not working

Hey guys,

I bought a SIM800L module like the one in the following link with the same antenna:

I uploaded the following code:

#include <SoftwareSerial.h>

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

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
  }
}

First thing I notice once I connect the arduino mega through the USB is that the SIM800L blinks 3 times and then stops for around 20 seconds then turns back on once again and repeats the same thing again for 20 secs.

For the connection, 5vin --> 5V of the arduino.
GND --> GND of the arduino.
VDD--> not connected
TXD--> pin 18 of arduino
RXD--> pin 19 of arduino
GND--> GND of arduino
RST--> not connected

All it displays on the serial monitor is "Initializing...."

Several issues.

You can not power the SIM800l module from the Arduino. It needs a separate power supply which can provide up to 2A.

With a Mega you should use hardware Serial1 on pins 18 and 19 instead of software serial.

Second, TX of the device connects to RX(19) of the Arduino and RX of the device connects to TX(18) of the Arduino.

There should be a voltage divider on the Arduino TX to Module RX.

There is a good tutorial here covering the power and voltage divider issues.

1 Like

Thanks for your help.

1 more question, Does this module support 4G sim cards or only 2G?

Does this module support 4G sim cards or only 2G?

I believe that 4G sim cards are backwards compatible.

I'm not certain if you are asking a question about the SIM card, or about the network service you can connect to. The SIM800l can only connect to a 2G (GSM/GPRS) network and work at that speed.

I managed to modify the things you mentioned above. Now it is looking for a signal but cant connect strangely. I am pretty sure that the network coverage is strong. What is the issue here?

I am pretty sure that the network coverage is strong. What is the issue here?

Where are you located? Is 2G service available?

Do some research on the AT commands available for checking signal strength, network and sim card. See what the module can tell you.

Reminder the problem being faced is that SIM800L module keeps blinking every second, meaning it is not connected to a network.

I have 4G service available. The issuse is that I tried communicating through AT commands but it does not reply. So if I type AT, it doesnt show on the serial monitor nor it replies back with OK.

Im using the code mentioned above. All it displays is "Initializing..." thats it.

Note: Im communicating with the arduino using the cable attached. I have read that communication can only be done using USB to TTL. Is that the reason?

Note: Im communicating with the arduino using the cable attached. I have read that communication can only be done using USB to TTL. Is that the reason?

No. Connecting a computer to an Arduino with a USB cable is standard. There is a TTL>USB converter on the Arduino. You should be able to confirm communiction between the Arduino and the computer with any of the basic ide examples which use Serial communication.

The issue is that I tried communicating through AT commands but it does not reply. So if I type AT, it doesn't show on the serial monitor nor it replies back with OK.

You need to back up and achieve AT communications between the Arduino and Sim800l. You can do this without using the monitor by hard coding the AT commands in the code. There are plenty of examples available on the internet,

I have 4G service available

I have no experience with whether or not the Sim 800l will function properly with a 4G SIM. According to the internet, in the case of phones, some older 2G phones will work with a 4G sim. There is also the issue of the network you are trying to connect with, and what services and signals are provided by them.

None of this matters if the Arduino can't communicate with the module.

I managed to modify the things you mentioned above.

Maybe you didn't do it correctly. Can you provide a wiring diagram.

cattledog:
You need to back up and achieve AT communications between the Arduino and Sim800l. You can do this without using the monitor by hard coding the AT commands in the code. There are plenty of examples available on the internet

If you review the code written above, I did hard code the AT command but it does not seem to be working.

cattledog:
Maybe you didn't do it correctly. Can you provide a wiring diagram.

Well, I attached a picture of the power supply I'm using and connecting it to the 5V and GND pins of the module. According to my knowledge, I dont need to hook up the arduino to pick up a signal. The module does not pick up a signal. I measured the current drawn and it was about 65mA, which is way too low. It should draw between 1A-2.5A

compressjpeg (1).zip (99.2 KB)

If the fast blink pattern indicates that the module can not find a network to register on to, and you can not communicate with the module using AT commands, you are in a doubly bad place. I don't really have any advice for you.

Understood, Thanks for your help anyways.