Configuring GPS Synchronization with the NI PXI-668x Timing and Synchronization Module

Updated Dec 19, 2023



  • PXI Synchronization Module
  • PXI-668XH

Global positioning systems (GPS) determine locations on earth by receiving precisely time-stamped signals from satellites in semi-synchronous medium Earth orbit, determining distance from each satellite, and then applying trilateration to obtain time and position. Because the GPS satellites provide precise timing information and are accessible anywhere on or near Earth where there is an unobstructed line of sight to four or more GPS satellites, this infrastructure can be used to create largely distributed synchronized systems.

Use the NI PXI-6682(H) or NI PXI-6683(H) timing card on the PXI(e) platform to establish GPS synchronization. There are two main architectures to be considered:

  • Synchronizing the timing module in each chassis to GPS.

  • Synchronizing the timing module in the master chassis to GPS, and then distributing this time to the timing module in each slave chassis via another synchronization method, such as IEEE 1588 or PPS.

This article details how to set up GPS synchronization, and references resources to help set up IEEE 1588 synchronization if you would like to distribute time to your slave chassis via this method. To determine which synchronization technology and architecture best suits your needs, refer to Choosing a PXI Synchronization Technology .

Configuring the Hardware for GPS Synchronization

  1. You will need an NI PXI-668x in each chassis. Install each module according to the instructions in the module’s installation guide:
  2. Install a GPS antenna to all PXI-668x modules that will be synchronized via GPS. Depending on the distance between chassis, you may also be able to use a single antenna with a splitter. For more information on installing the antenna, see the Antenna Installation section of the module’s user manual.

Configuring the Software for GPS Synchronization

To configure your software for GPS synchronization, you can use either NI Measurement & Automation Explorer (MAX) or one of the NI-Sync APIs (LabVIEW or C).


A. Configuring through MAX

  1. Open MAX and expand out the Devices and Interfaces section. Select the NI PXI-6682(H) or NI PXI-6683(H) in your chassis and select the Test Panels button.


  1. On the Time Reference tab of the Test Panel, select Set Time Reference. In the dialog box that appears, select GPS as the time reference and then select OK.



  2. Navigate to the GPS tab. By default, Mobile Mode will be disabled. If your GPS antenna will be moving while the system has power, you should enable Mobile Mode. If your GPS antenna will be stationary, do not enable Mobile Mode as it will degrade the accuracy of the onboard GPS receiver.

  3. If you have Mobile Mode disabled, wait for the Self Survey to complete. The Self Survey is a process performed by the GPS receiver on the PXI-668x where it performs measurements of the visible satellites once per second and averages those measurements to determine the receiver’s current position as accurately as possible. This process may take 10-20 minutes. If after this time, if the self survey fails to complete ensure Mobile Mode is disabled. Next, check NI MAX for 'Number of Satellites Available' is at least 4. If not, reposition the antenna until 4 satellites are found and then retry. 


  2. Navigate back to the Time Reference tab. At this point, the Current Time Reference field indicates GPS as the time reference, and the Time Reference Present indicator should be True.


  2. Repeat the above steps for all PXI(e) systems to be synchronized via GPS.

B. Configuring through LabVIEW

The NI-Sync driver provides LabVIEW example code for configuring GPS synchronization. You can locate this example in LabVIEW by navigating to the NI Example Finder, then selecting Hardware Input and Output»Timing and Synchronization»Time-based. The example of interest for GPS synchronization is “Set Time Reference”.

This example demonstrates how to specify the timing source to use to discipline your board. Complete the following steps to configure this example for your specific hardware:

  1. For the Resource Name control, select the alias of your NI PXI-6682(H) or NI PXI-6683(H).
  2. For the Time Reference control, select GPS.
  3. Run the VI.

Run this example on all PXI(e) systems to be synchronized via GPS.

(Optional) Configuring GPS Synchronization to Be Persistent through Subsequent Reboots

If you configure your time reference settings using MAX or LabVIEW as in the previous procedures, the time reference settings will reset upon each reboot of the system and will need to be reconfigured.

To make these settings persistent through subsequent reboots, you can either include the LabVIEW code described in the “Configuring through LabVIEW” section at the beginning of your startup application or complete the following steps in MAX:

  1. Open MAX and expand out the Devices and Interfaces section. Select the NI PXI-6682(H) or NI PXI-6683(H) in your chassis and select the Configure button.

  1. In the Configuration dialog box, navigate to the Time Reference tab and set Time References to GPS.

  2. Select OK.

Synchronizing PXI_Clk10 to the GPS Time Reference

At this point, the PXI-668x in each chassis is being synchronized to GPS. The next step is to synchronize your chassis’ 10 MHz backplane clock (PXI_Clk10) to this time reference. The method for doing this depends on the hardware you are using. The PXI-6683(H) is capable of single- or multi-device disciplining, whereas the PXI-6682(H) must use multi-device disciplining.

Multi-device disciplining requires the use of a second timing card, such as the PXIe-6674T. Multi-device disciplining also utilizes the more accurate and stable on-board oscillator of the second timing card, resulting in better synchronization performance.
Once you have determined the disciplining method you would like to use, follow the instructions below:

  • Single-Board Disciplining with the PXI-6683: If the PXI-6683 is in the system timing slot of a PXI (non-express) chassis, you can override the backplane clock of your chassis with the disciplined oscillator of the PXI-6683 by creating the following routes, either in the Routing tab of a MAX test panel or by using the niSync Connect Clock Terminals VI in LabVIEW:

    • Source: Oscillator; Destination: PXI_Clk10_In

    • Source: PXI_Clk10; Destination: BoardClk


 Note: In this example, Dev1 is the alias of the PXI-6683.


  • Single-Board Disciplining with the PXI-6683H: Since the PXI-6683H is a hybrid card and does not fit in the timing slot of the chassis, it cannot override the chassis’ backplane directly. Instead, you will need to externally cable the disciplined on-board oscillator of the PXI-6683H to the 10 MHz Ref In connector on the chassis. (Consult your chassis’ user manual to ensure your chassis has a 10 MHz Ref In). To do this, complete the following steps:

    • Using an SMB to BNC cable, connect the CLKOUT terminal of the PXI-6683H to the 10 MHz Ref In of the chassis.

    • Either in the Routing tab of a MAX test panel or by using the niSync Connect Clock Terminals VI in LabVIEW, make the following routes:

      • Source: Oscillator; Destination: ClkOut

      • Source: PXI_Clk10; Destination: BoardClk


Note: In this example, Dev2 is the alias of the PXI-6683.

  • Multi-Board Disciplining with the PXI-6682(H) or PXI-6683(H): To set up multi-board disciplining, you can use the Multi-Device PXI_Clk10 Disciplining software, which can be downloaded here. For more information on configuring and using the software, see the user manual here.

Monitoring GPS Performance

You can use the niSync Property Node (provided with the NI-Sync API) to monitor GPS performance in LabVIEW while your application is running. The screenshots below display the GPS properties available for monitoring, as well as the protocol-independent Time Reference properties available. For more information on the available NI-Sync properties, see the NI-Sync Help.


For an example of using these properties for monitoring, navigate to Hardware Input and Output»Timing and Synchronization»Time-based in the LabVIEW Example Finder, and open the “Set Time Reference” example. This VI sets the timing and synchronization module to use a specific time reference specified by the user, and then uses the properties mentioned above to monitor the status of the time reference.


(Optional) Configuring Slave Chassis for IEEE 1588

For more information on setting up a master/slave chassis architecture where the master will be synchronized via GPS and the slaves via IEEE 1588, see IEEE 1588 Synchronization with the NI PXI-668x Timing and Synchronization Module for more information on configuring IEEE 1588.

Synchronizing Module Acquisition and Generation

If you followed the above procedures, the backplane clocks in the chassis in your setup are now synchronized via GPS. The last step in setting up a synchronized system is to synchronize the start of acquisition or generation by your individual PXI modules. You can do this by sharing a start trigger.

One option for doing this is to use future time events (FTE). The NI-Sync API provides the ability to generate future time events based on the board time of your PXI-668x. Since the board time of the PXI-668x in each chassis is now synchronized via GPS and/or IEEE 1588, you can use future time events to synchronously generate a trigger on each board at a specific time. These triggers can then be shared with all the modules in each chassis.

For more information on generating a future time event, see the NI-Sync examples in the LabVIEW Example Finder under Hardware Input and Output»Timing and Synchronization»Time-based. The “Generate Event” example there provides the code necessary to generate a future time event.

Once you have generated a Future Time Event, you will still need to program your PXI modules to begin acquisition or generation when they receive the generated trigger. See the “Additional Resources” section below for more information on synchronizing your specific PXI modules.