USB-6000/6008/6009 Error -200361: Buffer Overflow Error

Updated Apr 5, 2018

Reported In

Hardware

  • USB-6000
  • USB-6002
  • USB-6008
  • USB-6009

Issue Details

I'm taking some measures with my USB-6000/6008/6009 and I get error  -200361: Buffer Overflow Error espacially when I open or close a Window in my computer.

Error -200361 occurred at an unidentified location

Possible reasons: Onboard device memory overflow. Because of system and/or bus-bandwidth limitations, the driver could not read data from the device fast enough to keep up with the device throughput.

Reduce the sample rate, or reduce the number of programs your computer is executing concurrently.


 

Solution

Most probably this issue is related to the fact that the USB-6000/6008/6009 has a relatively small onboard FIFO
and therefore it does not take long for the FIFO to overflow if you are acquiring at a high rate. Unfortunately, the operations such as opening other programs, minimizing/maximizing windows are very CPU intensive, especially with Windows OS. Therefore, when you perform these operations, the driver cannot retrieve data from the device, the FIFO overflows, and you get the -200361 error.

The best solution is to minimize all other operations on the computer.  This will reduce instances of buffer overflow.  If possible, actually close down as many other applications as possible.

Check Additionnel Information for less common solution

Additional Information

Less Common Cause:
It has been observed that rarely, after an unexpected power loss, a USB-6009 device may start throwing this error even when only trying to read 1 data point (On Demand acquisition) in a test panel. The devices appear in Measurement & Automation Explorer, pass the self test, and appear properly configured in the Windows Device Manager.

To restore proper function, the devices had to be uninstalled from the Windows Device Manager and removed from the USB bus. Upon reconnection, the devices were detected, installed as normal, and proper function was restored.

Another Possible Cause:
NI has discovered that the likely cause of repeatedly seeing error -200361 is a bug in the Windows 7 EHCI driver when handling split transactions (which occur when queueing multiple IRPs on USB Full Speed devices such as the 6000/6008/6009).  Since NI does not have control over the Windows USB stack, the best we can do for now is to provide a workaround.  Limiting the number of outstanding transfer requests will prevent split transactions from occurring and thus will prevent error -200361 from being thrown incorrectly (there is still a possibility that -200361 is being thrown legitimately if the data transfers over USB cannot keep up with your sample rate for some other reason).
 
The following procedure is enabled by default in versions of DAQmx 9.6 or greater. If you are using any version later than this, you do not need to set this property. You can view the ReadMe which shows this linked below (CAR ID 331459).

To fix this issue, add a DAQmx Channel property node before starting the DAQmx task and select Analog Input»General Properties»Advanced»Data Transfer and Memory»USB Transfer Request Count Property.  This property is shown below.

If this property cannot be found, there are two solutions:
  • You need to upgrade to DAQmx 9.4 (this was when this property was added) or later
  • Right-click the property node and choose "Select Filter..."
  • Change the Filter Settings to "Show All Attributes":
After changing these filter settings, you should now be able to select the USB Transfer Request Count option from the channel property node.

Once you have the property node on the block diagram, right-click the property node and click Change All To Write.  Wire an unsigned 32 bit constant with the value 1 to the property node and place the property node before the start task as shown below.
 

WAS THIS ARTICLE HELPFUL?

Not Helpful