The SIM900A GSM Module is a compact and reliable GSM/GPRS module designed to enable communication over mobile networks. It allows devices to send and receive SMS, make voice calls, and connect to the internet using GPRS. This module is widely used in IoT applications, remote monitoring systems, and embedded projects requiring wireless communication.
The SIM900A GSM Module is designed to operate efficiently in a variety of environments. Below are its key technical details:
Parameter | Specification |
---|---|
Operating Voltage | 3.2V to 4.8V (Typical: 4.0V) |
Operating Current | Idle: ~20mA, Max: ~2A during transmission |
Frequency Bands | Dual-band GSM 900/1800 MHz |
Communication Interface | UART (3.3V TTL logic) |
GPRS Connectivity | Class 10 |
SMS Support | Text and PDU modes |
Voice Call Support | Full-duplex voice communication |
Dimensions | 24mm x 24mm x 3mm |
Operating Temperature | -40°C to +85°C |
The SIM900A module has several pins for power, communication, and control. Below is the pinout description:
Pin Number | Pin Name | Description |
---|---|---|
1 | VCC | Power supply input (3.2V to 4.8V) |
2 | GND | Ground connection |
3 | TXD | UART Transmit pin (connect to RX of microcontroller) |
4 | RXD | UART Receive pin (connect to TX of microcontroller) |
5 | DTR | Data Terminal Ready (used for sleep mode control) |
6 | RST | Reset pin (active low, used to reset the module) |
7 | MIC+ | Microphone positive input for voice calls |
8 | MIC- | Microphone negative input for voice calls |
9 | SPK+ | Speaker positive output for voice calls |
10 | SPK- | Speaker negative output for voice calls |
11 | NET | Network status indicator (blinks to indicate GSM network status) |
12 | ANT | Antenna connection for GSM signal reception |
AT
to check communication and AT+CMGF=1
to set SMS mode to text.Below is an example of how to send an SMS using the SIM900A module with an Arduino UNO:
#include <SoftwareSerial.h>
// Define RX and TX pins for SoftwareSerial
SoftwareSerial SIM900A(7, 8); // RX = Pin 7, TX = Pin 8
void setup() {
Serial.begin(9600); // Initialize Serial Monitor
SIM900A.begin(9600); // Initialize SIM900A at 9600 baud rate
Serial.println("Initializing SIM900A...");
delay(1000);
// Send AT command to check communication
SIM900A.println("AT");
delay(1000);
while (SIM900A.available()) {
Serial.write(SIM900A.read()); // Print response to Serial Monitor
}
// Set SMS mode to text
SIM900A.println("AT+CMGF=1");
delay(1000);
// Send SMS to a phone number
SIM900A.println("AT+CMGS=\"+1234567890\""); // Replace with recipient's number
delay(1000);
SIM900A.println("Hello, this is a test SMS from SIM900A!"); // SMS content
delay(1000);
SIM900A.write(26); // Send Ctrl+Z to indicate end of message
delay(5000);
Serial.println("SMS sent!");
}
void loop() {
// No actions in loop
}
Module Not Responding to AT Commands
No GSM Network Signal
SIM Card Not Detected
High Power Consumption
Q: Can the SIM900A module work with 5V logic microcontrollers?
A: No, the SIM900A operates at 3.3V logic. Use a level shifter to interface with 5V microcontrollers.
Q: How do I check the network signal strength?
A: Use the AT command AT+CSQ
. The response will indicate the signal strength.
Q: Can I use the SIM900A for internet connectivity?
A: Yes, the module supports GPRS for internet access. Use AT commands like AT+SAPBR
to configure GPRS.
Q: What is the default baud rate of the SIM900A?
A: The default baud rate is 9600. You can change it using the AT+IPR
command.