Download as pdf or txt
Download as pdf or txt
You are on page 1of 14

RAYMING PCB & ASSEMBLY

All about GPS module for Arduino interfacing


Arduino has remained one of the puzzles many people are yet to solve. Are you
among the people who are still yet to understand this narrative about Arduino? If so,
then you are in the right place. In this article, we will discuss Arduino and, further on,
the interaction of Arduino with GPS.

We describe Arduino as an open-source hardware & software company involved in


designing and manufacturing microcontroller kits and single-board microcontrollers.
These kits are then used to construct various digital devices, but we will get to that
later on.

Table of Contents

About GPS

GPS is simply the Global Positioning System, a satellite-based navigation system


comprising of a network of 24 satellites. GPS is the best navigation system in the
world, working 24 hours a day without setup charges or subscription fees. One of the
GPS devices utilizes data directly from satellites to locate a point on the earth through
trilateration process.

A GPS receiver uses radio signals to trilateral in the measuring of distances.


Dedicated RF frequencies receive data sent by satellites directly to the GPS through
tiny processors and antennas contained by the GPS modules. The modules antennas
then accurately calculate the position and time if they can spot four or more satellites.
In addition, we can easily interface Arduino with the GPS for location and
positioning.

Request PCB Manufacturing & Assembly Quote Now

GPS module for Arduino interfacing

We can do interfacing with any GPS module containing serial communication, but the
most popular GPS module is the U-BLOX Neo 6M GPS module. The U-BLOX Neo
6M module only uses four pins: VCC, GND, RX, and TX. Well, this is because the
modules send signals over a simple serial RS232 connection, the same protocol used
by the Arduino in the writing of the command “Serial.begin”. Simply, the module
spits iterative NMEA (National Marine Electronics Association) data strings to the
TX pin. NMEA is a standard set protocol shared commonly by all GPS.

PCB Manufacturing & Assembly Services https://www.raypcb.com/


RAYMING PCB & ASSEMBLY

Connecting the Arduino GPS module setup

In this connection, there is the usage of an input voltage of +5V from the
Arduino’s power side and any of the ground pins. If we use any two pins, the setup
works superbly. However, there are several ways that one can achieve this connection.
In our design, let’s use pin 3 and pin 4.

One connects the Arduino’s pin 3 to the RX GPS Module’s pin and the Arduino’s pin
4 to the TX pin of the GPS Module. The U-BLOX Neo 6M GPS Module consists of a
tiny K833 series 3.3V voltage regulator, which becomes its threshold voltage.
SoftwareSerial reads raw data from the GPS for creating a new serial connection and
then match the default baud rate of the GPS module you’re using. The “native
language” of this GPS is gibberish containing all the information possible for a GPS
to provide—for example, time, latitude, longitude, etc. However, there has been
development of libraries in such a way that they decode and interpret the string
characters automatically. An excellent example of such a library is the TinyGPS++
library.

How is the TinyGPS++ library used?

Concerning Arduino, the most advanced GPS library for making references is (Mikal
Hart’s TinyGPS++). After installing this library, set the correct baud rate, RX, and TX
pins, and you can now continue.

In any case, if you happen to face trouble in getting data out of your module, plug it at
5V and leave it for about a minute. For GPS modules, you can prolong the “cold start”
times. However, some modules have a blinking LED indicator to notify the user that
it’s ready and sending data. Always consider such before declaring a device as faulty.

Request PCB Manufacturing & Assembly Quote Now

Why use the U-BLOX Neo-6M GPS Module?

PCB Manufacturing & Assembly Services https://www.raypcb.com/


RAYMING PCB & ASSEMBLY

neo 6m gps arduino

The U-Blox GPS module is cost-effective, making it very popular. Moreover, it has
higher performance compared to other GPS modules since it has a ceramic
patch antenna, a backup battery that is conveniently integrable with a wide range of
microcontrollers, and an onboard memory chip. The two most popular NEO-6M GPS
modules are the GY-GPSV3-NEO and the GY-GPS6MV2. These U-Blox NEO-6M
GPS modules consist of quite good engines with high sensitivity, making them better
for indoor applications. Furthermore, there exists one compatible rechargeable battery
for backup known as the MS621FE and EEPROM for the storage of configuration
settings. Because of its inbuilt voltage regulator, this module can work perfectly with
a DC input lying between 3.3V and 5.0V.

The heart of the GPS Modules is the U-Blox NEO-6M GPS engine. The NEO-6M
module consists of a configurable UART interface for general serial communication,
but in this case, the baud rate is 9600. The style of this GPS antenna is different since
the GPS signal is right-hand circular–polarized (RHCP), which is quite different from
the commonly used whip antennas mainly applied for linear polarized signals. Patch
antennas, the most widely used antennas, are flat and generally have a metallic and
ceramic body usually mounted on a metal base plate.

Positioning

For an intelligent performance of the GPS receiver, the position of mounting the
antenna is critical. When in use, the patch antenna should be leaning parallel to the

PCB Manufacturing & Assembly Services https://www.raypcb.com/


RAYMING PCB & ASSEMBLY

geographic horizon to ensure that it has a full-sky view and a direct line of sight,
catching as many detectable satellites as possible.

This type can track up to a maximum of 22 satellites on 50 channels, hence achieving


the industry’s maximum level of sensitivity. It consumes only a 45mA supply current,
and it has a tracking of -161 dB. Unlike some other GPS modules, it can do up to 5
locations informs a second with 2.5m horizontal position accuracy.

What signal does an Arduino code generate?

GPS satellites convey at least two radio signals with low power. The signal travels
through the line of vision, hence traveling through such media as c, glass, and clouds,
but some solid media will inhibit the signal’s travel. Barriers include buildings and
peaks. However, these modern receivers are better as they are more efficient and can
track through buildings.

Information types contained in a signal of the GPS

 Pseudorandom code

It is an ID code that identifies the information in transmission by the satellite—the


satellite page of your device shows which satellites are sharing information with you.

 Ephemeris data

This data is essential in determining the position of a particular satellite and some
other information on the time, the satellite’s health, and the current date.

 Almanac data

It informs the receiver of the GPS on the location of each satellite at any time of any
day and the orbital data for that particular satellite and any other satellite that’s visible
within the system.

Request PCB Manufacturing & Assembly Quote Now

More about the NEO-6M GPS module

This module type originally had an externally fixed antenna but with no header pins.
There is, therefore, a need to 1get it soldered to the other device, say, Arduino, for
consistency.

Component information of the NEO-6M GPS module

PCB Manufacturing & Assembly Services https://www.raypcb.com/


RAYMING PCB & ASSEMBLY

· The NEO-6M GPS module

The central part of this module is the NEO-6M GPS U-Blox chip. This U-Blox six
positioning engine can also brag a TTFF (Time-To-First-Fix) which is below one
second. An advantage of using this chip is that it provides a unique feature, Power
Saving Mode (PSM), allowing an overall power usage reduction by switching the
receiver’s parts ON or OFF selectively. This whole story generally decreases the
power consumed by this module to 11mA from 45mA, hence reducing the energy
consumed by 34mA. All this makes it suitable and more efficient for these
applications that are power-sensitive such as the GPS watch.

The essential information pins of the NEO-6M GPS module chip are further broken
down to a “0.1” pitch header, which comprises pins required and actively involved in
the entire communication process with the microcontroller through UART. The
module above works best for a baud rate of between 4800bps and 230400bps, with
the default baud being maintained at 9600bps.

· Position fixing LED indicator on the chip

This NEO-6M GPS module contains an LED that plays a part in the process of
indicating the condition of location fix by blinking at different rates, which are
state-dependent.

If the LED is not blinking, this means that it is in the process of searching satellites.
On the other hand, if it flashes every second, this is simply interpreted as meaning that
they have identified position Fix.

· The 3.3Volts LDO Regulator found on the NEO-6M GPS module

The NEO-6M GPS module chip operates on a voltage range of 2.7V-3.6V. The
NEO-6M GPS module introduces the MIC5205 extra-low dropout regulator(3V3).
The tolerance of its logic pins is 5V, making it easy to interface it with Arduino or
some other logic microcontroller rated 5V without including any other converter of a
logic level.

· Backup Battery and EEPROM of the module

The designing of the module follows the use of an able dual wire
serialized EEPROM of the type HK24C32. It is 4 KB and linked with the NEO-6M
GPS chip through a 12C. In addition, a button battery that’s rechargeable is present in
the module in which it acts like a capacitor, increasing the general efficiency of

PCB Manufacturing & Assembly Services https://www.raypcb.com/


RAYMING PCB & ASSEMBLY

the NEO-6M GPS chip. These two features, an EEPROM with a battery, aids in
retaining a Battery Backed RAM (BBR). This battery-backed RAM consists of the
clock data, module configuration, and data about the latest position (GNSS orbit data).
However, this is not intended for the permanent storage of any data.

The battery aids in retaining time and last location, and in the process, TTFF is
significantly reduced to 1 second. It hence gives an allowance of faster locks of
position. On the other hand, the absence of a battery makes the GPS cold start always,
and therefore driving to the GPS lock may take more time. However, on supplying
power, the battery automatically charges, and there is maintaining of the data for a
maximum of two weeks in the absence of power.

Here is some demonstration of the four pins of the NEO-6M GPS module:

 GND- stands for ground pin that requires connecting to the Arduino’s GND
pin during interfacing.
 TXD, which is the (Transmitter pin), actively gets involved in serial
communication as a core pin.
 RDX- This is the receiver pin involved in perceiving signals. In simpler terms,
it is helpful in serialized communication.
 VCC- This supplies power to the module. We can achieve the connection by
directly connecting it with the 5Volts pin of the Arduino.

Request PCB Manufacturing & Assembly Quote Now

THE ARDUINO UNO

arduino nano gps

PCB Manufacturing & Assembly Services https://www.raypcb.com/


RAYMING PCB & ASSEMBLY

In simple terms, Arduino refers to an open electronic platform working on the basis of
an easy-to-handle software and hardware. For example, inputs such as a Twitter
message, a finger pressing a button, and a light on a sensor are easily read on
an Arduino board, which later on turns it into a clear output such as turning on of an
LED, activation of a motor, printing something online, etc. Furthermore, it is possible
to command the Arduino board by sending instructions to this microcontroller
mounted on its board. We can achieve all this using the wiring-based Arduino
language of programming and Arduino software, namely the (IDE), which is in the
center position on processing.

Arduino Uno Pin Description

We describe Arduino Uno as a simple microcontroller board typically founded on


an Atmega328P 8-bit microcontroller that also consists of the Atmega328P. In
addition, other constituents such as serialized communication, voltage
regulating crystal oscillator, et cetera, support the microcontroller. This Arduino Uno
consists of 14 digital input and output pins(only six become the PWM outputs), one
barrel power jack, USB connection, six analog input pins, one ICSP head. Finally, six
analog input pins reset button.

These 14 digital input and output pins are alternately used as either the input or the
output using pin mode(), digital read(), and digital write() functions comprised within
Arduino programming. The basis of operation of each pin is 5V, can withstand or take
a maximum current of 40mA, and contains an inbuilt chin-up resistor ranging from
20-50 Kilo Ohms, which are usually detached by default. Furthermore, some pins
perform specific roles such as the following:

 Two serial pins, pin 0 (Rx) & pin 1 (Tx)- the Rx pin and Tx pin are both useful
in receiving and transmitting TTL serialized data. To work perfectly, you
connect them to the corresponding Atmega328 USB /TTL serialized chip.
 Two external interrupts pin 2 and pin 3- normally, we configure these pins to
activate a lower value interrupt, a change in value, or either a rising edge or
dropping edge.
 PWM pins, namely pin 3, pin 5, pin 6, pin 9, and pin 11- The four individual
pins give a PWM output that is 8-bit using the analogwrite() function.

The connection of an Arduino Uno to the GPS Module

These four pins have a unique connection of UBLOX and an Arduino in this order:

 GND(Ground)—GND(Ground)
 TX—Digital (D3) pin
 RX —Digital (D4) pin

PCB Manufacturing & Assembly Services https://www.raypcb.com/


RAYMING PCB & ASSEMBLY

 Vcc—3.3V

The JHD162a LCD

The ground

The ground pin in this LCD module.

2nd pin(Vcc)

The power / LCD module (there is a supply of +5V at this pin)

3rdpin(VEE)

It is the pin involved in contrast adjustment. For example, the terminals of a


10KOhms potentiometer are connected to the +5V and the ground, then linking the
sliding pin with the VEE pin to perform this, t. The voltage at this VEE pin describes
the contrast. Here, the standard-setting is in the range of 0.4Volts and 0.9Volts.

4thpin(RS)

It stands for the Register select (RS) pin. There are two registers contained in the
JHD162A, namely the commands register and the data register. The Logic HIGH of
the Register Select pin is essential in selecting a data register, whereas the logic LOW
of the Register Select pin selects the commands register. Making the Register Select
pin HIGH, then feeding an output into its data lines (DBO to DB7), the input is
therefore taken as data, and you display it on the LCD screen. On the other hand,
making the Register Select pin LOW then feeding input into its data lines is a
command that it should write to an LCD controller, such as positioning the cursor or a
purely clean screen or a manuscript.

5thpin(R/W)

It stands for read and write modes, respectively. The pin plays a part in the assortment
of the read and write modes. The logic HIGH, in this case, stimulates read mode at
this pin, whereas Logic LOW, in this case, stimulates write mode.

6thpin(E)

PCB Manufacturing & Assembly Services https://www.raypcb.com/


RAYMING PCB & ASSEMBLY

It is purposely meant for allowing the module of the LCD. Then, a HIGH signal to a
LOW signal on the 6th pin enables the module.

7thpin(DBO) to 14thpin(DB7)

These refer to simple data pins through which you can feed commands and also data
into the LCD.

15thpin(LED=)

It is the backlight LED’s anode. When operated at 5V, there must be a resistor of
560-ohm in a series connection with this pin. The voltage source on the Arduino
board (3.3V) can power the backlight led in Arduino-based projects.

Pin16(LED-)

It is the cathode of this backlight LED.

Request PCB Manufacturing & Assembly Quote Now

Connection of the Arduino Uno with JHD162a LCD

The connection between Arduino and LCD is in the following order:

 VSS—GND(Ground)
 VCC—5Volts
 VEE—10K-Ohms Resistor
 RS—AO(The analog pin)
 R/W—ground pin(GND)
 Connect E to A1
 Then D to A2
 Connect D5 to A3
 Then to D6 to A4
 Connect D7 to A5
 Next connect LED+ to VCC
 Connect LED- to GND(Ground)

Programming of the Arduino

The programming happens with the Arduino IDE. The following is an example of an
Arduino program:

PCB Manufacturing & Assembly Services https://www.raypcb.com/


RAYMING PCB & ASSEMBLY

#include <LiquidCrystal.h>

// calling the major files and functions

#include <SoftwareSerial.h>

#include <TinyGPS.h>

//long lat,lon; // create the variable for latitude & longitude object

float lat = 28.5458,lon = 77.1703; // create the variable to represent latitude &
longitude object

SoftwareSerial gpsSerial(3,4);//rx,tx

LiquidCrystal lcd(A0,A1,A2,A3,A4,A5);

TinyGPS gps; // create the gps object

void setup(){

Serial.begin(9600); // connect serial

//Serial.println(“The GPS Received Signal:”);

gpsSerial.begin(9600); // connect the gps sensor

lcd.begin(16,2);

void loop(){

while(gpsSerial.available()){ // check for the gps data

if(gps.encode(gpsSerial.read()))// encode the gps data

gps.f_get_position(&lat,&lon); // get latitude and longitude

// display position

lcd.clear();

lcd.setCursor(1,0);

PCB Manufacturing & Assembly Services https://www.raypcb.com/


RAYMING PCB & ASSEMBLY

lcd.print(“GPS Signal”);

//Serial.print(“Position: “);

//Serial.print(“Latitude:”);

//Serial.print(lat,6);

//Serial.print(“;”);

//Serial.print(“Longitude:”);

//Serial.println(lon,6);

lcd.setCursor(1,0);

lcd.print(“LAT:”);

lcd.setCursor(5,0);

lcd.print(lat);

//Serial.print(lat);

//Serial.print(” “);

lcd.setCursor(0,1);

lcd.print(“,LON:”);

lcd.setCursor(5,1);

lcd.print(lon);

String latitude = String(lat,6);

String longitude = String(lon,6);

Serial.println(latitude+”;”+longitude);

delay(1000);

PCB Manufacturing & Assembly Services https://www.raypcb.com/


RAYMING PCB & ASSEMBLY

Request PCB Manufacturing & Assembly Quote Now

Reading raw data from the GPS through the micro

hornet GPS chip

In the interpretation of raw data from the GPS, there is creation of a new serial
connection using SoftwareSerial. Then, there is the matching of the default baud rate
of the GPS module. For example, the code below simply outputs to the serial monitor
whatever it reads from the GPS, excluding any filtering:

#include <SoftwareSerial.h>

Static cosnt int RXpin = 4, TXPin = 3;

Static const uint32_t GPSBaund = 9600;

// The serial connection to the GPS device

SoftwareSerial ss(RXPin, TXPin)

Void loop()

Serial begin (115200);

ss.begin(GPSBaund);

Void loop()

//output raw GPS data to the serial monitor

While (ss.available() > 0) {

Serial.write(ss.read());

The serial monitor should then produces a “gibberish” output.

PCB Manufacturing & Assembly Services https://www.raypcb.com/


RAYMING PCB & ASSEMBLY

Having gotten the above output, we can now use a library to decode and interpret the
output. We can use the tinyGPS++ library in this case.

We can now look at U-Center software and get to know what it’s all about.

U-Center Software

The U-Center software is a vital tool used in the assessment, performance analysis,
and the general formation of the u-blox GPS receivers containing the NEO-6M. It’s
free software that is only applicable and useable on the windows platform. It can be
useful in the display of real-time designed and graphical data visualization from any
GPS receiver such as:

 Navigation summary view


 Satellite summary view
 Chart view for any two chosen parameters
 Clock, altimeter, Speedometer, compass

How to connect NEO-6M to U-center

In this case, the connection of the NEO-6M to PC happens using any USB to TTL
converter.

Having installed U-center, you can now start from the general start menu, which is as
shown below:

(All programs-> u-Blox->u-center->u-center)

The start menu forms a basis for the location process to commence. You then need to
trace the communication toolbar on the screen generated by the start menu and click it.
It will then generate a list containing all existing COM ports. Now select the
corresponding COM port where the receiver is connected. Raw NMEA sentences are
then displayed, which is handy for a quick inspection of the visible ASCII originating
from the module over USB. We can use the U-center to show positions on
pre-calibrated or Google online maps, often referred to as dynamic maps. When we
interface this kind of setup with Arduino, it can be straightforward to generate
authentic images showing the actual position of any tracked object at any particular
specified time.

Request PCB Manufacturing & Assembly Quote Now

The micro hornet GPS Chip

PCB Manufacturing & Assembly Services https://www.raypcb.com/


RAYMING PCB & ASSEMBLY

It is the smallest fully integrated GPS antenna module in the world, measuring only
10mm by 10mm by 5.8mm. As a result, it offers an improved receiver combined with
higher sensitivity, improved noise immunity, and unconditional frequency stability.
Despite its small size, it assimilates a patch antenna element, saw filter, stcxo, rtc
crystal, rf shield, Luna, and power management unit with a sirfstariv GPS processor.
As a result, it has unique performance and superior sensitivity, achieving a quick time
to first fix (TTFF) in less than 1 second, a precision of roughly 1 minute, and a
tracking sensitivity of -163dbm.

Conclusion

We are living in an era where Arduino has proven to be the most effective and highly
compatible microcontroller supporting the creation of programmable interactive
electronic objects. It works based on input and direct output, displaying the entire
output in an LCD. In the above article, we’ve studied the relationship between
Arduino and various GPS modules, for example, the NEO-6M-GPS module. We’ve
also learned different versions of the Arduino, such as the Arduino Uno, their basic
structure, and more on their interaction with these GPS modules. Finally, we’ve also
seen the micro hornet GPS chip, which is very efficient and modest and a good chip
to consider for academic projects. Hence if you are looking to work on a
GPS Arduino project, then we would say that “you have got all you need to start your
project,” all the best.

Related Posts:

1. How Does a MEMS Motion Sensor Work ?

2. Which is the best to use between Arduino Leonardo and Arduino UNO

3. What are the components of a Wi-Fi module and its PCB principle?

4. What is SIM800C GSM MODULE in Electronics?

https://www.raypcb.com/gps-module-for-arduino-interfacing/

PCB Manufacturing & Assembly Services https://www.raypcb.com/

You might also like