GSM 800L AT command is not working

the voltage coming is 4.14V but when i plug the wires to the gsm the voltage become 2.09V why?
AT command not working this is my code:

#include <SoftwareSerial.h>

String Arsp, Grsp;
SoftwareSerial gsm(10, 11); // RX, TX

void setup() {
  // put your setup code here, to run once:

  Serial.println("Testing GSM SIM800L");


void loop() {
  // put your main code here, to run repeatedly:

    Grsp = gsm.readString();

    Arsp = Serial.readString();


What power supply are you using?
Looks like your power supply is unable to supply enough current.

5V power supply I added up some resistor so it delivers 4.14V but when I connect the wires to vcc and ground it becomes 2.09V dunno why

It doesnt work like that. Your 5V power supply should be able to supply 4V @ 2A current.
Use regulators like LM39302. or LM2596.

I have 2N3904 is that ok?

Am talking about regulators/ LDO.
2N3904 is a transistor , it wont work

Thank you it’s working now but when I use this code it’s not working it’s not sending the message

 *   Author@ExploreEmbedded 
 *   Example to Send messages Interactively using GSM SIM800L
 *   Thanks to Cristian Steib( for the library.
 *      PINOUT: 
 *        _____________________________
 *       |  ARDUINO UNO >>>   SIM800L  |
 *        -----------------------------
 *            GND      >>>   GND
 *        RX  10       >>>   TX    
 *        TX  11       >>>   RX
 *       RESET 2       >>>   RST 

#include <Sim800l.h>
#include <SoftwareSerial.h> //is necesary for the library!! 
Sim800l Sim800l;  //to declare the library
char text[161]=""; //buffer to store message
char number[11]=""; //phone number to send message
int cnt;
bool error; //to catch the response of sendSms

void setup(){
	  Sim800l.begin(); // initializate the library. 

void loop(){

      //Read the Number
	    Serial.print("\nEnter 10 digit Phone Number:");
      cnt = Serial.readBytesUntil('\n',number, 11);
      number[cnt] = '\0';

      //clear the serial input buffer so that no typed characters are pending
      delay(1000); //delay required before clearing the input buffer
      while(Serial.available()>0) //clear buffer

      //Read the Message to be sent
      Serial.print("Enter Message:");
      cnt = Serial.readBytesUntil('\n',text, 160);
      text[cnt] = '\0';

      while(Serial.available()>0) //clear buffer
      //Send the message and display the status
      error = Sim800l.sendSms(number,text);
      Serial.println("Error Sending Message");
      Serial.println("Message Sent Successfully!");



AT+CMGR=1 can be due to no message in inbox. Is there a message present in that location 1?

I don’t understand, plus my gsm is blinking like 7 times then stop and start again. I don’t know why every command is just error apart from the at command that works

This can happen if your power supply is not giving correct voltage or enough current.
Its trying to connect to network and switching off due to over voltage or under voltage when current draw increases. Observe the power line with scope to see if there is a pull down of voltage.

I fixed it but still not sending could the antenna be the problem

How is LED blinking now? Does it get stable?
Are you able to ring the SIM card number ?

The LED is blinking without stopping I still can’t send a message

Were you able to fix it?
Show us the circuit what you are using, How you are connecting power with details then we can find out why its happening.
Once we fix power side issues then can move ahead to network side

1 Like

See the topic SIM800L EVB powering problem we there they sorted out a similar problem.

Your power wires look too long. Use short wires from 4V source to module. As @ALEXIS said, go through that thread, it might be helpful.

AOA bro I have the same problem. gsm sim 800l working but after coding no response from gsm. GSM blinking 1 time after 3 seconds it’s means that gsm working.

check if you have a common ground between your microcontroller and sim800l module. If you have a common ground and have a logic analyzer then check if your MCU is actually sending any signals if it is not then check your code maybe you have connected sim800 to pin 4 but your program is sending AT commands through pin5 or some other pin.