Table of Contents
Chronos - local STRATUM 1 NTP server with GPS reference.
Hardware
Hardware used in this project is an old PulseSecure PSA3000 unit, which is a Supermicro server in disguise.
Specification:
- Celeron J1900
- 4 GB of DDR3 RAM
- X10SBA-L motherboard
- Intel i210 NIC
- LEA-M9T GPS receiver
- Generic GPS antenna
GPS receiver
GPS receiver is installed inside server chassis and powered using 3,3 V available in the server.
UART connection is connected to goldpin serial COM port /dev/ttyS1 on the motherboard using generic UART-RS232 converter.
PPS signal is configured in the module using U-center software to be 8 Hz 50% pulse width square wave, which is connected to the SDP0 pin in SDP header on the NIC.
GPSD
GPSD is responsible for communication on serial port and putting the timestamp read from the GPS module into SHM in the system. It gives the system current timestamp set after each message is received and processed.
Chrony
Chrony is responsible for receiving an event triggered on the SDP0 pin by either rising or falling edge of the PPS signal. Due to hardware and driver constraints there was no easy way to configure event triggering, that is why LEA-M8T produces 8 Hz signal, but events are triggered in 16 Hz pace - both on rising and falling edges of the signal.
./testptp -d /dev/ptp0 -e 17 external time stamp request okay event index 0 at 1791542531.013602988 event index 0 at 1791542531.076101100 event index 0 at 1791542531.138599212 event index 0 at 1791542531.201097324 event index 0 at 1791542531.263595460 event index 0 at 1791542531.326093572 event index 0 at 1791542531.388591684 event index 0 at 1791542531.451089804 event index 0 at 1791542531.513587916 event index 0 at 1791542531.576086044 event index 0 at 1791542531.638584164 event index 0 at 1791542531.701082276 event index 0 at 1791542531.763580388 event index 0 at 1791542531.826078524 event index 0 at 1791542531.888576636 event index 0 at 1791542531.951074748 event index 0 at 1791542532.013572868