Optimizing the data transfer rate may involve adjusting the block size and latency settings of the data stream transferred from the Time Tagger to the PC.
You can change the size of the data chunks transferred from the Time Tagger to the PC. The block size of the data stream can be adjusted using the setStreamBlockSize() method of the Time Tagger. The default value is 131072 events. To maintain a consistent data stream, the maximum latency value can also be adjusted (default: 20 ms).
As a demonstration, we performed a test by setting the maximum latency to 1 second and varying the block size from 4096 to 32M (maximum value). The transfer rate increases and plateaus at 93 MTags/s around 1M. The black dotted line in the figure represents the default block size, for which a rate of 82 MTags/s is achieved, as expected.
The measured rates for the extreme cases (4096 - 32M) are:
Please note that setting a large block size has some drawbacks. For input signals with low repetition rates, it may take longer for the block to be completely filled, and the USB system call may abort. Changing the block size only makes sense for high count rates. Therefore, the default block size is set to 131072 events, as a balanced choice for performance and stability.