Arduino Neo 6m GPS module Interfacing, Programming, Library

(Last Updated On: July 10, 2019)

Neo 6m GPS


Neo 6m GPS Module is one of the most frequently used GPS modules throughout the world. The Neo 6m GPS module is used for the Location Tracking. I have been using the Ublox Neo 6m GPS module in different types of advanced level projects, which you can check out by clicking on the links given below.

  • Car Accident Location Tracking using Ublox Neo 6m GPS module, GSM, and Arduino

  • Nodemcu esp8266 IOT based real-time Location Tracking using Neo 6m GPS & Blynk Application.

Due to a lot of requests from my Subscribers and Followers, I decided to make a very basic tutorial on the Ublox Neo 6m GPS Module explaining each and every detail.

In this tutorial, you will learn how to use the Ublox Neo 6m GPS Module with Arduino and find the Longitude and Latitude Values along with the Speed and date-time information. In this

Neo 6m GPS

Tutorial, I have tried to cover the maximum things so that you don’t need to search for any other Article. In this Article, I will also explain under what circumstances you don’t get the Longitude and Latitude Values? This is a very common problem which I will discuss in this Tutorial.

The library used in this project is developed by Mikal Hart.

In this tutorial, we will cover

  • Neo 6m GPS Module Pinout
  • soldering
  • Neo 6m GPS Module features
  • Neo 6m GPS Module interfacing with Arduino Uno
  • Neo 6m GPS Module programming and finally
  • Testing

The components and tools used in this project can be purchased from Amazon, the components Purchase links are given below:

Arduino Uno:
Mega 2560:
Neo-6m GPS module:
330 ohm resistors pack:
5v 2A adaptor:
2n2222 npn transistors:
10k Resistor:
lm7805 Voltage Regulator:
330-ohm resistors pack:
female DC power jack socket:
470 uf capacitors:
5×7 cm vero board:
female headers:
connection wires:
Super Starter kit for Beginners:
Jumper Wires:
Bread Board:
12v Adaptor:
PCB plate:
Variable Supply:
Digital Multimeter:
Vero Board / strip board:
Soldering iron kit: “best” You guys should definitely purchase this:
Solder wire:
Wire Stripper:
wire cutter:
PCB small portable drill machine:

What is GPS?

GPS or Global Positioning System is a satellite navigation system that furnishes location and time information in all climate conditions to the user. GPS is used for navigation in planes, ships, cars and so on. GPS provides continuous real-time, 3-dimensional positioning, navigation, and timing worldwide. The GPS is used to finding the Longitude and Latitude Values.

How GPS Determines a Position:

Neo 6m GPS

The working/operation of Global positioning system is based on the ‘trilateration’ mathematical principle. The position is determined from the distance measurements to satellites. From the figure, the four satellites are used to determine the position of the receiver on the earth. The target location is confirmed by the 4th satellite. And three satellites are used to trace the location place. A fourth satellite is used to confirm the target location of each of those space vehicles. Global positioning system consists of satellite, control station and monitor station and receiver. The GPS receiver takes the information from the satellite and uses the method of triangulation to determine a user’s exact position.

About the Neo 6m GPS Module:

Neo 6m GPS

This is the Ublox Neo 6M GPS module that I am going to use in this Tutorial.

Neo 6m GPS

This GPS module can be interfaced with the Arduino using VCC, RX, TX, and Gnd. In order to interface this module with Arduino, we will need to solder 4 wires. Usually, the Ublox NEO 6M GPS modules comes with the male headers and using Male to Female type jumper wires this module can be easily interfaced with the Arduino. But if this GPS module does not have any Male headers then you can solder 4 wires.

Neo 6m GPS

For the easy Soldering, first of all, apply solder to all the wires that you want to solder with the GPS module, it will save a lot of time. So after applying solder to the 4 wires then I started attaching the wires with the VCC, RX, TX, and Ground.

Neo 6m GPS

After I was done with the Soldering then I started checking the short circuit using a Digital Multimeter. To avoid any damage always check the short circuit before you power up any circuit. To check the short circuit set the multimeter on the Beep or continuity.

Neo 6m GPS

As you can see there is a short circuit. You can practically see how beneficially this can be. So always check the short circuit and continuity before powering up the circuit.

Neo 6m GPS

I removed the solder bridge and I tested again the short circuit and this time everything was just fine. Now this GPS module is ready and can be interfaced with the Arduino Uno or Mega.

Neo 6M GPS Module Features as per the Datasheet:

Neo 6m GPS

This GPS module can be powered up using 3 to 5v. I will be using 5v. Its default baud rate is 9600 which we will be using in the programming.

Neo 6m GPS

Dimensions help in calculating the size of the final product. We can use this information to make a plastic enclosure in SolidWorks or any other software.

Neo 6m GPS Arduino wiring:

Neo 6m GPS

The Neo-6M GPS module interfacing with Arduino is very simple. The VCC of the GPD module is connected with 5v, RX will be connected with pin3 of the Arduino, TX will be connected with pin2 of the Arduino and Ground will be connected with the Arduino’s GND.

Neo 6m GPS

I followed the same exact connections and now this GPS module is ready for the programming.
Before you start the Programming, first of all, make sure that you download the TinyGPSPlus library. While you don’t need to download the SoftwareSerial library, this is already available in the Arduino IDE, all you need is only include this in the programming.

Download TinyGPS: TinyGPSPlus


For the complete program explanation and Practical testing, you can watch a video tutorial given at the end.

Neo 6m GPS module connection Problem:

There are situations when you don’t get the longitude and latitude values, the same thing have happened to me and maybe you will also face the same problem. If you are using the same program and connections and still unable to receive the longitude and latitude values then I am sure you might be inside a Building or in the Basement.

To solve this Problem, don’t use this GPS module in the Basement or in a building, because this way the GPS module will take a lot of time in connecting with the Satellites or it will never connect. So try to use this in an open space. I am telling you this from my personal experience as I have been using this GPS module for years.

Watch Video Tutorial:

Recommended For You

About the Author: Engr Fahad

My name is Shahzada Fahad and I am an Electrical Engineer. I have been doing Job in UAE as a site engineer in an Electrical Construction Company. Currently, I am running my own YouTube channel "Electronic Clinic", and managing this Website. My Hobbies are * Watching Movies * Music * Martial Arts * Photography * Travelling * Make Sketches and so on...

Leave a Reply