VisualGPS, LLC
NMEATime2 - More Information and Help

The following is more information NMEATime2 help. If you have further questions, please don't hesitate to contact us.

NMEATime Software

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.

Start/Stop NMEATime2 Service

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.

Tray-bar Notes

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.

Tray-bar Icons

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
Signal Quality

Good Signal Quality (Signal to Noise – SNR)

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
Loop Status Tab

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).

Time Lock

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.

GPS Receiver Notes
  • You can perform a search on Amazon for Ublox and USB GPS and usually find an inexpensive GPS that will work.
  • Navibe GM 720 - USB SiRF Star III based GPS works with no issues
  • BU-353-S4 - USGlobalsat - This USB SiRF Star IV based receiver. NOTE: This receiver seems to come in a couple of flavors. One of which makes it not function with NMEATime2 without configuring the SiRF chipset. Some version come with the GPGGA sentence outputting at a 2Hz rate. NMEATim2 must have at least a 1Hz output for the GPGGA and GPRMC sentences. You can download SiRFDemo software to configure this receiver. You should configure this receiver to output the GGA and RMC at 1Hz and GSA and SSV at 2Hz. It’s also recommended to configure the baud rate to at least 9600.
  • Holux M-215+ - This USB receiver will function, however it causes Windows 10 to BSOD when connecting/disconnecting the USB physically from the computer. Not recommended.

Serial Ports

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 Sees my GPS as a Sensor

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

  • u-blox - Some u-blox USB GPS receivers may come up as a GPS Sensor. U-blox has a driver that will expose the GPS as a com port. The u-blox GNSS Virtual Comm Port (VCP) Device Driver for Windows can be found here.
GPS Performance

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.

GPS Time Lock
NMEATime Considers a GPS time lock condition by following conditions.
  • Must be tracking and using three or more satellites (GSA message) AND
  • GPS fix Quality in the GGA message must not be zero AND
  • The software needs to be actively processing NMEA from the GPS
Is NMEATime2 Monotonic?

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:

  • When the software starts, GPS gains lock, and the PC time difference from GPS is larger than one second, a jam-synch will occur. Otherwise, it will slew the PC clock to GPS.
  • When GPS regains lock from being unlocked (holdover), NMEATime2 will check the time difference and if larger than +/- one second, it will jam-sync. Otherwise, it will slew the PC clock to GPS.
Cannot Set License Key
This may be a due to a Windows update. Here is what to try:
  • Uninstall NMEATime2
  • Restart the computer
  • Install NMEATime2
  • Enter the licensing info. Remember, the email and key are case sensitive