GSM Remote Control – GSM Module

By on January 4, 2011
Pin It

This GSM Mobile is used for our Remote Control (for example Gate Control, Temperature Control….). We use the word ‘module’ because, unlike what we did in our remote control projects, this time around the mobile phone is not mounted on a printed board, but rather on a small auxiliary board which is then inserted in a connector specifically created on the main printed board; though this alternative may seem rather complex at first blush, it does have two advantages: the first is that if the GSM module should stop working, and you should not be able to find the same model, you can simply replace it with a different module without having to replace the entire circuit board. All you need to do is create a small board compatible with your unit, with the pin strips arranged as required by the circuit board. The second advantage is that the module’s printed board is double-faced and can thus host a GSM module on one face and a different one on the other. This provides the option of choosing between two different mobile phones according to one’s needs.

The GSM module
Let us begin by describing the module hosting the mobile phone: it is a printed circuit board measuring about 1.75×1.95 inches, with two pin strips (a 3-pin one and a 16-pin one) used to connect with the circuit board of the remote control device; the first pin strip carries digital power (both positive and negative), in addition to the ignition control line (PWR), while the second strip contains all the communication signals and lines to and from the GSM module, as well as the analogical section of the phones (AGND, contact 11). This pinout remains unchanged regardless of which of the two modules (SIM900 from SIMCom or M10 from Quectel) is in use.

Schematic Diagram

Schematic Diagram

Let’s now take a look at the electrical scheme, which displays the connections for both modules; recall that either GSM1 or GSM2 will be used. The two components have more or less the same command lines, so the relative pins can be connected together with the pin-strip contacts. The main differences between the two modules are found in their reset properties. SIM900 is equipped with a specific reset line, while in the case of M10 it is necessary to turn the power off and short-circuit the VDD_EXT line. In reality, in order to simplify things, the microcontroller’s firmware handles both GSM modules in the same way: in order to reset them, it turns off the main power supply and short-circuits the abovementioned line for just a second.
How is power handled? The PWR line is needed by the microcontroller to turn the GSM module on and off. The modules that are used are constantly under tension, provided by the Vcc line to pins 55, 56, 57 for SIM900 and to pins 50, 51, 52 in the case of M10; these modules are turned on or off according to the logical level applied to their PWR line (pin 1 of GSM1 or pin 18 of GSM2) . The PWR line is equipped with an internal pull-up resistance and is active at logical zero; therefore, in order to switch the cellular module on, the microcontroller sets PWR at a high logical level (contact 1 of the pin-strip) and causes transistor T2 to saturate; this transistor will then sets the PWR line for both GSM1 and GSM2 at a low level.
Reset monitoring is handled similarly, except that in the case of SIM900 there must be a reset input (NRESET, active at logical zero and equipped with a pull-up internal resistor), whereas in order to reset the M10 module one must resort to a little artifice. In the first case, the module can be reset by simply causing the microcontroller to send a logical 1 via the VDD_EXT line, at which time the T3 transistor saturates and sets the NRESET line of GSM1 at a low level; when this happens, the module’s VDD_EXT is taken to logical 1. As for M10, since it has no reset input, it can only be rest by dragging pin 7 (VDD_EXT) to logical zero, after having done the same with the PWR contact of the pin-strip (1) so that transistor 2 can be inhibited; at this point, contact 6 (VDD_EXT) can be taken back to a high level and contact 1 of the connector can be taken to logical 1 so that T2 can saturate and PWR of GSM2 can be set at logical zero.
For the time being, in order to standardize the functioning of the microcontroller governing this device and make sure that it works independently of the mobile phone mounted on the module, the reset is performed by simply setting the PWR contact (1) at logical zero and turning off GSM; after that, VDD_EXT (contact 6) is set at logical zero so that the condensers inside the cellular module can be forcibly discharged, thus avoiding that (had they been left charged) they might cause initialization problems and malfunctioning when the device is restarted (that is, when PWR goes back to logical 1). Nothing prevents those who are good at programming from modifying the firmware in order to customize the cellular module they are using.
Let’s now proceed with UART’s control lines (i.e., TXD, RXD, DTR, RTS, CTS, DCD), which are connected to the external area through the pin-strip’s contacts, respectively, 15, 16, 14, 14 e 18; the same applies to VRTC (contact 7) e ADC0 (10).
The audio device, with two contacts for the microphone (with differential input) and two more for the loudspeaker, uses contacts 4, 5, 8, 9, which correspond, respectively, to MIC1P and MIC1 N (positive e negative of the microphone) and SPK1N and SPK1P (respectively, negative e positive of the loudspeaker). The RI signal (indicating incoming calls) goes out through contact 12 of the pin-strip.
In this case, the GSM modules’ antenna is directly connected on the printed board of the cell phone: this allows us to avoid all those problems that might arise if the antenna’s connections were moved from the printed board of the cell phone to the main remote control motherboard. The antenna’s grip is positioned at pin 60 for both modules, but on the printed board it is on different faces, depending on which module is being used; when the contacts are connected, a module’s grip is connected to the other module’s tracks, thus altering the overall impedance and modifying the functioning of the radio section.
Let’s now talk about transistor T1, used here to locally control the cell phone’s reception LED: its base is polarized from the current logical level on pin 52 (NETLIGHT) for GSM1 or 6 (NET) for GSM2. The transistor’s collector is where the line to contact 19 of the pin-strip starts; this line is connected with the LED line, which the microcontroller uses to get information regarding the presence of GSM network as well as regarding the connection status of the module (e.g., whether the network is available or not).

Module GSM Layout

Layout GSM Module


C1: 220 nF multilayer(0805)
C2, C5: 100 nF multilayer (0805)
C3, C4: 470 µF 6,3 VL tantalium (CASE-D)
LD1: led green (0805)
D1: SMF05C
R1, R2, R3: 22 ohm (0805)
R4, R6, R8: 10 kohm (0805)
R5, R9: 4,7 kohm (0805)
R7: 330 ohm (0805)
R10, R12, R13: unused
R11: 15 ohm (0805)
T1, T2: BC817
T3: unused
GSM2: GSM M10 (alternative for GSM1)
– SMA Connector 90°
– Strip male 3 pin
– Strip male 16 pin

Download PCB details (Layout and Gerber): PCB

About Staff


  1. Pingback: Arduino GSM and GPRS shield | Open Electronics

  2. Pingback: TiDiGino Contest | Open Electronics

  3. Ashwani Sihag

    September 15, 2011 at 3:00 PM

    Hi Boris,

    I have not used SMF05C and R11 is 22ohm instead of 15 Ohm, how much this will effect the module? I have only one module working ok out of five, other four works sometimes and sometimes not.

    What might be reason of restarting module rendomly?

    Ashwani Sihag

  4. Boris Landoni

    September 16, 2011 at 1:22 PM

    Hi, I don’t know what could be the problem. The SMF05C aren’t mounted in my shield also. Are you sure that the module is the same? Can you send me a photo?

  5. Ashwani

    September 19, 2011 at 7:46 PM

    Hi Boris,

    I fixed all boards today, it was dry solder problem. I have designed a combined board of power supply, sim900, gps and a relay. All working fine. Now i will try some sensors like oil density for truck , fuel level for car or heart beat sensor for human with atmega on same board.
    I will send a picture when done with fix of some issues of size.

    Ashwani Sihag

  6. Boris Landoni

    September 20, 2011 at 8:18 AM

    Ok, this is a good news. :-) I’m waiting for your pictures.

  7. Pingback: TiDiGino, the Arduino-based GSM remote control | Open Electronics

  8. rafael

    August 24, 2012 at 5:36 PM


    does anyone know if the led has to blink when the module is connected to power? I have this module but never has worked. the led does blink and does not responded to my commands using serial port.

    can someone help me how this device works?

    thank you

  9. Boris Landoni

    August 28, 2012 at 9:14 AM

    You have to give a pulse (2 secs) to ON/OFF pin

  10. rafael

    August 28, 2012 at 2:36 PM


    yes, I did. I pressed the button for 2 sec and also tried with 3 but nothing. I do not know what I am doing wrong.

    other idea?

  11. Boris Landoni

    August 28, 2012 at 3:34 PM

    Put a tension. There is a NPN transistor.
    Also check the reset pin.

  12. Ahmed Ismail

    December 17, 2012 at 7:03 AM

    i want to get this module works with a micro controller without the shield. I connect the 1,2,3 pins to (3.9V,GND,3.9V)1A but it doesn’t work and the led blinks quickly.could any one tell me what is the required connections.Thanks.

    • BorisLandoni

      January 8, 2013 at 10:55 AM

      You have to control the power pin with a pulse. Also check the reset pin

  13. Al6s010

    April 9, 2013 at 3:01 PM

    About the Code .. There is no variable for the PIN number for the SIM Card’s .. So the Sim Card has to be unlocked …*(with out a pin number??) Help…

    • BorisLandoni

      April 10, 2013 at 8:48 AM

      Hi, you can use the AT command AT+CPIN=

  14. Pierre Amey

    May 21, 2013 at 11:50 AM

    Dear All, Would it be possible to know exacteky how to work with PWD and the reset. I power pin 3 with 4V and I power PWD (pin1) for 2sec (pulse). A green led start flashing for about 12 sec. Then it stopp as if the module switch off. Should I put a 1 or a 0 to the reset pin? Does the GSm module can be power with 4V? By default the pin1 (PWD) is at 0 or at 1? If I send a pulse of 2sec, should I pit the put to 0 after?
    Many thank for your clear answer

    • BorisLandoni

      May 30, 2013 at 8:03 AM

      Have you seen the datasheet?

  15. Jerry Salazar

    July 19, 2013 at 5:47 PM

    Hi, this device is only for send data GSM or for GPRS too?…

  16. Pingback: RooboLink | TiDiGino, the Arduino-based GSM remote control

  17. prateek kumar

    January 17, 2016 at 6:16 PM

    i am working with simcom sim 900 gsm module but initially test of testing the module was dispay the error. what i do can you have any answer for tackale this problem

    • BorisLandoni

      March 3, 2016 at 9:57 AM

      What library are you using?

  18. vas

    December 1, 2016 at 12:26 PM

    And hex file?

Leave a Reply