GPS tracker Home

Other links

Karoo Project
Straight Talk

The Karoo GPS tracker

As you can see in the photo above, this is in the design stage.

The tracking device hardware is not specific. We could use one of many Single Board Linux computers, power suply, battery, GPS unit, Satellite modem, and WiFi. The software is designed first for Iridium Satellite modem, a generic WiFi unit, Linux SBC, and UBLOX 6 GPS.

Please note that this unit is designed for security purposes, as opposed to vehicle management (trucks) or vehicle recovery (insurance).

So it has a different set of requirements:

  • continuous communication so that the security staff can immediately see where you are, (they can't be left waiting for you to come back into GSM coverage, the places where communication is most vital, are where there probably won't be GSM coverage),
  • accurate location data, instant to the most recent second,
  • privacy (all data communication must be encrytpted),
  • no external data server... tracking unit and any other supporting hardware must be controlled entirely by the security staff,
  • the unit must be able to be temporarily put in any vehicle (magnetic mount antenna, no connection to vehicle wiring loom), and
  • the unit must have a good internal battery life (at the expense of compact size).

Iridium data is expensive. So the tracking device can't just mindlessly send location data. It will be too expensive. The software in this unit samples the GPS unit every second, but it creates geometry on the fly. E.g. a stream of locations at the same velocity in the same direction, becomes a line. This is the basis for the compression of data. Then of course, the packets of data finally sent using the Satellite modem, are first compressed using standard darta compression techniques, and also AES encrypted.

Consequntly, this tracking device can be used economically even where there is GSM coverage.

It also used WiFi for dowloading the uncompressed data at a later stage, or for communication with a laptop in the vehicle.

The GUI will not be a web-application, but rather, it will be written first as a Linux application (using agg) and later ported to Windows. The reason for this is that the whole system must be very security and privacy conscious. Making it available on the web makes it more tempting as a hacking target. The design philosophy is based around the idea that to get access to a given tracking device, even if its data is proxied and cached somewhere off the device, you need to know its AES key to decrypt the data. So even if the data is proxied and cached, you will be virtually connecting to the device itself, using cryptographically secure communication. Although web browsers do have TLS support, it would be awkward to implement proper security from a web browser for this purpose.

Maps will use data sourced from Open Street Map. The data will be cached where its needed, even on the tracking device itself, for the area in question. This will allow the client to cache its own copy of OSM data for fast display, and for the tracking device itself to pre-calculate reverse geocode to get address information, speed limits, and to immediately perform other location-aware functions.

I have not released this source code as Open Source yet. I need to first set up the business model once I have completed development of the source code and made some prototype hardware. The infrastructure of the tracking unit relies heavily on The Karoo Project (which is available now as open source), but the GPS-specific code is not yet released as open source.

See also the blog entry for this tracking unit: GPS BLOG