The following is more information NMEATime2 help. If you have further questions, please don't hesitate to contact us.
NMEATime runs on the PC as a service disciplining the PC clock to the GPS reference. NMEATime consists of three software programs. The back-end service, the front-end user interface, and the tray-bar status.
The back-end service is called NMEATimeService. When the PC is booted, the NMEATimeService is started and will run indefinitely until the PC is turned off. This service is responsible for disciplining the PC clock to the GPS reference and is the heart of the system.
The front-end user interface, NMEATimePanel, will run when either you start it from the start menu or the NMEATime tray-bar status icon. The NMEATimePanel will allow you to control and view the status of the NMEATimeService. You can tell that it is running by its status on the tray-bar. See tray-bar notes for more information.
The NMEATime2 service can be started, stopped, and restarted. To do this from Windows 10, start the task manager. First, click on the "Start" button, and type Task Manager, and press enter. You should see the Task Manager application. Click on the "Services" tab and look for the "NMEATimeService.exe". Right-click on the service and choose the desired function.
Please note to access NMEATime control panel, simply right click on the tray bar icon and select show panel
If you don't see the NMEATime2 Tray-bar icon, it may be hidden. To see the hidden Tray-bar icons click on the ^ icon and you should see the icon.
The folowing are the possbile Tray-bar icons you may see during operation.
(Green) Locked and disciplining the system clock | |
(Yellow) Communicating with GPS and searching for satellites | |
(Red) Connot communicate with GPS | |
(Blue) Recovery from holdover | |
(Gray) GPS connection is turned off | |
A good SNR value for a satellite are values above 30. Less than 25 is considered low. A great signal is close to 50. Some GPS receivers will yield strange navigation and timing results when the SNR levels are low.
NMEATime currently shows GPS/SBAS and GLONASS satellite information on the GPS Status screen.
Tracking the satellite, but not using it for timing or navigation | |
Tracking and using a GPS satellite | |
Tracking and using a GPS/SBAS/WAAS satellite | |
Tracking and using a GLONASS satellite |
NMEATime will use either the GGA or ZDA sentence to derive a one second epoch which is referred as a one pulse per second (1PPS) signal, characterize the sentence, and try to filter out any spikes or outliers before sending the filtered signal to the control algorithm.
There are two levels of filtering. First NMEATime2 will filter the raw 1PPS using a digital filter and send that filtered result to discipline the PC clock. The second level of filtering uses the standard deviation of the filtered value to weed out outliers or spikes from the raw.
The figure below shows this filtering in action. The blue line is the unfiltered raw 1PPS. The red line is the filtered version of the raw. The light blue filled in area is the standard deviation which is the basis of the second level filtering. If the raw 1PPS is outside of the filled in blue area, then that point is not used in the discipline control loop. If it continues to stay outside the blue area, then it is assumed that the GPS took a new offset and the algorithm will reset to that value.
There also may be some intersect delay due to software stack latencies and they seem to stay consistent for a given hardware configuration. You can calibrate this delay in the lab with internet. Use the Set Time Offset and Calibration dialog (menu item Tools->Set Time Difference Offset).
When the satellites are not gray, this indicates that the satellite is part of the navigation and timing solution. Four or more would allow the GPS to preform 3D navigation and 3 would allow for 2D. For timing, you could get away with one satellite, however NAMETime cannot really verify the integrity of the satellite due to lack of information. NMEATime will consider a locked system with the following conditions. There must be at least 3 satellites used in the solution and the GPS fix quality found in the GGA sentence must not be zero.
The serial comm port devices including virtual comm ports are mutually exclusive and only one program can access the serial port at any given time. So if you would like to use the GPS with another program, you will need to disconnect NMEATime2 from the serial port. To do this, select menu item "Settings->GPS->Setup Communications" and then select "Off" for the port and then click on OK.
Windows 10 may see some GPS receivers as a GPS Sensor. NMEATime2 cannot use that API to extract GPS time. Check with your GPS manufacture for drivers that expose the GPS as a com port.
Known GPS Receivers that show up as Sensors
The above plot is showing the GPS receiver under a startup condition, cold start. Consumer GPS receivers will not indicate cold start, however it will still navigate and produce time when tracking satellites. The problem is when in this mode, the GPS may not have a full almanac (all the data from the satellites) and the time may be referenced to GPS time (GPS time is different than UTC time) or something close. When the timing portion of the almanac is received, you may notice a jump in timing as depicted above. This jump usually happens within 13 minutes from the time the GPS starts tracking satellites with the antenna in a clear view of the sky. This is the approximate time it takes to download an almanac from the satellites. The plot shows the GPS jumping two seconds taking just a less than five minutes to occur from the start of tracking satellites.
It’s recommended to wait for at least 15 minutes before using the PC for any critical timing application when first powering up the GPS.
The test setup was using a GlobalSat BU-353-S4 USB GPS with the PC referenced to a NTP server. The data was taken using NMEATime2 with the control loop turned off and the control loop logging enabled. You can perform the same test with your GPS receiver. The control loop log will produce a comma separated value file (CSV) where you can perform analysis. The value to use is the Raw Time Difference.
YES! NMEATime2 is monotonic!
What is monotonicity on a PC? A monotonic system specific to the time on a PC is when the time increments from one second to the next and never jumps more than a second, never skips a second, and will not repeat the same second for the next.
While in GPS lock, NMEATime2 will use an advanced algorithm and filters to speed up or slow down the PC clock while tracking the GPS time.
First – what is a Jam-sync on a PC? A jam-sync is when the PC clock is set to a specific time from the GPS receiver at a given moment. That is, if your PC clock is at 10:20 and the GPS is at 10:29, a jam-sync will synchronize the PC clock to 10:29 at that moment.
Why is this important? If software sets (jam-sync) the time on the PC to a reference time, it may cause the time on the PC to advance or retard by a second or more. In some cases, the same second may be present for more than a second.
When does NMEATime2 Jam-sync? If the time on the PC is greater than +/- 1 second at the time of GPS gains lock from an unlocked condition, it will jam-sync, otherwise, NMEATime2 will slew and discipline the PC clock to the GPS time. While in GPS lock, the time will never jam-sync and the PC clock will maintain monotonicity. The only time NMEATime2 will check if a jam-sync is necessary is:
Below is a description of NMEATime2 menu structure.
Starts a log of the control loop data. This log can be used for number of thing form analyzing the control loop to testing GPS receiver communications.
Stops the current data log and closes the file.
Enable or Disables the Control Loop (toggle). When disabled (no check next to Enable Control Loop), the time tag mechanism is still functional, and the time difference plot will show you the time difference between the GPS and the PC clock. When enabled, the control loop will try to minimize the time difference the GPS and computer clock.
Starts recording the NMEA data from the GPS to a file.
Stops the data log and closes the file.
The Time Difference Offset is a value added to the time difference between the time in the GPS NMEA time data and system time. This value is used to help remove any intrinsic delay between the GPS 1PPS epoch in the GPS and when the PC receives the time data.
If available, NMEATime will use a specified NTP server to determine this offset and provide an estimated value to use for the Time Difference Offset. It is highly recommended that at least 20 minutes of a valid time lock condition be present before using this value.
Please note that you must have a network connection and access to an NTP server for the estimated calibration to function. A value of 99999.9 indicates that NMEATime did not receiver a NTP response.
Brings up the serial communications dialog. This will let you select the serial port that the GPS is connected to.
You can also select "Off" to disable the GPS communication and free up the communications port.
Brings up a dialog that allows for various GPS lock criteria to be set.