Limesdr-mini calibration in gnuradio

Hi all,

I’m trying to get started with Limesdr-mini using gnuradio, but I’m having trouble with the IQ imbalance. My setup is attached, its just a sine wave which is looped from the TX back to the RX and then plotted in the frequency domain. I used a 60-dB attenuator in the loop.

SCHEMATIC:

This is the result of running the flowgraph

LIMESDR-MINI:

Note that I recently updated the firmware using LimeUtil --update. If I change the source and sink to the osmocomm versions, the -1.25 MHz signal goes below the noise floor after about 5 seconds. I have also tested similar flowgraphs using the Adalm-Pluto and the USRP b200-mini and they both show “better” performance. The results of the Adalm-Pluto are shown below, and there is no noticable delay before calibration is good. Obviously the setup is slightly different but this is not the reason for the results. I have verified the Adalm-Pluto results using a proper spectrum analyzer.

ADALM-PLUTO:

So my questions are

  1. do I need to do something to calibrate the limesdr-mini? From what I’ve been reading, calibration is automatic.
  2. Is my test setup not a valid way of checking IQ calibration?

Any additional help is appreciated. thanks in advance!

Below is the output from the gnuradio console when using the LimeSuite source and sink.

CONSOLE OUTPUT:

Generating: '/home/doaaron/gnuradio/limeSDR/FFT001.py'

Executing: /usr/bin/python2 -u /home/doaaron/gnuradio/limeSDR/FFT001.py


Gtk-Message: 22:44:11.563: Failed to load module "canberra-gtk-module"
fft_impl_fftw: /home/doaaron/.gr_fftw_wisdom: Permission denied
---------------------------------------------------------------
LimeSuite Source (RX) info

##################
Connecting to device
##################
Devices found: 1
##################
Device list:
Nr.:|0|device:|LimeSDR Mini, media=USB 3.0, module=FT601, addr=24607:1027, serial=1D3ACA12114C61
##################
Device number 0 from the list is used.
Reference clock 40.00 MHz
##################

INFO: device_handler::set_chip_mode(): SISO mode set for device number 0.
INFO: device_handler::set_rf_freq(): RF frequency set [RX]: 2400 MHz.
INFO: device_handler::set_samp_rate(): set sampling rate: 5 MS/s.
INFO: device_handler::set_analog_filter(): RX LPF configured
Configured bandwidth: 5 MHz.
INFO: device_handler::set_digital_filter(): digital filter channel 0 set [RX]: disabled.
INFO: device_handler::set_antenna(): channel 0 antenna set [RX]: LNAH.
INFO: device_handler::set_gain(): set gain [RX]: 40 dB.
INFO: device_handler::calibrate(): Rx calibration finished
INFO: source_impl::init_stream(): source channel 0 (device nr. 0) stream setup done.
---------------------------------------------------------------
---------------------------------------------------------------
LimeSuite Sink (TX) info

##################
Connecting to device
Previously connected device number 0 from the list is used.
##################

INFO: device_handler::set_chip_mode(): SISO mode set for device number 0.
INFO: device_handler::set_rf_freq(): RF frequency set [TX]: 2400 MHz.
INFO: device_handler::set_samp_rate(): set sampling rate: 5 MS/s.
INFO: device_handler::set_analog_filter(): Filter calibrated. Filter order-4th, filter bandwidth set to 5 MHz.Real pole 1st order filter set to 2.5 MHz. Preemphasis filter not active
TX LPF configured
Configured bandwidth: 5 MHz.
INFO: device_handler::set_digital_filter(): digital filter channel 0 set [TX]: disabled.
INFO: device_handler::set_antenna(): channel 0 antenna set [TX]: BAND1.
INFO: device_handler::set_gain(): set gain [TX]: 50 dB.
INFO: device_handler::calibrate(): Tx Calibration: MCU error 5 (Loopback signal weak: not connected/insufficient gain?)
INFO: sink_impl::init_stream(): sink channel 0 (device nr. 0) stream setup done.
---------------------------------------------------------------
1 Like

Here’s your clue, Tx calibration failed, you need to increase Tx gain

1 Like

thanks for the reply. I increased the txgain, and the error went away, but the performance is still about the same…

best regards,
Aaron

any other suggestions?

I ended up using the NCO and it does result in excellent spur suppression, but I would prefer not to since it eats up my sample rate. So is seems that the IQ balance is limited to about 25-30 dB. Is that number in line with expectations, because from memory, its not very good.

Regards
Aaron