

The SIM800L is a GSM/GPRS module designed for communication over cellular networks. Manufactured by Arduino with the part ID "UNO," this module supports SMS, voice calls, and data transmission. Its compact size and versatile functionality make it an excellent choice for IoT applications, remote monitoring, and embedded systems requiring cellular connectivity.








| Parameter | Value |
|---|---|
| Operating Voltage | 3.7V to 4.2V |
| Recommended Supply Voltage | 4.0V |
| Operating Current | 0.2A (idle), up to 2A (during transmission) |
| 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 input (3.7V to 4.2V) |
| 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 (blinks to indicate status) |
VCC pin to a 4.0V power source.GND pin to the ground of your circuit.TXD pin of the SIM800L to the RX pin of your Arduino UNO.RXD pin of the SIM800L to the TX pin of your Arduino UNO.RST pin to a GPIO pin of the Arduino 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 = 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);
while (SIM800L.available()) {
Serial.write(SIM800L.read());
}
// Set SMS text mode
SIM800L.println("AT+CMGF=1"); // Set SMS to text mode
delay(1000);
// Send SMS
SIM800L.println("AT+CMGS=\"+1234567890\""); // Replace with recipient's number
delay(1000);
SIM800L.println("Hello from SIM800L!"); // Message content
delay(1000);
SIM800L.write(26); // Send Ctrl+Z to indicate end of message
delay(5000);
Serial.println("SMS sent!");
}
void loop() {
// No actions in loop
}
+1234567890 with the recipient's phone number.Module Not Responding to AT Commands:
Frequent Restarts or Unstable Operation:
No Network Connection:
AT+CSQ command to check signal quality (values above 10 are acceptable).SMS Not Sending:
Q: Can the SIM800L work with 5V logic levels?
A: No, the SIM800L operates at 3.3V logic levels. Use a voltage divider or level shifter for compatibility with 5V microcontrollers.
Q: What is the maximum data rate for GPRS?
A: The SIM800L supports GPRS Class 12 with a maximum data rate of 85.6 kbps.
Q: How can I check the network signal strength?
A: Use the AT+CSQ command. The response will indicate the signal strength, with values above 10 being acceptable.
Q: Can I use the SIM800L for GPS tracking?
A: The SIM800L does not have built-in GPS functionality, but it can be paired with a GPS module for tracking applications.
Q: What type of antenna should I use?
A: Use a GSM antenna compatible with the 850/900/1800/1900 MHz frequency bands for optimal performance.