Basics: Project 105a SIM900A GSM GPRS mini module

Basics: Project 105a

Project name: SIM900A GSM GPRS module

Tags: SIM900A GSM GPRS module, Simcom, SIM900A GSM GPRS mini module, SIM900A GSM mini module, SIM900A mini module, Arduino Nano, Arduino IDE, Arduino, SIM900A GSM GPRS mini board, SIM900A mini v 3.8.2, SIM900A datasheet, SIM900A pinout, sim900a arduino code, sim900a gsm module pin diagram, gsm sim900a pin diagram, gsm sim900a interfacing with arduino, how to check sim900a gsm module, sim900a gsm module interfacing with arduino nano, sim900a gsm module interfacing with arduino uno, what is sim900a, does sim900a support 4G, doesn sim900a support 3G, what is GSM module, what is a sim900a GSM module, GSM SIM 900A module, sim900a gsm module, sim 900a gsm gprs module, SIM900A mini DEV board v 3.9.2,

Attachments: ATcommandssketchSendingSMSsketchReadingSMSsketchMakingCallsketchAnsweringCallSketchAllinOnesketch

In this project, you needed these parts (Dear visitors. You can support our project buy clicking on the links of parts and buying them or donate us to keep this website alive. Thank you):

1. SIM900A GSM GPRS mini module 1 pc

SIM900A GSM GPRS mini board

2. Arduino Nano Rev3 1pc

arduino nano

3. Breadboard 1 pc

medium breadboard

4. Mini-B USB cable 1 pc

mini-b usb cable

5. Jumper cables F-M, M-M

jumper cables

6. Arduino IDE (you can download it here)

7. USB to TTL/Serial adaptor/converter 1 pc

USB TO TTL converters
USB TO TTL converters

8. To power module: 5V DC 1A power adapter or Litium Ion battery 3.7 V DC

power supply
lithium battery

9. Standard SIM card (2G) 1pc

sim card sizes

10. SIM card size adapter (optional) 1 pc

sim card adapter

General

We will learn about SIM900A GSM GPRS module and how to use it with Arduino Nano and USB to TTL converter.

Understanding the USB to TTL converter

You can read more about it here.

Understanding the SIM900A GSM GPRS module

SIM900A GSM GPRS mini board

Designed for global market, SIM900A is a dual-band GSM/GPRS engine that works on frequencies EGSM 900MHz and DCS 1800MHz. SIM900A features GPRS multi-slot class 10/ class 8 (optional) and supports the GPRS coding schemes CS-1, CS-2, CS-3 and CS-4. With a tiny configuration of 24mm x 24mm x 3mm, SIM900A can meet almost all the space requirements in your
applications, such as M2M, smart phone, PDA and other mobile devices.
The physical interface to the mobile application is a 68-pin SMT pad, which provides all hardware interfaces between the module and customers’ boards.

  • The keypad and SPI display interface will give you the flexibility to develop customized applications.
  • Serial port and Debug port can help you easily develop your applications.
  • One audio channel includes a microphone input and a speaker output.
  • Programmable General Purpose Input & Output.

The SIM900A is designed with power saving technique so that the current consumption is as low as 1.5mA in SLEEP mode. The SIM900A is integrated with the TCP/IP protocol; extended TCP/IP AT commands are developed for
customers to use the TCP/IP protocol easily, which is very useful for those data transfer applications.

SIM900A module allows users to send/receive data over GPRS, send/receive SMS and make/receive voice calls. SIM900A support 2G networks. It will not be able to connect to a 3G and 4G network. If you have 2G network and this module does’t work in your country you will need to flash SIM900 firmware on it. We will explain how to do it in next article.

The GSM/GPRS module uses USART communication to communicate with microcontroller or PC terminal. AT commands are used to configure the module in different modes and to perform various functions like calling, posting data to a site, etc.

The power supply of SIM900A is from a single voltage source of 3.4V…4.5V. In some case, the ripple in a transmitting burst may cause voltage drops when current consumption rises to typical peaks of 2A. So the power
supply must be able to provide sufficient current up to 2A. SIM900A module can be powered up with Arduino Nano 5V pin but for longer run it is advised to use separate power supply of at least 1A.

SIM900A

Key features:

Temperature range Normal operation: -30°C to +80°C
Restricted operation: -40°C to -30°C and +80 °C to +85°C(1)
Storage temperature -45°C to +90°C
DATA GPRS:
CSD:
GPRS data downlink transfer: max. 85.6 kbps
GPRS data uplink transfer: max. 42.8 kbps
Coding scheme: CS-1, CS-2, CS-3 and CS-4
Supports the protocols PAP (Password Authentication Protocol) usually used for PPP connections.
Integrates the TCP/IP protocol.
Support Packet Switched Broadcast Control Channel (PBCCH)
CSD transmission rates: 2.4, 4.8, 9.6, 14.4 kbps, non-transparent
Unstructured Supplementary Services Data (USSD) support
SMS MT, MO, CB, Text and PDU mode
SMS storage: SIM card
FAX Group 3 Class 1
SIM interface Support SIM card: 1.8V, 3V
External antenna Antenna pad
Audio features Speech codec modes:
Half Rate (ETS 06.20)
Full Rate (ETS 06.10)
Enhanced Full Rate (ETS 06.50 / 06.60 / 06.80)
Adaptive multi rate (AMR)
Echo Cancellation
Noise Suppression
Serial port and
Debug port
Serial Port:
8-wire modem interface with status and control lines, unbalanced, asynchronous.
1.2kbps to 115.2kbps.
Serial Port can be used for AT commands or data stream.
Supports RTS/CTS hardware handshake and software ON/OFF flow control.
Multiplex ability according to GSM 07.10 Multiplexer Protocol.
Autobauding supports baud rate from 1200 bps to 115200bps.
Debug port:
2-wire null modem interface DBG_TXD and DBG_RXD.
Can be used for debugging and upgrading firmware.
Phonebook management Support phonebook types: SM, FD, LD, RC, ON, MC.
SIM Application Toolkit Support SAT class 3, GSM 11.14 Release 99
Real time clock Implemented
Timer function Programmable via AT command
Physical characteristics Size: 24mm x 24mm x 3mm
Weight: 3.4g
Firmware upgrade Firmware upgrade by debug port

(1) The SIM900A does work, but deviations from the GSM specification may occur

Coding schemes and maximum net data rates over air interface:

Coding scheme 1 Timeslot 2 Timeslot 4 Timeslot
CS-1: 9.05kbps 18.1kbps 36.2kbps
CS-2: 13.4kbps 26.8kbps 53.6kbps
CS-3: 15.6kbps 31.2kbps 62.4kbps
CS-4: 21.4kbps 42.8kbps 85.6kbps

Functional Diagram:

The following figure shows a functional diagram of the SIM900A and illustrates the mainly functional parts: the GSM baseband engine, flash and SRAM, the GSM radio frequency part, the antenna interface, the Other interfaces.

SIM900A GSM GPRS mini board functional design

Operating modes:

1.Normal operation

Mode Function
GSM/GPRS
SLEEP
Module will automatically go into SLEEP mode if DTR is set to high level and there is no on air and no hardware interrupt (such as GPIO interrupt or data on serial port).
In this case, the current consumption of module will reduce to the minimal level. In SLEEP mode, the module can still receive paging message and SMS from the system normally.
GSM IDLE Software is active. Module has registered to the GSM network, and the
module is ready to send and receive.
GSM TALK Connection between two subscribers is in progress. In this case, the power consumption depends on network settings such as DTX off/on, FR/EFR/HR, hopping sequences, antenna.
GPRS
STANDBY
Module is ready for GPRS data transfer, but no data is currently sent or received. In this case, power consumption depends on network settings and GPRS configuration.
GPRS DATA There is GPRS data transfer (PPP or TCP or UDP) in progress. In this case, power consumption is related with network settings (e.g. power control level), uplink / downlink data rates and GPRS configuration (e.g. used multi-slot settings).

2.POWER DOWN mode

Normal shutdown by sending the “AT+CPOWD=1” command or using the PWRKEY. The power management ASIC disconnects the power supply from the baseband part of the module, and only the power supply for the RTC is remained. Software is not active. The serial port is not accessible. Operating voltage (connected to VBAT) remains applied.

3. Minimum functionality mode (without remove power supply)

Use the “AT+CFUN” command can set the module to a minimum functionality mode without remove the power supply. In this case, the RF part of the module will not work or the SIM card will not be accessible, or both RF part and SIM card will be closed, and the serial port is still accessible. The power consumption in this case is very low.

You can find specification of SIM900A here.

Signals and connections of the USB to TTL converter

You can read more about it here.

Signals and connections of the SIM900A GSM GPRS module

SIM900A GSM GPRS mini board

RS232 RXD – RS232 receive pin

RS232 TXD – RS232 transmit pin

5VT – 5V TXD transmit pin

5VR – 5V RXD receive pin

3VT – 3V3 TXD (SIMT) transmit pin

3VR – 3V3 RXD (SIMR) receive pin

GND – ground pin

VCC – power supply 5V pin

SIM900A pinout

sim900a pinout
  • VBAT – 3 VBAT pins are dedicated to connect the supply voltage. The power supply of SIM900A has to be a single voltage source of VBAT= 3.4V…4.5V. It must be able to provide sufficient current in a transmit burst which is typically rises to 2A
  • VRTC – Current input for RTC when the battery is not supplied for the system. Current output for backup battery when the main battery is present and the backup battery is in low voltage state. If the RTC function is enabled, a battery or capacitor should be connected with the VRTC pin. Otherwise the VRTC pin can be keep open.
  • VDD_EXT – 2.8V output power supply. If unused, keep open.
  • GND – Ground
  • PWRKEY – Voltage input for PWRKEY. PWRKEY should be pulled low to power on or power off the system. The user should keep pressing the key for a short time when power on or power off the system because the system need margin time in order to assert the software. It is already pulled up.
  • PWRKEY_OUT – Connecting PWRKEY and PWRKEY_OUT for a short time then release also can power on or power off the module.
  • MIC_P MIC_N – Positive and negative voice band input. If unused keep open
  • SPK_P SPK_N – Positive and negative voice band output
  • LINEIN_R LINEIN_L – Line input
  • DISP_DATA DISP _CLK DISP _CS DISP _D/C – Display interface. If unused keep open
  • STATUS – Indicate working status. If unused keep open
  • NETLIGHT – Indicate net status. If unused keep open
  • SCL – I2C bus clock. If unused keep open
  • SDA – I2C bus data. If unused keep open
  • KBR0~KBR4 – Keypad interface. If unused keep these pins open
  • KBC0~KBC4 – Keypad interface. Pull up to VDD_EXT, if unused keep pins open
  • RXD – Receive data. DTR Pin has been pulled up to VDD_EXT. If unused keep pin open
  • TXD – Transmit data
  • RTS – Request to send
  • CTS – Clear to send
  • RI – Ring indicator
  • DSR – Data Set Ready
  • DCD – Data carry detect
  • DTR – Data terminal Ready
  • DBG_TXD – Serial interface for debugging and firmware upgrade. If unused keep pins open
  • DBG_RXD – Serial interface for debugging and firmware upgrade. If unused keep pins open
  • SIM_VDD – Voltage supply for SIM card. The voltage can be select by software automatically either 1.8V or 3V
  • SIM_DATA – SIM data output. All signals of SIM interface are protected against ESD with a TVS diode array. Maximum cable length 200mm from the module pad to SIM card holder.
  • SIM_CLK – SIM clock
  • SIM_RST – SIM reset
  • SIM_PRESENCE – SIM detect. If unused keep open
  • ADC – General purpose analog to digital converter. If unused keep open. Input voltage range: 0V ~ 3V
  • NRESET – External reset input (Active low). If unused keep open.
  • PWM1 – PWM Output. If unused keep open.
  • PWM2 – PWM Output. If unused keep open.

Wiring

1.Using Arduino board

SIM900A GSM GPRS mini board and Arduino Nano

2.Using USB to TTL converter

SIM900A GSM GPRS mini board and USB to TTL converter

Step by step procedure

1. Configuring the SIM900A GSM GPRS mini board with Arduino board.

SIM900A GSM GPRS mini board and Arduino Nano

1. Insert standard Sim Card to Sim Card holder of SIM900A GSM GPRS mini board and lock it. Sim card must be unlocked and with credit.

SIM900A GSM GPRS mini board

2.Attach GSM/GPRS antenna to SMA connector of SIM900A GSM GPRS mini board.

3. Do wiring for using Arduino board. Connect the Arduino Nano to your PC with Mini-B USB cable.

4. Power up with 5V DC not more than 2A external power supply. The ‘status LED’ (D5) will be on.

5. Wait for some time (approx. 1 minute) and see the blinking rate of ‘network LED’ (D6). GSM module will use some time to establish connection with mobile network.

6. Once the connection is established successfully, the status/network LED will blink continuously every 3 seconds. You may try making a call to the mobile number of the sim card inside SIM900A GSM GPRS mini board. If you hear a ring back, the SIM900A GSM GPRS mini board has successfully established network connection.

7.Download the latest version of Arduino IDE for your system and install it in your PC.

8. Open Arduino IDE with ATcommandssketch .

9. Go to Tools->Board and select Arduino Nano.

SIM900A GSM GPRS mini board

10. Go to Tools-> Processor and select ATmega328P (from January 2018 sold NEW Arduino NANO boards). To program old boards you need to choose ATmega328P (Old Bootloader). If you get an error while uploading or you are not sure which bootloader you have, try each type of processor 328P until your board gets properly programmed.

SIM900A GSM GPRS mini board

11. Go to Tools->Port and select correct serial port. If you have an origianl Arduino Nano the driver for it will be installed automatically, if you have chineese Arduino Nano (non-original) if you can not see your board check the project here

SIM900A GSM GPRS mini board

12. Compile and upload the ATcommandssketch to your Adruino Nano. To upload the sketch to the Arduino Nano, click the Upload button in the upper left to load and run the sketch on your board.

13. Open Serial monitor at 19200 bps and select Both NL&CR.

SIM900A GSM GPRS mini board

14. First you need to check if AT commands are working – enter “AT” and press Send button. This would print “OK” which signifies of working connection and operation of the module.

15. Enter “AT+GMI” and press Send button. Returns the Manufacturer Identification of the module: “SIMCOM_Ltd OK”

16. Enter “AT+GSN” and press Send button. Returns the TA Serial Number Identification (IMEI) of the module: “869988018731253 OK”

17. Enter “AT+GMM” and press Send button. Returns the TA Model Identification of the module: “SIMCOM_SIM900A OK”

18. Call Control Commands. If you call the cell number of Sim Card then message RING will be shown. 1) Answer a call. Enter “ATA” and press Send button; 2) Make a call. Enter number to call “ATDP+37163055289” and press Send button; 3) Disconnect existing call. Enter “ATH” and press Send button.

19. SMS Commands. Set the SIM900A to text mode: “AT+CMGF=1\r“. Send SMS to a number: “AT+CMGS=PHONE_NUMBER” (in international format). Read the first SMS from the inbox: “AT+CMGR=1\r“. Read the second SMS from the inbox: “AT+CMGR=2\r” . Read all SMS from the inbox: “AT+CMGR=ALL\r“.

20. Check the list of all AT commands here.

SIM900A GSM GPRS mini board

2. Configuring the SIM900A GSM GPRS mini board with USB to TTL converter

SIM900A GSM GPRS mini board and USB TO TTL converter

For using this USB to UART Converter you need a software tool. Most of the development tools like MikroC Pro, Arduino has a UART Tool along with it. You can use different software tools: TerminalUSR-TCP232-Test V1.4AiThinker_Serial_Tool_V1.2.3cooltermsscom3.2 , KiTTYputty,tera termAccess port and so on. We recommend you to use AiThinker_Serial_Tool_V1.2.3 or sscom3.2, as you can save your AT commands and it’s very easy to use.

1. Insert standard Sim Card to Sim Card holder of SIM900A GSM GPRS mini board and lock it. Sim card must be unlocked and with credit.

SIM900A GSM GPRS mini board

2.Attach GSM/GPRS antenna to SMA connector of SIM900A GSM GPRS mini board.

3. Do wiring for using USB to TTL converter.

4. Plug your USB to TTL converter into your PC USB port. The ‘status LED’ (D5) will be on.

5. Wait for some time (approx. 1 minute) and see the blinking rate of ‘network LED’ (D6). GSM module will use some time to establish connection with mobile network.

6. Once the connection is established successfully, the network LED will blink continuously every 3 seconds. You may try making a call to the mobile number of the sim card inside SIM900A GSM GPRS mini board. If you hear a ring back, the SIM900A GSM GPRS mini board has successfully established network connection.

7. Open AiThinker_Serial_Tool_V1.2.3 program. Set the baud rate 115200, data bits 8, parity bits none,stop bits one.

8. First you need to check if AT commands are working – enter “AT” and press Send button. This would print “OK” which signifies of working connection and operation of the module.

9. Enter “AT+GMI” and press Send button. Returns the Manufacturer Identification of the module: “SIMCOM_Ltd OK”

10. Enter “AT+GSN” and press Send button. Returns the TA Serial Number Identification (IMEI) of the module: “869988018731253 OK”

11. Enter “AT+GMM” and press Send button. Returns the TA Model Identification of the module: “SIMCOM_SIM900A OK”

12. Enter “AT+IPR=115200” and press Send button. The baud rate will be changed to 115200 bps.

12. Call Control Commands. If you call the cell number of Sim Card then message RING will be shown. 1) Answer a call. Enter “ATA” and press Send button; 2) Make a call. Enter number to call “ATDP+37163055289” and press Send button; 3) Disconnect existing call. Enter “ATH” and press Send button.

13. SMS Commands. Set the SIM900A to text mode: “AT+CMGF=1\r“. Send SMS to a number: “AT+CMGS=PHONE_NUMBER” (in international format). Read the first SMS from the inbox: “AT+CMGR=1\r“. Read the second SMS from the inbox: “AT+CMGR=2\r” . Read all SMS from the inbox: “AT+CMGR=ALL\r“.

14. Check the list of all AT commands here.

SIM900A GSM GPRS mini board

Summary

We have learnt about SIM900A GSM GPRS module and how to use it with Arduino Nano and USB to TTL converter.

Libraries

SoftwareSerial library included in Arduino IDE.  The library has the following known limitations:If using multiple software serial ports, only one can receive data at a time.Not all pins on the Mega and Mega 2560 support change interrupts, so only the following can be used for RX: 10, 11, 12, 13, 14, 15, 50, 51, 52, 53, A8 (62), A9 (63), A10 (64), A11 (65), A12 (66), A13 (67), A14 (68), A15 (69).Not all pins on the Leonardo and Micro support change interrupts, so only the following can be used for RX: 8, 9, 10, 11, 14 (MISO), 15 (SCK), 16 (MOSI).On Arduino or Genuino 101 the current maximum RX speed is 57600bpsOn Arduino or Genuino 101 RX doesn’t work on Pin 13 The library has the following known limitations: If using multiple software serial ports, only one can receive data at a time;Not all pins on the Mega and Mega 2560 support change interrupts, so only the following can be used for RX: 10, 11, 12, 13, 14, 15, 50, 51, 52, 53, A8 (62), A9 (63), A10 (64), A11 (65), A12 (66), A13 (67), A14 (68), A15 (69);Not all pins on the Leonardo and Micro support change interrupts, so only the following can be used for RX: 8, 9, 10, 11, 14 (MISO), 15 (SCK), 16 (MOSI);On Arduino or Genuino 101 the current maximum RX speed is 57600bps; On Arduino or Genuino 101 RX doesn’t work on Pin 13. You can read about it here.

Sketch

  • See attachment on the begining of this project description.

AcoptexCom

Leave a Reply

Your email address will not be published.