]> zdv.bktei.com Git - EVA-2020-02.git/blobdiff - doc/time/README.org
feat(doc/time/README):Add instructions setting up chrony client
[EVA-2020-02.git] / doc / time / README.org
index ffb2210def1aa3dd6c3e1cf07bdbc5b385e93cb7..b3a05e9d22d9e2c00ee3eefd99a9d02f4890e908 100644 (file)
@@ -1,19 +1,21 @@
+* Ninfacyzga-1 Time Tracking
 #+TITLE: Ninfacyzga-1 Time Tracking
 #+AUTHOR: Steven Baltakatei Sandoval
 #+EMAIL: baltakatei@gmail.com
-* Time Tracking
+#+DATE: 2023-03-14
+
 ** 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:27+00~ 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 ~2023-03-14T19:47+00~.
 
 ** 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
@@ -46,6 +48,7 @@ Ozzmaker BerryGPS-IMU, Version 3 (see [[https://ozzmaker.com/berrygps-berrygps-i
 *** 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.
@@ -89,6 +92,7 @@ to expect PPS data on ~BCM 18~ (pin number 12; see [[https://pinout.xyz/][link]]
 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:
@@ -116,13 +120,13 @@ Note: For older Raspberry Pi models, it may be necessary to enable
 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:
 
@@ -175,10 +179,10 @@ incorrectly maps the GPS and PPS data.
 
 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.
 
@@ -194,7 +198,7 @@ configurations.
 
 - ~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]])
@@ -282,6 +286,61 @@ nohz=off
 
 [fn:se_20180320_raspicpugov] Title:[[https://raspberrypi.stackexchange.com/questions/9034/how-to-change-the-default-governor]["How to change the default governor?"]]; Author:[[https://raspberrypi.stackexchange.com/users/5538/goldilocks][goldilocks]]; Date: 2018-03-20; Website:stackexchange.com;
 
+***** Configure another machine to use the time server
+A separate Debian machine may be configured to use the ~ninfacyzga-1~
+device as a GPS time server. This may be performed by:
+
+1. Installing ~chrony~ onto the separate machine (e.g. hostname
+   ~somedeb~):
+
+#+begin_example
+somedeb:$ sudo apt update && sudo apt upgrade
+somedeb:$ sudo apt install chrony
+#+end_example
+
+2. Modifying the ~chrony.conf~ file:
+
+  : somedeb:$ emacs /etc/chrony/chrony.conf
+
+  - Add the following lines to the end of this configuration file,
+    substituting ~ninfacyzga-1-x~ with the hostname or IP address
+    chosen for the ~ninfacyzga-1~ device:
+
+#+begin_example
+# Use ninfacyzga-1-x if available
+server ninfacyzga-1-x iburst prefer minpoll 2 maxpoll 4
+#+end_example
+
+3. Restart the ~chrony~ service.
+
+  : somedeb:$ sudo systemctl restart chrony
+
+4. Verify that ~ninfacyzga-1-x~ is being used by ~chrony~ 
+
+#+begin_example
+somedeb:$ chronyc sources
+MS Name/IP address         Stratum Poll Reach LastRx Last sample               
+===============================================================================
+^? pugot.canonical.com           2   6   377    11  -2172us[-2209us] +/-  115ms
+^? prod-ntp-5.ntp4.ps5.cano>     2   6   377     9  -4169us[-4206us] +/-   88ms
+^? prod-ntp-4.ntp1.ps5.cano>     2   6   377    10  -2758us[-2795us] +/-   88ms
+^? prod-ntp-3.ntp1.ps5.cano>     2   6   377     5  -6473us[-6510us] +/-   87ms
+^? mail.novg.net                 2   6   377    11  -6099us[-6136us] +/-  125ms
+^? ntp1a.versadns.com            1   6   377     6  -2006us[-2043us] +/-   40ms
+^? 2602:fde5:2a::12              1   6   377    11  -2200us[-2237us] +/-   49ms
+^? 2001:da8:9000::130            1   6   377    15  -2372us[-2409us] +/-  102ms
+^* ninfacyzga-1-x.lan            2   4   377    14  -1686us[-1724us] +/- 2971us
+^- brazil.time.system76.com      2   6   377    17  -4738us[-4775us] +/-  103ms
+^- ohio.time.system76.com        2   6   377    15   +320us[ +283us] +/-   58ms
+^- oregon.time.system76.com      2   6   377    19  -5845us[-5882us] +/-   30ms
+^- paris.time.system76.com       2   6   377    19  -4531us[-4568us] +/-   92ms
+^- virginia.time.system76.c>     2   6   377    15  -6607us[-6644us] +/-   51ms
+#+end_example
+
+  The ~*~ in the ~^*~ symbol at the start of the line containing
+  ~ninfacyzga-1-x~ indicates that ~ninfacyzga-1-x~ is being used to
+  set the system clock of ~somedeb~.
+
 *** Normal Startup
 *** Normal Operation
 *** Normal Shutdown
@@ -327,3 +386,4 @@ makestep 1 3
 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
+