

The SIM800L is a compact GSM/GPRS module that enables communication over mobile 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 | GSM, GPRS (Class 12) |
| Data Rate | GPRS: 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 TX of microcontroller). |
| TXD | 4 | UART Transmit pin (connect to RX of microcontroller). |
| RST | 5 | Reset pin (active low, pull low for at least 100ms to reset the module). |
| NET | 6 | Network status indicator (blinks to indicate GSM network status). |
| ANT | 7 | Antenna connection (external antenna required for proper operation). |
Power Supply:
Connections:
VCC pin to the 4.0V power supply and GND to ground. RXD pin of the SIM800L to the TX pin of your microcontroller. TXD pin of the SIM800L to the RX pin of your microcontroller. ANT pin for reliable network connectivity. RST pin to a GPIO pin of your microcontroller for manual resets.SIM Card:
UART Communication:
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 = 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
delay(1000);
Serial.println("Initializing SIM800L...");
// 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 command
sim800l.println("AT+CMGS=\"+1234567890\""); // Replace with recipient's phone 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, including the country code. Module Not Responding to AT Commands:
Frequent Restarts or Unstable Operation:
No Network Connection:
SMS Not Sending:
Q: Can the SIM800L work with a 5V microcontroller like Arduino UNO?
A: Yes, but you must use a voltage divider or level shifter to step down the 5V logic level to 3.3V for the SIM800L's RX pin.
Q: What type of antenna should I use?
A: Use a GSM-compatible antenna with an IPX connector or an external antenna with an adapter.
Q: How do I change the baud rate of the SIM800L?
A: Use the AT command AT+IPR=<baud_rate> (e.g., AT+IPR=9600) to set the desired baud rate. Save the setting with AT&W.
Q: Can the SIM800L be used for GPS tracking?
A: The SIM800L does not have built-in GPS functionality, but it can be paired with a GPS module to send location data over GSM/GPRS.
By following this documentation, you can effectively integrate the SIM800L module into your projects and troubleshoot common issues.