Page 1 of 1

USB latency & fx3 firmware loopback

Posted: Sun Feb 24, 2019 3:03 pm
by OskarM
Hi,
I am trying to measure USB30 latency in my PC. To do so I created grc flow to calculate cross-correlation on a stream that splits and goes through the FX3 firmare loopback - the idea follows the http://www.philipzucker.com/gnuradio-delay-correlation/ and in general it works, but I don't get any reasonable results.

No matter what I do I see no delay between osmocom-Sink and osmocom-Source in firmware loopback mode - at least no delay in single us range. Even when I connect dual input GUI Time Sink to Sink input and Source output the streams are identical. At 8Msps that would mean that round trip of the signal thgough fx3 is below 0.5 sample (I guess) - so like tens of nanoseconds. Kind of hard to believe.

Changing loopback to "bb" makes some difference, but I wanted to avoid scaling & filtering needed when signals go thought ADC. I feel like I am missing some major information here either on how GRC works or how samples flow in firmware loopback mode. Could someone let me know if the firmware loopback mode is really in FX3 on the bladeRF board?
thanks
b.r.

Re: USB latency & fx3 firmware loopback

Posted: Sun Mar 17, 2019 8:37 am
by OskarM
I don't have too much time playing with this recently, but I am making slow progress. If someone wishes to help on that here is my block diagram:

PNG: https://drive.google.com/file/d/1qJ3fy ... sp=sharing
grc: https://drive.google.com/file/d/1n13H8k ... sp=sharing

Sorry for the mess with GUI, kind of not important now. The random source maybe replaced by vector source with unit function for easier delay tracking. If "delay" is enabled - one can see different delays between signals, but still they are not as I would expect.

Using repeat & stream-to-streams is my method to actually split the stream to two streams of the same samples. I have no idea if that could be done differently. Apparently splitting streams just by connecting 1 output to 2 inputs doesn't work like intuition would suggest but I can live with that.

b.r.

Re: USB latency & fx3 firmware loopback

Posted: Fri Feb 02, 2024 1:11 am
by analong
OskarM wrote: Sun Feb 24, 2019 3:03 pm Hi,
I am trying to measure USB30 latency in my PC. To do so I created grc flow to calculate cross-correlation on a stream that splits and goes through the FX3 firmare loopback - the idea follows the http://www.philipzucker.com/gnuradio-delay-correlation/penalty shooters 2 and in general it works, but I don't get any reasonable results.

No matter what I do I see no delay between osmocom-Sink and osmocom-Source in firmware loopback mode - at least no delay in single us range. Even when I connect dual input GUI Time Sink to Sink input and Source output the streams are identical. At 8Msps that would mean that round trip of the signal thgough fx3 is below 0.5 sample (I guess) - so like tens of nanoseconds. Kind of hard to believe.

Changing loopback to "bb" makes some difference, but I wanted to avoid scaling & filtering needed when signals go thought ADC. I feel like I am missing some major information here either on how GRC works or how samples flow in firmware loopback mode. Could someone let me know if the firmware loopback mode is really in FX3 on the bladeRF board?
thanks
b.r.
Keep in mind that USB itself introduces some latency. Although the firmware loopback minimizes this delay, it may still contribute to the overall latency observed in your measurements.