How to Flash the SIM900A Module

February 25, 2016 by Jens Christoffersen

SIMCOM's SIM 900A in Europe? Read on to learn how.

SIMCOMs SIM 900A in Europe? Sure. Read on and I'll show you how.

SIMCOM SIM 900A module.


The SIMCOM SIM 900A module is made for the Asian market, and will not get registered on a European network. To make it work, you'll need to do a firmware upgrade. Use your preferred search engine to find the firmware file. In this article, I'm using ”1137B03SIM90064_ST_ENHANCE.cla”

To do the actual upgrade, you'll need a program called “Simcom – sim900 Customer flash loader”. I have version 1.01. This program transfers the firmware from your computer to the SIMCOM module.

For hardware, I'm using a SIMCOM SIM900A module, a SIM card, a serial cable, a computer running windows, and a breadboard.

Connect the components in accordance with this picture.


Connected to the breadboard.


On this module, there are two different ways to connect it to other circuits. One way is to use Transistor-Transistor logic (TTL) and the other is to use the onboard MAX232 IC. I'm using the second option. To enable the MAX232 IC, you need to install some jumpers on the 2x3 pin header.


Jumpers are installed.


To check that you've connected everything correctly, open up hyperTerm or some other serial communication program. In this article, I'm using GtkTerm. This is a Linux program, but that's OK; this is only to check connections. To do the actual upgrade, I need to move over to my Windows computer.

Got connected?

When the serial program is opened, you can use any standard baud setting. When the SIM900A starts up, it goes into an auto-baud detection state. I've used 2400, 4800, 9600, and 115 000 successfully.

Now that the serial program is running, and everything is connected to your computer, you'll see something like this when you power up the module:


Initial signs of a successful connection.


To check the connections and verify that we're talking to the SIM900A module, type AT and hit enter. If everything is working, you'll get an OK in return.


Communications are working.


To communicate with the SIM 900A, we're using something called AT-commands; it's short for ATtension. After the AT, we need an instruction. To see if the module is connected to the network, we can use the 'AT+CREG?' Or to see which operator you're connected to, you can execute 'AT+COPS?' There are a ton of different AT commands you can use, read more about them here.


Testing different AT commands. This image is from after the firmware have been upgraded.


The 'AT+CREG?' command shows Network Registration

The 'ATCOPS?' command shows the Operator Selection

There's also an online module tester. At, you'll find a java-based module that connects to your module so you can test various AT-commands. You can use the picture above for connection reference.

Upgrade the firmware.

Now that we're connected to the module with the command 'AT+COPS?', you get no service provider name, and now it's time for an upgrade.

Start by downloading and installing the program “Simcom – sim900 Customer flash loader”.

Follow these simple steps:

  1. Download and install “Simcom – sim900 Customer flash loader
  2. Download the firmware you need. In this article, I'm using ”1137B03SIM900M64_ST_ENHANCE.cla”
  3. Open up the sim900 Customer flash loader, and load the firmware file.
  4. Click start.

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.

If you get “Download done” at the end, you've successfully flashed a new firmware to your SIM900A module.


Flash file loaded.

Erasing current firmware.

Writing new firmware.

Download done - message.

To check that everything is working, and you have a service provider, close the Customer flash loader and start a terminal program again. You'll need to turn the power off and on to let the module go into operation mode, with the auto-baud setting active. If you write the command AT+CPOL?, you'll see the name of your service provider.



Now you have a SIM900A module, with new firmware, ready for action.

Next Article in Series: How to: Send an SMS with PIC16F628A and SIM900A


Give this project a try for yourself! Get the BOM.

  • R
    ronen March 04, 2016

    my SIM900A module worked in Israel out of the box without any firmware update,
    -Ronen Shemesh

    Like. Reply
  • Chris Heims July 06, 2016

    Hello, unfortunately I bought it from ebay without checking if it works in Germany and now it’s already on the road. But I will try to flash the Firmware - and I think I will fail already at the first step 😊 sorry, I’m a total Rookie ... what is the “Serial cable” to connect the breadboard with the pc in detail (i can’t figure it out by the photo)? Is this something like USB to RS232? I only habe USB Ports on my Notebook. I need to order it, too.
    Would be great, if you could give me a hint 😊

    Like. Reply
  • P
    paysan August 08, 2016

    I have a SIM900 shield for Arduino-UNO and a simple standalone SIM900A board.
    Also I have a SIM pre-paid card from the SIMYO provider (Dutch)
    The card works in my cell phone.
    I reflashed both SIM900 modules with the file as mntionned above.
    The scan command shows all the networks around my home.
    But both the SIM900’s won’t connect to the network.
    After I enter the PIN code the SIM900 goes powerdown after 15 seconds.
    The SIM900A keeps poweron but the red LED keeps flashing every second.
    What can be be wrong?

    Like. Reply
    • P
      paysan August 09, 2016
      Additional info: This morning it worked. I did a AT+CPIN="xxxx" And the red LED was flashing once in 3 seconds. I was able to do a ATDxxxxxx; to my cell phone. But after I hungup the LED starts flashing every second indication there was no connection anymore. I My question is: can this be cause there is a too weak signal?
      Like. Reply
      • J
        Jens Christoffersen October 30, 2016
        Hi, you could try to use the AT+CSQ. Signal Quality Repost. Use Google so search it up.
        Like. Reply
      • G
        gdamorakis March 13, 2017
        Did you define your SIM card to operate as 2G (or GSM) only? You can do this by putting your SIM card in a cellphone (under telephone settings….)
        Like. Reply
  • Massimo Mazzinghi November 11, 2016

    Hello Jens, thank you for information about flashing new firmware.
    I did everything and my program say I correctly downloaded my firmware to the board.
    Then I close my pc program and restart my board. I get the two leds flashing and A lot of strange characters from board to my pc. Maybe I made some mistakes?
    I readed somewhere the maximum voltage is 4,5V but I flash it using 5V from my RS232 adapter without errors…
    What can I do? Thank you in advance.

    Like. Reply
    • J
      Jens Christoffersen November 13, 2016
      Hi, Thanks for the kind words. If you see a lot of random characters on your screen, I think it has to do with the Baud settings. I experienced also some random chars from time to time. Good luck.
      Like. Reply
  • H
    hellowor'd March 06, 2017

    Hello, i’ve recently buy a sim900a and I haven’t any transistor. But I have a raspberry so can I use the TX and RX gpio to flash it ?

    Like. Reply
  • Sergey Gorchichko May 24, 2017


    What should I do it if flash uploader shows the message Power Up the target? I tried connecting RESET pin to GND for a while – nothing happened.

    Like. Reply
  • Sudeep Banerjee June 08, 2017

    Am stuck with the error “Error during download application in Flash”. What next?

    Like. Reply
  • Wanek T October 05, 2017

    thanks for the article. need a little help with the wiring: i do not understand how is the connections are made between the pc and rx / tx pins on the gsm board. you do not give the details on the article, and on the photo it is not visible the connection to the pc.

    i have exactely the same gsm board, downloaded the firmware, the upload tool, but i can’t figure out the proper connection between pc and gsm module.


    Like. Reply
  • cherifdekari June 22, 2020

    hi sir,
    i have sim900a im working in algeria/north africa
    its not responing to at commands and keep displaying ” power on/reset” when i try to reflash it.
    any help.?

    Like. Reply