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
}
}
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.
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.
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 .
The sim800L isn't a requirement of the work but I really want to get it working as a cool extra feature