+: $ sudo apt install gpsd gpsd-clients python-gps pps-tools chrony
+
+***** Enable PPS device
+Modify the ~/boot/config.txt~ file in order to tell the Raspberry Pi
+to expect PPS data on ~BCM 18~ (pin number 12; see [[https://pinout.xyz/][link]]). This is done
+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:
+
+: $ sudo nano /boot/config.txt
+
+PPS data can be confirmed by running:
+
+#+BEGIN_EXAMPLE
+$ sudo su -
+# ppstest /dev/pps0
+trying PPS source "/dev/pps0"
+found PPS source "/dev/pps0"
+ok, found 1 source(s), now start fetching data...
+source 0 - assert 1595708074.003644641, sequence: 219 - clear 0.000000000, sequence: 0
+source 0 - assert 1595708075.003709620, sequence: 220 - clear 0.000000000, sequence: 0
+source 0 - assert 1595708076.003779580, sequence: 221 - clear 0.000000000, sequence: 0
+source 0 - assert 1595708077.003850580, sequence: 222 - clear 0.000000000, sequence: 0
+#+END_EXAMPLE
+
+Note: For older Raspberry Pi models, it may be necessary to enable
+~pps-gpio~ via modifications to ~/etc/modules~ (see [[https://www.raspberrypi.org/forums/viewtopic.php?p=757747#p757747][link]]).
+
+***** Enable GPS device
+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:../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:../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:
+
+: DEVICES="/dev/ttyAMA0 /dev/pps0"
+
+~/dev/ttyAMA0~ is where ~gpsd~ can get NMEA data from the GPS unit.
+
+~/dev/pps0~ is where ~gpsd~ can get a PPS signal.
+
+As an example, the following lines will be present in
+~/etc/default/gpsd~ if both location and time tracking are set up:
+
+#+BEGIN_EXAMPLE
+START_DAEMON="true"
+USBAUTO="false"
+DEVICES="/dev/ttyAMA0 /dev/pps0"
+GPSD_OPTIONS="-n"
+#+END_EXAMPLE
+
+Make sure to enable ~gpsd~ to automatically start as a system service.
+
+: $ sudo systemctl enable gpsd
+: $ sudo systemctl start gpsd
+
+***** Setup ~chrony~
+Modify the configuration file for ~chrony~ at ~/etc/chrony/chrony.conf~.
+
+: $ sudo nano /etc/chrony/chrony.conf
+
+Add the following lines:
+
+#+BEGIN_EXAMPLE
+# Get time from GPS (/dev/XXXX) and PPS (/dev/YYYY)
+#refclock SOCK /run/chrony.XXXX.sock refid GPS precision 1e-1 offset 0.0000
+#refclock SOCK /run/chrony.YYYY.sock refid PP precision 1e-7
+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
+
+Where
+- ~XXXX~ : the basename of the GPS device's serial port. In this guide
+ it should be ~ttyAMA0~; other setups may use ~ttyS0~, ~ttyACM0~, or
+ ~serial0~.
+
+- ~YYYY~ : the basename of the PPS device's serial port. In this guide
+ it should be ~pps0~.
+
+Note: The ~refclock SOCK~ lines are left as comments in case ~gpsd~
+incorrectly maps the GPS and PPS data.
+
+The following commands may be useful for testing ~gpsd~ and ~chrony~
+configurations.
+- ~chronyc sources -v~ : Shows time sources and associated accuracy
+ information.
+
+- ~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.