When a project requires connectivity beyond Wi-Fi range, a GSM module is the practical solution. Whether the goal is to send an SMS alert from a remote weather station, make a call from a security system, or push sensor data over GPRS from a field device, both the SIM800L and SIM900A are the modules that come up most often in maker and engineering circles.
Each uses AT commands, works with Arduino and ESP32, and costs a fraction of what cellular shields used to cost just a few years ago. Understanding the difference between SIM800L and SIM900A clearly before buying saves time, rewiring, and frustration. This guide breaks down exactly how the two modules compare across every dimension that matters for IoT project work.
Key takeaway: Both modules share the same AT command interface and TinyGSM library support — the differences that matter are frequency band support, physical size, power supply requirements, and SIM card format.
The SIMCom Family — What They Share
Before separating them, it helps to understand what makes both modules part of the same family. The SIM800L and SIM900A are both GSM/GPRS modules manufactured by SIMCom. This means they share the same AT command set, the same GPRS data capability (Class 10, up to 85.6 kbps downlink), support for voice calls, SMS, MMS, and TCP/IP stack, and compatibility with the same libraries on the microcontroller side.
For project code, this is very convenient — a sketch written for the SIM800L will run almost identically on the SIM900A after updating the serial pins and baud rate. The TinyGSM Arduino library on GitHub provides a complete abstraction over these AT commands and natively supports both modules with a single unified API.
Full Specifications Comparison
| Parameter | SIM800L | SIM900A |
|---|---|---|
| Chip | SIMCom SIM800L | SIMCom SIM900A |
| Frequency Bands | 850 / 900 / 1800 / 1900 MHz (Quad-band) | 1800 / 1900 MHz (Dual-band) |
| Operating Voltage | 3.7 V – 4.2 V (core); 5 V breakout variants available | 3.3 V – 5 V (onboard regulator) |
| Peak Current Draw | Up to 2 A during TX burst | Up to 2 A during TX burst |
| SIM Card Format | Micro SIM | Standard (Mini) SIM |
| Board Size | 25 mm × 23 mm | 49 mm × 50 mm |
| Antenna Interface | IPX / u.FL connector | SMA (default) + IPX mini |
| Serial Logic Level | TTL (3.3 V / 5 V via breakout) | 3.3 V TTL; 5 V MCU compatible |
| Bluetooth | Bluetooth 3.0 (built-in) | Not supported |
| USB Port (onboard) | No | Yes (for bench testing only) |
| India Coverage | Excellent — all four bands | Good — 1800 MHz coverage areas |
| Typical Use Case | Compact IoT devices, global deployment | Prototyping, bench development |
SIM800L — Deep Dive
Module OverviewThe SIM800L is one of the smallest GSM modules available for maker projects. At just 25 mm × 23 mm, it fits into tight enclosures with ease and is the go-to choice when board space is at a premium.
Frequency Bands
The SIM800L supports all four GSM bands — 850, 900, 1800, and 1900 MHz. This quad-band support is its single biggest practical advantage: it works on virtually any GSM network anywhere in the world, including across India where networks operate on 900 MHz and 1800 MHz depending on the region and operator.
SIM Card & Bluetooth
The module uses a micro SIM card. Most modern SIM cards from Jio, Airtel, Vi, and BSNL come as triple-cut (nano/micro/standard), so this is rarely a limitation. The SIM800L also includes Bluetooth 3.0 support — a rarely mentioned but genuinely useful feature for projects that combine cellular and short-range wireless communication in a single module.
Power Supply Requirement
The operating voltage of the SIM800L core chip is 3.7 V to 4.2 V, which places it in a category that requires careful power supply design. Most breakout boards include a power regulation circuit, but the module itself draws bursts of current up to 2 A during transmission.
⚡ Critical: A USB port on a laptop or a standard Arduino 5 V pin cannot reliably supply 2 A burst current. The result is brownout resets, failed AT command responses, and network registration failures that appear to be firmware or SIM card issues — but are actually power-related.
The recommended power supply approach for the SIM800L is a dedicated LiPo or Li-ion cell at 3.7 V to 4.2 V connected directly to the module's power pins, with a 100 µF to 470 µF capacitor across the supply terminals to absorb current spikes. If powering from a regulated 5 V supply, use the 5 V variant of the SIM800L breakout board and confirm the onboard regulator is rated for at least 2 A continuous.
SIM900A — Deep Dive
Module OverviewThe SIM900A is the larger sibling — at 49 mm × 50 mm, it is nearly four times the board area of the SIM800L. That extra space translates to a more robust layout, two antenna options, and onboard USB — all of which make it friendlier during the prototyping stage.
Frequency Bands
The SIM900A operates on 1800 MHz and 1900 MHz only. In India this is an important consideration: 1800 MHz coverage is excellent in urban and semi-urban areas, but rural deployments may be on 900 MHz where the SIM900A will not register on the network.
SIM Card & Antenna Options
The SIM900A uses a standard (mini) SIM card — the largest of the three common form factors. It ships with both an SMA antenna connector (default) and an IPX/u.FL mini interface, giving you flexibility to choose between an external screw-on antenna or a compact internal option.
Serial Logic & USB
The SIM900A serial port circuit is compatible with 3.3 V single-chip microcontrollers but also works with 5 V microcontrollers through its onboard logic level circuitry — making it a straight drop-in with both 3.3 V systems like ESP32 and 5 V systems like Arduino Uno without any level-shifting hardware. The onboard USB port is convenient for bench testing, but is insufficient for sustained GPRS data transfer at full power.
Power Supply — The #1 Cause of Project Failures
Both the SIM800L and SIM900A draw up to 2 A in short bursts during GSM transmission. This peak current requirement is the leading cause of project failures with both modules — and almost always misdiagnosed as a firmware or SIM card problem.
| Power Source | SIM800L | SIM900A | Verdict |
|---|---|---|---|
| USB (laptop / PC) | ⚠ Unreliable | ⚠ Bench only | Not recommended for TX |
| Arduino 5 V pin | ✗ Insufficient | ✗ Insufficient | Will cause brownout |
| LiPo / Li-ion 3.7 V | ✓ Ideal | — | Best for SIM800L |
| Dedicated 5 V / 2 A regulator | ✓ With 5 V board variant | ✓ Recommended | Most reliable approach |
| Capacitor (100–470 µF) + supply | ✓ Reduces spikes | ✓ Reduces spikes | Always add this |
Rule of thumb: Always provide a dedicated power rail for the GSM module — never share it with the microcontroller supply. Add a bulk capacitor (at minimum 100 µF, ideally 470 µF) directly across the VCC and GND pins of the module to absorb the current spikes during transmission.
Wiring to Arduino & ESP32
Both modules communicate over UART (serial). The standard wiring pattern is the same for both — only the voltage levels differ slightly.
SIM800L → Arduino (Software Serial)
// SIM800L → Arduino Uno wiring
// VCC → External LiPo 3.7V–4.2V (NOT Arduino 5V pin)
// GND → Common GND (Arduino + external supply)
// TXD → Arduino Pin 2 (SoftwareSerial RX)
// RXD → Arduino Pin 3 (SoftwareSerial TX) via 1kΩ + 2kΩ divider (3.3V level)
#include <SoftwareSerial.h>
SoftwareSerial gsm(2, 3); // RX, TX
void setup() {
Serial.begin(9600);
gsm.begin(9600);
delay(3000);
gsm.println("AT"); // Test connection
}
void loop() {
if (gsm.available()) Serial.write(gsm.read());
if (Serial.available()) gsm.write(Serial.read());
}SIM800L / SIM900A → ESP32
// Both SIM800L and SIM900A work identically here.
// SIM900A note: 3.3V TTL on ESP32 GPIO is natively compatible — no divider needed.
#define TINY_GSM_MODEM_SIM800 // or SIM900 — same API
#include <TinyGsmClient.h>
#define GSM_TX 17 // ESP32 TX → Module RXD
#define GSM_RX 16 // ESP32 RX ← Module TXD
HardwareSerial SerialGSM(1);
TinyGsm modem(SerialGSM);
void setup() {
Serial.begin(115200);
SerialGSM.begin(9600, SERIAL_8N1, GSM_RX, GSM_TX);
delay(3000);
modem.restart();
Serial.println(modem.getModemInfo());
}
void loop() { }Essential AT Commands
Both modules share the same AT command set. Here are the most useful commands for getting started:
OK
+CREG: 0,1 = registered
Send an SMS — Complete Example
AT // Test → OK
AT+CSQ // Check signal → e.g. +CSQ: 18,0
AT+CREG? // Check registration → +CREG: 0,1
AT+CMGF=1 // Set text mode → OK
AT+CMGS="+919876543210" // Enter number, press Enter
> Hello from SIM800L! // Type message, then press Ctrl+Z (ASCII 26)
// → +CMGS: 1 then OKWhich Module Should You Choose?
The right module depends on four factors: deployment location, physical space, power supply arrangement, and whether Bluetooth is needed alongside cellular.
SIM800L
- Deploying across India — including rural or semi-urban areas on 900 MHz
- Compact enclosure or tight board space
- Bluetooth + cellular in a single module
- Global use cases requiring all four GSM bands
- Battery-powered field devices with a LiPo cell
SIM900A
- Confirmed 1800 MHz coverage in deployment area
- Prototyping stage — larger board is easier to breadboard
- USB power input for convenient bench debugging
- Prefer a standard (mini) SIM card form factor
- Need an external SMA antenna for better signal
⚠ India-specific note: If your project will be deployed in rural India, the SIM800L is the safer choice. The SIM900A's 1800/1900 MHz dual-band support works well in cities but may fail to register on 900 MHz rural networks used by Jio and Airtel in many regions.
Common Project Use Cases
-
Remote Weather Station SMS Alerts — Use the SIM800L with an ESP32 to collect sensor readings and SMS alerts when thresholds are exceeded. The quad-band SIM800L ensures connectivity even in semi-rural deployments.
-
GSM-Based Security System — Trigger a phone call or SMS to the owner when a sensor detects an intrusion. The SIM900A works well here for indoor home installs in urban areas.
-
GPRS Data Logger — Push sensor readings over TCP/IP to a cloud server at regular intervals. Both modules support GPRS data transfer using the
AT+CIPSTARTandAT+CIPSENDcommands. Use TinyGSM for a cleaner implementation. -
Asset Tracker with GSM + GPS — Pair the SIM800L with a GPS module from the GPS & GSM category to build a vehicle or asset tracking system that sends location via GPRS.
-
OTP / Verification System — Use GPRS and HTTP POST to integrate with an SMS gateway API for one-time password delivery in embedded authentication projects.
Frequently Asked Questions
Jio operates exclusively on 4G LTE (VoLTE) and does not support 2G GSM. The SIM800L is a 2G/GPRS module — it will not register on Jio's network. Use an Airtel, Vi (Vodafone-Idea), or BSNL SIM which still maintain 2G GSM networks across India. Always verify your target operator's 2G coverage before deployment.
In almost every case, this is a power supply issue. The SIM800L draws up to 2 A in short bursts during GSM transmission. If powered from an Arduino 5 V pin or a USB port, the supply cannot sustain this current spike, causing a brownout reset. The fix is a dedicated LiPo cell (3.7 V–4.2 V) with a 470 µF capacitor across the module's power pins. Use the 5 V breakout variant if you prefer a regulated supply.
Yes, almost identically. Both modules use the same AT command set. In the TinyGSM library, simply change the modem definition line from TINY_GSM_MODEM_SIM800 to TINY_GSM_MODEM_SIM900 and adjust the baud rate and serial pins for your wiring. The rest of the code — including SMS, calls, and GPRS data — remains unchanged.
They are all part of the SIM800 family with the same quad-band GSM/GPRS core. The SIM800L is the smallest standalone module (2.5 × 2.3 cm) with a u.FL antenna connector. The SIM800C includes an onboard audio codec and speaker/mic amplifier for voice projects. The SIM800H is an industrial-grade variant in a larger package. For most maker projects, the SIM800L or its 5V breakout variant is the right choice.
For projects requiring only SMS alerts and low-bandwidth GPRS data, 2G modules like the SIM800L remain cost-effective and reliable where 2G networks exist. However, for higher data throughput, better future-proofing, and Jio SIM compatibility, consider upgrading to a 4G module like the SIM7670G or the SIM7600G-H available in our GPS & GSM module collection.
Quick Troubleshooting Checklist
- Power supply is dedicated, separate from the MCU supply rail
- At least 100 µF (preferably 470 µF) capacitor across module VCC and GND
- Network LED blink rate checked — slow blink = registered, fast blink = searching
- SIM card is not Jio (which is 4G-only) — using Airtel, Vi, or BSNL 2G SIM
- Baud rate matches — default for most breakout boards is 9600
-
AT+CSQreturns signal quality ≥ 10 (poor below this) -
AT+CREG?returns0,1or0,5(registered or roaming) - Antenna is firmly connected and not damaged
- For SIM900A: USB power is not used during GPRS data transfer
- TX and RX lines are not swapped (module TX → MCU RX, module RX → MCU TX)
Ready to Build Your IoT Project?
Get the SIM800L, SIM900A, ESP32, and all the components you need — shipped fast across India.
Shop GPS & GSM Modules →