I have Simcom SIM900a GSM (SIM900a Mini DEV Board v3.9.2) and I am interfacing it with Arduino UNO. I have no idea how to connect SIM900a to Arduino UNO.

What I did now is: SIM900a; My reference image

I connect the following Pin from above image to:

5 to: GND (Digital GND near Pin 13)

6 to: 5V of Arduino

2 to: GND of Arduino near 5V

3 to: Digital Pin 0 of Arduino (RX)

4 to: Digital Pin 1 of Arduino (TX)

1 to: (No idea)

From Picture option 7, 8, 9 are not connected to anything.

Can you please guide me am I doing right?

I am getting hard time to find out what is TX and RX in my SIM900a module as it is not written there.

My SIM900a looks like this, this(Schematics given) and this.

When I upload the sketch:

File > Examples > GSM > TestModem:

to Arduino, I got this output from Serial Monitor:

Starting modem test...ERROR, no modem answer.

Checking IMEI...Modem's IMEI: 0

Reseting Modem... Modem is functioning properly: IMEI: 0


I saw this schematic here which is way different than what I am doing.


Hints, am I supposed to provide external power supply of 5 V 2 A OR do I need some kind of converters (TTL to RS232 converter) ?

2 Answers 2


Finally I found solution to this problem:

My Pins connections were wrong, it should not be: 0 and 1 it should be 2 & 3:

2 - RX Arduino
3 - TX Arduino

also SoftwareSerial.h is not working with SIM900A


All connections should be like this:

SIM900A - Arduino
VCC     - VDC (+5V)
GND     - GND
5VR     - Connect to Arduino TX (Pin 3)
5VT     - Connect to Arduino RX (Pin 2)

As discussed here.

Very important:

Any program with header/library: #include <SoftwareSerial.h> is not working but #include <GSM.h> is working fine. As SoftwareSerial.h only work with GSM Shield and SIM900A isn't a shield.

Program/Sketch to Upload:

SMS sender

created 25 Feb 2012
Originally written by Tom Igoe
But this is modified version

// Include the GSM library
#include <GSM.h>

#define PINNUMBER ""

// initialize the library instance
GSM gsmAccess;
GSM_SMS sms;

void setup(){
// initialize serial communications and wait for port to open:
while (!Serial){
; // wait for serial port to connect. Needed for Leonardo only
Serial.println("SMS Messages Sender");
// connection state
boolean notConnected = true;

// Start SIM900A GSM 

while (notConnected){
    Serial.println("Status 1: Please wait a while, If it taking lot of time, \nmeans you have wrong pin connections.");
    // If your SIM has PIN, pass it as a parameter of begin() in quotes
    if (gsmAccess.begin(PINNUMBER) == GSM_READY){
    Serial.println("Status 2: GSM is ready.");
    notConnected = false;
    Serial.println("Status 3: Not connected");
    Serial.println("Status 4: GSM initialized. " );
    // calling function to send message

void loop(){
    // empty loop

// method to send message to specific number just once.
void sendMessage(){
    Serial.print("Message is sending...: ");
    // send the message
    sms.beginSMS("03XXXXXXX "); // Replace XXXXXXX with your mobile number.
    sms.print("This is just some message"); // Message content, replace with your's.
    Serial.println("Message Sent...!\n");

Bam, It is working, and it successfully can send message.

Things to remember:

  1. As everywhere being said you need to supply external power supply to SIM900A it requires 5 Volts and 2 Amphs.

  2. Connect GND of SIM900A to Arduino GND.

  3. Connect VCC+ (above photo connection 2) to 5V pin of Arduino.

One Problem: When I upload sketch of:

Example > GSM > TestModem:

to Arduino, I got this output from Serial Monitor:

Starting modem test...ERROR, no modem answer.

Checking IMEI...Modem's IMEI: 0

Reseting Modem... Modem is functioning properly: IMEI: 0

I cannot get IMEI from SIM900A but I can send message.


Your wiring is correct:

6 - VDC (+5V)
5 - GND
4 - RX (connect to Arduino TX - pin 1 for UNO)
3 - TX (connect to Arduino RX - pin 0 for UNO)

5VDC/2A power supply is must, otherwise module will be resetting when wireless radio is turned on. When using separate power supply, don't forget to connect Arduino GND and module GND.

The RX/TX on the module are depicted as 5VR/5VT (and 3VR/3VT for 3.3V pins).

The better way to get started / debug would be to use USB-to-serial converter: set the baudrate as 115200, connect and type AT and enter. Shall respond with AT (echo) and OK.

PS: The red wire (6) shall be on the left and black (5) on the right side, according to the board connector.

  • OMG Thanks! You are life saver. I will soon test this with external Power Supply but I have some questions: Q1: I have power supply which is 5v but I don't know about it's amps. How do I know it's amps as we can't calculate until we put a load on it. So how to do it what load I have to attach to power supply? Q2: For my practise purpose I am interested in USB-to-serial converter but I am not sure which one to buy? Can you please search here and let me know which one I should buy? (I will delete this link soon)
    – fWd82
    Commented Sep 10, 2017 at 14:54
  • 1
    1: any power supply shall have description of its amperage (or wattage). If it is a module, check for main regulator ICs datasheet (for example 3A for LM2576). Power supply adapters for tablet / pads usually have 2A (for phones - 1A mostly). 2: Any converter with description "USB to TTL" will do, 1st red one looks OK (NOT the ones with DB-9 connector - those are USB-to-RS232 ).
    – Flanker
    Commented Sep 10, 2017 at 15:02
  • Hello @FJanker, I tested my module with 5v and 1A but not working. Then I buyed 5v 2A now the SIM900A Power LED ON continuesly and Signal LED blink with certain period of time which mean I am okay. But when I connect: 5VT with RX and 5VR with TX of arduino, and GND with GND and VCC with 5V of Arduino, and I run program of TestModem still it is not working. Showing me Starting modem test...ERROR, no modem answer. Checking IMEI...Modem's IMEI: 0 Resetting modem...Modem is functoning properly What should I do. Please help. I am likely to die becuase of tension.
    – fWd82
    Commented Sep 19, 2017 at 21:05

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.