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-Fuckert/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
Setup
Requirements
- Raspberry Pi with
- Raspberry Pi OS Installed
- SSH Access
- sudo permissions
- A timing specific GPS module, wired to the Raspberry Pi GPIOs:
- GPS GND to RPi pin 6
- GPS VIN to RPi pin 2 or 4
- GPS PPS to RPi pin 12 (GPIO 18)
- GPS RX to RPi pin 8
- GPS TX to RPi pin 10
Install
Clone the repo
git clone https://github.com/PrincessPi3/Precision-Timekeeping-Fuckery.git ~/Precision-Timekeping-Fuckery
Run raspi-config
- 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?
- Advanced Options 1. A1 Expand Filesystem
update os and packages (will reboot when finished)
bash ~/Precision-Timekeeping-Fuckery/update.sh
install packages (will reboot when finished)
bash ~/Precision-Timekeeping-Fuckery/packages.sh
finish install (will reboot when finished)
bash ~/Precision-Timekeeping-Fuckery/installer.sh
check status of everything
bash ~/Precision-Timekeeping-Fuckery/full_status.sh
navigate to http://<ip's ip>:3000
Upload ~/Garfana-Visualization.json to create dashboard
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/
Current Module
- Chipset https://www.u-blox.com/en/product/neo-f10n-module
- Breakout https://docs.sparkfun.com/SparkFun_u-blox_NEO-F10N/single_page/
Next 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
todo
- x ntp server
- outside dial in
- cloudflare tunnel?
- outside dial in
- change gps settings
- higher baudrate
- 230400
- 460800
- 921600
- higher baudrate
- uninstall desktop/etc
- change boot target to cli
- README
- installer1-3.sh
- grafana
- url
- default login
- import
- data source
- fix
- Raspberry OS Lite
known bugs doubling of appending to /boot/firmaware/config.txt and /etc/modules when running intstaller3.sh
notes: reboots grafana connections->data sources add influxdb new dashboard import edit each panel and select influxdb as data source if issues doubling of appending to /boot/firmaware/config.txt and /etc/modules