SIM900A GSM Module

SIM900A GSM Module is the smallest and cheapest module for GPRS/GSM communication. It is common with Arduino and microcontroller in most of embedded application. The module offers GPRS/GSM technology for communication with the uses of a mobile sim. It uses a 900 and 1800MHz frequency band and allows users to receive/send mobile calls and SMS. The keypad and display interface allows the developers to make the customize application with it. Furthermore, it also has modes, command mode and data mode. In every country the GPRS/GSM and different protocols/frequencies to operate. Command mode helps the developers to change the default setting according to their requirements.

SIM900A Pin Configuration

The Module SIM900A looks like a single chip but it has a bunch of features that can help to build almost many commercial applications. Although, there are a total of 68 pins on SIM900A and using these pins helps to build the applications. But we will need few pins if you we use a module for interfacing with Arduino. We lists details of pinout diagram in next section.

SIM900A GSM Module Pinout

SIM900A GSM Module Pin Configuration Descripton

GPIO Pins

The GPIO pins help to perform the simple and advance I/O function. All pins give the maximum output equal to the power supply which is useable to control most of the devices like sensors and other modules. All GPIO pins in SIM900A are:

  • GPIO1 – Pin40
  • GPIO2 – Pin41
  • GPIO3 – Pin42
  • GPIO4 – Pin43
  • GPIO5 – Pin44
  • GPIO6 – Pin47
  • GPIO7 – Pin48
  • GPIO8 – Pin49
  • GPIO9 – Pin50
  • GPIO10 – Pin51
  • GPIO11 – Pin67
  • GPIO12 – Pin68

Status Pins

The module has two status pins which help to indicate two different kinds of status. The first one is the working status of the module and the second for communication status. Net status means either the module is connecting to the network or other network functions, etc. Both these pins can’t operate LED directly. They always act with a combination of a transistor.

  • STATUS – Pin52
  • NIGHTLIGHT – Pin66

SIM900A Display Interface Pins

The device offers a 4 pin display interface with itself. The display isn’t necessary, it is only in case of requirement. The use of interface helps to get the visualization with the module and make it an application. All display pins are:

  • DISP_DATA – Pin12 – For Display Data
  • DISP_CLK – Pin11 – For Clock Input
  • DISP_CS – Pin14 – To enable the display
  • DISP_D/C – Pin13 – To select between data and command

I2C Pins

SIM900A has multiple kinds of communication and I2C is one of them due to is popularity. The module has a single I2C protocol pin, which helps to build the application with any module with that communication.

  • SCL – Pin38
  • SDA – Pin37

SDA for data and SCL for clock pulse.

SIM900A GSM Module Keypad interface Pins

The two-pin keypad is interfaceable with the module. The module will take the keypad data as a 2D matrix value from the KCB pins for each value. The keypad interface pins in the module are:

  • KBR0~KBR4 (ROWS) – Pin40~Pin44
  • KBC0~KBC4 (COLUMN) – Pin47~Pin51

Serial Port

The UART serial interface uses the two pins for proper data communication, which are RX and TX. Both pins have no independence on any other pins or modules. In SIM900A these pins are available but it also has some other pins for status/indication of data. By combining these pins, the serial port helps to generate the RS-232 connector too. All the serial pins are:

  • RXD – Pin10 – To receive the data
  • TXD – Pin 9- To send the data
  • RTS – Pin8 – To send the request of data transmission
  • CTS – Pin7 – To clear the send request
  • RI – Pin4 – Ring indicator
  • DSR – Pin6 – To indicate that data set ready
  • DCD – Pin5 – To indicate data carry detect
  • DTR – Pin3 – To indicate data terminal ready

Debug Interface

Debugging helps the developers to debug the module and update its firmware. In this module, there are sperate serial interface pins for debugging. Both pins are:

  • DBG_TXD – Pin27 – For Data Transmission
  • DBG_RXD – Pin28 – For Data receiving

SIM Interface

As we know that module SIM900A is a GPRS/GSM module. The module is dependent on some devices for some of its features. The most important one is the SIM. The SIM needs to connect with the module for GPRS/GSM functions to fully operate. All the sim interface of the module is:

  • SIM_VDD – Pin30 – Power Supply of the SIM
  • SIM_DATA – Pin31 – For data output
  • SIM_CLK – Pin32 – For clock pulse
  • SIM_RST – Pin33 – For reset
  • SIM_PRESENCE – Pin34 – To detect the SIM

SIM900A Analog to Digital converter Pins

The module has only a single pin to detect and convert the analog signal to digital for SIM900A. The voltage range on the ADC pin is from 0 to 3 only.

  • ADC – Pin25

PWM Pins

The PWM is mostly in microcontrollers for industrial applications but due to IoT, the module offers two PWM pins which helps to make the IoT and PWM based device without using any third interface.

  • PWM1 – Pin35
  • PWM2 – Pin36

Audio Interface

The audio interface will help to connect the mic and speaker with SIM900A. The connection of Line, Audio and Speaker will help to make the calls through the modules.

  • MIC_P – Pin19
  • MIC_N – Pin20
  • SPK_P – Pin21
  • SPK_N – Pin22
  • LINEIN_R – Pin23
  • LINE_L – Pin24

Control Pin

There is power on pins on the device, which helps to turn it on using external signals. There is two power on pins. The first one is PWRKEY which requires a LOW signal to power on/off the system. To do that, the pins require an input signal for a little bit long time. The second pin is PWRKEY_OUT, which gets short with the PWRKEY pin and turn on/off the device.

  • PWRKEY – Pin1
  • PWRKEY_OUT – Pin2

Reset pins

The device has an external LOW input signal reset pin to reset the device with the use of an external signal.

  • NRESET – Pin16

SIM900A GSM Module RF Antenna

To extend the range of the SIM900A the antenna pin needs to connect with an external wire. The official antenna is also available for the module.

  • RF_ANT – Pin60

Power Pins

The module SIM900A has multiple types of power pin. Some works as input and some as output. The most important one to understand is VRTC, which acts as a backup for the internal RTC of the device. All power and ground pins of the module are:

  • VBAT(Input) – Pin55, Pin56, Pin57
  • VRTC (Input/Output) – Pin26
  • VDD_EXT(OUTPUT) – Pin15
  • GND – Pin17, Pin18, Pin29, Pin39, Pin45, Pin46, Pin53, Pin54, Pin58, Pin59, Pin61, Pin62, Pin63, Pin64, Pin65

SIM900A GSM Module Block Diagram

The following diagram is describing the SIM900A internal structure of the module.

SIM900A GSM Module block diagram

SIM900A GSM Module Main Features

FEATURESDETAIL
Power Input3.4V to 4.5V
Operating FrequencyEGSM900 and DCS1800
Transmitting Power Range2V for EGSM900 and 1W for DCS1800
Data Transfer LinkDownload: 85.6kbps, Upload:42.8kbps
SMSMT, MO, CB, Text and PDU mode.
Antenna SupportAvailable
Audio Input/outputAvailable
Serial PortI2C and UART
Serial Debug PortAvailable

Applications

  • The module is the best application to design a graphic for Voice call and SMS application.
  • Some IoT applications, mostly in an emergency have the module.
  • The location trancing system also uses SIM900A.
  • SIM900A can use for mobile communication.

How to use SIM900A GSM Module?

The module SIM900A has multiple pins but all of them have some hardware requirement that is available in the datasheet. There is a bunch of predesigned board which solves the requirement of the hardware. To use the module connect it with the Arduino like the given circuit.

Arduino Interfacing Example

SIM900A GSM circuit with arduino

After connecting the device use the AT commands through Arduino COM port or by Arduino Programming to operate the module each function. In case of sending data through Serial Program here’s the example code for simple AT command.

void setup() {
Serial.begin(9600); 
Serial.println("AT");
Serial.println("AT+CMGF=1/&W");
Serial.println("AT+CMGS=\"+XXXXXXXXXXXX\""); //Change this to the sim phone number
Serial.println("Hello World");
Serial.write(26); 
}

void loop() {

}

The following command is for a simple example to make the Arduino Program for sending the message from Arduino to the Module to operate. There is a bunch of commands for every function.

AT Command Set Datasheet

GSM900A Tutorials and Projects

After going through this tutorial, you might want to work on advanced tutorials and projects.

2D Diagram

 Module 2D Diagram

Other Wireless Modules:

Leave a Comment