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:
- Setup Raspberry Pi to run in headless mode8 (so that it can be ran in the field)
- init.sh starts the gpsd (GPS) service for the Raspberry Pi. The Raspberry Pi listens to the output of the service on port 2947.
- The user starts gps_test.py
- The Raspberry Pi then samples gpsd service (~1Hz) and writes this output to a file: gps_log.kml
- subsample_kml.py is used to subsample the logged points in gps_log.kml and outputs a subsampled version of it: gps_log_subsampled.kml
- Because gps_log_subsampled.kml will just be disconnected location pins if viewed in Google Earth, we use line_string_from_kml.py 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.