Geo Logger

Field test on a kayak trip

Table of Contents


In this project, I cover my geo logger software package that can be run on a Raspberry Pi to record GPS coordinates, velocity and elevation along a path. Someday, this functionality will reside on my scuba kayak and underwater sensory platform.

The charger is a simple float charger so it can be left on the SLA battery indefinitely so long as its maximum current and voltage output settings are kept appropriate (covered later).


  • Raspberry Pi 3B+ x11
  • USB-to-TTL Serial Cable x12
  • Ultimate GPS Breakout x13
  • CR1220 Battery x14
  • GPS Active Antenna 28db Gain, 3-5VDC x15
  • Antenna Extension Cable x16
  • Mophie Powerstation 4Ah, Red x17


The steps to run the code and produce a kml file (that is viewable in Google Earth) is fairly straightforward:

  1. Setup Raspberry Pi to run in headless mode8 (so that it can be ran in the field)
  2. starts the gpsd (GPS) service for the Raspberry Pi. The Raspberry Pi listens to the output of the service on port 2947.
  3. The user starts
  4. The Raspberry Pi then samples gpsd service (~1Hz) and writes this output to a file: gps_log.kml
  5. is used to subsample the logged points in gps_log.kml and outputs a subsampled version of it: gps_log_subsampled.kml
  6. Because gps_log_subsampled.kml will just be disconnected location pins if viewed in Google Earth, we use to convert datapoints in gps_log_subsampled.kml to a format that when viewed in Google Earth, will be a connected line

Visit my git repo to obtain the code and to see an example kml file for each step in the process above.


  1. ↩︎

  2. ↩︎

  3. ↩︎

  4. ↩︎

  5. ↩︎

  6. ↩︎

  7. ↩︎

  8. ↩︎

Software Engineer

My research interests include computer vision and deep learning.