The initial goal of this project is to build a small GPS data logger in order to log the trips I fly (as I am a student private pilot) to visualize them afterwards. This initial goal defines the characteristics of the device:
Important notice: I do not plan to add any real-time navigation or map feature to this GPS data logger (but of course, it can be modified to implement these features). In addition, as it does not have any integrity checking, it must not be used as a primary navigation tool by pilots.
The GPS module chosen in the first version of my GPS data logger is the EM-406 from USGlobalSat. The module is powered at 5V 75mA and outputs the data using the NMEA 0183 standard over a serial line.
The second version uses the EM-408 module from USGlobalSat because it only requires 3.3V and all other components of the circuit are also powered from 3.3V.
The data from the GPS module is stored on a SD card. SD cards are cheap, large capacity (several hundreds of MBytes) and easily interfaced with the micro-controller thanks to the SPI mode (the native SD communication mode is not easy to use).
Some useful infos about SD cards:
The first version needs two different voltage (+5V for the ATmega8 and the EM-406 GPS module and +3.3V for the SD card). The +5V is generated from 2 NiMH cells (~ 2.4 V) with a step-up DC-DC converter (MC34063). The +3.3V is generated from the +5V with a simple LDO regulator.
The second version only needs +3.3V (the EM-408 GPS module accepts 3.3V and I have chosen the ATmega8L which can only runs at frequencies up to 8 MHz but which accepts 3.3V). This voltage is generated from 4 NiMH cells (~ 4.8 V) with a step-down DC-DC converter (MAX 640).
As I plan to implement a battery charge feature on the future version, I have created a seperate page which gather informations about batteries: Batteries info.
One way to retrieve the data recorded is to plug the SD card into a card reader. However, in the current version of the GPS software, the raw data are recorded directly to the card without using the partition table and the filesystem of the card. So with this method, you need to read directly the raw data from the SD card (using the dd command under Linux for instance).
The first two versions of the GPS also have a RS232 interface so you can connect it to one serial port of your PC and retrieve the data using a communication software (minicom under Linux for instance).
I plan to replace the serial interface with an USB interface in the third version of the GPS using, for instance, the FT232RL chip (a USB/Serial converter).
The features I plan to add to the third version:
The development of this third version has just begun (March 2010), please see the dedicated page about v3.
The version 2 was designed to be the first usable version of the GPS data logger. Here is the list of changes from the first version:
Current status (April 2008): this version working well. I have tested it during two trips by car (4 hours each).
TODO: add documents (schematics, PCB, source code)
This part describes the first version of the GPS data logger. This version was only a prototype (large PCB) and the PCB had several bugs (the SD card connector is not properly wired, some pins are permuted).
Current status (December 2007): the basic functionalities are working properly after a quick and dirty fix of the PCB. This version was used to trace the trip between my home and my work place by car. However, it is too big and ugly to be taken in a plane.
TODO: add documents (schematics, PCB, source code)