SIM800L sending weird symbols, cant get it to test AT commands

HI, I'm from the UK. I know that the SIM800L may not be usable in some areas of the UK but the AT commands should still work on the Serial monitor? Currently no matter what baud I have tried it sends weird symbols. I would really appreciate any help as I am really struggling. Thank you so much! Currently the Sim is flashing at 1 flash per second which means it isnt properly working, but even when it was flashing at once every 3 seconds when I was in a place with signal the serial monitor wasn't working without sending weird symbols.

Below I have attached my code and also a screenshot of the serial monitor:

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

the code is copied from here: In-Depth: Send Receive SMS & Call with SIM800L GSM Module & Arduino


What baud is your serial monitor? (19200)
What baud is your Serial.begin();? (9600)
Do you supply adequate power? 4VDC at 2A.

No, 1Hz means the module has power, but is not connected to a network.

You have not mentioned a voltage divider on the RX of the module. You will need that.

Show the output you are getting.

1 Like

Connect a 1k/2k voltage divider to the Arduino's tx line, and a 1k series resistor to the Arduino's Rx line.

Hi, sorry! I've kept the serial begin at 9600 the whole time and tried changing the baud of the serial monitor. Changing it to different numbers has changed the symbols it produces, I thought I was getting close to the correct baud of the sim and it would start doing it properly but never found the value. Should I keep going through them all until I get the right one? Once this is found, it should do the AT commands even though the network is connected right? I have used this as a guide so my version should be connected properly. I have a 1k ohm for the rx and 2 1 kohm resistors in
series for the tx (I believe) and also a dc-dc buck converter to give the sim800L 4v down from 5.


I think I have done this but it still seems to be not working?

It's hardly crucial, but are your resistors 10k?

The baud output for the Serial.being(); must match the baud of your IDE Serial Monitor. 9600 is a good number for now. You will be looking for the issue elsewhere.

Do you have 1M ohm (brown, black, yellow - pictures look that way to me) resistors on the divider rather than 1k/2k? That might be too much of a load.

I'd be redoing that soldering. Starting with the circled pin.

Those appear to be 10K resistors, not 1K.

oh my I didn't even notice I feel so silly, thank you! :man_facepalming:

So am I correct in saying the baud of the myserial.begin for the Sim800L and the baud of the ide must always match, but they don't have to match the serial.begin? I thought originally that changing the myserial.begin and serial monitor baud enough should eventually make it so that the characters on the serial monitor aren't a jumbled mess. I will start by changing the resistors to see if this makes it work, or if the issue still persists. Before this, I think I went through most of the combinations for bauds and it didn't work so I'm very confused - learning about it as I go along haha. Upon inspection I may have gotten my rx and tx pins confused so will also check that tomorrow morning.

We have numerous pots of different resistors at my uni all labelled and I could have sworn that I took the correct ones but I must've made a mistake when grabbing them, so I instead had the 10k ohms resistors :sweat_smile:.

The sim800L isn't a requirement of the work but I really want to get it working as a cool extra feature :slight_smile:

Thank you, I know the soldering wasn't great but was hoping it wouldn't impact functionality. I'll make sure to do this!

No. Read post #7.