SIM808 EVB-V3.2

Hello! I just started working on SIM808 EVB-V3.2(GPS/GSM) and it doesn’t seem to work. I connected the RXD pin to Pin 1(TX) and the TXD pin to Pin 0(RX) of the Arduino.

I used the code given by this library

#include “SIM900.h”
#include <SoftwareSerial.h>
//#include “inetGSM.h”
//#include “sms.h”
//#include “call.h”

//To change pins for Software Serial, use the two lines in GSM.cpp.

//GSM Shield for Arduino
//this code is based on the example of Arduino Labs.

//Simple sketch to communicate with SIM900 through AT commands.

//InetGSM inet;
//CallGSM call;
//SMSGSM sms;

int numdata;
char inSerial[40];
int i=0;

void setup()
//Serial connection.
Serial.println(“GSM Shield testing.”);
//Start configuration of shield with baudrate.
//For http uses is raccomanded to use 4800 or slower.
if (gsm.begin(9600))
else Serial.println("\nstatus=IDLE");

void loop()
//Read for new byte on serial hardware,
//and write them on NewSoftSerial.
//Read for new byte on NewSoftSerial.

void serialhwread()
if (Serial.available() > 0) {
while (Serial.available() > 0) {

  • delay(10);*
  • i++;*
  • }*
    _ inSerial*=’\0’;_
    if(!strcmp(inSerial,"/END")) {_

    * inSerial[1]=’\0’;*
    * gsm.SimpleWriteln(inSerial);*
    * }*
    * //Send a saved AT command using serial port.*
    * if(!strcmp(inSerial,“TEST”)) {*
    * Serial.println(“SIGNAL QUALITY”);*
    * gsm.SimpleWriteln(“AT+CSQ”);*
    * } else {*
    * Serial.println(inSerial);*
    * gsm.SimpleWriteln(inSerial);*
    * }*
    * inSerial[0]=’\0’;*
    * }*
    void serialswread()
    * gsm.SimpleRead();*
    And the serial monitor showed the following message:
    > GSM Shield testing.
    > DB:NO RESP
    > DB:NO RESP
    > DB:NO RESP
    > Trying to force the baud-rate to 9600
    > 1200
    > 2400
    > 4800
    > 9600
    > 19200
    > 38400
    > 57600
    > 115200
    > ERROR: SIM900 doesn’t answer. Check power and serial pins in GSM.cpp
    > status=IDLE
    So I changed the serial pins in GSM.cpp to 0 and 1 and still the same message appear. What am I doing wrong here? Thanks in advance!

How does the gsm instance know which pins to use? Is it using the pins that you actually connected the device to?

Why are you using serialswread() when you do NOT have a SoftwareSerial instance to read from? Or, if you do, why is there nothing connected to those pins?

Just out of curiosity, why do you assume that the SIM900 library will work for your device?

Cause the original code for the GSM.cpp used pins 2 and 3 so I changed it to 0 and 1.

I just used the sample code from the library. Which pins are you referring to?

ITEAD said that their library works in SIM900 and SIM808 so I assumed even if it is named SIM900, it will still work in SIM808

Cause the original code for the GSM.cpp used pins 2 and 3 so I changed it to 0 and 1.

The original code used SoftwareSerial on pins 2 and 3. When you changed the GSM.cpp file to use pins 0 and 1 instead, did you keep the SoftwareSerial instance?

You can NOT do SoftwareSerial on the hardware serial pins while also doing hardware serial on those pins.

I had the same problem, all you need to do is find the file GSM.CPP in your library folder in your computer, open it using notepad or any other text editor, and replace the PIN numbers from 2 & 3 to your own connection, for my setup it replaced to:

// #define GSM_TXPIN 2
// #define GSM_RXPIN 3

#define GSM_TXPIN 7
#define GSM_RXPIN 8

ITEADLIB_Arduino_SIMCom documentation instructions says:

[2] How to switch between the old shield (that uses 4 and 5 pins for
SoftwareSerial and the new (that used 2 and 3 pins)?

Open GSM.cpp and comment-decomment the appropriate lines like below
e.g. for the new one

//#define GSM_TXPIN 4
//#define GSM_RXPIN 5
#define GSM_TXPIN 2
#define GSM_RXPIN 3

Save and compile

Source: ITEADLIB_Arduino_SIMCom/Instructions.txt at master · itead/ITEADLIB_Arduino_SIMCom · GitHub

I have the same problem , How to fix it ..

Is it mandatory to connect sim808 to power supply ?

Thank you