

The SIM800L is a compact GSM/GPRS module that enables communication over cellular networks. It supports SMS, voice calls, and data transmission, making it an essential component for IoT applications, remote monitoring, and embedded systems requiring wireless connectivity. Its small size and low power consumption make it suitable for portable and battery-powered devices.








| Parameter | Value |
|---|---|
| Operating Voltage | 3.4V to 4.4V |
| Recommended Voltage | 4.0V |
| Power Consumption | Idle: ~1mA, Active: ~200mA |
| Peak Current | ~2A (during transmission bursts) |
| Frequency Bands | GSM 850/900/1800/1900 MHz |
| Communication Protocols | GSM, GPRS (Class 12) |
| Data Transmission Speed | Up to 85.6 kbps |
| SIM Card Support | Micro SIM |
| Dimensions | 25mm x 23mm x 3mm |
| Operating Temperature | -40°C to +85°C |
| Pin Name | Pin Number | Description |
|---|---|---|
| VCC | 1 | Power supply input (3.4V to 4.4V). Recommended: 4.0V. |
| GND | 2 | Ground connection. |
| RXD | 3 | UART Receive pin. Connect to the TX pin of the microcontroller. |
| TXD | 4 | UART Transmit pin. Connect to the RX pin of the microcontroller. |
| RST | 5 | Reset pin. Active LOW. Pull LOW for at least 100ms to reset the module. |
| NET | 6 | Network status LED pin (blinks to indicate network activity). |
| SIM | - | Micro SIM card slot for cellular network connectivity. |
VCC pin to a 4.0V power source.GND pin to the ground of your circuit.RXD pin to the TX pin of your microcontroller (e.g., Arduino).TXD pin to the RX pin of your microcontroller.RST pin to a GPIO pin for software-controlled resets.Below is an example of how to send an SMS using the SIM800L module and an Arduino UNO.
SIM800L VCC → External 4.0V power supplySIM800L GND → Arduino GNDSIM800L RXD → Arduino TX (Pin 1)SIM800L TXD → Arduino RX (Pin 0)SIM800L RST → Arduino Digital Pin 7 (optional)#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(String phoneNumber, String 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 message
delay(1000);
sim800l.write(26); // Send Ctrl+Z to send the SMS
delay(5000);
Serial.println("SMS sent!");
}
+1234567890 with the recipient's phone number.No Response from the Module:
Module Keeps Restarting:
No Network Connection:
SMS Not Sending:
NET pin LED for network status:By following these guidelines, you can effectively integrate the SIM800L module into your projects and troubleshoot common issues.