| 1 | * Time |
| 2 | This document was created by Steven Baltakatei Sandoval on |
| 3 | ~2020-07-23T22:27Z~ under a [[https://creativecommons.org/licenses/by-sa/4.0/][Creative Commons BY-SA 4.0 license]]. It |
| 4 | was updated by Steven Baltakatei Sandoval on ~2020-07-25T19:34Z~ |
| 5 | ** Development Task list |
| 6 | *** Set up prototype unit |
| 7 | **** Solder wire for PPS signal |
| 8 | **** Follow guide |
| 9 | - [[https://ozzmaker.com/forums/topic/connecting-gps-pps-pin/][Ozzmaker post]] on ~PPS~ wiring and a [[https://www.satsignal.eu/ntp/Raspberry-Pi-NTP.html][guide]] recommendation. |
| 10 | - [[http://www.satsignal.eu/raspberry-pi/Schmidt-RPZ-NTP-2016.pdf][Schmidt article]] on Raspberry Pi Zero time server. |
| 11 | - [[https://gpsd.gitlab.io/gpsd/gpsd-time-service-howto.html][GPSD dev ref]] page for ~gpsd~ interfacing with ~ntp~. |
| 12 | *** Document prototype unit |
| 13 | ** Narrative |
| 14 | The ~ninfacyzga-01~ device is equipped with an Ozzmaker BerryGPS-IMU |
| 15 | module which provides time and location data to ~gpsd~. The time is |
| 16 | provided by GPS satellites which themselves are [[https://science.nasa.gov/science-news/science-at-nasa/2002/08apr_atomicclock/][equipped]] with atomic |
| 17 | clocks. This extremely accurate set of clocks are needed since a GPS |
| 18 | receiver calculates its position in space using a General Relativity |
| 19 | calculation that uses the small variations in the time stamps received |
| 20 | from each satellite. This means that ~gpsd~ may be used to set the |
| 21 | system clock without a need for an internet connection to a default |
| 22 | Debian time server; ~ninfacyzga-01~ can be its own time server. |
| 23 | ** Description |
| 24 | *** Hardware |
| 25 | Ozzmaker BerryGPS-IMU, Version 3 |
| 26 | *** Software |
| 27 | This guide describes steps that may be used to convert a Raspberry Pi |
| 28 | into a time server using ~gpsd~. |
| 29 | ** Operating Procedures |
| 30 | *** Initial Startup |
| 31 | **** Install Raspbian 10 (Buster) onto a Raspberry Pi Zero W. |
| 32 | **** Install Hardware |
| 33 | See [[https://ozzmaker.com/forums/topic/connecting-gps-pps-pin/][this]] Ozzmaker forum topic about connecting the BerryGPS-IMU |
| 34 | ~T_PULSE~ pin to GPIO 18. |
| 35 | |
| 36 | Connect the ~T_PULSE~ connection on the BerryGPS-IMU-3 to GPIO pin 18 |
| 37 | in order to enable ~gpsd~ to read the PPS signal for forwarding to |
| 38 | ~ntp~. |
| 39 | |
| 40 | **** Install Software |
| 41 | Run the following command to install the required packages. |
| 42 | : $ sudo apt install usbmount eject gpsd gpsd-clients python-gps pps-tools ntp |
| 43 | |
| 44 | These instructions assume that ~gpsd~ has already been setup to |
| 45 | provide NMEA sentences to ~gpspipe~ for location. See the ~README.org~ |
| 46 | in ~doc/location~ for details. Basically, ~gpsd~ needs to be told via |
| 47 | its ~/etc/default/gpsd~ configuration file of which ~/dev/tty???~ will |
| 48 | provide the raw GPS module data. |
| 49 | |
| 50 | *** Normal Startup |
| 51 | *** Normal Operation |
| 52 | *** Normal Shutdown |
| 53 | *** Unscheduled Shutdown |
| 54 | |
| 55 | |