The selfmade GPS logger

Figure 7
The opened GPS logger while charging

My first complex project in the field of micro-controller and electornics was the construction of a GPS logging device. I started the project in 2008 on occasion of a competition on mikrocontroller.net (embdev.net). The device is capable of storing a path that you drive or walk onto a SD memory card. By that, you can easily view the path on you personal computer afterwards.

News: I'm really glad to announce that my article on how to build the device has been published in the 9th issue of the embedded projects journal.

Construction

The device which is shown on the picture is the second revision of my GPS logger. I have designed this one in the summer of 2010. The main difference between this device and the first version is the size. The current model's dimensions are 5cm x 5cm x 2cm. By that, it fits easily in every pocket. In order to achieve such small dimensions, I have designed a circuit board with two layers. Additionally, mainly surface mounted components were used. The processor is a Atmel ATmega88. The firmware has been written in C language.

The costs for this device lay around 50 Euro. Detailed Informations about construction of this device can be found in the wiki-article that I've written on www.mikrocontroller.net.

Software

At the same time I have developed two computer applications. On the one hand a program (called "RawRead") that is able to read out the memory card as the data is stored in a very special format. On the other hand an application (called "NMEA-Toolbox") that can process the stored information into Google-Earth tracks or other common formats for geo-data.

RawRead

As I don't use a common file system when writing onto the memory card, reading the data afterwards is not possible without additional software. When using Linux one could use built-in tools (e.g. dd), but on Windows you don't have such an opportunity. Because of this I have written a small piece of software that is able to read memory cards in raw format. For this I've used C++ as programming language. The tool is able to distinguish between volumes with and without my special filesystem, which makes it safe to use as you can't destroy the data on your harddrive by accident. The tool gives you the ability to readout the data as well as formatting the drive (formatting is only possible on removable media, not hard drives).

NMEA-Toolbox

Another application that I've wrote (this time in Java) is the so called NMEA-Toolbox. As described above, it is able to process written geo-data into common file formats, e.g. Google Earth files. You can even set some filters in order to improve the quality of the generated tracks. All the applications including the source codes can be downloaded on the bottom of this page.

The NMEA-Toolbox supports the following file formats:

Input:

  • Any file as long as it contains NMEA commands

Output:

  • Google Earth path (*.kml)
  • Google Maps path (*.kml)
  • Speed diagram (*.csv)
  • Elevation diagram (*.csv)
  • GPX-track (*.gpx)

Update

I have decided to move the AVR firmware as well as the RawRead application to GitHub. From now on, you can always find the newest version of the source code there. Because of that, I have removed the attachments here.

Attachments