

The SIM800C is a compact and reliable GSM/GPRS module designed for communication over cellular networks. It supports a wide range of functionalities, including SMS, voice calls, and data transmission, making it a versatile choice for IoT applications, remote monitoring, and embedded systems. With its small form factor and low power consumption, the SIM800C is well-suited for battery-powered devices and space-constrained designs.








The SIM800C module offers robust performance and a variety of features. Below are its key technical specifications:
| Parameter | Value |
|---|---|
| Operating Voltage | 3.4V to 4.4V |
| Operating Current | Idle: ~1mA, Max: ~2A |
| Frequency Bands | GSM 850/900/1800/1900 MHz |
| Data Transmission | GPRS Class 12, up to 85.6 kbps |
| SMS Support | Text and PDU modes |
| Voice Support | Full-duplex, hands-free |
| Operating Temperature | -40°C to +85°C |
| Dimensions | 17.6mm x 15.7mm x 2.3mm |
The SIM800C module has multiple pins for power, communication, and control. Below is the pinout description:
| Pin Number | Pin Name | Description |
|---|---|---|
| 1 | NETLIGHT | Network status indicator (active low) |
| 2 | VCC | Power supply input (3.4V to 4.4V) |
| 3 | GND | Ground |
| 4 | TXD | UART Transmit Data |
| 5 | RXD | UART Receive Data |
| 6 | DTR | Data Terminal Ready (for sleep mode control) |
| 7 | RST | Reset (active low) |
| 8 | MIC_P | Microphone positive input |
| 9 | MIC_N | Microphone negative input |
| 10 | SPK_P | Speaker positive output |
| 11 | SPK_N | Speaker negative output |
| 12 | ANT | Antenna interface |
Below is an example of how to send an SMS using the SIM800C module with an Arduino UNO:
| SIM800C Pin | Arduino Pin |
|---|---|
| VCC | 5V (via regulator) |
| GND | GND |
| TXD | Pin 10 (RX) |
| RXD | Pin 11 (TX) |
| RST | Digital Pin 9 (optional) |
#include <SoftwareSerial.h>
// Define RX and TX pins for SoftwareSerial
SoftwareSerial sim800c(10, 11); // RX = Pin 10, TX = Pin 11
void setup() {
// Initialize serial communication
Serial.begin(9600); // For debugging
sim800c.begin(9600); // For SIM800C communication
// Wait for the module to initialize
delay(1000);
Serial.println("Initializing SIM800C...");
// Send AT command to check communication
sim800c.println("AT");
delay(1000);
while (sim800c.available()) {
Serial.write(sim800c.read());
}
// Set SMS text mode
sim800c.println("AT+CMGF=1"); // Set SMS to text mode
delay(1000);
// Send SMS
sim800c.println("AT+CMGS=\"+1234567890\""); // Replace with recipient's number
delay(1000);
sim800c.println("Hello from SIM800C!"); // SMS content
delay(1000);
sim800c.write(26); // Send Ctrl+Z to send the SMS
delay(5000);
Serial.println("SMS sent!");
}
void loop() {
// No actions in loop
}
Module Not Responding to AT Commands
No Network Connection
SMS Not Sending
Module Restarts During Operation
Q: Can the SIM800C work with 5V logic levels?
A: No, the SIM800C operates at 3.3V logic levels. Use a level shifter if interfacing with a 5V microcontroller.
Q: How do I reduce power consumption?
A: Enable sleep mode using the DTR pin and ensure the module is not actively transmitting when idle.
Q: What is the maximum baud rate supported?
A: The SIM800C supports baud rates up to 115200 bps, but 9600 bps is commonly used for stability.
Q: Can I use the SIM800C for GPS tracking?
A: No, the SIM800C does not have built-in GPS functionality. However, it can be paired with a GPS module for tracking applications.