

The SIM800L is a compact GSM/GPRS module that enables communication over mobile networks. It supports SMS, voice calls, and data transmission, making it an essential component for IoT applications, remote monitoring, and embedded systems. Its small size and low power consumption make it suitable for portable and battery-powered devices. The module operates on quad-band frequencies, ensuring compatibility with most mobile networks worldwide.








| Parameter | Value |
|---|---|
| Operating Voltage | 3.4V to 4.4V |
| Recommended Voltage | 4.0V |
| Power Consumption | Idle: ~1mA, Active: ~250mA, Peak: ~2A |
| Frequency Bands | Quad-band: 850/900/1800/1900 MHz |
| Communication Protocols | GSM, GPRS (Class 12) |
| Data Rate | GPRS: Up to 85.6 kbps |
| SIM Card Support | Micro SIM |
| Operating Temperature | -40°C to +85°C |
| Dimensions | 25mm x 23mm x 3mm |
| Pin Name | Pin Number | Description |
|---|---|---|
| VCC | 1 | Power supply input (3.4V to 4.4V) |
| GND | 2 | Ground |
| RXD | 3 | UART Receive pin (connect to TX of MCU) |
| TXD | 4 | UART Transmit pin (connect to RX of MCU) |
| RST | 5 | Reset pin (active low) |
| NET | 6 | Network status LED output |
| ANT | 7 | Antenna connection |
Below is an example of how to send an SMS using the SIM800L and Arduino UNO.
| SIM800L Pin | Arduino UNO Pin |
|---|---|
| VCC | External 4.0V |
| GND | GND |
| RXD | Pin 10 (via level shifter) |
| TXD | Pin 11 |
| RST | Pin 9 |
#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...");
// Send AT command to check communication
sim800l.println("AT");
delay(1000);
if (sim800l.available()) {
Serial.println("SIM800L is ready.");
} else {
Serial.println("No response from SIM800L.");
}
// Send SMS
sendSMS("+1234567890", "Hello from SIM800L!");
}
void loop() {
// Nothing to do here
}
void sendSMS(const char* phoneNumber, const char* message) {
sim800l.println("AT+CMGF=1"); // Set SMS mode to text
delay(1000);
sim800l.print("AT+CMGS=\"");
sim800l.print(phoneNumber); // Set recipient phone number
sim800l.println("\"");
delay(1000);
sim800l.print(message); // Write the SMS content
delay(1000);
sim800l.write(26); // Send Ctrl+Z to send the SMS
delay(5000);
Serial.println("SMS sent!");
}
No Network Connection:
Module Not Responding:
SMS Not Sending:
By following this documentation, you can effectively integrate the SIM800L module into your projects and troubleshoot common issues.