Arduino GPS Oled




Introduction: Arduino GPS Oled

About: My experience in the field of electronics led me to discover the existence of open hardware and software, in all the years that followed that discovery I just started to develop my own technologies and advis...

The NEO-6 module series is a family of stand-alone GPS receivers featuring the high performance u-blox 6

positioning engine. These flexible and cost effective receivers offer numerous connectivity options in a miniature 16 x 12.2 x 2.4 mm package. Their compact architecture and power and memory options make NEO-6 modules ideal for battery operated mobile devices with very strict cost and space constraints. The 50-channel u-blox 6 positioning engine boasts a Time-To-First-Fix (TTFF) of under 1 second. The dedicated acquisition engine, with 2 million correlators, is capable of massive parallel time/frequency space searches, enabling it to find satellites instantly. Innovative design and technology suppresses jamming sources and mitigates multipath effects, giving NEO-6 GPS receivers excellent navigation performance even in the most challenging environments. UART NEO-6 modules include one configurable UART interface for serial communication Configuration Boot-time configuration NEO-6 modules provide configuration pins for boot-time configuration. These become effective immediately after start-up. Once the module has started, the configuration settings can be modified with UBX configuration messages. The modified settings remain effective until power-down or reset. If these settings have been stored in battery-backup RAM, then the modified configuration will be retained, as long as the backup battery supply is not interrupted. NEO-6 modules include both CFG_COM0 and CFG_COM1 pins and can be configured as seen in Table 6. Default settings in bold.

Step 1: Theory

TinyGPS++ is a new Arduino library for parsing NMEA data streams provided by GPS modules.
Like its predecessor, TinyGPS, this library provides compact and easy-to-use methods for extracting position, date, time, altitude, speed, and course from consumer GPS devices. However, TinyGPS++’s programmer interface is considerably simpler to use than TinyGPS, and the new library can extract arbitrary data from any of the myriad NMEA sentences out there, even proprietary ones.


Further Info:

Step 2: Schematics-materials

-Arduino Nano

-0.96 Oled Display


-2 2.2K resistors

-Jumper Cables

- Arduino GPS Ubox neo 6m

Step 3: Program

The most important thing is to test the clock actualization

The gps can tke up to 20 min to 60 min

Remember we need to triangulate the signal, ergo need to syc with 3 sattellites

Try to change this line if it do not work:

Option A

#define GPS_BAUD 38400

Option B

#define GPS_BAUD 9600

Option C

#define GPS_BAUD 4800

Step 4: Test

At first you will get

Date: 0/0/2000

Time: 00:00:00

if this values update, ti meas that the gps liked at least to one Sat.

then youll get the current coordinates of the gps...

you can google it and then find it on the world map.


2 People Made This Project!


  • Puzzles Speed Challenge

    Puzzles Speed Challenge
  • "Can't Touch This" Family Contest

    "Can't Touch This" Family Contest
  • CNC Contest 2020

    CNC Contest 2020

6 Discussions


2 years ago on Step 2

Thank you for this tutorial. I tested it and it works fine. I am currently preparing to make a UNO shield to take these modules, then do the same for a NANO and maybe a Pro Mini 3.3v.

I have one question though, how do I modify the UTC time to local time (Western Australia +8). I have made several attempts but the IDE wont accept any of my modifications.

FYI - I have no previous coding experience prior to discovering Arduino.


Reply 1 year ago

it is automatic to the satellite, but you can add avariable that add o sub to the minutes or hours.


Question 1 year ago on Step 4

Hi. Great project. Can you advise how I could add speed (mph) to the code? Thanks


2 years ago

I have the same question too. How do I set my local time?


Reply 1 year ago

it is automatic to the satellite, but you can add avariable that add o sub to the minutes or hours.