LimeSDR Mini - Modify sample rate data type

My research partner and I have been using LimeSDR Mini V1 with our Individual studies. So we were trying to optimize the sample speed. As we read through Why is LimeSDR-Mini sample rate limited to 30.72M, we were thinking if we could modify the data type of sample rate from floating-point number (4 bytes) to unsigned 2 bytes integer. Since it cost less memory and time to generate sample, it’s able to increase the speed that generate samples.

In this case, would it be necessary to modify the FPGA? Or is it able to change the data type through APIs?

LimeSuite.h gives you three choices -

    LMS_FMT_F32=0,    ///<32-bit floating point
    LMS_FMT_I16,      ///<16-bit integers
    LMS_FMT_I12       ///<12-bit integers stored in 16-bit variables

12 bits should be the fastest, but I would not bet on it - only tests will tell you for sure. The HackRF one does Ok using only 8 bits - so 12 bits should be more that enough in most cases.

1 Like

Thanks for your help! I will try :slight_smile:

I know SoapySDR offers the similar C++ APIs to control the LimeSDR Mini. Do you know if SoapySDR also provide similar parameters to store the sample?

    LMS_FMT_F32=0,    ///<32-bit floating point
    LMS_FMT_I16,      ///<16-bit integers
    LMS_FMT_I12       ///<12-bit integers stored in 16-bit variables

Here are the options in <SoapySDR/Formats.h>

#define SOAPY_SDR_CF64 “CF64”
#define SOAPY_SDR_CF32 “CF32”
#define SOAPY_SDR_CS32 “CS32”
#define SOAPY_SDR_CU32 “CU32”
#define SOAPY_SDR_CS16 “CS16”
#define SOAPY_SDR_CU16 “CU16”
#define SOAPY_SDR_CS12 “CS12”
#define SOAPY_SDR_CU12 “CU12”
#define SOAPY_SDR_CS8 “CS8”
#define SOAPY_SDR_CU8 “CU8”
#define SOAPY_SDR_CS4 “CS4”
#define SOAPY_SDR_CU4 “CU4”

Not sure how many will work with the limeMini.

There are examples of a simple Transmitter (universalSend.cpp) and a simple Receiver (universalReceive.cpp) using soapy in -

Thanks for providing me these examples. They help a lot.