Arduino GPS logger with sparkfun GPS and Phi-1 shield

There exist endless ways that you can use a GPS sensor in your projects. Geocaching and reverse geocaching are just two typical applications. The GPS sensor fits nicely under the LCD. I made up my mind to make it into a fully functional arduino GPS logger. It will feature a menu to choose from many functions including:

1.Send data to PC

2.Erase EEPROM

3.Record GPS to EEPROM

4.Display GPS coordinates on LCD

5.Parameters

It took me more than one whole day, thanks to the winter break, to finish all the above and again provide the code freely to anyone that uses it non-commercially. If you use this commercially, come on! Don’t you think a whole day’s work deserve something especially if you’re planning to use it for montary gain? :slight_smile:

Here’s some details:

Menu gives you several choices:

  • Send to PC: sends recorded GPS information to PC via the USB connection.

Two modes are available:

Verbose mode generates information as shown below.

Non-verbose mode sends only the column labels followed by tab-separated data, ideal for spreasheet programs to import. You may copy and paste.

  • Erase EEPROM: erases the EEPROM

  • Record: records GPS information, lattitude, longitude, altitude, date, time, speed to EEPROM

  • Display: displays the GPS coordinates without recording

  • Parameters: allows the user to adjust parameters such as period between two consecutive recordings, PC data format, to start recording at which data entry and end at which entry.

  • Up and down cycle through the menu options.

  • Left, right, B act as confirm or enter.

  • A escapes and only will preserve the latest value.

The verbose mode outputs human readable format but takes longer time as the USB link is only as fast as 115200BPS:

(I’ve blocked out the last 5 digits so you won’t find my exact location on map:)

Lat/Long(10^-5 deg): 45xxxxx, -94xxxxx Date(ddmmyy): 291210 Time(hhmmsscc): 5170500

Alt(cm): 33470 Speed(mph): 1.64

This is easy to read but very hard to import into a spreadsheet to analyze. So I added a non-verbose mode (choose under parameters). Here is its non-verbose output:

Lat(10^-5 deg) Long(10^-5 deg) Date(ddmmyy) Time(hhmmsscc) Alt(cm) Speed(mph)

45xxxxx -94xxxxx 291210 5170500 33470 1.64

(I’ve blocked out the last 5 digits so you won’t find my exact location on map:)

The above output can be copy+pasted to excel.

Here is a picture:

http://liudr.files.wordpress.com/2010/1 … =630&h=472

video: http://www.youtube.com/watch?feature=pl … sz7w9o62lc

All details including the code is here:

http://liudr.wordpress.com/2010/12/29/f … ps-logger/

by the way, this forum input really sucks, can’t handle more than a handful of texts and keeps jumping.

Here is a map of my shopping trip :o

http://liudr.files.wordpress.com/2010/1 … =630&h=630

The top is the shopping place parking lot and bottom is my apartment complex. Pretty cool!

hi guys, i’m using sparkfun gps shield with the EM-406A receiver…i’m quite new with arduino stuff…i’m using arduino one…

i wanted to use code given by website, but apparantely i have problems with it…

in the skech folder, i created folder, and copied and libraries inside…

just trying to run Examples code inside libraries, such for instance <NewSoftSerialTest.ino>, i receive this compilation error:


In file included from NewSoftSerialTest.cpp:2:

C:\Documents and Settings\Administrator\My Documents\Arduino\libraries\NewSoftSerial/NewSoftSerial.h:71: error: conflicting return type specified for ‘virtual void NewSoftSerial::write(uint8_t)’

E:\arduinoUtilities\arduino\hardware\arduino\cores\arduino/Print.h:48: error: overriding ‘virtual size_t Print::write(uint8_t)’


someone has ideas on what is going on?..tks!

M

Did you make sure that you had the latest code for both libraries?

Hi, i just download libraries from the following link:

http://www.sparkfun.com/tutorials/173


How do I make it work?

•Example GPS Parser Arduino Project

Once you have everything assembled, you are almost ready to load the example project on the Arduino. But first, you will need to create a directory called libraries within your arduino sketchbook. Then, download the TinyGPS and NewSoftSerial libraries into your the newly created libraries folder…


M