Did you struggle with a SIM900A module from ebay? Well, I did. I bought several from different vendors and spent some time to get them ‘online’ (or rather ‘on the air’). For a data logging project I bought 2 SIM900A modules. After I received them I found out that I should have ordered SIM900 units because the 900A’s are meant to be used in Asia only and do not function in Europe. On the net I did find several tutorials about flashing firmware to make them behave as a SIM900 unit (with only 2 GSM bands because of hardware limitations). The one that helped me most can be found at:
I will not add another recipe for flashing firmware, there are enough versions out there. Just make a serial connection to the SIM900 shield or board, observing signal levels and baudrate. Normally the SIM900(A) autobauds, so you must type ‘AT?’ or something else starting with capitals ‘AT’ first to let the module know your communication speed. Anyway, my first boards were happy with the firmware version
Contrary to one of the SimCom manuals, you do not need to hook up the debug port for that. The regular serial port works fine with the download tool. After flashing the new firmware (which finally worked after lowering the baudrate) the module responded to AT commands. I used a test platform on
for checking out the newly flashed units. To receive and send SMS it is necessary to set
AT+CNMI=2,2,0,0,0 so messages will be forwarded to the serial port instead of stored. You also need to set Text mode with AT+CMGF=1 to make sending and reading messages easier….
I also needed to select a provider to log on to from the ones that were available since my module did not ‘connect’ automatically. Maybe this has to do with the settings in my (prepaid) SIMcard.
I applied the same recipe to the next units I purchased off ebay. To my surprise they seemed to be bricked after flashing the same firmware. The status LED refused to flash and no response to AT commands…….
After trying various firmware versions it still did not work, in spite of the download apparently finishing successfully. Finally, I found out (by using the uplaod feature of the flash tool) that my first units contained a 32k ST flash and the stubborn units sported a 128k flash by SPANSION. So I tried flashing a firmware version with SPANSION in the filename from Muhammad’s repository. Only one available, an Italian version, but after downloading finished it functioned as I had hoped for. Conclusion: Not only the size of the firmware should match the flash memory size, but the firmware should also be made for a specific flash vendor. Bigger is not always better!