X-Git-Url: https://zdv.bktei.com/gitweb/EVA-2020-02.git/blobdiff_plain/1b0ddef8b48317be57eaa376f7b3236d04ad3f7e..c22b362063c60cc04d8ae355fafae0acf3372484:/doc/time/README.org diff --git a/doc/time/README.org b/doc/time/README.org index ffb2210..b3a05e9 100644 --- a/doc/time/README.org +++ b/doc/time/README.org @@ -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 +