USB latency & fx3 firmware loopback

Discussions related to modulation techniques, filtering, error correction and detection, wireless link layer implementations, etc

Moderator: robert.ghilduta

Post Reply
OskarM
Posts: 19
Joined: Sun Dec 09, 2018 3:02 pm

USB latency & fx3 firmware loopback

Post by OskarM » 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/ 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 » Sun Mar 17, 2019 8:37 am

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.

Post Reply