member
Basics: Project 070c How to update firmware of SIM900 GSM GPRS Quad-Band Development Board Shield
of Acoptex.com in UNO
Basics: Project 070c
Project name: How to update firmware of SIM900 GSM GPRS Quad-Band Development Board Shield
Tags: Arduino, Arduino Uno, SIM900 GSM GPRS Quad-Band Development Board, SIM900 GSM GPRS module, 531619133647-3, B01IBGDDVM, UN970HL11PMG0NAFAMZ, SIM900 GSM GPRS Shield, how to update firmware, how to update firmware of SIM900 GSM GPRS Quad-Band Development Board Shield
In this project, you needed these parts :
1.Aruduino Uno R3 (you can also use the other version of Arduino)
2.SIM900 GSM GPRS Quad-Band Development Board Shield with GSM/GPRS antenna 1 pc
3.Arduino IDE (you can download it from here)
4.Jumper cables M-M, F-M
5.Standard SIM card 1 pc (unlocked). If you have micro or nano you may consider getting a SIM card size adapter.
6. USB to TTL serial converter 1 pc
7. USB mini cable 1 pc (optional)
8. To power module: 4.8~5VDC 2A power adapter
9. SIM card size adapter 1pc (optional)
General
In this project we will learn how to update firmware of SIM900 GSM GPRS Quad-Band Development Board Shield.
Understanding the USB to TTL converter
You can read more about them here.
Understanding the SIM900 GSM GPRS Quad-Band Development Board
The GPRS Shield provides you a way to communicate using the GSM cell phone network. The shield allows you to achieve SMS, MMS, GPRS and Audio via UART by sending AT commands (GSM 07.07 ,07.05 and SIMCOM enhanced AT Commands). The shield also has the 12 GPIOs, 2 PWMs and an ADC of the SIM900 module(They are all 2V8 logic) present onboard.
Features:
- Quad-Band 850 / 900/ 1800 / 1900 MHz – would work on GSM networks in all countries across the world.
- GPRS multi-slot class 10/8
- GPRS mobile station class B
- Compliant to GSM phase 2/2+
- Class 4 (2 W @ 850 / 900 MHz)
- Class 1 (1 W @ 1800 / 1900MHz)
- Control via AT commands – Standard Commands: GSM 07.07 & 07.05 | Enhanced Commands: SIMCOM AT Commands.
- Short Message Service – so that you can send small amounts of data over the network (ASCII or raw hexadecimal).
- Embedded TCP/UDP stack – allows you to upload data to a web server.
- RTC supported.
- Selectable serial port.
- Speaker and Headphone jacks
- Low power consumption – 1.5mA(sleep mode)
- Industrial Temperature Range – -40°C to +85 °C
- Size:8.5×5.7x2cm(approx)
Specifications for Fax
•Group 3, class 1
Specifications for GPRS Data
•GPRS class 10: max. 85.6 kbps (downlink)
•PBCCH support
•Coding schemes CS 1, 2, 3, 4
•PPP-stack
Specifications for CSD Data
•USSD
•Non transparent mode
Specifications for SMS via GSM/GPRS
•Point to point MO and MT
•SMS cell broadcast
•Text and PDU mode
Software features
•0710 MUX protocol
•Embedded TCP/UDP protocol
•FTP/HTTP
Special firmware
•Embedded AT
•Java (cooperate with Iasolution)
•FOTA
•MMS
Specifications for Voice
•Tricodec
– Half rate (HR)
– Full rate (FR)
– Enhanced Full rate (EFR)
•AMR
– Half rate (HR)
– Full rate (FR)
•Hands-free operation
(Echo suppression)
Interfaces
•Interface to external SIM 3V/ 1.8V
•Analog audio interface
•RTC backup
•SPI interface (option)
•Serial interface
•Antenna pad
•I2C
•GPIO
•PWM
•ADC
Compatibility
•AT cellular command interface
Certifications:
•CE
•FCC
•ROHS
•PTCRB
•GCF
•IC
•ICASA
•REACH
Carrier Approvals:
•NCC
•Anatel
•Rogers
•Orange
•AT&T
•Vodafone
The product is provided as is without an insulating enclosure. Please observe ESD precautions specially in dry (low humidity) weather.
Application:
- M2M (Machine 2 Machine) Applicatoions.
- Remote control of appliances.
- Remote Weather station or a Wireless Sensor Network.
- Vehicle Tracking System with a GPS module.
Indicator LEDs
There are three indicator LEDs(PWR(Green), Staus(Blue), Netlight(Red)) on the GPRS Shield, users can know about the working state of the shield based on the three indicator LEDs. Detailed information please refer to the following table:

SIM900 IC module
Designed for global market, SIM900 is a quad-band GSM/GPRS module that works on frequencies GSM 850MHz, EGSM 900MHz, DCS 1800MHz and PCS 1900MHz. SIM900 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 24*24*3mm, SIM900 can meet almost all the space requirements in user applications, such as M2M, smart phone, PDA and other mobile devices. SIM900 has 68 SMT pads, and provides all hardware interfaces between the module and customers’ boards.
- Serial port and debug port can help user easily develop user’s applications.
- Audio channel which includes a microphone input and a receiver output.
- Programmable general purpose input and output.
- The keypad and SPI display interfaces will give users the flexibility to develop customized applications.
SIM900 is designed with power saving technique so that the current consumption is as low as 1.0mA in sleep mode. SIM900 integrates TCP/IP protocol and extended TCP/IP AT commands which are very useful for data transfer applications.
Operating Modes:
1.Normal operation
GSM/GPRS SLEEP. Module will automatically go into sleep mode if the conditions of sleep mode are enabling 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.
GSM IDLE. Software is active. Module registered to the GSM network, and the module is ready to communicate.
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
Normal power down by sending the AT command “AT+CPOWD=1” or using the PWRKEY. The power management unit shuts down the power supply for 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. Power supply (connected to VBAT) remains applied.
3. Minimum functionality mode
AT command “AT+CFUN” can be used to set the module to a minimum functionality mode without removing the power supply. In this mode, 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 mode is lower than normal mode.
You can find more information about SIM900 here, SIM900D here, SIM900R here. Check for SIM900 Schematics here, SIM900 datasheet here.
The factory default setting for the SIM900 GSM GPRS Quad-Band Development Board UART is 19200 bps 8-N-1. (Can be changed using AT commands).
You can find the AT commands list here.
Signals and connections of the SIM900 GSM GPRS Quad-Band Development Board
D9 of Arduino - Used for software control the power up or down of the SIM900
A4 and A5 of Arduino - connected to the I2C pins on the SIM900. The SIM900 however cannot be accessed via the I2C
Power jack - connected to external 4.8~5VDC power supply
Power select switch - select the power supply for GPRS shield (external power or 5VDC of Arduino board)
Serial port select - select either software serial port or hardware serial port to be connected to GPRS Shield
Hardware Serial - D0/D1 of Arduino
Software serial - D7/D8 of Arduino
EN - module power control enable pin (can control power switch, default high level enable)
4.1V - external power supply pin (4.2VDC).
GND - ground pin.
RXD - serial port for AT commands (receive pin)
TXD - serial port for AT commands (transmit pin)
Microphone - to answer the phone call
Speaker - to answer the phone call
Wiring
Step by Step instruction
VERY IMPORTANT NOTE:
- Follow the steps as described before in 1. Configuring the SIM900 GSM GPRS Quad-Band Development Board Shield with Arduino board or 2. Configuring the SIM900 GSM GPRS Quad-Band Development Board Shield USB to TTL converter. Check your module firmware version. Enter “AT+GMR” and press Send button. Returns the TA Revision Identification of Software Release of the module, for example: “Revision:1137B09SIM900M64 OK”. Set baud rate to 115200 bps (It's 19200 by default) Enter “AT+IPR=115200” and press Send button. Returns the: “ OK”. If you check it with command "AT+ITR?" - it will return: "+IPR:115200 OK"
- Always make sure that you have your firmware version on hands so you can restore previous version if next firmware version is bad, for example we had previous version 1137B09SIM900M64_ST.rar.
- Read all information about firmware update available on Web.
- Just think if you realy need to do it as it is a risk to damage the module!!!
- If you decided to do it make sure that the next firmware version which you are planing to upload is not older than existing (For example we have two newer firmware versions - 1137B06SIM900M64_ST_ENHANCE.rar and 1137B15SIM900M64_ST.rar). You can check for new versions SIM900 here, SIM900D here and SIM900R here.
- Make sure that you have USB to TTL converter.
- Connect USB to TTL converter, Press Start Download button, Power on the module (UART TTL interface).
- You can see the ST_ENHANCE and ST on the end - ST means standard version of firmware, ST_ENHANCE - means enhance (extended) version of firmware.
- Firmware can be for 32 and 64 version of chip. Check which firmware you have in your SIM900 GSM GPRS Quad-Band Development Board Shield
- It is very easy to understand for which SIM900x chip the firmware file should be used for from its name - for example, 1137B12SIM900A32_ST_DL.rar should be used for SIM900A 32 version chip (standard version of firmware)
- If this module doesn't work in your area - you may have 900/1900 MHz disabled by firmware. You can upload the extended version to your SIM900 GSM GPRS Quad-Band Development Board Shield to get full quad-Band 850 / 900/ 1800 / 1900 MHz.
- Download and install the driver for your USB to TTL converter. Read about it here.
- Download and unzip the firmware upgrade tool Simcom - sim900 Customer flash loader V1.01. You can download it here or you can download and unzip SIM900 Series download Tools Develop 1.9 here.
- SIM900 GSM GPRS Quad-Band Development Board with power supply adapter (5VDC 2A) POWER JACK interface.
- Do wiring and plug in USB to TTL converter to PC USB port.
- Go to Device Manager on your PC and find out your COM port where the module connected. We have COM6 and we are using Windows 10.
- Go to COM6 port settings - click with right mouse button on COM6 port. Make sure that the COM6 port (serial port of your PC where the module connected) set as follows: 115200 bps, 8 bit, No parity bit, 1 stop bit, no flow control. Press OK button. See on the picture below.
- Open SIM900 Customer flash loader V1.01 folder and find Simcom - sim900 Customer flash loader V1.01.exe. OR find the file SIM900 Series download Tools Develop 1.9. Right-click on this file and select Run as Administrator and press Yes button.
- Press Browse button in Application binary file field. Find the location of firmware. Firmware configuration file has .cla extension. We selected 1137B06SIM900M64_ST_ENHANCE.cla file.
- Select Com port - COM6, Speed - 115200 in Comunication settings field.
- Make sure that your PC and the module have a steady power supply.
- Press Start button. The upgrade will start.
- When you see the message: "Please power up the target" move the toggle switch to use the external power supply.When the module powered on, the green LED power on indication (PWR) will be ON.
and long press POWER KEY button until the state LED "Status" lights up. LED "Netlight" start blink.
- Keep pressing the POWER KEY button till you see the message - "Flash loader downloaded in RAM".
- The program will start to erase the flash and then upload the new flash. The erasing part might take a few minutes, and it looks like nothing is happening. After a while, text will run in the infobox, and the progress bar will begin to show progress.
- Keep waiting when show message "Flash erasing, Please wait". Will cost about 4 minutes to finish the firmware update.
- If you get “Download done” at the end, you've successfully flashed a new firmware to your SIM900 module.
- Go to File and select Exit.
- Make sure that you follow the instruction precisely. When you finish upgrade you need to reset the module: unplug the module from PC USB port and power off.
- You can also check that you module has a newer version. Follow the steps as described before in 1. Configuring the SIM900 GSM GPRS Quad-Band Development Board Shield with Arduino board or 2. Configuring the SIM900 GSM GPRS Quad-Band Development Board Shield USB to TTL converter. Check your module firmware version. Enter “AT+GMR” and press Send button. You will see that the version changed.
- After the upgrade, the baurate of GPRS will be 0 (auto baudrate); Make sure you use “AT+IPR=xxx” to set the baudrate if you are not using autobaudrate.
- "ERROR The cla file does not match the Target List! (0)" - it means that the firmware which you are using is not for this module;
- "ERROR RAM program ACK Not Received! (0)" - timeout;
- "ERROR BaudRate change error! (1200)" - you released the PWR_KEY button too fast
We learnt how to update firmware of SIM900 GSM GPRS Quad-Band Development Board Shield.
Library
- 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 13The 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
- No sketch for this project
Other projects of Acoptex.com










Viewed: 19012 times