Jitterbug: Portable COTS Timing Measurement System for Clock Analysis and Timing Applications
Wil Myrick and Charlie Vines, ENSCO
Location: Beacon B (4th Floor)
Date/Time: Thursday, Jan. 26, 4:35 p.m.
We present the development of a portable Commercial-of-the-Shelf (COTS) timing measurement and data collection system to support the development of Python algorithms for high-precision clock analysis and timing applications. This timing measurement system leverages readily available COTS components to support clock analysis for a variety of timing signals (e.g. 10MHz, PPS, and IRIG). The timing measurement system is centered around a Raspberry Pi 4 Single Board Computer (SBC) that has been integrated into the pi-top [4] COTS Computer. This pi-top [4] COTS computer provides a mobile computing platform for Python algorithm development while providing a built-in Organic Light-Emitting Diode (OLED) display and buttons to remove the need to have a mouse and a monitor for generating and saving timing measurements. It provides a flexible platform for testing and demoing Python timing applications while interfacing with a low SWaP-C Tucson Amateur Packet Radio (TAPR) Time Interval Clock Counter (TICC) enabling Python algorithms to consume TICC phase information. A custom Jitterbug Raspberry Pi Hat hardware module was developed to add a Real-time Clock as well as a reprogrammable 10 MHz timing source for the TICC. This timing measurement system was developed to keep equipment costs at a minimum while maintaining portability and flexibility to support expanding development of timing algorithms leveraging the Python programming language.
The Jitterbug Python software architecture for clock analysis and timing applications leverages conventional Python scientific libraries as well as CircuitPython libraries to provide a flexible programming architecture for clock generation and clock analysis. CircuitPython is used to program and control an inexpensive external 10 MHz clock needed by the TICC. Since the 10 MHz clock serves only as a transfer standard its quality has minimal impact on the Jitterbug measurement results. The fusion of CircuitPython with conventional Python scientific libraries present a unique programming architecture to develop timing applications using Python related libraries to control both the clock generating hardware and signal processing timing algorithms. Standard Python libraries are used to read and process data from the TICC providing time difference measurements with better than 60 picosecond resolution and less than 100 picosecond jitter. Python software was also developed so Jitterbug can be completely controlled from the external buttons integrated into the pi-top [4] case as part of the OLED assembly making it easy to use for a variety of timing applications.
The Python timing application to be discussed during this presentation involves delay estimation associated with GPS antennas and cable assemblies. We show how two COTS GPS receivers, a TICC, and Jitterbug can be used to make an accurate delay estimate associated with a GPS antenna and cable assembly. A discussion of how this timing application can be extended to measuring jitter and delays between other timing signals (e.g. 10MHz and IRIG) will also be discussed showing the flexibility of the measurement architecture. The software design of the timing application will be discussed with respect to the software modules needed to control and view the jitter time series as well as histogram data on the OLED. We show that Jitterbug provides a flexible and mobile algorithm development platform for timing applications while demonstrating the timing application of delay and jitter measurements based on readily available COTS components and Python modules. A brief discussion of how Jitterbug extends into a Software Defined Radio architecture will be explored.