Cirkit Designer LogoCirkit DesignerYour all-in-one circuit design IDE Launch Cirkit Designer App

How to Use SIM900A gsm module: Examples, Pinouts, and Specs

Image of SIM900A gsm moduleDesign with SIM900A gsm module in Cirkit Designer

Introduction

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.

Explore Projects Built with SIM900A gsm module

Use Cirkit Designer to design, explore, and prototype these projects online. Some projects support real-time simulation. Click "Open Project" to start designing instantly!
Image of Arduino UNO and SIM900A GSM Module Interface: A project utilizing SIM900A gsm module in a practical application
Arduino UNO and SIM900A GSM Module Interface

This circuit connects an Arduino UNO microcontroller with a SIM900A GSM/GPRS module, enabling cellular communication capabilities. The Arduino's digital pins D7 and D8 are connected to the SIM900A's 5VT and 5VR pins, likely for serial communication. A separate 5V connector provides power to the SIM900A, with common ground connections established between all components.

Open Project in Cirkit Designer

Common Applications and Use Cases


Technical Specifications

Key Technical Details

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

Pin Configuration and Descriptions

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).

Usage Instructions

How to Use the SIM900A in a Circuit

  1. Power Supply: Ensure a stable power supply of 4.0V (typical). Use a capacitor (e.g., 1000µF) near the module to handle peak current demands.
  2. UART Communication: Connect the TXD and RXD pins to the RX and TX pins of your microcontroller, respectively. Use a level shifter if your microcontroller operates at 5V logic.
  3. Antenna: Attach a GSM antenna to the module for proper signal reception.
  4. SIM Card: Insert a valid SIM card into the SIM slot.
  5. Initialization: Use AT commands to initialize the module and configure its settings.

Important Considerations and Best Practices

Example: Connecting SIM900A to Arduino UNO

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!");
}

Troubleshooting and FAQs

Common Issues and Solutions

  1. Module Not Responding to AT Commands:

    • Cause: Incorrect UART connection or baud rate.
    • Solution: Verify TXD and RXD connections. Ensure the baud rate matches (default: 9600).
  2. No Network Connection:

    • Cause: Poor signal strength or incompatible SIM card.
    • Solution: Check the antenna connection and ensure the SIM card supports GSM 900/1800 MHz bands.
  3. Module Restarts During Operation:

    • Cause: Insufficient power supply.
    • Solution: Use a power source capable of providing at least 2A. Add a capacitor near the module.
  4. SMS Not Sending:

    • Cause: Incorrect SMS format or SIM card issue.
    • Solution: Ensure the module is in text mode (AT+CMGF=1) and the SIM card has sufficient balance.

FAQs


This documentation provides a comprehensive guide to using the SIM900A GSM module effectively. For further details, refer to the official SIMCOM datasheet.