Many people are probably familiar with the Internet Time tab when setting their clock in Windows. This is a basic form of NTP (Network Time Protocol) called SNTP (Simple Network Time Protocol) that polls a NTP server every so often to synchronize time to. However, full NTP does a lot more, such as polling several servers to determine what is the best and most stable times source.
Creating your own NTP time server is relatively straightforward and if you are a resident of the US then the simplest way is to use a relatively cheap receiver module, set to receive the WWVB timing signal which is broadcast by NIST (National Institute of Standards and Time) at a frequency of 60 kHz.
To create your own product using the WWVB time signal, WWVB receiver modules, are readily available at low cost. When looking for a receiver module there are several points to consider:
There should be a simple interface to allow easy integration of accurate timekeeping into electronic equipment etc. The receiver should use dedicated chips designed specifically to receive the WWVB (USA) time signal. The advantage of these over other solutions is that the modules include the necessary support electronics, tuned crystals, etc and are preassembled, tested and are usually in miniature form.
When combined with a suitable Antenna the receiver module acts as a complete time code receiver, providing a serial digital data output stream for external decoding.
Once assembled and tested so the module is receiving a signal it can then be connected to your computer or server.
Once connected the time server should be configured using the registry editor. Simply follow these steps:
Locate the following subkey: HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesW32TimeParametersType
In the right pane, right-click Type then click Modify, in edit Value type NTP in the Value data box then click OK.
Locate the following subkey: HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesW32TimeConfigAnnounceFlags.
In the right pane, right-click AnnounceFlags and click Modify. The ‘AnnounceFlags’ registry entry indicates whether the server is a trusted time reference, 5 indicates a trusted source so in the Edit DWORD Value box, under Value Data, type 5, then click OK.
To enable the Network Time Protocol; NTPserver, locate and click: HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesW32TimeTimeProvidersNtpServer
In the right pane, right-click Enabled, then click Modify. In the Edit DWord Value box, type 1 under Value data, then click OK.
Now go back and click on: HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesW32TimeParametersNtpServer
In the right pane, right-click NtpServer, then Modify, in the Edit DWORD Value under Value Data type In the right pane, right-click NtpServer, then Modify, in the Edit DWORD Value under Value Data type the Domain Name System (DNS), each DNS must be unique and you must append 0x1 to the end of each DNS name otherwise changes will not take effect.
Now click Ok then locate and click the following: HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesW32TimeTimeProvidersNtpClientSpecialPollInterval
In the right pane, right-click SpecialPollInterval, then click Modify. In the Edit DWORD Value box, under Value Data, type the number of seconds you want for each poll, ie 900 will poll every 15 minutes, then click OK.
To configure the time correction settings, locate: HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesW32Timeconfig
In the right pane, right-click MaxPosPhaseCorrection, then Modify, in the Edit DWORD Value box, under Base, click Decimal, under Value Data, type a time in seconds such as 3600 (an hour) then click OK.
Now go back and click: HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesW32Timeconfig In the right pane, right-click MaxNegPhaseCorrection, then Modify.
In the Edit DWORD box under base, click Decimal, under value data type the time in seconds you want to poll such as 3600 (polls in one hour)Exit Registry Editor
Now, to restart windows time service, click Start, Run (or alternatively use the command prompt facility) and type:
net stop w32time && net start w32time. And that’s it your time server should be now up and running.