The NI-Sync time-based family of devices introduces the concept of a time reference as a means to synchronize time on a device. A time reference represents a potential source of time that NI-Sync can refer to when adjusting a device's time. A time reference typically incorporates a time synchronization protocol, a set of standards that controls how timing information is sent and received from a separate device that provides the reference time, like an external clock.
The time reference is responsible for translating this timing information into adjustments that NI-Sync periodically applies to the device's time. NI-Sync allows a system to have multiple time references available and enabled at once, but only one time reference, the selected time reference, is used in adjusting the device's time. Once the device has an established notion of time from the selected time reference, it can be used by the system or applications to generate synchronous triggers, create backplane clocks aligned with other devices, timestamp events that correlate with other device times, and more.
Device time continues to advance even when NI-Sync is not actively receiving adjustments from the selected time reference. This behavior allows for a continuous source of time to the system and applications. However, if a selected time reference is not available and NI-Sync is not able to periodically adjust the device time as a result, the device's onboard clock will drift and may eventually differ significantly from the desired reference time. You can use the NI-Sync API to monitor the status of the available and selected time references to determine if their device time is adequate for the intended application.
The state of a time reference determines its role in synchronizing NI-Sync devices:
A device can have a maximum of one selected time reference at a time. A time reference must be enabled in order to be selected.
![]() |
Note It is possible for a device to have no selected time reference, in which case the device's clock is free running. Some properties will return an empty string if there is no selected time reference. |