Couldnt Find FONA (Arduino Uno + SIM800H)

Hi Guys,

I am bit stuck, I am unable to connect to my FONA 800 Shield. Below is my code

/*************************************************** 
  This is an example for our Adafruit FONA Cellular Module
  since the FONA 3G does not do auto-baud very well, this demo 
  fixes the baud rate to 4800 from the default 115200
  
  Designed specifically to work with the Adafruit FONA 3G
  ----> http://www.adafruit.com/products/2691
  ----> http://www.adafruit.com/products/2687

  These cellular modules use TTL Serial to communicate, 2 pins are 
  required to interface
  Adafruit invests time and resources providing this open source code, 
  please support Adafruit and open-source hardware by purchasing 
  products from Adafruit!

  Written by Limor Fried/Ladyada for Adafruit Industries.  
  BSD license, all text above must be included in any redistribution
 ****************************************************/

#include "Adafruit_FONA.h"

#define FONA_RX 2
#define FONA_TX 3
#define FONA_RST 4

// this is a large buffer for replies
char replybuffer[255];

// We default to using software serial. If you want to use hardware serial
// (because softserial isnt supported) comment out the following three lines 
// and uncomment the HardwareSerial line
#include <SoftwareSerial.h>
SoftwareSerial fonaSS = SoftwareSerial(FONA_TX, FONA_RX);
SoftwareSerial *fonaSerial = &fonaSS;

// Hardware serial is also possible!
//  HardwareSerial *fonaSerial = new HardwareSerial(2);

Adafruit_FONA fona = Adafruit_FONA(FONA_RST);

uint8_t readline(char *buff, uint8_t maxbuff, uint16_t timeout = 0);

void setup() {
  while (!Serial);

  Serial.begin(115200);
  Serial.println(F("FONA set baudrate"));

  Serial.println(F("First trying 115200 baud"));
  // start at 115200 baud
  fonaSerial->begin(115200);
  fona.begin(*fonaSerial);
  
  // send the command to reset the baud rate to 4800
  fona.setBaudrate(4800); 
  
  // restart with 4800 baud
  fonaSerial->begin(4800);
  Serial.println(F("Initializing @ 4800 baud..."));
  
  if (! fona.begin(*fonaSerial)) {
    Serial.println(F("Couldn't find FONA"));
    while(1);
  }
  Serial.println(F("FONA is OK"));

  // Print module IMEI number.
  char imei[15] = {0}; // MUST use a 16 character buffer for IMEI!
  uint8_t imeiLen = fona.getIMEI(imei);
  if (imeiLen > 0) {
    Serial.print("Module IMEI: "); Serial.println(imei);
  }

}

void loop() {
}

I have also attached screenshot of my arduino + fona 800 shield setup and the screenshot of the message that i get in serial monitor. Please let me know what i am doing wrong

Any help would greatly appreciated

Hi

Did you attach/solder the headers yourself, or did the board come with those headers already attached?

I havent soldered yet, it basically pinned on top of each other with female to male header pins.

I was trying to stack Sparkfun Simultaneous RFID Reader on top of Fona 800 which would be on top of Arduino Uno. Please let me know if my understanding is incorrect

You need to solder those headers in place. Otherwise there is no connection of the signal to go through.

Also, make sure that the headers have long pins, otherwise you might run into the same problem (which will be worse because you will have made those headers permanent)

Make sure that headers you have are similar to these

This tutorial gives nice instructions on how to connect female headers. Read the section that is titled "Assembly with Stacking Headers"

The instructions are for a different shield, but the process is the same.

Once you have soldered the headers in place, use a multimeter to check for continuity between each pin of the headers, and the marked hole next to the headers.

This double check will allow you to see if you have soldered correctly, or if you have any 'dry joints'.

(I have to do this all the time. My soldering skill are poor, to say the least :wink: )