preloadingpreloadingpreloadingpreloading
Startseite > Software > SkyTraQ Datalogger

SkyTraQ Datalogger

I have set up a Google Code project for the program: http://code.google.com/p/skytraq-datalogger/. You can find the newest version and information there.

Recently I bought a Skytraq DL-65 bluetooth GPS data logger (55 Euro). The provided software to read tracks from the device is a Windows program the "GPS Photo Tagger" from iTravel-Tech. But since I do not use Windows I needed a software for Linux to download track and configure the device.

When you connect the data logger via USB you can see that it uses a PL2303 USB-serial converter. Without any further software you can dump the NMEA data stream: cat /dev/ttyUSB0.

My device contains a SkyTraq Venus 6 GPS receiver. Older data loggers contain a Venus 5 GPS receiver. Those should also work with my program. The SkyTraq Venus uses a binary protocol to communicate with the host. As the time of writing this I found several documents with the specification online:

More difficult than downloading the raw track data from the device was the decryption of that binary data. There are two kind of entries, a long 18 byte entry and a short 8 byte entry. AN0008 describes when a long entry instead of the usual short entry is written. The long entry contains this information:

  • speed (km/h) 8 bit
  • number of week (GPS time) 12 bit
  • time of week (GPS time) 20 bit
  • ECEF x-axis 24 bit
  • ECEF y-axis 24 bit
  • ECEF z-axis 24 bit
A short entry contains the speed and differences to its preceding entry (short or long):
  • speed (km/h) 8 bit
  • time difference 16 bit
  • ECEF x-axis difference
  • ECEF y-axis difference
  • ECEF z-axis difference

The software

With the help of these documents I have been able to write a program to talk to the data logger. You can download the source code and a Debian package here:

skytraq-datalogger_0.3-1.dsc
skytraq-datalogger_0.3-1_i386.changes
skytraq-datalogger_0.3-1_i386.deb
skytraq-datalogger_0.3-1.tar.gz
  • unpack the sources: tar xvfz skytraq-datalogger-0.2.tar.gz
  • change into the directory: cd skytraq-datalogger-0.2
  • compile the program: make
  • start the program to see the usage information: ./skytraq-datalogger

The program works to configure the device and download tracks. There are some things that could be improved:

  • change to higher speed on the serial line
  • restart transfer of a sector when checksum is incorrect
  • timeout when waiting for ACKs

These devices have been reported to work with the program:

  • Canmore GT-730F(L)
  • SJ-5284S4LG V1.2 (this is my device)
It should also work with other devices using the Skytraq Venus 5 or Skytraq Vensu 6 chipset like:

gpsbabel

I have also written a plugin for gpsbabel for downloading track from the data logger. I am going to submit it to the developers for gpsbabel. You can already find the patch for gpsbabel 1.3.6-beta20080821 here: gpsbabel-skytraq.patch. Or download skytraq.c (it's a bit newer than the patch) directly and modify Makefile.in and vecs.c a bit.

extern ff_vecs_t skytraq_vecs;
{
&skytraq_vecs,
"skytraq",
"SkyTraq GPS data logger Download",
NULL
},

Bluetooth

You can also connect the data logger via bluetooth. However, I have not been able to configure the data logger or download tracks via bluetooth.

  1. Determine the device's MAC address: hcitool scan
  2. rfcomm connect 0 MAC-address
  3. Now you can talk to the data logger via /dev/rfcomm0, for example get the NMEA data stream: cat /dev/rfcomm0
output of hcitool info
BD Address:  00:0B:0D:00:01:CD
Device Name: DATALOGG
LMP Version: 2.0 (0x3) LMP Subversion: 0xbb8
Manufacturer: Silicon Wave (11)
Features: 0xff 0xff 0x05 0x38 0x18 0x18 0x00 0x00
<3-slot packets> <5-slot packets>