Introduction: Using a SIM900A GSM/GPRS Module in Australia

Please note: this is a 2G device. To my knowledge only Vodaphone stil carries 2G in Australia. I don't think it worthwhile to purchase one of these in Oz as its days are numbered, get a 3G module instead.

This is my first attempt at an Instructable, hope its useful! The intent of this 'ible is to collate the info for someone to use or test a new Sim900A GPRS/GSM module, connected to a PC. I'm not claiming new content but a collection of useful info, gleaned from the web. My principle use is to send SMS, and this is what I've successfully tested. The Sim900A module is similar to the Sim900 module, and are known as "mini" development boards. Get the Sim900 if you can as its a quad band device that works everywhere.

The Sim900A is a 2 band device, on 900/1800MHz and is regionally restricted: lists the regions where the module will work, and provides access to the SIMCOM document that describes the restrictions. Restrictions only apply after firmware version 1137B06SIM900A32_S. Most eBay shops do not say the SIM900A is restricted so be weary, but there are a few websites that talk about reflashing the firmware to make it work elsewhere in the world and report success. See and for more info.

A number of firmware versions are available at

I bought my SIM900A module via eBay from China. Fortunately, my module worked straight out of the box with an unlocked Australian Vodaphone SIM card. My module is shown above, and has firmware version 1137B01SIM900A64_ST_MMS. I guess it worked because it's an old firmware version.

According to both Optus and Vodaphone uses the 900 and 1800MHz band for GSM (aka 2G) in Australia. Vodaphone is also active in Asia, so I had a good chance it would work.

I suppose it's worth noting too that 2G is not encrypted during transmission and is not "secure". According to Steve Gibson on (I think I heard it there on a podcast ?) 3G and 4G are encrypted in the air, but not once received by the base station.

Step 1: Some Setup Details

Power supply

The SIM900A hardware design manual from SIMCOM website (need to register first, but Ive seen it elsewhere - just google it) provides a power supply reference design, and states the power supply must supply up to 2A at times. The USB 5V supply is inadequate as it can't supply the required current, so use an external 3.7V, up to 4.2V, power supply. Some eBay sellers say you can supply the module at 5V, but you can't unless it has an on-board regulator or a series diode. Mine doesn't, it powers down with an "over voltage" error when supplied at 5V. Max supply voltage is 4.8V. A simple linear power supply is adequate, and those small buck-converters available on eBay work a treat, but connect a large storage cap across the output to supply the peak pulse current.

If your "Netlight" (LED D6) flashes slowly and steadily you're ok, otherwise if you get 4 repeating characters on the PC and nothing else, particulaly if the Ring indicator (RI, LED D5) also occasionally flashes, the power supply is being flattened during those high current pulses and the module is resetting.

Electrical communications connections

The Sim900A has 2 built in RS232 serial ports. One is for common communications to allow a PC to talk to the module, and the other is a "service" RS232 port (the "debug" port) used for upgrading firmware, and probably other similar tasks.

The SIM900A communicates at TTL voltage levels (0 to supply voltage-0.1V) on these ports, and my module has an onboard MAX232 chip on the communications port only to translate RS232 at TTL level to the standard voltage levels (-12V to 12V) and can interface directly to a PC . You can access the communications port at TTL levels if you remove the jumpers near the antennae connector. (To be strictly correct, the MAX232 produces -7V to +7V).

The debug port is available at TTL levels only, and to use it on my module I have to solder wires to the module (see later)

The communications serial port pinout at standard voltage levels is shown on the pictures. [edit] Please note that other versions of the module have slightly different TTL pin outs, so use a multimeter and locate the ground pin/s.

Baud rate

The module is preconfigured to "auto baud", and it detects the source's baud rate on the communications port. It will only auto detect up to 57600baud. To get it working wait 2 or 3 seconds post power up, and type "AT" and not "at" or other key combination a few times till you get "OK" returned. I subsequently fixed the baud rate at 115200 using "AT+IPR=115200" (no quotes) just to eliminate one possible issue during testing.. When first connecting, set the PC at 9600 or so as the module is preconfigured for auto bauding, and then set the baud rate you want to use.

When not auto bauding, you get the "RDY", "+CFUN: 1" and "+CPIN: Ready" reports.

The debug port has a maximum baud rate of 115200 and does not support auto bauding. Oddly the flashing tool runs at 460800 baud as default and people report it works...

Standard configuration is 8 bits, no parity, and 1 stop bit, no flow control.

Connecting to your PC

You will need a RS232 port on your PC, but most modern PC's don't have one. Either get a dedicated PCI card, or use a USB to RS232 converter. I will leave you to install the converter and driver, and find out the virtual comm port number. Install it now. Done? Good.

The photos show how to connect a PC to the Sim900A communications port using a USB-RS232 converter, and alternately to a TTL level shifter. In simple terms, connect pin 2 of your PC RS232 port to the modules first pin, pin 3 to the modules second and pin 5 (ground) to the third. (3rd is closest to the hole in the PCB).

These photo's are captured from a document that I downloaded from Sim900 information link. (look for the button near the title that has the down arrow to download) Its part of a 3.1MB.rar archive linked to via the sim900 item on (download at your own risk) and contains a schematic, Arduino connection details, AT command list, and other useful info. Its worth downloading as the Sim900 is similar to the Sim900A.. The document is in English, but the site is in Chinese. I used an app on my iPad called "Web Translator" to translate the web page into English, and it works a treat once set up.

SIM card

The Sim card must be unlocked. I'm using a Vodaphone pre-paid sim. According to the Australian cellular network information website both Optus and Vodaphone use the 900 and 1800MHz band for GSM (aka 2G) in Australia. Telstra is changing its operating bands and doing away with GSM so don't use a Telstra sim card.

Step 2: Try It!

So you have a suitable power supply, inserted your SIM card, and connected it to your PC. Lets try it! Make sure that D5 (Ring indicator - center of the PC board) is on to confirm power is OK. It will flash if a call is received. The Netlight LED D6 near the antennae connection should be flashing. If its flashing continuous roughly 1x per second then the module can't find a cellular network. If flashing roughly 1x in 3 seconds, then its connected to the network. If flashing rapidly then its communicating GPRS.

Fire up your preferred communications terminal, Hyperterminal will do in Windows XP and before, but was apparently dropped in WIN7 & 8. I prefer PuTTY. Start the terminal program, setting it up as 115200 baud, no parity, 1 stop bit (115200,n,1) and no flow control.

Make sure you wait several seconds post module power up to ensure the firmware has loaded. In the terminal comms window that opens type "AT" quotes of course. If all is good


will display on the terminal window. Now you can use lower case if you like. To get the firmware revision type


Revision:1137B01SIM900A64_ST_MMS (that's my modules firmware revision)


To find the chip description type:




And to power the module down before removing power, type

at+cpowd=1 , resulting in:


These modules have the "POWKEY" input permanently pulled low, forcing a restart. Turn off power and reset the module anyway.

If you got this far, it all works and you can send a text SMS as follows:



this sets the SMS mode to text.

Now set up the destination number, remember to use international style, in Australia's case the international code is +61. Type:

at+cmgs="+61xxxxxxx" this time with quotes.

you should get response ">" if successfully set. Start to type your message limiting it to less than 160 characters. When done type CTRL-Z (ie the control key and Z key simultaneously) and your message will be sent. A successful send is confirmed by a response of "+CMGS: " (eg +CMGS: 9) and "OK" a few lines down.

Leave the module and PC running, and go check your destination phone and confirm the message has arrived. Just for fun, send a message back. You will get a notification of reception on the terminal window like this:

+CMTI: "SM",1

Well done! You have a working module.

Step 3: Flashing the Firmware...

Flashing these modules is difficult as no way is provided to connect to the Debug serial port. Also, my module works so I'm reluctant to flash it with something else. I will demonstrate intent only here, and if someone has a spare module that I can play with, let me know.

You will need a TTL level serial interface too. The "Bus Pirate" from is supposed to work, but try as I might, I could not get it to communicate to the module.

I have tried the TIAO TUMPA, from Connect the TUMPA to the PC. Download the drivers from the FTDI website as they have Windows qualified drivers available. The drivers on don't work well. A double click on the .exe file did not work to install the drivers in Win8.1, so I used 7-Zip and extracted the files, then went off to the Device manager and successfully installed the Virtual serial (com) port (VCP) drivers. There are 2 drivers required as the TUMPA chip has 2 serial interfaces. The RS232 interface is on Virtual com port B.

Once the VCP are working, set the defaults of PORT B to 460800, no parity, 1 stop bit, 8 data bits and no flow control.

Make sure you set up the TUMPA to use the TTL-COM port...see the website for details.

Soldering and hookup

In my case, to connect to the module I need to solder wires to the Simm900A directly. Wire wrap wire works well. Use long wires, about 6" should be adequate, short wires break off too easily. You will need a fine tipped soldering iron and a steady hand. It's like soldering surface mount components.

Connect 1 wire to the 10th connector on the SIM900A chip, counting from the left. This is debug port TX (transmit). Connect another wire to the 11th connection on the chip - its debug port RX (receive). That places them just behind the "RST" box on the PCB overlay. Connect the TX wire to the TUMPA RX pin and the RX wire to the TUMPA TX pin (ie cross over the signals). I would call the chip connections "Pins" but they are more like half holes than I call them "connections".

At this point I powered up the module, then the TUMPA and ran the flashing tool. Yah! so far so good!


You will need the SIMCOM flashing tool available from A firmware version for the Sim900 is included in the download, and people have reported it can be flashed to the Sim900A. Ive not tried it. I can confirm the flashing tool starts up and presumably sees the module. I used the default baud rate of 460800. I don't want to flash mine quite yet so I will stop at this point.

I believe that if you power down the module by pulling the power supply, and reconnect it once the TUMPA and flashing software are running will start the update.

Well, I hope that this 'ible helps by bringing together solutions to some of the problems I had. Thanks to everyone who I've referenced for their contribution. If you manage to flash the module do let us know. Otherwise if you're feeling adventurous, send me a working module and I'll have another go. Please don't blame me if you try flash your module and it gets messed up - you do so at your own risk. But, most important, have fun!


sjae made it!(author)2017-04-07

if i want to interface it with the 89c51 should i use the port near the antenna or the other one?? 10q in advance

Mohsenbayat4000 made it!(author)2017-03-17

Hi I put simcard on board but when I call with it is off and alone D5 is on .what is problem?

Mohsenbayat4000 made it!(author)2017-03-17

Hi I put simcard on board but when I call with it is off and alone D5 is on .what is problem?

RichardS440 made it!(author)2017-03-09

has anyone found any 3G capable modules similar to this?

I think by now that all Australian 2G networks have been shut down and I have spent a lot of time looking through pages and pages of products only to find with a bit more research that ones that say 3G in the description are incorrectly labelled. The ones with a small size all seem to be based on SIM800 and SIM900 chips and I need something small for a project I am working on.

Happymacer made it!(author)2017-03-16

hiya RichardS440, I have been waiting for comments from the community. I've seen several shields, and a few industrial modules. Besides that, the modules cost some $100+, so I've not been able to play. Hopefully they will come down in price soon. I wonder if one can repurpose the new Nokia 3310 as a modem for this purpose?

Thx for reading!

neel912 made it!(author)2016-10-31

i don't know that how to connect this module (SIM900A) with arduino ,and i am beginer so plz explain me in details

Thank You

Happymacer made it!(author)2017-01-11

Hi neel912, have you found my other Instructables yet?

But there are others, so look around on Instructables.

Happymacer made it!(author)2016-11-18

sorry can't help with that module, I'm not familiar with it. Google is your friend tho, so do some searching and plenty of reading. Oh, and as Sam2017 said, there are shields that have the chip installed, and they are rediculously easy to connect up. If you're in Aus, then don't go for a gsm module as it's neigh impossible to get network coverage. Rather get a 3G module.

DilshanK made it!(author)2017-01-10


Happymacer made it!(author)2017-01-11

Hi DilshanK, I suspect you are using a UNO with both the module and the PC serial port connected to th single hardware serial port. As far as I know, this does not work.

I suggest that you look at SoftwareSerial or similar library and connect the module to that software created serial port. Hope that helps!

KCK10 made it!(author)2016-10-21

hi , why i can`t setup from my XP computer ?

NurA81 made it!(author)2016-09-18

Hye sir,
I been using gsm sim900a v3.8.2 .
I do have problem with it.
I can comunicate between gsm and Mcu . But the problem is. My gsm keep sending message to me. Sometimes it spam . So i change the CNMI command. It do chnge.. but it only read old message.. so do you know what suitable cnmi might be for sim900a to work properly.

Happymacer made it!(author)2016-09-19

Hiya, I'm sorry I only looked at the hardware, and basic commands so your question is beyond my skills. Maybe others have some suggestions?

AhmadU6 made it!(author)2016-05-16

how to connect sim 900a with pic16f877a

Happymacer made it!(author)2016-05-16

Hiya, I'm sorry I can't help with Pic devices. I've done no research with them.

PrabhavA made it!(author)2016-04-27

can sim 900a can be connected through arduino mega 2560 and communicate

Happymacer made it!(author)2016-04-27

Hi PrabhavA, yes, it can be used with any Arduino and even just the Atmega chip. It's all in the connections.

amilak made it!(author)2016-03-04

When i going through your instruction to send a sms I got success message as you said

(+CMGS: 61)

.but the receiving end no message was received.when i send a message to GSM module it also show success messge. can you please help me to overcome this problem.

Happymacer made it!(author)2016-03-04

hiya amilak, it's very difficult to diagnose from here, but here are a few suggestions...

- +61 is the international dialling code for Australia. You need to use the code for whatever country you are in. UK is +44, South Africa is +11 from memory. There may be some puzzled Australian who did receive your message!

- did you use the correct destination number? Typo maybe?

There are a number of websites that describe sending and receiving messages so maybe follow some of them, now you have the electrical connections sorted out and can talk to the module. I only did the minimum to show it work.

Other than that, I'm sorry I have no idea.

TrungT7 made it!(author)2016-02-27

How to connect between the Arduino board with modul sim 900A? Can you help me?

Happymacer made it!(author)2016-02-28

Of course! Have a look at There you should find what you need. Have fun!

prateekkumar1221 made it!(author)2016-02-02

i followed your instruction please help me to overcome this error

Happymacer made it!(author)2016-02-03

hiya I'm sorry but as I did not actually flash my module so I have no experience with errors. However it sounds like the flashing software is waiting for a handshake signal. Make sure the PC port is set up correctly,

You may want to read gomibakou's method too in the comments of this instructable.

Hope this helps you,

TabbyM made it!(author)2016-01-16

i am a newbie and i m having problems working with SIM900A mini v3.8.2.
when i bought it it worked once (read my sim card i.e call was connected when i inserted my sim card and dialed my number from another number) at that moment i only had made the power connections and db2,db3 and gnd connected. after a while i dont know what went wrong but it is not reading my sim card any more. what could have been the problem can u please guide me??
by the way m using it in Pakistan.

Happymacer made it!(author)2016-01-17

hiya, I'm sure you understand that it is very difficult to diagnose remotely so what help I can give is limited. I don't know what you mean with db2 and db3.

These are my thoughts...

1- how do you know it's not working? Maybe the thing it's connected to that you are using as an interface is faulty? Are you sure you are reading the right port?

2- you may have a dud module

3- was the supply voltage correct? If too high the Simm card or the chip could be burned.

4- can the power supply provide the current? Maybe it is too small and burned a component in the power supply?

5- did you connect it correctly to a PC? Or is it connected correctly to an Arduino?

Well, I don't know if this helped, but hopefully it sets you off on the right track to fix it. All the best!

TabbyM made it!(author)2016-01-29

my device had different type of connections i guess.. none of others available on the internet had same connections :)
i'll upload the pic of my connections soon with my device :)
insha ALLAH :)

TabbyM made it!(author)2016-01-26

well it did help me out :)
n now my gsm module is working all fine :)
jazakallahu kher :)

Happymacer made it!(author)2016-01-28

Cool, excellent news! ? What was wrong?

K%C3%AAnhN made it!(author)2015-11-06

after 2 days, I threw in the trash

seamster made it!(author)2015-01-30

Great collection of info! I'm glad you shared this, I think a lot of people will find it useful.

First instructable too! Hope we see more from you soon. :)

Happymacer made it!(author)2015-01-31

Thanks, I appreciate the encouragement!

praxidice made it!(author)2015-10-23

Can you advise whether or not the GSM900 module is size and connection compatible with 3g / 4g / LTE modules ?? Obviously the manufacturer would normally be the best authority, however I've had humungous communication difficulties with chinese in the past and I'm not keen to repeat the experience. Given that GSM is on the way out in Australia with both Telstra and Optus announcing shutdown dates, I'd prefer to start with gear that will be usable in the forseeable future. I also need to devise a dial in arrangement rather than relying on the remote end to stay connected, and I figure I'll get a slightly faster setup that way.

Happymacer made it!(author)2015-10-24

hi praxidice, I assume you mean Sim900? AFAIK, the Sim900 is not 3G or upwards compatible. Please check to be sure but I think that's the case. Be aware Jaycar is selling Sim900A modules at the moment, and as you say they have a limited life. Here is a link to the product PDFs...

praxidice made it!(author)2015-10-24

Thanks for the quick response. Yes I am aware that SIM900s are only GSM however the manufacturer makes a lot of modules, some of which are 3g / 4g / LTE . What I do want to know is if those are comparable size to the 900 and have the same connections. I don't see much point emailing the chinese factory as I've always found translations from chinese to australian unintelligible.Obviously I can't get any info from the likes of element 14 on the weekend.

Happymacer made it!(author)2015-10-24

sorry can't help, I've not investigated that. Some eBay or Aliexpress sellers provide dimensions so that may be a way to find out. Otherwise look for a module on Sparkfun or Adafruit.

Happymacer made it!(author)2015-10-22

Well done! That's good stuff!

Happymacer made it!(author)2015-10-21

the title of my other instructive is "using the Sim900/sim900a with Arduino UNO", but this is a v3.4 module so won't help you.

All the info I presented I found by searching the web. Sorry I have no information on your module, and I can't help.

I suggest you trace the circuit and work out from that how it's connected and see if that guides you. Personally I feel that if you have burned this diode, judging by a photo of a V4.0 board I saw, then you have bigger problems than just a burned diode.

SalahuddinT made it!(author)2015-10-21

I've solved it replacing the diode. Thank you.

Happymacer made it!(author)2015-10-20

hi SalahuddinT, I'm sorry but I can't find D2 on my module so I have no idea how I can help you. Are you sure it's D2? Is it the same module? My other sim900A instructable has a photo of the back of the module so have a look if that helps?

Happymacer made it!(author)2015-10-12

Thanks Bilal, I appreciate the thought.

Bilal+Mubdir made it!(author)2015-10-12

Nice describtion

gomibakou made it!(author)2015-05-23


After reading the article I'll show my experience (the article was nice giving me some nice steps to follow). I could reflash the SIM900A successfully and now it can log in the network in the UE. I'll explain simple and easy what I did:

Notice, my module is SIM900A version (2-band). I'm going to reprogram with a SIM900 (4-band)

1-Read this instructable, other web sites and understanding everything ;)

2-Soldering wires to debug pins in SIM900A (pin 27 DBG_TX, pin 28 DBG_RX)

3-Using a RS232 to TTL converter (5V), connect PC TX to DBG_RX, PC RX to DBG_TX (cross connections).

4-Turn on the module, then Launch the flashing tool from Geekonfire. Leave settings by defaul (460800 bps), select the COM where your RS232-TTL adapter is located (check your device manager in Windows).

5-Use a suitable firmware, I used the one provided in the same web (i have many). In my case original firmware was 1137B03SIM900A64_ST_ENHANCED, new firmware programmed is 1137B03SIM900M64_ST_MMS. As far as i know, some sites call the MMS as ENHANCED.

6-Select the .cla file, press start. Then, FAST, turn off and again on the module.

The firmware should be downloaded and the reflashing process starts after it.

If you have errors in the last step, normally it's due to not cycling the power off/on fast enough.

After this, just return to a normal communication with your module in the TX-RX used for AT commands (remember the module is reset to autobaud).

My module was country locked and now it's working nicely with the SIM900 firmware, tested with 2 different SIM from different providers (one of them in roaming).

Amd yes, the phot is a crap, but the instructables servers demand it to post in the "i made it" section xD

Happymacer made it!(author)2015-06-09

hiya gomibakou, cool that you've had success, thanks for sharing, and I'm glad I could help. I'm flabbergasted that you can reprogram the mini .... 1 - with the 4 band firmware, and 2 - without the debug port! The manual says you have to use debug port so that's weird, but good news. I might try it myself sometime. I'm aware about the turn-on-off-on sequence as the "powkey" is held on by a resistor and you can simulate the power-on by cycling the power before the 47uf tantalum cap discharges. It's probably better to wire in the RST or reset pins. Btw, if you have lots of firmware images how about sending copies to so he can serve them? Oh, and what will you be doing with yours now?

gomibakou made it!(author)2015-05-23


The module can be reprogramed without using the DEBUG port, just using the normal serial communications. So no need to solder any wire (just tested it). The only important thing is the timing when pressing the start button and powering the module. Power must be cycled (initially on) off-on really fast. That is for modules that doesn't have a reset pin, if yours have (mine have, but i'm too lazy to use a button and wire it hehe), you can use it with the same effect.

gomibakou made it!(author)2015-05-23

Eh, i forgot to say about the image, I'm using my own power supply in a breadboard to easier the connections, It's capable about 1.5A 5V and 1A 3.3V (well not sure if 1A 3.3V is possible even if it's heatsinked with nice copper planes -regulator is smd-), 2 470 capacitors are to boost the current in case the GSM module has some current burts. You can see 2 spare cables soldered to the debug serial port in the sim900. nothing else.

fazli made it!(author)2015-05-06

how to connect sim900a mini v3.8.2 with arduino please guide me can i connect sim900a mini v3.8.2 direct to arduino?

basharat.hafeezsiddiqui1 made it!(author)2015-05-23

yup i mention as above bro connect as it mentioned i did and it work

Happymacer made it!(author)2015-05-07

I found the source of the Schematic...

Happymacer made it!(author)2015-05-07

Hi fazli, I didn't intend to discuss connecting the mini module to the Arduino in this Instructable, so I'm not keen to do it here. I have not tried it myself yet, but I learned a lot about sending AT commends, connecting it up, and so on by connecting it to a PC. If you're a newbie to Arduino then I recommend first playing with the module connected to your PC, then connect it to your Arduino, once you have some experience. If you jump straight to Arduino, you have a multitude of problems to work out at the same time (eg power, interface signals, AT codes, software) and that makes debugging complex.

Besides all that there are many web sites where they discuss connecting the Ardino to a sim900 module. Remember, Google is your friend. Yes, some study and interpretation will probably be required!

As a quick guide, you must work out if your module uses 5V TTL signals or 3.3V. If 5V then you can connect it direct to the Arduino, but if 3.3V like mine then you will need level translators. If you want to use the UNO then you will need a Software serial library and connect it to digital pins 2 and 3 from memory. I'm attaching the module schematic that has level translation onboard, but I don't have the version numbers anymore, and I don't know where I found it. Probably on

Like I've said, I am yet to do it myself, but I've every intent to build the Athena.... When I get to do it, I guess I'll need to post a new Instructable?

Have a look at that and see how you go. Thanks for posting.

DavidF15 made it!(author)2015-04-06

Cool -- thanks for the instructable. Looking in the RAR I saw the D-SUN USB to TTL connector pic showing the colored wires connected as : D-SUN USB: GND-Red, RXD-Yellow, TXD->Green, and then to the module as Red->GND, Green->SIMR, Yellow -> SIMT. So it looks like it crosses the USB TXD to the SIM-RXD and USB RXD with SIM-TXD .