My new toy: Globalsat DG-100 GPS Data Logger
Being a geek, I need my geek toys. My latest is a GPS Data Logger, that I bought to assist me in geotagging my photographs.
A GPS Data Logger is a portable device that periodically records geographical coordinates of its location, from a received GPS signal. The list of logged data points is meant to be dumped later to a computer.
These devices are used to track hiking or cycling paths, to help with wardriving, to track touristic walks or to help with geotagging photographies. The latter is my main purpose for the data logger I bought.
Globalsat DG-100:
The Globalsat DG-100 is a very nice small and affordable (low end) GPS data logger. According to the reviews and comparisons from GpsPassion, PocketGPSworld and from Richard Ackerman's blog, I chose this logger among others because of the following key features:
- Time-based or distance-based periodic logging or GPS locations. The basic function of a GPS data logger;
- On-demand recording of current location. In addition to periodic logging;
- SiRFStar III chipset: sensitive enough to give me decent GPS signals in non-ideal conditions (cloudy weather, in-house, etc). This is a fundamental feature because without GPS signal, a data logger is no different from paper weight... but that's obvious;
- Long battery life - reportedly up to 36 hours or continous usage;
- USB interface;
- Interface software allows extraction of the logged data into a number of file formats. This is another fundamental feature because although "Globalsat Data Logger PC Utility" is a windows-only tool, I intend to use the logged data on some other non-windows programs (like open source ones). This is actually irrelevant because I already found an open source and portable program that interfaces with the device and is able to extract data from it. Whoohoo!!;
- Plug for an external GPS antenna;
- 2 rechargeable AA batteries included. The USB connector charges them. It would be a shame if it did not...;
- Make sure that my camera's clock is correctly set;
- Walk around with my data logger while on photographic raids. Try to log the specific spots where I shoot pictures;
- Dump data into a GPX file;
- Dump my pictures into some folder;
- Use digikam with the gpssync plugin to match photos with GPS locations. Matching is made from timing information. The picture IMG_NNNN.JPG, shot at the time "hh:mm:ss" has the location obtained from the GPX log at the time equal or closest to "hh:mm:ss";
By looking at the supplied software, it becomes apparent that the device communicates through a serial to USB line (Prolific PL-2303X USB-serial adapter). There is a driver in the Linux kernel tree for that USB-serial adapter called pl2303, so no problems expected regarding chatting with the device. The final piece of the puzzle is some program that knows the protocol to communicate with the DG-100.
After a quick research, I found that Linux offers quick and easy support for a large number of GPS devices and that there are many tools that easily interface with them to provide different functionalities, obviously related to GPS positioning.
gpsd does not work
The clever way to achieve this is by using a consistent TCP to GPS interface called gpsd. One one end, gpsd contains a number of drivers and parsers for the many different GPS devices it supports. On the other end, it serves requests to client applications from a TCP socket, using the help of an interface independent of the GPS device in use.
Clever, but does not support the DG-100 yet... The list of GPS devices supported by gpsd is big but as all such tools, not complete. Being an open source tool, gpsd is developed by contributors that give their own free time to improve it further. Hopefully support for the DG-100 will be included by a friendly contributor.
bug gpsbabel does... or will, soon:
gpsbabel aims to be a multi-platform universal translator between many GPS data formats. It is a different tool than gpsd, but incidentally, it also contains drivers and/or parsers for a number of devices. gpsbabel is used by several other tools to perform GPS data translations.
The current version of gpsbabel is 1.3.4, which does not include support for the DG-100 as well. But good news is that Robert Lipe commited code with initial support for Globalsat DG-100 on 1st September 2007. The code is copyrighted to Mirko Parthey and Robert Lipe and released under the GPL license. The driver is now in its revision 1.17 (2007-09-13) and is likely to be included in one of the next gpsbabel releases.
So, to use gpsbabel with support for my DG-100, I checked out the HEAD code and compiled it on my host. It compiled fine and I was able to pull the data records from the device into a file. Woohoo!
Just a quick guide. I already had the module pl2303 so as soon as I plugged in and turned on the device, the kernel reported its presence:
usb 6-1: new full speed USB device using ohci_hcd and address 2
usb 6-1: configuration #1 chosen from 1 choice
usbcore: registered new interface driver usbserial
drivers/usb/serial/usb-serial.c: USB Serial support registered for generic
usbcore: registered new interface driver usbserial_generic
drivers/usb/serial/usb-serial.c: USB Serial Driver core
drivers/usb/serial/usb-serial.c: USB Serial support registered for pl2303
pl2303 6-1:1.0: pl2303 converter detected
usb 6-1: pl2303 converter now attached to ttyUSB0
usbcore: registered new interface driver pl2303
drivers/usb/serial/pl2303.c: Prolific PL2303 USB to serial adaptor driver
Udev politely created /dev/ttyUSB0 (serial port device file) automatically for me. Then all I need to do is:
- gpsbabel -i dg-100,erase=0 -f /dev/ttyUSB0 -o gpx -F latest-dump.gpx
Prefer KML instead of GPX? Fine:
- gpsbabel -i dg-100,erase=0 -f /dev/ttyUSB0 -o kml -F latest-dump.kml
- gpsbabel -i gpx -f latest-dump.gpx -o kml -F latest-dump.kml
(the used gpsbabel binary was, of course, result of a CVS HEAD checkout compilation done in 2007-09-22, because as I referred, the dg-100 driver has not yet been included in an official release)
Final words:
Although I have not tried any other data logger, I would seriously recommend the Globalsat DG-100 unit for everyone that would make use of a GPS data logger. It is in fact small, battery efficient, it has good signal levels even inside supermarkets, I can use it on Linux and it fits my purpose perfectly.
As one of my work mates usually says: "Brilliant stuff!"
Cheers, PJ.