All ZERO RecvStream samples, completely underrun

I’m new to SDRs and i’m trying my best to learn to code it.
I am currently attempting to receive 2.4GHz signals (assuming to read WiFi router waves). But i’m reading all Zeros. Could someone mentor me in this setup?

receiving snippet:

lms_stream_t receiveStream;
receiveStream.channel = 0;
receiveStream.isTx = false;
receiveStream.fifoSize = 256 * 64;
receiveStream.throughputVsLatency = 1;
receiveStream.dataFmt = lms_stream_t::LMS_FMT_I16;
receiveStream.linkFmt = lms_stream_t::LMS_LINK_FMT_I16;
int sampleSize = 32;
std::vector<int> samples(sampleSize,0);
lms_stream_meta_t meta;
lms_stream_status_t status;

if (LMS_SetupStream(....
if (LMS_StartStream(....
for (int i = 0; i<5; i++) {
    int samples_received = LMS_RecvStream(&receiveStream, samples.data(), sampleSize, &meta, 1000);
    if (samples_received < 0) {
        std::cerr << i << ": Failed to receive samples: " << LMS_GetLastErrorMessage() << std::endl;
        continue;
    }
    std::cout << i << ": ";
    for (int j = 0; j < sampleSize; j++) {
        std::cout << samples[j] << "; ";
    }
}

Here are my output

$ ./Receiver
Found 1 device(s)
[device Sl No: 0] LimeSDR Mini, media=USB 3.0, module=FT601, addr=24607:1027, serial=1DA168E6FF2FF2
Reference clock 40.00 MHz
Device opened successfully
Device initialized successfully
RX channel 0 enabled successfully
RX sample rate set to 3 MHz
RX center frequency set to 2.4 GHz
RX antenna set to 1
RX gain was set to 30 dB
Rx LPF min bandwidth is 4MHz when TIA gain is set to -12 dB
RX LPF configured
RX LPF bandwidth set to 1.8 MHz
Calibrating Rx for 2.5 MHz (requested 1.8 MHz [out of range])
Rx calibration finished
RX channel calibrated successfully.
RX stream setup successfully.
RX stream started successfully.
RX Stream Status: FIFO 0/16320, Underrun: 0, Overrun: 0, Dropped: 0
0: 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; TimeStamp :0
1: 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; TimeStamp :0
2: 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; TimeStamp :0
3: 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; TimeStamp :0
4: 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; TimeStamp :0
RX Stream Status: FIFO 0/16320, Underrun: 5, Overrun: 0, Dropped: 0
RX stream stopped successfully.
RX stream destroyed successfully.

some additional notes:

i have tried sample rates from 3MHz to 30MHz, RX gains 20dB & 30dB
and few other parameters too… but nothing seems to help…

Hi, can’t really help without seeing all your code. What is the library version you are using? Does the LimeSuite/src/examples/basicRX.cpp at master · myriadrf/LimeSuite · GitHub produce non zero values for you?

1 Like

Hi Ricardas, Thanks for sharing the basicRX.cpp. I just became aware of the “Fix for v2” to enable TX channel between Init & RX channel enabling. This helped me fix my code, and I’m seeing some data being streamed.

Thanks a lot again; my frustration is down now.