+* Location Logging
+This document was created by Steven Baltakatei Sandoval on
+<2020-06-29 Mon 12:14> 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-06-29 Mon 16:05>.
+** Narrative
+Ninfacyzga-01 records (logs) its position in time and space using a
+[[https://en.wikipedia.org/wiki/Satellite_navigation_device][GPS receiver]]. The NMEA location data produced by the receiver is
+converted into the more commonly used GPS data storage formats of GPX
+and KML. All three types of data are then compressed and encrypted
+against a set of public keys. The encrypted data is then written to
+disk. Data produced by the receiver is segmented into 60-second chunks
+before being processed and written to disk.
+** Description
+*** Hardware
+**** Raspberry Pi Zero W
+See the [[https://www.raspberrypi.org/pi-zero-w/][OEM]] webpage for this product.
+**** PiZ UpTime 2.0
+See the [[https://alchemy-power.com/piz-uptime-2-0/][OEM]] webpage for this product.
+*** Software
+~bkgpslog~ : The bash script that performs the location data
+collection and processing. Is an executable file contained within this
+repository at ~exec/bkgpslog~. It should be copied to
+~$HOME/.local/bin~.
+
+~gpsd~ : A background daemon app capable of interfacing with the
+Ozzmaker BerryGPS-IMU's GPS submodule. Installed and initialized by
+~apt~.
+
+~gpspipe~ : A command line app that polls ~gpsd~ and produces a stream
+stdout consisting of GPS data lines in NMEA format. Installed via
+~apt~.
+
+~gpsbabel~ : A command line app that converts GPS data from one format
+into another. ~bkgpslog~ uses it to convert NMEA data into GPX and
+KML. Installed via ~apt~.
+
+~gzip~ : A simple command line app that compresses stdin into a
+smaller stdout stream.
+
+~age~ : A simple command line app that encrypts stdin against public
+keys specified in its options. Produces encrypted stdout. Is an
+executable file contained within this repository at ~exec/age~. It
+should be copied to ~$HOME/.local/bin~.
+
+**** Narrative
+~bkgpslog~ populates a 60-second buffer with NMEA data from ~gpsd~ via
+~gpspipe~. This buffer is used by ~gpsbabel~ to produce GPX and KML
+versions of the buffer. All 3 buffers are then comprssed with ~gzip~,
+encrypted with ~age~, and then written to disk.
+
+*** Output
+**** File Formats
+***** NMEA
+See the [[https://en.wikipedia.org/wiki/NMEA_0183][Wikipedia page]] for this.
+***** GPX
+See the [[https://en.wikipedia.org/wiki/GPS_Exchange_Format][Wikipedia page]] for this.
+***** KML
+See the [[https://en.wikipedia.org/wiki/Keyhole_Markup_Language][Wikipedia page]] for this.
+**** Encryption Method
+Files produced by the bkgpslog script are encrypted against a set of
+public keys using [[https://github.com/FiloSottile/age][age]]. The public keys are bech32 strings supplied as
+options to bkgpslog when called.
+** Operating Procedures
+*** Initial Startup
+*** Normal Startup
+*** Normal Shutdown
+*** Unscheduled Shutdown
+*** End of Life Disposal
+