How to time-align Rx1 and Rx2?

Rx1 and Rx2 signals on LimeSDR USB using LMS API do not appear to be in time alignment. The timestamps reported by LMS_RecvStream differ between the two channels and the captured waveforms are shifted from each other. Is it standard procedure to write code to re-construct a FIFO based on the timestamps to re-align them?

Is there are way to just read the two channels interleaved in a single stream, so that if there are any drops, the channels are still synchronized- similar to audio, where left and right are generally interleaved and not separate streams, or GPU textures, where RGBA are interleaved and not separate bitmaps?

-but even if there was perfect code to keep the FIFO from over/underflowing, what is to prevent the streams being started at slightly different times from creating a race condition where the FIFOs start filling at slightly different times?

The LimeSuite GUI software has a “MIMO Mode” - exactly what is that as compared to reading two streams separately? I don’t see anything about it in the LMS API docs - it seems to treat each Rx like a separate FIFO.

Alternatively using ‘MIMO Mode’ in GRC doesn’t seem to do anything to sync the two channels up.

Hi @alephdivbyzero,

Check this document for more information:

Great thanks