

The SIM800L module is a compact GSM/GPRS module designed for communication over cellular networks. It supports essential functionalities such as SMS, voice calls, and data transmission, making it a versatile choice for IoT applications, remote monitoring, and embedded systems. Its small size and low power consumption make it ideal for projects requiring wireless connectivity in constrained spaces.








| Parameter | Value |
|---|---|
| Operating Voltage | 3.4V to 4.4V |
| Recommended Voltage | 4.0V |
| Power Consumption | Idle: ~1mA, Active: ~200mA, Peak: ~2A |
| Frequency Bands | GSM 850/900/1800/1900 MHz |
| Communication Protocols | AT Commands over UART |
| Data Transmission | GPRS Class 12, up to 85.6 kbps |
| SIM Card Support | Micro SIM |
| Dimensions | 25mm x 23mm x 3mm |
| Pin Name | Pin Number | Description |
|---|---|---|
| VCC | 1 | Power supply input (3.4V to 4.4V, typically 4.0V). |
| GND | 2 | Ground connection. |
| RXD | 3 | UART Receive pin (connect to TX of microcontroller). |
| TXD | 4 | UART Transmit pin (connect to RX of microcontroller). |
| RST | 5 | Reset pin (active low, pull low to reset the module). |
| NET | 6 | Network status LED output (blinks to indicate status). |
VCC pin to the 4.0V power supply.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 of your microcontroller for manual resets.Below is an example of how to send an SMS using the SIM800L module with an Arduino UNO:
#include <SoftwareSerial.h>
// Define RX and TX pins for SoftwareSerial
SoftwareSerial sim800l(10, 11); // RX = 10, TX = 11
void setup() {
// Initialize serial communication
Serial.begin(9600); // For debugging
sim800l.begin(9600); // For SIM800L communication
// Wait for the module to initialize
Serial.println("Initializing SIM800L...");
delay(1000);
// Send AT command to check communication
sim800l.println("AT");
delay(1000);
while (sim800l.available()) {
Serial.write(sim800l.read()); // Print response to Serial Monitor
}
// Set SMS text mode
sim800l.println("AT+CMGF=1"); // Set SMS mode to text
delay(1000);
// Send 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
}
+1234567890 with the recipient's phone number.Module Not Responding to AT Commands:
Frequent Restarts or Unstable Operation:
No Network Signal:
SMS Not Sending:
Q: Can the SIM800L module work with a 5V power supply?
A: No, the module requires a 3.4V to 4.4V power supply. Use a step-down regulator to convert 5V to 4.0V.
Q: How do I check the signal strength?
A: Send the AT+CSQ command. The module will return a value indicating the signal strength.
Q: Can I use the SIM800L for internet access?
A: Yes, the module supports GPRS for data transmission. You can use AT commands to configure and establish a GPRS connection.
Q: What is the purpose of the NET pin?
A: The NET pin drives an LED that indicates the network status. For example, fast blinking means the module is searching for a network, while slow blinking indicates a successful connection.
By following this documentation, you can effectively integrate the SIM800L module into your projects and troubleshoot common issues.