Firmware upgrade for SIM900 GSM/GPRS modem

In this post we will learn how to update the firmware.

Requirements

You can use AT Command “AT+GSV” to check the current version of the Firmware.

.Cautions

How to

Application note AN_SIM900_Update Tool_UGD_V1.01 from simcom explains the process.

RECOMMENDED READ  yet another seven segment display code generator/calculator

Step1

Download Simcom – sim900 Customer flash loader V1.01; Unzip the Simcom – sim900 Customer flash loader V1.01.

Step2

Connect your SIM900 board to your PC;

Step3

Open the executable file “Simcom – sim900 Customer flash loader V1.01″, it will show  window like the one below

Up2.jpg

Step 3

Step4

Select the right COM port(in my case is COM12), and the default value of Speed is 460800(baudrate), and 460800 is OK from my experience.

Step5

Click the Browse to select the downloaded firmware(in my case is 1137B03SIM900M64_ST_MMS ). You can see  window like the one below

Up3.jpg

Step 5

Step6

Click the START button to download, you will see  window like the one below

Up4.jpg

Step 6

Step7

RECOMMENDED READ  a collection of firmwares app notes and guides for simcom

Now Switch Off and then Switch ON GPRS Board .

Up5.jpg

Step 7

Step8

When the tool is erasing the flash, you will see the window like the one below:(Step9 may last a few minutes)

If fail, you can try another Speed(baudrate),and do it all again.

Up6.jpg

Step 8

Step9

The whole download process needs about 4 minutes; After the download, you will see window like this

Up7.jpg

Step 9

When you see Download done, congratulations that you have upgrade the firmware successfully.

 

Dost Muhammad Shah

Dost Muhammad specializing in Embedded Design, Firmware development, PCB designing , testing and prototyping. He enjoys sharing his experience with others .Get in touch with Dost on Twitter or via Contact form

 

42 thoughts on “Firmware upgrade for SIM900 GSM/GPRS modem

  1. Hello, I have SIM900A with firmware version 1137B08SIM900A32_ST_NENGRUI.
    But the AT+CNETSCAN is not working, and simply returning ERROR even with SIM and without SIM.
    Can you mention what’s the problem, or am I doing anything wrong?
    Or should I do something before executing that command?
    Please kindly reply,
    Thanking you.

  2. HI,

    I am trying to flash 1137B03SIM900A64_ST_ENHANCE.cla to my SIM900A module. The flashing was successful. But After rebooting the module is not getting registered with the network which was working fine before.

    Any leads.

  3. Hi,

    Following your instruction, I successfully re-flash the SIM900A with a new firmware. But the problem is after flashing successfully, I can’t seem to turn on the module, either by button (effectively shorting pin 1 & 2) or by pulse (of about 1.2 seconds).

    Anyone experiences the same? What could be the problem.

    I have tried re-flashing with different firmware, all successfully but the problem remains.

    Thanks in advance.

    Dave

      1. It doesn’t switch on at all but I can still re-flash it! The button (or shorting pin 1 & 2 if there’s no button) still works when flashing, but doesn’t work when starting the module. I managed to re-flash it will many different firmware versions (32 & 64) but still can’t power on. The original firmware is 1137B13SIM900A64_ST but I can’t find the file to flash it back to original. Tried with 1137B12SIM900A64_ST (which I thought could be the predecessor) but doesn’t work. Part number is S2-1040V-Z0940 if you wanna know.

        Anyway, I contacted SIMCOM and they say that each module has a part number, which strictly goes with 1 firmware version only.

        Makes sense to me, but I managed to flash another one (part number S2-1040V-Z1K0H) whose original FW is 1137B10SIM900A32_ST with 1137B11SIM900A32_ST downloaded here and it works. So I guess the latter should be an improvement of the former so they are compatible.

    1. regarding you comment

      how to configure the SIM900 GSM module to connect to the network MOROCCO
      ?

      Do you mean internet by Network or cellular network ?

      For both the cases it must be the same as for any country. just note that you need to know the correct APN settings for your network provider to connect to internet.

      Please note that just asking this simple plain question wont help me to know what problem you are facing and so I wont be able to provide help. Please do mentioned what have you tried and where did you fail..

      regards

  4. Salam Mr.Shah, I have Revision:1137B05SIM900M64_ST_ENHANCE and get only ‘most suitable network’ and the empty list for other suitable network.

    at+cnetscan
    ------MOST SUITABLE CELL------
    Operator:"T-Mobile D",MCC:262,MNC:1,Rxlev:40,Cellid:4309,Arfcn:0016
    Operator:"T-Mobile D",MCC:262,MNC:1,Rxlev:41,Cellid:b035,Arfcn:0014
    Operator:"T-Mobile D",MCC:262,MNC:1,Rxlev:35,Cellid:eec2,Arfcn:0037
    Operator:"T-Mobile D",MCC:262,MNC:1,Rxlev:34,Cellid:ffff,Arfcn:0039
    Operator:"T-Mobile D",MCC:262,MNC:1,Rxlev:31,Cellid:ffff,Arfcn:0027
    Operator:"T-Mobile D",MCC:262,MNC:1,Rxlev:30,Cellid:b155,Arfcn:0099
    Operator:"T-Mobile D",MCC:262,MNC:1,Rxlev:27,Cellid:ffff,Arfcn:0101
    Operator:"T-Mobile D",MCC:262,MNC:1,Rxlev:26,Cellid:3648,Arfcn:0088
    Operator:"T-Mobile D",MCC:262,MNC:1,Rxlev:26,Cellid:0ffa,Arfcn:0090
    Operator:"T-Mobile D",MCC:262,MNC:1,Rxlev:22,Cellid:41c4,Arfcn:0123
    Operator:"T-Mobile D",MCC:262,MNC:1,Rxlev:22,Cellid:1ff5,Arfcn:0024
    ------OTHER SUITABLE CELL------
    ok
    

    Is there anything missing. please shed some light.

    Best Regards
    koz

    1. seems its not formatted. To be precise, with at+cnetscan=1 and at+cnetscan provides only ‘most suitable network’ list and ‘other suitable network’ is always empty.

      1. AT+CNETSCAN. It lists all visible cell towers(BTS) from all network operators.

        AT+CNETSCAN
        
        ------MOST SUITABLE CELL------
        Operator:"Era",MCC:260,MNC:2,Rxlev:28,Cellid:fa5e,Arfcn:0021
        Operator:"Era",MCC:260,MNC:2,Rxlev:24,Cellid:b030,Arfcn:0028
        Operator:"Era",MCC:260,MNC:2,Rxlev:21,Cellid:afc4,Arfcn:0016
        Operator:"Era",MCC:260,MNC:2,Rxlev:21,Cellid:fa5f,Arfcn:0831
        Operator:"Era",MCC:260,MNC:2,Rxlev:17,Cellid:fa14,Arfcn:0033
        Operator:"Era",MCC:260,MNC:2,Rxlev:15,Cellid:ffff,Arfcn:0031
        ------OTHER SUITABLE CELL------
        Operator:"Orange PL",MCC:260,MNC:3,Rxlev:25,Cellid:2239,Arfcn:0112
        Operator:"Orange PL",MCC:260,MNC:3,Rxlev:26,Cellid:223a,Arfcn:0793
        Operator:"Orange PL",MCC:260,MNC:3,Rxlev:24,Cellid:ffff,Arfcn:0108
        Operator:"Plus",MCC:260,MNC:1,Rxlev:22,Cellid:abb9,Arfcn:0049
        Operator:"Orange PL",MCC:260,MNC:3,Rxlev:20,Cellid:ffff,Arfcn:0110
        Operator:"Plus",MCC:260,MNC:1,Rxlev:20,Cellid:ffff,Arfcn:0038
        Operator:"Orange PL",MCC:260,MNC:3,Rxlev:19,Cellid:204f,Arfcn:0118
        Operator:"POL",MCC:260,MNC:6,Rxlev:24,Cellid:f29e,Arfcn:0999
        Operator:"Orange PL",MCC:260,MNC:3,Rxlev:18,Cellid:ac1d,Arfcn:0114
        Operator:"Orange PL",MCC:260,MNC:3,Rxlev:18,Cellid:ffff,Arfcn:0113
        
        OK
        

        Each line corresponds to one bts transceiver and includes:

        • Operator name
        • Mcc – Moblie country code
        • Mnc – Moblie network code
        • Rxlev– Signal strength
        • Cellid – Cell id
        • Arcfn – Absolute radio-frequency channel number

        Simcard is not required for this command.

        If module is connected to network, it only list towers belonging to that gsm operator.

        Source : http://signusx.com/category/electronics/sim900-electronics/

        1. I have this version 1137B05SIM900M64_ST_ENHANCE and the version you are referring from the source is using :1137B04SIM900M64_ST_MMS

          I think B05 is latest than B04. Please correct me if I am wrong. Do I need to flash the older version to get ‘other suitable network’ list ?

          1. Enhance versions are the more recent than the others. Your version is newer. The part I wanted to stress was If module is connected to network, it only list towers belonging to that gsm operator.

          2. from the response it seems that the module is connected to T-Mobile.

            Try the same command without any sim-card inserted

    2. Hello dear Kozi, I have the same problem. My rev. is 1137B06SIM900M64_ST_ENHANCE. Got some other suitable cells for a little time while playing with AT+CBAND (they appear and then disappear again). Do you have any news for the trouble? I plan to flash mr. Shah’s rev. B04 when’ll get ft232 com2ttl dongle (now my Arduino Nano’s software serial gets stuck on high speeds 🙂

      1. I have the same problem . I have tried everything from changing the baud rate to change hte firmware still no luck .
        I’d really appreciate the help .
        thank you.

  5. My current firmware version : 1137B04SIM900M64_ST_MMS
    with At+cnetscan=1 , i am able to find Cell-ID but not lac. How should I find both Cell id and Lac .
    What command to use and what firmware..

    1. Ya i tried AT+CNETSCAN=1… Still could not find LAC..pls look into this..

      AT+CNETSCAN=1

      ------MOST SUITABLE CELL------
      Operator:"IN UNITECH",MCC:405,MNC:819,Rxlev:57,Cellid:2b91,Arfcn:0563
      Operator:"IN UNITECH",MCC:405,MNC:819,Rxlev:49,Cellid:2b90,Arfcn:0565
      Operator:"IN UNITECH",MCC:405,MNC:819,Rxlev:26,Cellid:016a,Arfcn:0561
      Operator:"IN UNITECH",MCC:405,MNC:819,Rxlev:33,Cellid:2b8f,Arfcn:0569
      Operator:"IN UNITECH",MCC:405,MNC:819,Rxlev:32,Cellid:ffff,Arfcn:0568
      Operator:"IN UNITECH",MCC:405,MNC:819,Rxlev:30,Cellid:27d0,Arfcn:0567
      Operator:"IN UNITECH",MCC:405,MNC:819,Rxlev:23,Cellid:026e,Arfcn:0558
      ------OTHER SUITABLE CELL------
      Operator:"CellOne",MCC:404,MNC:73,Rxlev:51,Cellid:cb85,Arfcn:0078
      Operator:"Reliance",MCC:405,MNC:1,Rxlev:49,Cellid:ffff,Arfcn:0521
      Operator:"Vodafone IN",MCC:404,MNC:13,Rxlev:47,Cellid:161d,Arfcn:0855
      Operator:"",MCC:405,MNC:801,Rxlev:50,Cellid:2e1b,Arfcn:0534
      Operator:"Vodafone IN",MCC:404,MNC:13,Rxlev:44,Cellid:4f2b,Arfcn:0865
      Operator:"Vodafone IN",MCC:404,MNC:13,Rxlev:39,Cellid:4f2c,Arfcn:0863
      Operator:"AirTel",MCC:404,MNC:49,Rxlev:37,Cellid:0cf9,Arfcn:0040
      Operator:"",MCC:405,MNC:801,Rxlev:40,Cellid:2e19,Arfcn:0542
      Operator:"Reliance",MCC:405,MNC:1,Rxlev:35,Cellid:787a,Arfcn:0519
      Operator:"AirTel",MCC:404,MNC:49,Rxlev:38,Cellid:ffff,Arfcn:0044
      Operator:"IDEA",MCC:404,MNC:7,Rxlev:37,Cellid:b4a1,Arfcn:0014
      Operator:"AirTel",MCC:404,MNC:49,Rxlev:37,Cellid:ffff,Arfcn:0034
      Operator:"CellOne",MCC:404,MNC:73,Rxlev:33,Cellid:cb87,Arfcn:0081
      Operator:"Vodafone IN",MCC:404,MNC:13,Rxlev:32,Cellid:161e,Arfcn:0861
      Operator:"CellOne",MCC:404,MNC:73,Rxlev:36,Cellid:d125,Arfcn:0068
      Operator:"CellOne",MCC:404,MNC:73,Rxlev:32,Cellid:c207,Arfcn:0082
      Operator:"IDEA",MCC:404,MNC:7,Rxlev:35,Cellid:ffff,Arfcn:0023
      Operator:"AirTel",MCC:404,MNC:49,Rxlev:34,Cellid:7aef,Arfcn:0036
      Operator:"IDEA",MCC:404,MNC:7,Rxlev:34,Cellid:ffff,Arfcn:0019
      Operator:"AirTel",MCC:404,MNC:49,Rxlev:35,Cellid:ffff,Arfcn:0045
      
      1. It seems you are using some library functions to get these details printed… Can you share the response you get from the modem it self?

        1. I am using software called COOLterm . Baud rate = 9600

          AT gives OK. I AM not using any library to get these printed. Just pressing Enter after command and fetches these results. Did you ever get both cellid’s and LAC’s of all the networks

          AT+CNETSCAN=1

          ——MOST SUITABLE CELL——
          Operator:”IN UNITECH”,MCC:405,MNC:819,Rxlev:57,Cellid:2b91,Arfcn:0563
          Operator:”IN UNITECH”,MCC:405,MNC:819,Rxlev:49,Cellid:2b90,Arfcn:0565
          Operator:”IN UNITECH”,MCC:405,MNC:819,Rxlev:26,Cellid:016a,Arfcn:0561
          Operator:”IN UNITECH”,MCC:405,MNC:819,Rxlev:33,Cellid:2b8f,Arfcn:0569
          Operator:”IN UNITECH”,MCC:405,MNC:819,Rxlev:32,Cellid:ffff,Arfcn:0568
          Operator:”IN UNITECH”,MCC:405,MNC:819,Rxlev:30,Cellid:27d0,Arfcn:0567
          Operator:”IN UNITECH”,MCC:405,MNC:819,Rxlev:23,Cellid:026e,Arfcn:0558
          ——OTHER SUITABLE CELL——
          Operator:”CellOne”,MCC:404,MNC:73,Rxlev:51,Cellid:cb85,Arfcn:0078
          Operator:”Reliance”,MCC:405,MNC:1,Rxlev:49,Cellid:ffff,Arfcn:0521
          Operator:”Vodafone IN”,MCC:404,MNC:13,Rxlev:47,Cellid:161d,Arfcn:0855
          Operator:””,MCC:405,MNC:801,Rxlev:50,Cellid:2e1b,Arfcn:0534
          Operator:”Vodafone IN”,MCC:404,MNC:13,Rxlev:44,Cellid:4f2b,Arfcn:0865
          Operator:”Vodafone IN”,MCC:404,MNC:13,Rxlev:39,Cellid:4f2c,Arfcn:0863
          Operator:”AirTel”,MCC:404,MNC:49,Rxlev:37,Cellid:0cf9,Arfcn:0040
          Operator:””,MCC:405,MNC:801,Rxlev:40,Cellid:2e19,Arfcn:0542
          Operator:”Reliance”,MCC:405,MNC:1,Rxlev:35,Cellid:787a,Arfcn:0519
          Operator:”AirTel”,MCC:404,MNC:49,Rxlev:38,Cellid:ffff,Arfcn:0044
          Operator:”IDEA”,MCC:404,MNC:7,Rxlev:37,Cellid:b4a1,Arfcn:0014
          Operator:”AirTel”,MCC:404,MNC:49,Rxlev:37,Cellid:ffff,Arfcn:0034
          Operator:”CellOne”,MCC:404,MNC:73,Rxlev:33,Cellid:cb87,Arfcn:0081
          Operator:”Vodafone IN”,MCC:404,MNC:13,Rxlev:32,Cellid:161e,Arfcn:0861
          Operator:”CellOne”,MCC:404,MNC:73,Rxlev:36,Cellid:d125,Arfcn:0068
          Operator:”CellOne”,MCC:404,MNC:73,Rxlev:32,Cellid:c207,Arfcn:0082
          Operator:”IDEA”,MCC:404,MNC:7,Rxlev:35,Cellid:ffff,Arfcn:0023
          Operator:”AirTel”,MCC:404,MNC:49,Rxlev:34,Cellid:7aef,Arfcn:0036
          Operator:”IDEA”,MCC:404,MNC:7,Rxlev:34,Cellid:ffff,Arfcn:0019
          Operator:”AirTel”,MCC:404,MNC:49,Rxlev:35,Cellid:ffff,Arfcn:0045

    1. وعلیکم السلام
      I have seen people claiming they were able to change it using a tool called Service tool Adi module, but I cant find it!

  6. Sir,

    Moreover, If upgrade to any latest firmware fails, how to I backup/restore my current firmware?

    Also, since this AT+CNETSCAN is “ENHANCED” command, will I need to upgrade firmware with _ENHANCE_ support?

    Thanks

    1. if upgrade fails, you have to try to upgrade again or upload the previous firmware again. There is no backup and restore option. 🙂

  7. Sir,

    I am/was looking for this information only. Thanks!

    This is my AT+GSV output…

    SIMCOM_Ltd
    SIMCOM_SIM900
    Revision:1137B03SIM900M64_ST_ENHANCE
    

    This firmware do not support AT+CNETSCAN=1 command. (i.e. No LAC information)
    SIM900 website/doc says this feature available in AT Command API v1.11.

    Now, to which firmware version should i upgrade from your list?

    Please help.

    Thanks

    1. as per It should work with 1137B04SIM900M64_ST_MMS

      If command doesn’t work, make sure you have right firmware version:

      AT+GSN
      
      SIMCOM_Ltd
      SIMCOM_SIM900
      Revision:1137B04SIM900M64_ST_MMS
      
      OK
      1. salam Muhammad, j’ai un probleme c’est que j’ai un module GSM SIM900, et j’ai pas encore commance la programmation de ce module avec ARDUINO et je sais pas comment configurer ce module avec le reseau GSM au MAROC pour s’assurer la bonne communication avec l’arduino!! Merci d’avance 🙂

Leave a Reply