A simple time server for Windows 2000/XP/7
ToyNTP is a simple time server that implements the SNTP protocol
and uses a GPS receiver,
Garmin GPS 18x LVC,
as time reference. ToyNTP was designed to be used with
Faros in the locations where access to the SNTP servers on
the Internet is not available, but it may be used for other purposes as well,
in particular, it may be configured to keep the PC clock synchronized
to a GPS receiver.
Fig.1. ToyNTP, UTC time display
In addition to the UTC time, ToyNtp obtains and displays the GPS fix information
(latitude/longitude, height, speed, etc.), as well as the satellite locations
on the sky and their signal strength.
Fig. 2. GPS fix and satellite data
ToyNtp uses the PPS (pulse per second) signal from the GPS receiver to
synchronize its UTC clock. According to the specifications of GPS-18x,
the accuracy of the PPS signal is 1 Ás, however, there is an unknown delay between the time
when the PPS line flips from low to high, and the time when Windows tells the
program about this event. This delay is not constant, its variance
depends on the version of Windows and the behavior of the device drivers
installed on the system.
The chart on the PPS Tracking page in ToyNtp shows the difference
between the actual and expected time of the PPS events.
The UTC time is derived from the PPS events with a robust Kalman filter. The red line on the chart
is the output of the filter, the pale blue band is the aperture of the filter:
the samples outside of this band are considered outliers and discarded.
The variance of the PPS time of arrival seems to depend on the DPC latency
of the system.
Two screenshots below illustrate this dependency. The DPC latency, measured
DPC Latency Checker,
was 6 Ás on the Pentium IV system and 160 Ás on Core i7. The samples are scattered
about 20 times wider on the Core i7 chart - note that the vertical scale
on that chart is different.
Fig. 3. PPS jitter on Pentium IV / Windows XP
Fig. 4. PPS jitter on Core i7 2600 / Windows 7 64-bit
Be sure to get the -LVC version of GPS-18x. The other two versions, -PC and -USB,
do not have a PPS output line and cannot be used for time synchronization.
GPS-18x must be connected to a physical COM (RS-232) port, a USB-to-serial
adapter cannot be used in this application.
Solder a DB-9 femail connector to the bare wire terminals of GPS-18x LVC as
shown in Table 1.
GPS-18x requires a 5V power supply. The +5V voltage may be obtained from a USB
port on the PC, as shown in the table, or from a separate power supply.
Fig. 5. Garmin GPS 18x LVC
|Yellow||DB-9 pin 1
|White||DB-9 pin 2
|Green||DB-9 pin 3
|DB-9 pin 5,|
Table 1. Connections between the GPS receiver and a DB-9
Faros and ToyNtp may be installed either on different computers or on the same computer.
In the latter case, Faros will be able to split the roundtrip time of its SNTP packets
in the forward and backward trip time, as shown on the screenshot below,
and its time estimate will be more accurate.
The following instructions assume that both programs run on the same machine.
Open the TimeServer.lst file located
in the Faros folder for editing using Notepad, and add this line at the end
of the file:
Save the file, then click on View / UTC Clock Info in the Faros menu, click on the
Time Servers tab, and select localhost
in the list of time servers. Deselect all other servers. Click on
Apply Selection, then on Close.
Fig. 6. UTC Clock dialog in Faros
Copyright © 1998-2020 Afreet Software, Inc.