Hi ricardas,
I was expecting this answer. So the rule of thumb will be that if I need 1ms of data, I should wait for about 1ms.
Yet, the delay between the samples is significant. Also, once all SDRs a up and sampling and I call LMS_RecvStream() I will receive data from different time in the past. According to the given example with 5 SDR: Radio 0 will give me samples from, lets say, 4ms ago, Radio 1 - from 3ms ago, Radio 2 - 2ms ago, Radio 3 - 1 ms ago, Radio 4 - still sampling.
And I hoped to be able to get data within 1ms in the past, from all SDRs.
Are there any guidelines for such synchronizations?
I was reading myriadrf topics and found Synchronize two LimeSDR, which sounds like the ultimate solution. But I don’t know what is its current status and if it is applicable for LimeSDR-Mini v.2.2. Also I have never reprogrammed FPGAs before. Do you know something about that. Btw, I ran the gpio_example, but it does not seem to work properly - the pin status is read, but can not be toggled.
I also started more detailed investigation on the LimeSuite code. And if I get the picture right, we have:
- A threadRx, calling ReceivePacketsLoop(), which reads rf samples from the USB and stores them in a FIFO.
- Then LMS_RecvStream() call will get the samples from this FIFO.
Then what will happen, if the threadRx of the SDRs wait for some trigger, before entering the while loop in ReceivePacketsLoop? I mean will that harm the FPGA processing somehow, or something else in the data transfer chain?
I will try to implement such thread sync, but I am still inspecting the code.
Thank you!