# GPS Location fun. Tracking, logging, etc ## Inspiration / Further Reading - [https://github.com/wadda/gps3](https://github.com/wadda/gps3) - [https://learn.adafruit.com/adafruit-ultimate-gps-on-the-raspberry-pi?view=all](https://learn.adafruit.com/adafruit-ultimate-gps-on-the-raspberry-pi?view=all) - [https://learn.adafruit.com/assets/3715](https://learn.adafruit.com/assets/3715) - [https://learn.adafruit.com/adafruit-ultimate-gps?view=all](https://learn.adafruit.com/adafruit-ultimate-gps?view=all) - [https://stackoverflow.com/questions/16989153/saving-gps-data-as-gpx](https://stackoverflow.com/questions/16989153/saving-gps-data-as-gpx) - [http://www.catb.org/gpsd/gpspipe.html](http://www.catb.org/gpsd/gpspipe.html) - [http://www.catb.org/gpsd/gpsd-time-service-howto.html#_feeding_chrony_from_gpsd](http://www.catb.org/gpsd/gpsd-time-service-howto.html#_feeding_chrony_from_gpsd) - [http://thomasloughlin.com/gpspipe-gps-client/](http://thomasloughlin.com/gpspipe-gps-client/) - [http://robotsforroboticists.com/chrony-gps-for-time-synchronization/](http://robotsforroboticists.com/chrony-gps-for-time-synchronization/) - [https://forum.armbian.com/topic/4944-opi-zero-gps-ntpserver/](https://forum.armbian.com/topic/4944-opi-zero-gps-ntpserver/) - [http://darethehair.net/gps_time_server.html](http://darethehair.net/gps_time_server.html) - [https://forum.armbian.com/topic/7033-solved-orangepi-one-1-pps-ntp-server/ ](https://forum.armbian.com/topic/7033-solved-orangepi-one-1-pps-ntp-server/ ) - [https://www.satsignal.eu/ntp/Raspberry-Pi-NTP.html](https://www.satsignal.eu/ntp/Raspberry-Pi-NTP.html) ## Hardware The author chose the [Adafruit Ultimate GPS Breakout (link)](https://www.adafruit.com/product/746) for this guide. YMMV with other boards. ### Pinout - Connect vcc to a 3v source on the main expansion header - Connect gnd to a gnd on the main expansion header - Connect tx to rx pin of uart2 on the main expansion header - Connect rx to tx pin of uart2 on the main expaions header - Connect pps to the PA6 pin on the main expansion header ## Setup ``` bash armbian-config # Enable hardware uart2 and pps-gpio # System # Hardware # Enable uart2 option # Enable pps-gpio option # Save/reboot apt install gpsd gpsd-clients python-gps gpsbabel # necessary software systemctl stop gpsd # stop gpsd to help with testin gpsd -n -N -D 2 /dev/ttyS2 # run gpsd by hand cgps -s # run a cli client to verify it works ``` Setup necessary ```gpsd``` defaults (daemon that provides location data to programs). Edit ```/etc/default/gpsd``` - Add ```/dev/ttyS2``` to ```DEVICES``` - Add ```-n``` to ```GPSD_OPTIONS``` ## Chrony Setup PPS for chrony ``` bash cat >> /boot/armbianEnv.txt <> /etc/chrony/chrony.conf < /etc/Networkmanager/dnsmasq-shared.d/ntp.conf < /etc/systemd/system/gps-logger.service < /etc/systemd/system/gpsconvert.service < /etc/systemd/system/gpsconvert.timer <