Ublox NEO 7 GPS module with Arduino.

ublox neo7

The sketch for this blog as well as a copy of the u-center software from UBlox can be found on my GitHub page here.

I ordered a Ublox NEO 7 from a Chinese source in late August. It eventually turned up on December 23! There were times when I thought it had gone missing and I was about to contact the supplier. However, it was definitely worth the wait as this is an amazing device. I have three other GPS units, an Adafruit Ultimate GPS, a Ublox NEO 6 and a navigation unit that is fitted with a Compass unit and a Ublox NEO 6. The NEO 7 is tiny, barely larger than the ceramic antenna and at a cost of less than £6 post paid I wasn’t expecting too much.

The unit is 3.3volt and so would need a logic level converter in the Tx and Rx lines and I used one that supplies 3.3 volts at 500ma to power the GPS. There are six connections, but only four (Ground, 3.3 volts, Tx and Rx) are used, the outside two are not used. The connections are shown below.

pin connections
To test how quickly the NEO 7 could get a fix I simply connected the Ground and 3.3 volt pins to the Arduino and the Red power LED lit up, there were two other LEDs one on the underside and another alongside the ceramic antenna on the top of the board. Neither of these two were lit and I assumed that they would light when the NEO 7 had a GPS fix. The LEDs remained unlit and after 5 minutes I took the Arduino and NEO 7 connected to a power block outside. In less than 30 seconds the two green LEDs lit, showing the unit had a fix. Taking the project back inside the house the LEDs remained lit and the GPS retained its lock, something that none of my other units had done without an active antenna.

The Ublox NEO 7 does not have a backup battery, so any changes made to the baud rate etc will be lost when the power is removed. It seems that there is a version, the Ublox NEO 7N, that stores changes in flash memory (according to the data sheet). The module comes set at 4800 baud, updating once per second and the output is a little slow, but if the baud rate is set to 9600 and the refresh changed to at least twice a second then the output is quite quick. Limiting the output to the $GPGGA Sentence also speeds things up.

The best software for use on an Arduino that I found was in the Arduino Playground. I modified the sketch slightly to use Software Serial on pins 2 and 3 and this version can be downloaded from my GitHub page (link at the top of this blog). This sketch puts the Neo 7 into 9600 baud and refresh at 4 times per second each time the sketch is run

For real use the $GPGGA Sentence would need to be split into its various parts to extract the time and location data and the second sketch does this. Time and location are stored in an array and at the moment this data is printed out, but could be used to set a clock, or to display the current Longitude and Latitude.

Connecting the Neo 7 to a USB to TTL adaptor would allow it to be connected to a PC (a logic level converter would be required unless the adaptor was 3.3 volt) and the UBlox U-Center software could be used. This software can be freely downloaded from the UBlox site, but I have included it in my GitHub repository.


1 thought on “Ublox NEO 7 GPS module with Arduino.”

  1. Hello, I am beginner in programming. I started a project and I have to add a module that will give me the coordinates of my position as well as the date and time. I use an Arduino UNO and a module UBLOX Neo 7. I tried with the programming you provided but it does not work. You connect the Rx and Tx on pins 2 and 3 but these pins are already used for my LCD screen. I also have another LCD screen that uses only analog pins A4 and A5, but I have to use the functions ” lcd.print ” instead of ” serial.print ” and again, it does not work because I do not have all the knowledge. Your help would be greatly appreciated.


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s