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.
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.