The Channels On my NI 922x Shift

Updated Mar 21, 2019

Reported In


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


  • LabVIEW


  • NI-DAQmx

Issue Details

When performing analog acquisition with the NI 9220, 9222 or 9223 in a multi-slot CompactDAQ chassis, the channels sometimes shift. For example, if I’m acquiring a known voltage of 1V on channel 1, 2V on channel 2, etc. for 4 channels, the shift can cause values to be read by software through incorrect channels. This is illustrated by the example below:



This is a known issue with the NI 9220, NI 9222, and NI 9223 when using DAQmx up to 9.7.5.

There are three ways to ressolve this issue:

Method 1
Upgrade to DAQmx 9.8  or later.

Method 2
Explicitly set the timing engine for each task. Make sure to specify a different timing engine for each task. Valid values for the Timing Engine are 0, 1, and 2.

This can be achieved by using the DAQmx Timing property node and setting the SampTimingEngine property as shown below:

Method 3
In C or C++, this can be achieved by using the DAQmxSetSampTimingEngine function:
DAQmxSetSampTimingEngine (TaskHandle taskHandle, uInt32 data);

For Example:
DAQmxSetSampTimingEngine (analogTask1, 0);
DAQmxSetSampTimingEngine (analogTask2, 1);

Additional Information

Channel shifting occurs when data being acquired on a given physical channel is read into software under a different channel name.The table below shows an example of what channel shifting may look like for a DAQmx task containing 4 channels:

This issue only occurs when using these modules in a multi-slot CompactDAQ chassis. Single-slot CompactDAQ chassis and CompactRIO chassis are not affected.