

The SIM800L is a compact GSM/GPRS module manufactured by SIMCom. It enables communication over cellular networks, supporting functionalities such as SMS, voice calls, and data transmission. With its small form factor and low power consumption, the SIM800L is widely used in IoT applications, remote monitoring systems, and embedded projects requiring cellular connectivity.








The SIM800L module is designed to operate efficiently in a variety of environments. Below are its key technical details:
| Parameter | Value |
|---|---|
| Manufacturer | SIMCom |
| Part ID | SIM800L |
| Operating Voltage | 3.4V to 4.4V |
| Recommended Voltage | 4.0V |
| Power Consumption | Idle: ~1mA, Active: ~250mA, Peak: ~2A |
| Frequency Bands | GSM 850/900/1800/1900 MHz |
| Data Transmission | GPRS Class 12, up to 85.6 kbps |
| Communication Interface | UART (up to 115200 bps) |
| SIM Card Support | Micro SIM |
| Dimensions | 25mm x 23mm x 3mm |
| Operating Temperature | -40°C to +85°C |
The SIM800L module has a total of 12 pins. Below is the pinout and description:
| Pin Number | Pin Name | Description |
|---|---|---|
| 1 | NET | Network status indicator (LED output) |
| 2 | VCC | Power supply input (3.4V to 4.4V, recommended 4.0V) |
| 3 | RST | Reset pin (active low, pull low to reset the module) |
| 4 | RXD | UART Receive pin (connect to TX of microcontroller) |
| 5 | TXD | UART Transmit pin (connect to RX of microcontroller) |
| 6 | GND | Ground |
| 7 | MIC+ | Microphone positive input |
| 8 | MIC- | Microphone negative input |
| 9 | SPK+ | Speaker positive output |
| 10 | SPK- | Speaker negative output |
| 11 | DTR | Data Terminal Ready (used for sleep mode control) |
| 12 | RING | Ring indicator (active low, indicates incoming call or SMS) |
Power Supply:
Connecting to a Microcontroller:
Antenna:
SIM Card:
Reset and Sleep Mode:
Below is an example of how to send an SMS using the SIM800L module and an Arduino UNO:
#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("Failed to communicate with SIM800L.");
}
// Send SMS
sendSMS("+1234567890", "Hello from SIM800L!");
}
void loop() {
// Nothing to do in the loop
}
void sendSMS(String phoneNumber, String message) {
// Set SMS mode to text
SIM800L.println("AT+CMGF=1");
delay(1000);
// Set recipient phone number
SIM800L.print("AT+CMGS=\"");
SIM800L.print(phoneNumber);
SIM800L.println("\"");
delay(1000);
// Send the message
SIM800L.print(message);
delay(1000);
// End the message with Ctrl+Z (ASCII 26)
SIM800L.write(26);
delay(5000);
Serial.println("SMS sent!");
}
Module Not Responding to AT Commands:
SIM Card Not Detected:
No Network Connectivity:
High Power Consumption:
Q1: Can the SIM800L work with a 5V power supply?
A1: No, the SIM800L requires a power supply in the range of 3.4V to 4.4V. Use a voltage regulator to step down from 5V.
Q2: What is the default baud rate of the SIM800L?
A2: The default baud rate is 9600 bps, but it can be configured using AT commands.
Q3: Can the SIM800L be used for GPS tracking?
A3: The SIM800L does not have built-in GPS functionality. However, it can be paired with a GPS module to send location data over GSM.
Q4: How do I update the firmware of the SIM800L?
A4: Firmware updates can be performed using the UART interface and SIMCom's firmware update tools. Refer to the manufacturer's documentation for detailed instructions.