The SIM900A GSM module, manufactured by SIMCOM (Part ID: SIM900A), is a compact and powerful device designed for communication over GSM networks. It supports functionalities such as SMS, voice calls, and GPRS data transmission. This module is widely used in IoT applications, remote monitoring systems, and embedded projects requiring reliable wireless communication.
Parameter | Value |
---|---|
Operating Voltage | 3.2V to 4.8V (Typical: 4.0V) |
Operating Current | Idle: ~20mA, Active: ~200mA, Peak: ~2A |
Frequency Bands | Dual-band GSM 900/1800 MHz |
Communication Protocols | AT Commands (via UART) |
GPRS Connectivity | Class 10, Max. 85.6 kbps (downlink) |
SMS Support | Text and PDU modes |
Voice Support | Full-duplex voice communication |
Dimensions | 24mm x 24mm x 3mm |
Operating Temperature | -40°C to +85°C |
The SIM900A module typically comes with a breakout board for easier interfacing. Below is the pin configuration:
Pin Name | Description |
---|---|
VCC | Power supply input (3.2V to 4.8V). |
GND | Ground connection. |
TXD | Transmit data pin (UART output). Connects to RX of the microcontroller. |
RXD | Receive data pin (UART input). Connects to TX of the microcontroller. |
DTR | Data Terminal Ready. Used for sleep mode control (optional). |
RST | Reset pin. Active low, used to reset the module. |
MIC+ | Microphone positive input for voice communication. |
MIC- | Microphone negative input for voice communication. |
SPK+ | Speaker positive output for voice communication. |
SPK- | Speaker negative output for voice communication. |
NET | Network status LED pin (blinks to indicate GSM network status). |
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 SIM900(7, 8); // RX = Pin 7, TX = Pin 8
void setup() {
// Initialize serial communication
Serial.begin(9600); // For debugging
SIM900.begin(9600); // For SIM900A communication
// Wait for the module to initialize
delay(1000);
Serial.println("Initializing SIM900A...");
// Send AT command to check communication
SIM900.println("AT");
delay(1000);
if (SIM900.available()) {
Serial.println("SIM900A is ready!");
}
// Send SMS
sendSMS("+1234567890", "Hello from SIM900A!");
}
void loop() {
// Nothing to do here
}
void sendSMS(String phoneNumber, String message) {
SIM900.println("AT+CMGF=1"); // Set SMS mode to text
delay(1000);
SIM900.print("AT+CMGS=\"");
SIM900.print(phoneNumber);
SIM900.println("\"");
delay(1000);
SIM900.print(message); // Message content
delay(1000);
SIM900.write(26); // Send Ctrl+Z to send the SMS
delay(5000);
Serial.println("SMS sent!");
}
Module Not Responding to AT Commands:
No Network Connection:
Module Restarts During Operation:
SMS Not Sending:
AT+CMGF=1
) and the SIM card has sufficient balance.Q: Can the SIM900A module connect to 3G or 4G networks?
A: No, the SIM900A only supports GSM 900/1800 MHz bands.
Q: What is the maximum baud rate supported by the SIM900A?
A: The SIM900A supports baud rates up to 115200 bps.
Q: Can I use the SIM900A module for GPS tracking?
A: No, the SIM900A does not have GPS functionality. Use a dedicated GPS module for tracking.
Q: How do I reset the module?
A: Pull the RST pin low for at least 100ms to reset the module.
This documentation provides a comprehensive guide to using the SIM900A GSM module effectively. For further details, refer to the official SIMCOM datasheet.