I'm using NI USB-6356 with 64MB on-board FIFO. It is configured for AI as follows:
-finite acquisition (~100k sample per ch)
-internal hardware clock at 1 MSPS
-reference trigger with ~10k pre-trigger points
My initial assumption was that DAQmx would configure the board to use on-board FIFO as a circular buffer, overwriting old samples until the trigger, recording finite number of samples after the trigger, and stopping then. I would then read the data.
Turns out DAQmx driver also creates a local PC buffer and tries to stream all the pre-trigger data into PC all the time. This creates a problem - the USB link (special case vendor fibre extender) is too slow to keep up with live buffering, and DAQmx throws onboard device memory overflow error. I tried disabling PC buffer by calling configure input buffer with 0 size, as suggested in knowledge base, but it is not compatible with the configuration described above - "Non-buffered hardware-timed operations are not supported for this device and Channel Type."
Solved! Go to Solution.
There's a deeply nested DAQmx property for AO tasks that lets you specify the use of onboard memory only. I went looking for a similar property for AI but didn't find it. However, I did find the following which *might* possibly help. Can't really say for sure.