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: http://www.blog.zapro.dk/ 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 http://amichalec.net/2014/08/sim900a-fixed-for-eu... and http://pixelatedpic.blogspot.fr/2013/08/simcom-sim900a-fixed.html for more info.
A number of firmware versions are available at http://dostmuhammad.com/blog/sim900-firmware-updat...
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 http://www.mobilenetworkguide.com.au/australian_mobile_phone_frequencies.html 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 GRC.com (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
The SIM900A hardware design manual from SIMCOM website http://wm.sim.com/upfile/20121129151745f.pdf (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.  Please note that other versions of the module have slightly different TTL pin outs, so use a multimeter and locate the ground pin/s.
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 www.taobao.com. (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.
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"...no 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:
NORMAL POWER DOWN
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:
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 www.dangerousprototypes.com 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 www.diygadget.com. Connect the TUMPA to the PC. Download the drivers from the FTDI website as they have Windows qualified drivers available. The drivers on www.diygadget.com 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 pins...so 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 Geekonfire.com. 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!