SIM900 is a reliable, ultra-compact, Quad-band GSM/GPRS module available in an SMT type from SIMcom. This wireless module is designed mainly with a powerful single-chip processor which allows you to gain from cost-effective & small dimensions solutions. The SIM900 GSM/GPRS module delivers 850, 900, 1800, and 1900MHz performance with an industry-standard interface for SMS, voice, Fax & Data within a small form factor & low power consumption. This module can fit nearly all the space requirements within your M2M applications, particularly for compact & slim demands of electronic design. This article briefly explains the SIM900 module, pin configuration, specifications, and applications.
What is the SIM900 Module?
The SIM900 is a GSM/GPRS module that provides network connectivity for electronic projects. This module is used to perform different tasks like sending a message, making and receiving a call, connect to the internet with GPRS. Additionally, you can also connect a speaker and microphone to it & communicate on your phone calls. This dual-band GSM/GPRS module works with EGSM 900MHz & DCS 1800MHz frequencies. This GSM/GPRS module is applicable in embedded systems, IoT-based projects, robotics, servers, automobiles, etc.
SIM900 Module Working
The GSM module works by using GSM and GPRS technologies to converse wirelessly with another device. This module utilizes a 2G network for connecting with the internet & also supports Quad-band like; GSM 850, EGSM 900, PCS1900 & DCS 1800 so that we can transmit (or) receive messages or make (or) receive voice calls with the module by simply connecting the speakers & microphone to the particular ports provided on it.
This module also includes an inbuilt RTC to track time frequently in timer-based applications. This is versatile and easy to configure due to the utilization of AT Commands. This module can also be utilized in areas through low signal areas due to the existence of an external antenna.
SIM900 Module Pin Configuration:
The pin configuration of the SIM900 module is shown below. This module includes 68 pins which are discussed below.
Pin1 (PWRKEY): This is a voltage input pin that must be pulled low for power ON/OFF the system.
Pin2 (PWRKEY_OUT): Connecting PWRKEY & PWRKEY_OUT for a small time, it can also power ON/OFF the module.
Pin3 (DTR): It is a data terminal-ready pin.
Pin4 (RI): It is a ring indicator pin.
Pin5 (DCD): It is a data carry detect pin.
Pin6 (DSR): It is a data set-ready pin.
Pin7 (CTS): It is clear to send-pin.
Pin8 (RTS): It is a request to send-pin.
Pin9 (TXD): Transmit data pin.
Pin10 (RXD): Receive data pin.
Pin11 (DISP _CLK): Clock pin for display.
Pin12 (DISP_DATA): It is a display data output pin.
Pin13 (DISP _D/C): Display data (or) command select pin.
Pin14 (DISP _CS): Display enable pin.
Pin15 (VDD_EXT): It is a 2.8V o/p power supply pin.
Pin16 (NRESET): It is an external reset input
Pins (17,18,29,39,45, 46,53,54,58,59,61,62,63,64,65): These are ground pins.
Pin19 (MIC_P): It is a positive pin of the microphone.
Pin20 (MIC_N): It is a negative pin of the microphone.
Pin21 (SPK_P): It is a positive pin of the speaker.
Pin22 (SPK_N): It is a negative pin of the speaker.
Pin23 (LINEIN_R): It is a right channel input.
Pin24 (LINEIN_L): It is a left channel input.
Pin25 (ADC): It is an analog-to-digital converter.
Pin26 (VRTC): It is the current input for RTC whenever the battery does not supply power for the system. Current o/p for backup battery whenever the main battery is available & the backup battery is within a low voltage state.
Pin27 (DBG_TXD): It is a transmit pin.
Pin28 (DBG_RXD): It is a receive pin.
Pin30 (SIM_VDD): It is a voltage supply pin for a SIM card
Pin31 (SIM_DATA): It is a SIM data output pin.
Pin32 (SIM_CLK): It is a SIM clock pin.
Pin33 (SIM_RST): It is a SIM reset pin.
Pin34 (SIM_PRESENCE): It is a SIM detect pin.
Pin35 (PWM1): It is a PWM o/p1 pin.
Pin36 (PWM2): PWM o/p2 pin.
Pin37 (SDA): It is a serial data pin.
Pin38 (SCL): It is a serial clock pin.
Pins (40,41,42,43,44 & 47,48,49,50,51) (KBR0 to KBR4 & KBC4 to KBC0): These are keypad interface pins for rows and columns.
Pin 52 (NETLIGHT): It is an Indicate net status.
Pins 55,56 & 57 (VBAT): These three VBAT pins are set aside to connect the voltage supply.
Pin60 (RF_ANT): It is an antenna connection pin.
Pin66 (STATUS): This pin indicates the working status of the module.
Pin67 (GPIO 11): It is a general-purpose I/O pin.
Pin68 (GPIO 12): It is a general-purpose I/O pin.
Features & Specifications:
The SIM900 module features and specifications are discussed below.
- SIM900 module is designed with a powerful single-chip processor with AMR926EJ-S core
- It is a Quad-band GSM/GPRS module with 24mmx24mmx3mm size.
- It is available in SMT type & suitable for customer applications.
- An embedded powerful TCP/IP protocol stack.
- Quad-band 850/900/1800/1900 MHz would work on GSM networks within all countries around the world.
- It has multi-slot GPRS class 10/8, class B GPRS mobile station,
- This module is compliant with GSM phase 2/2+.
- It can be controlled with AT commands.
- It has an embedded TCP/UDP stack that allows you to upload data to a web server.
- Its weight is 3.4g.
- It controls via AT commands.
- Its voltage supply ranges from 3.4V to 4.5V.
- It has less power consumption-1.0mA.
- Operation temperature ranges from -40°C to +85 °C.
- It supports Quad band like; 850/900/1800/1900MHz.
- It is compatible with Arduino.
- Full control through AT commands set like; Enhanced – SIMCOM AT Commands & Standard GSM 07.07 and 07.05.
- It supports TCP/UDP protocols.
- Its power consumption is low – 1.5mA (sleep mode).
SIM900 Module Hardware
SIM900 Module hardware is described below.
LED Status Indicators
The SIM900 modules include three LEDs power, status, and netlight which indicate power status & network connectivity. So by monitoring these three LEDs, we can obtain a visual indication of the module’s condition.
- The power LED is connected to the power supply line of the module. If the module gets power then the power LED will be ON.
- Status LED indicates the working condition of SIM900. If this LED is ON then the module will be in working condition.
- Netlight LED indicates the cellular network condition. This LED will blink at various rates based on the condition it is in.
Power Supply
The SIM900 module works with a power supply, so the highest current draw is approximately 2A. Generally, it won’t draw that much power, although it may require approximately 216mA in phone calls (or) in network transmissions, it requires 80mA. This module’s operating voltage ranges from 3.4 to 4.4 volts. This module includes high accuracy, Micrel MIC29302WU high current, and a low-dropout voltage regulator for keeping the voltage supply secure at 4.1V. In addition, it handles up to 3A load currents.
UART
SIM900 module uses UART protocol for communicating with an Arduino board. This module also supports from 1200 to 115200 bps baud rate with Auto-baud detection. The UART selection jumpers on the board allow you to switch the TX & RX between any pins D8 & D7 (or) D0 & D1 which means choosing between a hardware UART(D1, D0) or software UART(D8, D7).
Speaker & Microphone
This GSM/GPRS module includes two normal 3.5mm jacks used for stereo earphones & a microphone. These are useful in making and receiving phone calls & listening to FM radio. For the microphone, no additional circuitry is necessary, directly wire it up. For earphones, any Android or iPhone-compatible earphones must work.
Antenna
The SIM900 module needs an additional antenna for any kind of data or voice communication and also to perform some AT commands. This module includes two antenna connectors; a UFL connector & an SMA connector which are connected through a patch cord. Generally, this module comes with a 3dBi GSM antenna which allows the module to be enclosed within a metal case.
SIM Socket
This GSM/GPRS module has a SIM socket on the backside. So any 2G SIM card will perfectly work.
RTC or Real Time Clock The SIM900 module can maintain time. To utilize the RTC module, you should install a CR1220 battery on the back side of the module, so it helps in maintaining time whenever the power is off.
Interfacing SIM900 GSM Module with Arduino Board
The GSM SIM 900 Module can be mounted on top of Arduino UNO. This modem can also be used for data transmission in long-distance with the using GSM technology. This is very useful in different projects where remote data transmission is necessary.
The interfacing SIM900 GSM module with the Arduino Board is shown below. The required components to make this interfacing mainly include; breadboard, SIM 900 GSM module, Arduino UNO, unlocked full-size SIM card, power supply – 12V 2Amp, USB to upload code into Arduino UNO & connecting wires.
The connections of this interfacing follow as;
- The TX pin of Arduino UNO is connected to the RX pin of the SIM900 GSM module.
- The RX pin of Arduino UNO is connected to the TX pin of the SIM900 GSM module.
- The GND pin of Arduino UNO is connected to the GND pin of the SIM900 GSM module.
- The 12 Volt 2 Amp Adaptor is connected to the GSM SIM 900 Module.
AT Commands
AT commands used for this operation mainly include the following.
AT+CSMS is used to choose message service.
AT+CPMS is used for storing preferred messages.
AT+CMGF is for selecting message format.
AT+CSCA is for the service center address
AT+CSMP command is to set text mode parameters within SIM.
AT+CSDH is used to show text mode parameters within SIM.
AT+CSCB is to choose types of cell broadcast messages.
AT+CSAS command is to save settings within the GSM module.
AT+CRES is to restore all settings.
AT+CNMI is used for message indications to TE.
AT+CMGL is to make the messages list.
AT+CMGR is to read new messages.
AT+CMGS command is used to send a new message.
AT+CMSS is to send a message from the storage of the SIM.
AT+CMGW command is to write a message to GSM memory
AT+CMGD command is used to delete messages.
Code:
#include <SoftwareSerial.h>
SoftwareSerial SIM900(10,11); // SoftSerial( RX , TX );
// 10 pin connect to TX of GSM SIM 900 Module
// 11 pin connect to RX of GSM SIM 900 Module
void setup()
{
SIM900.begin(9600); // Setting the baud rate of GSM Module
Serial. begin(9600); // Setting the baud rate of the Serial Monitor (Arduino)
Serial. println (“SIM900 Ready”);
delay(100);
Serial. println (“Type s to send message or r to receive message”);
}
void loop()
{
if (Serial.available()>0)
switch(Serial.read())
{
case ‘s’:
SendMessage();
break;
case ‘r’:
RecieveMessage();
break;
}
if (SIM900.available()>0)
Serial.write(SIM900.read());
}
void SendMessage()
{
Serial. println (“Sending Message”);
SIM900.println(“AT+CMGF=1”); //Sets the GSM Module in Text Mode
delay(1000);
Serial. println (“Set SMS Number”);
SIM900A.println(“AT+CMGS=\”911234567890\”\r”); //Type Your Mobile number to send message
delay(1000);
Serial. println (“Set SMS Content”);
SIM900.println(“Good morning, how are you doing?”);// Message content
delay(100);
Serial. println (“Finish”);
SIM900.println((char)26);// ASCII code of CTRL+Z
delay(1000);
Serial.println (“Message has been sent ->SMS Selesai dikirim”);
}
void RecieveMessage()
{
Serial.println (“SIM900 Membaca SMS”);
delay (1000);
SIM900.println(“AT+CNMI=2,2,0,0,0”); // AT Command to receive a live SMS
delay(1000);
Serial. write (“Unread Message done”);
}
Before uploading the code, need to put the SIM in the provided socket. Once the above code is uploaded, power the module with an external power supply, then you may observe the serial monitor open. Hence your code is running correctly.
Advantages & Disadvantages
The advantages of the SIM900 module include the following.
- SIM900 module is capable of sending & receiving calls and messages which is perfect for control systems and remote monitoring.
- It can be integrated into vehicle tracking systems for location updates in the automobile field.
- This module uses existing mobile frequencies so that it can be utilized anywhere around the world.
- This is designed with a powerful single-chip processor by integrating the AMR926EJ-S core.
- SIM900 module supports Bluetooth and provides enhanced performance & power-saving modes.
- Its cost is less as compared to SIM800.
- It is very compatible with many systems or projects.
The disadvantages of the SIM900 module include the following.
- SIM900 power consumption is not better as compared to SIM800.
- It does not have better long-term support & availability from the manufacturer.
- SIM900 is not compact.
- It supports only a 2G network.
SIM900 Module Applications
The applications of the SIM900 module include the following.
- SIM900 module can be used in embedded systems & IoT-based projects.
- This module is used in robotics, automobiles, servers, etc.
- This module’s shield utilizes the UART protocol for communicating with an Arduino board.
- The GSM/GPRS module has different functions like; making & receiving SMS, calls, and MMS.
- They provide GSM communication abilities by allowing you simply to connect to mobile networks for voice communication & data transmission.
- This module is compatible with Arduino & its clones.
- The GPRS Shield gives you a technique to converse with the GSM cell phone network. This shield allows you to attain SMS, GPRS, Audio & MMS through UART by transmitting AT commands.
- This GSM/GPRS module is used in M2M applications, remote control appliances, wireless sensor networks, appliance remote control, vehicle tracking using GPS, robotics, cellular communication, computer peripherals, mobile accessories, USB dongles, servers, automobiles, etc.
- This module can also be used in the agriculture field for water pumps controlling with a text message or silent call by sitting at their home.
Please refer to this link for the SIM900 Module Datasheet.
Thus, this is an overview of the GSM900 GSM/GPRS module, pinout, specifications, hardware, interfacing, advantages, disadvantages, and applications. This is a compact and reliable wireless module that provides network connectivity for various projects. This module performs all the required tasks like sending a message, making a call, receiving a call & connecting to the internet with GPRS. This GSM/GPRS module communicates via AT commands with controllers. This module can also support software power on & reset. The GPRS can be configured & controlled using simple AT commands via its UART. This module can be connected via FTDI to a PC. Here is a question for you, what is the GSM800 module?