A look at a GPS shield for the Arduino

In this article we look at a GPS Shield which is based on the ublox’s NEO-6M receiver module. Lets look at some info about the NEO‑6 module.

The NEO‑6 module series brings the high performance of the u‑blox 6 position engine to the miniature NEO form factor. u‑blox 6 has been designed with low power consumption and low costs in mind. Intelligent power management is a breakthrough for low‑power applications. These receivers combine a high level of integration capability with flexible connectivity options in a small package. This makes them perfectly suited for mass‑market end products with strict size and cost requirements. The DDC interface provides connectivity and enables synergies with u‑blox LEON and LISA wireless modules.

More info – https://www.u-blox.com/en/product/neo-6-series

It is compatible with the Arduino Uno and Mega type boards. The GPS pins (RX, TX) can be connected to D0-D7 of Arduino via jumpers. Support software SerialPort and it also has a Micro SD card interface.

 

Parts Required

Description Link
Arduino Uno Arduino UNO R3
GPS shield GPS Shield For Arduino With Antenna SD Slot

Code example

This example prints the output received by the GPS module to the serial port of the arduino.

#include <SoftwareSerial.h>
 
SoftwareSerial SoftSerial(6, 7);
unsigned char buffer[256]; // buffer array for data recieve over serial port
int count=0;     // counter for buffer array 
void setup()
{
  SoftSerial.begin(9600);               // the SoftSerial baud rate   
  Serial.begin(9600);             // the Serial port of Arduino baud rate.
 
}
 
void loop()
{
  if (SoftSerial.available())              // if date is comming from softwareserial port ==> data is comming from SoftSerial shield
  {
    while(SoftSerial.available())          // reading data into char array 
    {
      buffer[count++]=SoftSerial.read();     // writing data into array
      if(count == 256)break;
  }
    Serial.write(buffer,count);            // if no data transmission ends, write buffer to hardware serial port
    clearBufferArray();              // call clearBufferArray function to clear the storaged data from the array
    count = 0;                       // set counter of while loop to zero
 
 
  }
  if (Serial.available())            // if data is available on hardwareserial port ==> data is comming from PC or notebook
    SoftSerial.write(Serial.read());       // write it to the SoftSerial shield
}
void clearBufferArray()              // function to clear buffer array
{
  for (int i=0; i<count;i++)
    { buffer[i]=NULL;}                  // clear all index of array with command NULL
}

Output

Open the serial monitor window in the arduino ide and you should see something like this

$GNGGA,172947.802,,,,,0,00,25.5,,,,,,*7E
$GNGLL,,,,,172947.802,V,M*63
$GPGSA,A,1,,,,,,,,,,,,,25.5,25.5,25.5*02
$BDGSA,A,1,,,,,,,,,,,,,25.5,25.5,25.5*13
$GPGSV,1,1,02,13,,,29,15,,,23*77
$BDGSV,1,1,00*68
$GNRMC,172947.802,V,,,,,,,171119,,,M*5A
$GNVTG,,,,,,,,,M*2D
$GNZDA,172947.802,17,11,2019,00,00*40
$GPTXT,01,01,01,ANTENNA OK*35

 

Software

Download the software from https://www.u-blox.com/en/product/u-center , install it and connect to your Arduino serial port and the app should display various data regarding your location