* Time Tracking
** About
This document was created by Steven Baltakatei Sandoval on
-~2020-07-23T22:27Z~ under a [[https://creativecommons.org/licenses/by-sa/4.0/][Creative Commons BY-SA 4.0 license]]. It
-was updated by Steven Baltakatei Sandoval on ~2020-10-17T23:31Z~
+~2020-07-23T22:27Z~ under a [[https://creativecommons.org/licenses/by-sa/4.0/][Creative Commons BY-SA 4.0 license]]. It was
+updated by Steven Baltakatei Sandoval on ~2021-01-25T00:32Z~.
** Narrative
The ~ninfacyzga-01~ device is equipped with an Ozzmaker BerryGPS-IMU
-module which provides time and location data to ~gpsd~ and ~chrony~. The
-time is provided by GPS satellites which themselves are
+module which provides time and location data to ~gpsd~ and
+~chrony~. The time is provided by GPS satellites which themselves are
equipped [fn:nasa_20020408_atomicclock] with atomic clocks. This
-extremely accurate set of clocks are needed since a GPS receiver
-calculates its position in space using a General Relativity
+extremely accurate set of clocks is needed since a GPS receiver
+determines its position in space using a [[https://en.wikipedia.org/wiki/Error_analysis_for_the_Global_Positioning_System#Special_and_general_relativity][General Relativity]]
calculation that uses the small variations in the time stamps received
from each satellite. This means that ~gpsd~ may be used to set the
system clock without a need for an internet connection to a default
*** Initial Startup
**** Perform initial setup.
See [[file:../setup/README.org][Main Setup]] procedure.
+
**** Install Hardware for time tracking
See [[https://ozzmaker.com/forums/topic/connecting-gps-pps-pin/][this]] Ozzmaker forum topic about connecting the BerryGPS-IMU
~T_PULSE~ pin to GPIO 18.
by adding the following line to ~/boot/config.txt~ as described on
[[https://ozzmaker.com/forums/topic/problems-with-pps-on-a-pi0w-running-raspian-and-attached-to-a-berrygps-imuv3/][this Ozzmaker page]]:
+: # Enable PPS on GPIO 18
: dtoverlay=pps-gpio,gpiopin=18
The ~/boot/config.txt~ file can be modified via:
The Ozzmaker BerryGPS-IMU makes NMEA sentences available via the
serial "UART" device ~/dev/ttyAMA0~. If bluetooth has not been
disabled, the Raspberry Pi OS automatically creates a software "UART"
-device at ~/dev/serial0~. See the "[[file:~/git-OC/ninfacyzga-01/doc/setup/README.org::*Disable%20Bluetooth][Disable Bluetooth]]" section in the
+device at ~/dev/serial0~. See the "[[file:../setup/README.org::*Disable%20Bluetooth][Disable Bluetooth]]" section in the
[[file:../setup/README.org][Main Setup]] Initial Startup procedure for instructions on how to
disable bluetooth to free up ~/dev/ttyAMA0~ for use by ~gpsd~.
***** Setup ~gpsd~
-See the "[[file:~/git-OC/ninfacyzga-01/doc/location/README.org::*Setup%20~gpsd~][Setup ~gpsd~]]" subsection within the "Initial Startup" section
-of the Location Logging [[file:~/git-OC/ninfacyzga-01/doc/location/README.org][~README.org~]] file. There is one additional
+See the "[[file:../location/README.org::*Setup%20~gpsd~][Setup ~gpsd~]]" subsection within the "Initial Startup" section
+of the Location Logging [[file:../location/README.org][~README.org~]] file. There is one additional
change that must be made which is to add a ~/dev/pps0~ item to the
~DEVICES=~ line in ~/etc/default/gpsd~ like so:
The following commands may be useful for testing ~gpsd~ and ~chrony~
configurations.
-- ~sudo chronyc sources -v~ : Shows time sources and associated accuracy
+- ~chronyc sources -v~ : Shows time sources and associated accuracy
information.
-- ~sudo chronyc tracking~ : Shows the current time difference between
+- ~chronyc tracking~ : Shows the current time difference between
the reference clock and the system clock. Note: ~chrony~ gradually
attempts to reduce the difference by changing the system clock.
- ~sudo systemctl restart chrony~ : Restart ~chrony~.
-- ~sudo systemctl status chrony~ : Check status of ~chrony~ service.
+- ~systemctl status chrony~ : Check status of ~chrony~ service.
- ~sudo ntpshmmon~ : Shows live output of data using the shared memory
driver filled by ~gpsd~. ([[https://gpsd.gitlab.io/gpsd/gpsd-time-service-howto.html][ref]])
refclock SHM 0 refid GPS precision 1e-1 offset 0.0000 delay 0.2 stratum 1
refclock SHM 1 refid PPS precision 1e-7 stratum 1
#+END_EXAMPLE
+