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

The following are GPS receivers have been tested and the notes at accompany them. If you find that another receiver is working well, please let us know and we can list it here.

  • Generic USB GPS from Amazon (link) - This USB receiver seems to work well. No issues. This GPS is based on the u-blox 6 GPS chip-set and the performance is very good. Please note, when using this GPS receiver with Windows 10, it will set itself up as a GPS Sensor and not a GPS virtual serial port. When in this mode, the OS will control the GPS and applications that expect NMEA information are blocked. This can be changed by uninstalling the GPS sensor driver from windows using the device manager. You can then download a driver that can be acquired from u-blox (ubloxGnss vcpDeviceDriver windows) that supports the virtual serial port.
  • Another GPS from Amazon (u-blox) (link) - This USB receiver seems to work well. No issues. This GPS is based on the u-blox 7 GPS chip-set. See Generic USB GPS from Amazon above for more informaion.
  • 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.
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