USB latency & fx3 firmware loopback

Discussions related to modulation techniques, filtering, error correction and detection, wireless link layer implementations, etc
Post Reply
OskarM
Posts: 19
Joined: Sun Dec 09, 2018 3:02 pm

USB latency & fx3 firmware loopback

Post 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.
OskarM
Posts: 19
Joined: Sun Dec 09, 2018 3:02 pm

Re: USB latency & fx3 firmware loopback

Post 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.
analong
Posts: 1
Joined: Fri Feb 02, 2024 1:06 am

Re: USB latency & fx3 firmware loopback

Post 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.
Post Reply