I am using a LimeSDR USB to transmit a GPS L1 signal at a center frequency of 1.57542 GHz with a sample rate of 5 MS/s. I am using the LabVIEW APIs to transmit the signal.
I am observing intermittent signal drops at the receiver side. However, when I monitor the same transmitted signal using a spectrum analyzer, there are no visible drops or interruptions.
Could you please advise how I can detect or verify whether a TX underflow is occurring in the LimeSDR? Is there any LimeSuite API, stream status, or other mechanism that I can use through the LabVIEW APIs to monitor and confirm TX underflow events?
Stream status can be read by LMS_GetStreamStatus LimeSuite/src/lime/LimeSuite.h at 699d05b7212aa612a9802c219dd6621be88c77db · myriadrf/LimeSuite · GitHub
droppedPackets counter indicate if hardware detected that the Tx packet timestamp was already too late and was dropped from transmission.
underrun: indicates that the software detected the Tx packet is already late, and was dropped even before sending it to hardware.
First thing to check is are you using timestamps for transmission? Those counters only work if timestamps are enabled, otherwise data is sent as soon as it arrives without any checks. Without timestamps if there would be any performance jitter on the host side that could result in transmission gaps between data batches.