Why Does User Controlled I/O Sampling Acquire Faster than an I/O Node?

Updated Feb 21, 2019

Reported In


  • NI-9220
  • NI-9222
  • NI-9223
  • NI-9262

Issue Details

When acquiring from a NI 9220, NI 9222, or NI 9223 using User Controlled I/O Sampling, I am able to achieve a sampling rate of 500 kS/s which is faster than 300 kS/s that can be achieved using an I/O Node. Why does User Controlled I/O Sampling acquire faster than an I/O Node?


User-Controlled I/O Sampling is an advanced LabVIEW FPGA interface that allows user to have greater control over sampling operations. The primary benefit is that modules that support this interface can run at a higher sample rate than with the I/O Node.

Not all modules support User-Controlled I/O Sampling. Current modules that support User-Controlled I/O Sampling are:
  • NI 9220
  • NI 9222
  • NI 9223
Typical I/O Node operation: 

In a typical I/O Node, operations happen serially. When the I/O Node is called, the node tells the module to acquire data and then transfers the data from the module. The I/O Node cannot be called again until both operations are complete, so the acquisition rate is determined by the time it takes the module to acquire the data and transfer the data back to the FPGA.

For example, with the NI 9222 and NI 9223 the maximum sample rate an I/O Node is 300 kS/s and 350 kS/s respectively. 

Typical User-Controlled I/O Sampling operation: 

With User-Controlled I/O Sampling, operations can happen in parallel. The Clock node controls when the module acquires data, the Read node controls when data is transferred. Since these are separate operations the Clock node can run while the data is transferring from the module. The sample rate is now determined by the time it takes for the module to have the data ready for transfer. For example, with the NI 9222 and NI 9223 the maximum sample rate with the User-Controlled I/O Sampling is 500 kS/s and 1 MS/s respectively.

Additional Information

  • There are examples in the NI Example Finder titled NI 9220 User-Controlled I/O Sampling.lvproj, NI 9222 User-Controlled I/O Sampling.lvproj, and NI 9223 User-Controlled I/O Sampling.lvproj.  These examples show the correct architectures to read from the 9220/9222/9223 devices using User-Controlled I/O Sampling.lvproj.
  • The information provided in this article focuses on data acquisition. Analogue output modules capable of fast generations of output and which use User-Controlled I/O Sampling also exist, e.g. NI 9262.


Not Helpful