my hobby is R/C airplane modeling and its FPV branch (First Person View). In our planes we load GPS receivers to send telemetry data to ground, so we can know anytime where the plane is; but we don't store the GPS data so we cannot analyze later our trip with tools like Google Earth.
So one month ago I got an Arduino and started preparing a GPSLogger together with a friend and co-worker. I have some experience with PICs, so it wasn't hard to start with Arduino. In fact I had started leaving apart the PICs, as it was so difficult to get results, but it's no the case with Arduino. Why didn't I find it before? Well, I guess it's better late than never. Let's go on.
As our planes are heavily loaded we need something small and light, so I decided to use an Arduino Pro Mini, and to store the data on microSD card.
There were two of us working in the project, Eduardo García and me. Eduardo wrote the library to store data in the microSD, and I wrote the GPSLogger code. The microSD library is based in the one written by David Cuartielles (SDuFAT), but it was optimized to make it smaller and quicker. There are some requirements for the file: it must exist in the root folder, its name must be in the 8+3 format and it must contain at least one character. As we store new data in the file it will grow. One of the known limitation on David Cuartielles library was that the file should have a previously fixed size.
This is the final setup:
If you want to see more pictures: http://www.flickr.com/photos/raulhc/sets/72157617214875959/
It has been tested with the following GPS modules: EB-85 EM-406 Locosys LS20033
The GPSLogger source code is contributed under the GPL license, and can be found here: http://code.google.com/p/arduino-gpslogger/
The microSD source code is contributed under the GPL license, can be found here: http://code.google.com/p/arduino-filelogger/
Best regards, Raul.