Stufin
Home Quick Cart Profile

SIM900A GSM-GPRS Modem

Buy Now on Stufin

Frequency Bands

Quad-band GSM (850/900/1800/1900 MHz)

Data Transfer Rate

Up to 85.6 kbps (GPRS)

Power Consumption

1.5W (average)

Operating Temperature

-40C to +85C

Storage Temperature

-40C to +125C

Humidity

5% to 95% (non-condensing)

Interface

UART, SPI, or I2C

Dimensions

24mm x 24mm

Applications

The SIM900A GSM-GPRS Modem is suitable for a wide range of applications, including

Industrial automation

Fleet management

Telematics

Remote monitoring and control

M2M communication

IoT devices

Smart energy management

Security systems

Conclusion

The SIM900A GSM-GPRS Modem is a reliable and feature-rich wireless communication module that provides a cost-effective solution for M2M and IoT applications. Its compact design, low power consumption, and ease of use make it an ideal choice for developers and engineers seeking to integrate wireless connectivity into their devices.

Pin Configuration

  • SIM900A GSM-GPRS Modem Pinout Explanation
  • The SIM900A GSM-GPRS Modem is a widely used cellular communication module that provides a compact and cost-effective solution for IoT applications. The module has a 24-pin interface, which is responsible for transmitting and receiving data, power supply, and other essential functions. Here's a detailed explanation of each pin:
  • Pin 1: VBAT
  • Function: Battery voltage input (3.4V to 4.5V)
  • Description: This pin is used to connect the battery power supply to the modem.
  • Pin 2: GND
  • Function: Ground connection
  • Description: This pin is the ground reference point for the modem and should be connected to the system's ground.
  • Pin 3: RXD
  • Function: Receive data
  • Description: This pin is used to receive data from the modem and should be connected to the transmit pin of the microcontroller or host device.
  • Pin 4: TXD
  • Function: Transmit data
  • Description: This pin is used to transmit data to the modem and should be connected to the receive pin of the microcontroller or host device.
  • Pin 5: DTR
  • Function: Data terminal ready
  • Description: This pin is used to control the modem's data transmission and should be connected to the DTR pin of the microcontroller or host device.
  • Pin 6: DSR
  • Function: Data set ready
  • Description: This pin is used to indicate the modem's readiness to transmit data and should be connected to the DSR pin of the microcontroller or host device.
  • Pin 7: RTS
  • Function: Request to send
  • Description: This pin is used to request the modem to send data and should be connected to the RTS pin of the microcontroller or host device.
  • Pin 8: CTS
  • Function: Clear to send
  • Description: This pin is used to indicate the modem's readiness to receive data and should be connected to the CTS pin of the microcontroller or host device.
  • Pin 9: RI
  • Function: Ring indicator
  • Description: This pin is used to indicate an incoming call or message and should be connected to an interrupt pin of the microcontroller or host device.
  • Pin 10: VRTC
  • Function: Real-time clock voltage input (1.8V to 3.3V)
  • Description: This pin is used to connect an external power supply to the real-time clock.
  • Pin 11: GND
  • Function: Ground connection
  • Description: This pin is the ground reference point for the modem and should be connected to the system's ground.
  • Pin 12: SIM_VCC
  • Function: SIM card voltage input (1.8V to 3.3V)
  • Description: This pin is used to connect the SIM card power supply.
  • Pin 13: SIM_CLK
  • Function: SIM card clock signal
  • Description: This pin is used to provide a clock signal to the SIM card.
  • Pin 14: SIM_IO
  • Function: SIM card I/O signal
  • Description: This pin is used to exchange data with the SIM card.
  • Pin 15: SIM_RST
  • Function: SIM card reset signal
  • Description: This pin is used to reset the SIM card.
  • Pin 16: GND
  • Function: Ground connection
  • Description: This pin is the ground reference point for the modem and should be connected to the system's ground.
  • Pin 17: STATUS
  • Function: Modem status indicator
  • Description: This pin is used to indicate the modem's status (e.g., power on, power off, or error).
  • Pin 18: NETLIGHT
  • Function: Network status indicator
  • Description: This pin is used to indicate the network status (e.g., connected, disconnected, or searching).
  • Pin 19: POWER_KEY
  • Function: Power key input
  • Description: This pin is used to control the modem's power state.
  • Pin 20: VCC
  • Function: Power supply voltage input (3.4V to 4.5V)
  • Description: This pin is used to connect the power supply voltage to the modem.
  • Pin 21: GND
  • Function: Ground connection
  • Description: This pin is the ground reference point for the modem and should be connected to the system's ground.
  • Pin 22: UART_SEL
  • Function: UART selection input
  • Description: This pin is used to select the UART interface (e.g., UART1 or UART2).
  • Pin 23: GND
  • Function: Ground connection
  • Description: This pin is the ground reference point for the modem and should be connected to the system's ground.
  • Pin 24: NC
  • Function: Not connected
  • Description: This pin is not connected and should be left unconnected.
  • Connection Structure:
  • 1. Connect the VBAT pin to a 3.4V to 4.5V power supply.
  • 2. Connect the GND pins to the system's ground.
  • 3. Connect the RXD pin to the transmit pin of the microcontroller or host device.
  • 4. Connect the TXD pin to the receive pin of the microcontroller or host device.
  • 5. Connect the DTR, DSR, RTS, and CTS pins according to the microcontroller or host device's UART interface.
  • 6. Connect the RI pin to an interrupt pin of the microcontroller or host device.
  • 7. Connect the VRTC pin to an external power supply (optional).
  • 8. Connect the SIM_VCC, SIM_CLK, SIM_IO, and SIM_RST pins to the SIM card.
  • 9. Connect the STATUS and NETLIGHT pins to an indicator LED or a microcontroller's input pin.
  • 10. Connect the POWER_KEY pin to a pushbutton or a microcontroller's output pin.
  • 11. Connect the VCC pin to a 3.4V to 4.5V power supply.
  • 12. Connect the UART_SEL pin according to the UART interface selection (optional).
  • Note:
  • Ensure to use a suitable voltage regulator to power the modem, as it requires a stable voltage supply.
  • Use a reliable and stable power supply to avoid damage to the modem or other components.
  • Follow proper ESD precautions when handling the modem and other components.
  • Consult the SIM900A datasheet and application notes for more detailed information on pin connections, configuration, and usage.

Code Examples

SIM900A GSM-GPRS Modem Documentation
Overview
The SIM900A is a popular GSM-GPRS modem module that enables wireless communication over cellular networks. It supports quad-band GSM, GPRS, and EDGE technologies, making it a versatile and widely compatible component for IoT applications.
Technical Specifications
Quad-band GSM: 850/900/1800/1900 MHz
 GPRS class 10, up to 85.6 kbps
 EDGE class 10, up to 236.8 kbps
 Supports SMS, voice calls, and data transmission
 Operating voltage: 3.4-4.5 V
 Interface: Serial UART (TTL)
Code Examples
### Example 1: Sending an SMS using the SIM900A
In this example, we'll demonstrate how to send an SMS using the SIM900A modem with an Arduino board.
Arduino Code
```c++
#include <SoftwareSerial.h>
#define SIM900A_RX 2 // RX pin of SIM900A connected to digital pin 2 of Arduino
#define SIM900A_TX 3 // TX pin of SIM900A connected to digital pin 3 of Arduino
SoftwareSerial sim900a(SIM900A_RX, SIM900A_TX);
void setup() {
  sim900a.begin(9600);
  delay(1000);
  sim900a.println("AT"); // Check for OK response
  delay(500);
  sim900a.println("AT+CMGF=1"); // Set SMS mode to text mode
  delay(500);
  sim900a.println("AT+CMGS=""+1234567890"""); // Set recipient's phone number
  delay(500);
  sim900a.println("Hello from SIM900A!"); // Send SMS message
  delay(500);
  sim900a.println((char)26); // Send Ctrl+Z to terminate message
}
void loop() {
  // Nothing to do here, SMS has been sent
}
```
Note: Replace `+1234567890` with the recipient's phone number.
### Example 2: Connecting to the Internet using GPRS
In this example, we'll demonstrate how to connect to the Internet using the SIM900A modem with a Raspberry Pi board.
Python Code
```python
import serial
# Open the serial connection to the SIM900A
ser = serial.Serial('/dev/ttyUSB0', 9600, timeout=1)
# Check for OK response
ser.write(b'AT
')
response = ser.readline()
if b'OK' not in response:
    print("Error: SIM900A not responding")
    exit()
# Set GPRS mode
ser.write(b'AT+SGACT=1,1
')
response = ser.readline()
if b'OK' not in response:
    print("Error: Failed to set GPRS mode")
    exit()
# Set APN (Access Point Name)
ser.write(b'AT+CSTT="your_apn_here"
')
response = ser.readline()
if b'OK' not in response:
    print("Error: Failed to set APN")
    exit()
# Bring up the GPRS connection
ser.write(b'AT+CIICR
')
response = ser.readline()
if b'OK' not in response:
    print("Error: Failed to bring up GPRS connection")
    exit()
print("Connected to the Internet using GPRS!")
```
Note: Replace `your_apn_here` with your carrier's APN. Consult your carrier's documentation for the correct APN.
### Example 3: Making a Voice Call using the SIM900A
In this example, we'll demonstrate how to make a voice call using the SIM900A modem with an ESP32 board.
Arduino Code
```c++
#include <WiFi.h>
#include <SoftwareSerial.h>
#define SIM900A_RX 16 // RX pin of SIM900A connected to digital pin 16 of ESP32
#define SIM900A_TX 17 // TX pin of SIM900A connected to digital pin 17 of ESP32
SoftwareSerial sim900a(SIM900A_RX, SIM900A_TX);
void setup() {
  Serial.begin(115200);
  sim900a.begin(9600);
  delay(1000);
  sim900a.println("AT"); // Check for OK response
  delay(500);
  sim900a.println("ATD+1234567890;"); // Make a voice call to the specified number
  delay(500);
}
void loop() {
  // Nothing to do here, call has been initiated
}
```
Note: Replace `+1234567890` with the recipient's phone number.
Remember to consult the SIM900A datasheet and your board's documentation for specific pin connections and configuration requirements.