GSM issue SIM800L

Hello all ,
i am beginner with arduino, discovered it few weeks ago
i am mechanical engineer trying to learn electronic basics

I am working on a gsm project with

  • arduino mega 2560
  • shield gsm sim800l ( small red card)
  • diode N4007
  • condensator 100uF

--> according to the datasheet of sim800L input voltage is between 3.6 v and 4.4 v

so i follow this link to have 4.2 v in input

--> i follow then the mouting from

my drawing is :
I used 2 diode to decrease tension from 5 to 4.2 4.3 V

The led should blink but it s not blinking at all
I measured a resistance in ohm at the led

I saw a video here but it does not works for me wih smaller cable

and this link with 5v does not works as well

Could you please help me to troubleshooting that issue ?

I read the topic on how to do the first post on the forum but if i missed something to do hesitate to ask me details
thanks in advance
nico

The 5v pin of the Mega can not provide the power needed by the SIM 800l module.

You need either an adequate lipo battery or a buck converter.

See the power supply section of this tutorial

thanks for your answer
yes i am gonna try with a lipo like that which website do you recommand to buy one ?

i was a little worried because i tried with my samsumg phone battery 3.8 V 2600mAh without diode and condensator but it did not work :frowning: not even 1 blink

Make sure the battery is charged (Check voltage is ~4V) and use thick wires.

The following might add some information to that you already have:

https://forum.arduino.cc/index.php?topic=496064.0

Hello all,
I figure it out my issue it came from soldering 1 was not good enough even if i got tension on the pin

I now have an other issue

my mounting is the following

i follow this link for the mounting

my gsm tx go to pin 19 (rx) of arduino mega
my gsm rx go to pin 18 (tx) of arduino mega (hardware serial1)

i used the following code to test the module

//#include <SoftwareSerial.h>

//Create software serial object to communicate with SIM800L
//SoftwareSerial Serial1(49, 48); //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
  Serial1.begin(9600);

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

  delay(1000);

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

void loop()
{

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

void updateSerial()
{
  delay(500);
  while (Serial.available())
  {
    Serial.println("test 1");

    Serial1.write(Serial.read());//Forward what Serial received to Software Serial Port
  }
  while (Serial1.available())
  {

    Serial.write(Serial1.read());//Forward what Software Serial received to Serial Port
    Serial.println(Serial1.available());
    
  }
}

the exact same code than in the tutoral but i remove softserial which does not work with arduino mega

i don 't understand my result because i do not power the sim800l how can i recieved data on serial1 with no power ?
moreover my code does to break from the first loop ?

Initializing...
14:40:42.838 -> AT
14:40:43.349 ->

please help me :slight_smile: :slight_smile:

I do not managed to send sms :frowning:

ps : if you have an idea to connect this phone battery and not hold it :slight_smile: i am taking

my gsm tx go to pin 19 (rx) of arduino mega
my gsm rx go to pin 18 (tx) of arduino mega (hardware serial1)

This looks correct and you appear to have the voltage divider correctly on the mega tx to module rx.

i don 't understand my result because i do not power the sim800l how can i recieved data on serial1 ?

You will need to power the module, with a good connection. "Holding" wires to the battery is doomed to fail.

The grounds between the mega and the module need to be connected.

yes i know i will have to power the module but even if i don t power it i recieved data i cannot understand why

but even if i don t power it i recieved data

What data is received by Serial1 on the Mega when the sim800l is not powered?

this is what i see on serial monitor without sim 800l power

I don't undertand first why serial1.available is not 0 and why it is decreasing
when with this tutorial i never get out of the while loop

The serial pin levels are driven and will depend on power. Idle level is HIGH. Without power the pin on the module may be floating or held low which can create a problem.

Try to specifically set the internal pullup on Mega RX pin

pinMode(19, INPUT_PULLUP);

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.