

The SIM800L is a compact and cost-effective quad-band GSM/GPRS module designed for communication over cellular networks. It supports TTL serial communication, making it easy to interface with microcontrollers and other devices. This module is widely used in IoT applications for sending and receiving SMS, making voice calls, and connecting to the internet via GPRS. The included antenna ensures reliable signal reception, even in areas with weaker network coverage.








| Parameter | Specification |
|---|---|
| Operating Voltage | 3.7V to 4.2V |
| Recommended Voltage | 4.0V |
| Operating Current | 20mA (idle), ~200mA (average during TX) |
| Peak Current | ~2A |
| Communication Interface | TTL Serial (UART) |
| Frequency Bands | GSM850, EGSM900, DCS1800, PCS1900 |
| GPRS Connectivity | Class 12 |
| Baud Rate | 1200 to 115200 bps (default: 9600 bps) |
| Dimensions | 25mm x 23mm x 3mm |
| Pin Name | Pin Number | Description |
|---|---|---|
| VCC | 1 | Power input (3.7V to 4.2V). Use a stable power source to avoid resets. |
| GND | 2 | Ground connection. |
| TXD | 3 | Transmit data (UART output). Connect to RX pin of the microcontroller. |
| RXD | 4 | Receive data (UART input). Connect to TX pin of the microcontroller. |
| RST | 5 | Reset pin. Active low. Pull low for at least 100ms to reset the module. |
| NET | - | Network status LED (blinks to indicate network activity). |
Power Supply:
Connections:
VCC pin to the power source and the GND pin to ground. TXD pin of the SIM800L to the RX pin of your microcontroller. RXD pin of the SIM800L to the TX pin of your microcontroller. RST pin to a GPIO pin of your microcontroller for manual resets.Antenna:
Serial Communication:
AT Commands:
AT - Test communication with the module. AT+CSQ - Check signal quality. AT+CMGF=1 - Set SMS mode to text. AT+CMGS="+1234567890" - Send an SMS to the specified number.Below is an example code to send an SMS using the SIM800L module:
#include <SoftwareSerial.h>
// Define RX and TX pins for SoftwareSerial
SoftwareSerial SIM800L(10, 11); // RX = Pin 10, TX = Pin 11
void setup() {
// Initialize serial communication
Serial.begin(9600); // For debugging
SIM800L.begin(9600); // For SIM800L communication
// Wait for the module to initialize
delay(1000);
Serial.println("Initializing SIM800L...");
// Test communication with the module
SIM800L.println("AT");
delay(1000);
if (SIM800L.available()) {
Serial.println("Module is ready!");
} else {
Serial.println("No response from module.");
}
// Set SMS mode to text
SIM800L.println("AT+CMGF=1"); // Set SMS mode to text
delay(1000);
// Send an SMS
SIM800L.println("AT+CMGS=\"+1234567890\""); // Replace with recipient's number
delay(1000);
SIM800L.println("Hello from SIM800L!"); // SMS content
delay(1000);
SIM800L.write(26); // Send Ctrl+Z to indicate end of message
delay(5000);
Serial.println("SMS sent!");
}
void loop() {
// Nothing to do here
}
AT+CSQ command to check signal quality. A value of 10 or higher is recommended. Module Keeps Resetting:
No Response to AT Commands:
Poor Signal Reception:
Cannot Send SMS:
Q: Can I power the SIM800L directly from the Arduino 5V pin?
A: No, the SIM800L requires 3.7V to 4.2V. Use a step-down converter or a LiPo battery.
Q: How do I check if the module is connected to the network?
A: Use the AT+CREG? command. A response of +CREG: 0,1 indicates the module is registered on the network.
Q: What is the default baud rate of the SIM800L?
A: The default baud rate is 9600 bps.
Q: Can the SIM800L be used for internet connectivity?
A: Yes, the module supports GPRS for internet connectivity. Use AT commands like AT+CIPSTART to establish a connection.
This concludes the documentation for the SIM800L module.