Firmware upgrade for SIM900 GSM/GPRS modem


40 Comments  →
   by Dost Muhammad Shah    40 Comments  →

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  Disable CLK Pre-scaler in AVR to use 8MHz Internal Oscilator

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  GET request using AT commands SIM800 SIM900

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.


Leave a comment
  1. 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. Reply
  2. 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 Reply
      • 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. Reply
    • 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 Reply
  3. 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 Reply
    • 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. Reply
      • 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/ Reply
        • 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 ? Reply
          • 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.
          • from the response it seems that the module is connected to T-Mobile. Try the same command without any sim-card inserted
    • 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 🙂 Reply
      • 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. Reply
  4. 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.. Reply
    • 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
      
      Reply
      • 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? Reply
        • 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 Reply
    • وعلیکم السلام
      I have seen people claiming they were able to change it using a tool called Service tool Adi module, but I cant find it! Reply
  5. 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 Reply
    • if upgrade fails, you have to try to upgrade again or upload the previous firmware again. There is no backup and restore option. 🙂 Reply
  6. 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 Reply
    • 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
      Reply
      • 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 🙂 Reply

Leave a Reply