I need to start signal receiving simultaneously on a large number of LimeSDR-USB boards. Receiving should start exactly simultaneously: +/- 1 sample. That is, each board should start receiving a signal with its two channels synchronously with other boards.
It seems that there is no standard way to do this. I found some ideas on the forum (Synchronize two LimeSDR), but I did not understand how exactly to solve my problem. For example, BladeRF boards have a trigger through which a pulse is sent to start receiving.
Tell me how to start signal receiving simultaneously on a large number of LimeSDR-USB boards to get a coherent receiving?
Indeed in that post you can see how to manually synchronize two or more boards, but I doubt it can be precise up to 1 sample. From what I remember it’ll be precise up to 1360 samples in mono channel or 680 in dual channel. This is because the FPGA packs samples into packets of 1360 samples, and sets a single timestamp for that packet. So when you compare timestamps between boards, you can have up to 1360 or 680 samples of difference.
You’ll need a GPIO trigger (like what KarlL is mentioning), plus a clock distributor (distribution amplifier) that’ll feed the same reference clock signal to all of your devices.
There are a variety of algorithms (e.g. this one, which operates in the Fourier/frequency domain) that can align non-coherently sampled waveforms to a high degree of precision – but they’ll only work if your SDR’s sampling clock is good. I.e., they can adjust for non-coherence in phase between the SDRs, but the SDRs must be using the exact same sampling clock (hence your need for a reference clock distribution amplifier to feed all of your SDRs from the same clock source).
This became possible very recently to sample accuracy thanks to a firmware modification. Check this post on the limesdr mini:
On the limesdrUSB, the same firmware mod can be implemented. It’s few lines in the vhdl code, but you need to sacrifice one of the fpga gpio’s for that, whereas limesdr mini uses egpios. As we now have limesdrUSBs back on the track, that very nice sync feature might be implemented in firmware? (@VytautasB )