7d7f368c18bed4c6ba0fc53c4ce2bb94802c0828
Precision Timekeeping Fuckery
How it works
Services
gpsdchronytelegrafinfluxdbgrafana-serversyslog-ng
Testing
Status (Everything)
bash ~/Precision-Timekeeping-Fuckery/full_status.sh
Status (Services)
bash ~/Precision-Timekeeping-Fuckery/status_services.sh
Test PPS
sudo ppstest /dev/pps0
Logs Stuff
Chrony Logs
sudo tail -f /var/log/chrony/tracking.logsudo tail -f /var/log/chrony/statistics.logsudo tail -f /var/log/chrony/measurements.log
Telegraf Logs
sudo tail -f /var/log/telegraf/telegraf.log
Grafana Logs
sudo tail -f /var/log/grafana/grafana.log
Influxdb Logs
sudo tail -f /var/log/syslog
Root Crontab Logs
sudo tail -f /var/log/root-crontab.log
Setup
Requirements
- Raspberry Pi 4+
- A timing specific GPS module
- I2C RTC Module
- battery for RTC Module
- Jumper wire to wire it up
Wiring
OS
- Raspberry Pi OS 64 bit lite
- Raspberry Pi imager
- Configure in imager
- hostname: grandmasterclock
- enable ssh
- ssh key
- username
- password
- locale
- keyboard
Software (Auto)
WILL REBOOT IN BETWEEN EACH COMMAND
curl -s https://raw.githubusercontent.com/PrincessPi3/Precision-Timekeeping-Fuckery/refs/heads/main/time_fuckery.sh?nocache=$RANDOM | $SHELLgit -C ~/Precision-Timekeeping-Fuckery pull && bash ~/Precision-Timekeeping-Fuckery/time_fuckery.sh- each reboot run the above command a total of four (4) times
- https://grandfatherclock:3000
- default login:
adminandadmin- set new password
- data sources->add new->influx db
- name "influxdb1"
- query languagew: influxql
- http
- url: http://127.0.0.1:8086
- timeout seconds: 3
- database: Chrony_Stats
- user, pass: blank
- save and test
- Dashboards->New-Import
- Upload Garfana-Visualization.json raspi-config Run raspi-config
- default login:
- Interface Options->Serial Port
- Would you like a login shell to be accessible over serial?
- Would you like the serial port hardware to be enabled?
- Interface Options-I2C
- Enable Yes
- Advanced Options 1. A1 Expand Filesystem
Clients
Windows
- Open the Control Panel and navigate to the Date and Time settings.
- Click on "Internet Time" and then "Change settings".
- Enable the option to "Synchronize with an Internet time server".
- Choose a time server from the available list or enter a custom one.
- Click "OK" to save the changes.
Links
Helpful Guide https://austinsnerdythings.com/2025/02/14/revisiting-microsecond-accurate-ntp-for-raspberry-pi-with-gps-pps-in-2025/
Old Module
- Chipset https://www.u-blox.com/en/product/neo-f10n-module
- Breakout https://docs.sparkfun.com/SparkFun_u-blox_NEO-F10N/single_page/
Current Module
- Chipset https://www.u-blox.com/en/product/neolea-m8t-series
- Breakout https://www.ebay.com/itm/134243322249
U-Blox Software (U-Center) https://www.u-blox.com/en/product/u-center
Description
Languages
Shell
90.7%
Python
9.3%