Using APIs for LimeSDR Mini

Hi all,

Somehow my LimeSDR Mini is behaving weird while receiving WiFi data from a packet-spammer. I have used Bastian’s gr-ieee802-11 for implementing WiFi Rx flowgraph. It receives data when frame size is 1500 Bytes however when I reduce the frame size, it stops receiving. So I was thinking that instead of working with GNURadio, I will start working with APIs so that nothing remains unknown (inside a black-box like in GNURadio).

Could anyone point me in right direction as to where to start from, how to access APIs for LimeSDR Mini and possibly if I can obtain API for WiFi Rx as well.

Thanks and Regards
SG

I don’t recall seeing documentation for the API.
There is one gotcha: start the LimeSDR’s receive channel first. And start the LimeSDR’s receive channel first when you want LimeSDR to transmit only.

Hi @IF3191,

LMS API documentation:
https://docs.myriadrf.org/LMS_API/
Examples:
https://github.com/myriadrf/LimeSuite/tree/master/src/examples

Thank you for the reply. I’ll go through the links and get back if needed.

Regards
SG

Hi,

I am trying to use WiFi OFDM API with LMS API. The data format received by LimeSDR mini is int_16 type however the data type used by OFDM API is double type in the range [-1,1]. Is there a converter inherent to Limesuite that can convert the data format as well as scale the data ? Or if not then whether doing this in software will hamper the data received by the LimeSDR Mini?

Basically I would like to know how sample (or streaming) data from a format the device understands can be converted to a format the user can deal with.

Any help or suggestions are appreciated.

Thanks and Regards
SG

You can change the format when setting up stream. Data formats: https://github.com/myriadrf/LimeSuite/blob/64bb2b89963ac48706e7990d1f3b60bf65fd5d33/src/lime/LimeSuite.h#L1085
LMS_FMT_F32 will output [-1;1] range

Thanks for a quick reply.

But I need in double format which has higher precision than float. And if I change from float to double, it affects the CRC received with transmit frame and one calculated at receiver resulting in rejection of frames.

Is there a way around?

Regards
SG

I don’t see how changing from float to double could have any effect in this situation, considering we’re talking about raw data samples being sent and received from the device. As the device ADC/DAC hardware operates on 12bit integers, it doesn’t matter if the source or sink buffer is a float or double, in the end hardware still uses those values discretized into integers ranging [-2048:2047].
So when you’re sending or receiving data from the device, samples recalculation from/into float/double should make no difference as both have enough precision to have 1/4096 resolution.

Thanks for a quick reply. I understand the point you are making here.

Regards
Shruti

Hi,

Since I am using LimeSDR mini asr WiFi receiver, my sampling rate is set to 20MSamples/s. However, the sample rate achieved at the board using the APIs is only around ~ 10-12 MSamples/s. What could be possible reason behind this behaviour?
Clearly USB-3 port supports higher data transfer rate so is it that LimeSDR mini is unable to receive signal at higher data rate or the samples are getting lost before reaching the PC for processing?

Any insights into this will be appreciated.

Thanks
SG