A GSM/GPRS Module is always needed to implement projects that involve SMS based or Web based controlling of devices. We have published lots of tutorials and projects using GSM and GPRS modules in CircuitsToday. This article is developed as a buyers guide for anyone interested in buying a GSM/GPRS module. There are a handful of options available, when it comes to purchasing a GSM/GPRS modem. You might have read about SIM900 Modules, SIM300, SIM800 and models from other brand names like Wavecom. Variants available are more than enough to confuse a beginner in Arduino or Raspberry Pi or even a hobbyist with some exposure. In this guide, we explain what is the difference between these GSM module variants and how to choose the best one suited for you.

Few Points to Note:-

Band of the Module – Operating band of the module should be the first criteria in selecting the right module for you. You may read more about GSM Operating Frequency Bands across the world. If you are a US person (United States of America), be informed that GSM networks operate in 850 Mhz and 1900 Mhz primarily in USA. Europe, Asia and Africa operates in 900 Mhz and 1800 Mhz. If a country has more than one frequency band, then choice of GSM band is vested with the network carrier company.

Note:- Most of the GSM Modules available in market are Quad Band modules. This means the same GSM module can support 4 bands (850/900/1800/1900 Mhz). Quad band modules will work perfectly when put in a network that operates in any of the 4 supported GSM frequency bands. Almost all countries in this world (except Japan and South Korea – where there is no GSM network installed) supports either of 850/900/1800/1900 Mhz GSM frequency bands. So always look for a Quad Band based GSM Module – so that you can use the module without worrying about network frequency. A quad band gsm module could be used in all countries and network that support either of the 4 frequency bands – 850/900/1800/1900 Mhz

SIM900 is the most popular GSM/GPRS module model out there. This module comes in 3 variants namely – SIM900, SIM900A and SIM900D. Out of these 3 model variants, SIM900 – is the only Quad Band (supporting all 4 frequency bands – 850/900/1800/1900 Mhz)) GSM module model. The other two variants – SIM900A (900/1800 Mhz) and SIM900D are Dual Band variants supporting only 2 frequency bands each.

Note:- If you are a beginner in GSM based projects, we highly recommend you go for SIM900 model. There are lots of tutorials available for GSM module projects using SIM900 based GSM module model. You can find pretty interesting GSM module based projects using Arduino, Raspberry Pi, 8051, AVR, PIC and other controllers. Most of these tutorials are explained using a SIM900 based GSM module.


GSM modules are assembled & sold by lots of different manufacturers. Basically the core part of a GSM/GPRS module is a modem chip. In the case of SIM900 GSM module, the core part is SIM900 modem manufactured by SIMCOM company. Usually most of the GSM module makers buy SIM modems from SIMCOM in bulk quantities and they assemble the modem onto a board (GSM module board) of their choice. This is why most of the GSM/GPRS modules look very different and their features vary with board.

Take a look at the SIM900 Modem Chip
SIM900 - Modem Chip
View Product & Price

When you are buying GSM module for development boards like Arduino or Raspberry Pi or for controllers like 8051, AVR or PIC – the very first thing you should look for in a GSM module is TTL based Serial Input and Serial Output. There should be a +5V, a GND, Serial In (usually marked Rx or RxD) and Serial Out (usually marked Tx or TxD). When there is a TTL based Serial In and Serial Out feature in a GSM module, we can assume the module is compatible with Arduino or Raspberry Pi or 8051 or any other controllers which support TTL. Take a look at the image given below (area marked in Red Rectangle)


If you are implementing a project involving communication between a PC/Laptop and GSM Module, then selecting a GSM module with TTL compatibility wont be any help. In this case, you should choose a GSM module with RS232 compatibility. Take a look at the image given below.


In case you already own a TTL compatible GSM module (without RS232 support), you can convert the TTL logic to RS232 using a Max232 based converter (image of the converter is given below).


Some manufacturers produce GSM Module with Audio In/Out feature for call dialing purpose. You can connect a headphone to Audio Out and a Microphone to Audio In pin of the module to access this feature. You should read the impedance matching capabilities from the manufacturers data sheet for the GSM module before connecting headphone and microphone. Image of a GSM module with Audio In/Out is given below.


The primary difference between SIM800 and SIM900 based modules are in extra features owned by SIM800 modem. The SIM800 modem comes with a builtin Bluetooth stack and an FM (frequency Modulation). So if you want either of these features in your project, go for SIM800 based modules. ATCOMMANDS are common for SIM900 and SIM800 for major functionalities like sending/receiving SMS or like making a call. Separate ATCOMMANDS are available in SIM800 for accessing FM and Bluetooth.


Note:- If you are a beginner, go for SIM900 based module. When it comes to availability of free tutorials, SIM800 based modules are nowhere near SIM900. Though ATCOMMANDS are same for both modules, I still recommend a SIM900 module for beginners!



  1. what is the input voltage for a SIM800 module? I tried using 5volt but it is not establishing the network connection.What to do?

    • jojo

      Input voltage will vary based on manufacturer of the GSM module. Usually its 5V, 9V or 12V. Just check with the manufacturer.

  2. mohanraj

    hi i’m beginner only but i have bought sim 800 module and i’m in trouble about accessing
    that one .please help me by giving coding for home automation.
    it is enough to control any one appliances for me. please help me!!!

    • jojo

      @mohanraj, You still can use SIM800. First of all try interfacing SIM800 perfectly with 8051 or Arduino.