I was writing my last post as you were posting yours. One of your limits, as max frequency is concerned, is your scan rate. If you are performing a continous scan you define the scan rate, which is the most important limiting factor in performing an FFT as the max frequency that can be correctly displayed by an FFT will <2Xscan rate (the Nyquist Freq). In your code the scan rate is determined by how fast the loop will execute, which is limited by: the AI initializtion (this does not need to be performed every loop, so move it outside), how long the actual AI takes to return its data, how long the FFT math stuff takes. These are all unknowns and worse, variable, so you won't know what your max freq allowed will be from moment to moment. With the continous scan type of DAQ you have a lot more control of that. The example that I sent you, a modified version of your original code, has part of the same issue, as the DAQ loop speed is mostly governed by how fast the DAQ AI takes. Using the LV2 global concept (or some other message/data passing techniques) allows you to move possibly time consumptive stuff out of your more time critical loops. If you go to the continuous scan, writing to a LV2 global, you can let the hardware aquire data at a predefined rate and display/manipulate it in another loop. Your time domain display will be updated in "chunks", but if you make the continous scan sample length relatively short it won't "blink" too much.
The example I attached to the previous post can be modified fairly easily by changing the insert into array and making the index increment based on the length of the new data.
P.M.
PutnamCertified LabVIEW Developer
Senior Test Engineer North Shore Technology, Inc.
Currently using LV 2012-LabVIEW 2018, RT8.5

LabVIEW Champion