All writing
~/writing/tags
#pps
2 posts
Precision timing
8 min
The clock that rang like a bell under load
I built a PRU clock that held nanoseconds on the bench, then rang under load. The daemon crossing its ticks into CLOCK_REALTIME was modeling chrony's own steering and feeding the model back. I fixed it by moving the reference out of userspace, into a Linux PTP hardware clock.
#gps#pps#ptp#beaglebone
Precision timing
6 min
The spare cores in a BeagleBone keep better time than its kernel
The standard Linux PPS driver timestamps the GPS pulse in an interrupt handler and pays ~20 µs of jitter for it. The BeagleBone has two 200 MHz real-time cores that Linux never touches. I moved the timestamp into one of those, and the clock offset dropped into the low nanoseconds.
#gps#pps#beaglebone#pru