Gnuradio/SoapySDR issues with LimeSDR-mini

Hello,
While trying to make QRadioLink compatible with LimeSDR, I discovered these issues, listed below.
I would appreciate some feedback from developers.

  1. Adjusting TX gain while transmitting leads to long (~1 second) flowgraph interruption and large distortion of the waveform. This issue does not affect RX gain.

  2. Issuing a tune request immediately after initialising the flowgraph sometimes leads to the PLL not locking on frequency, and it does not lock at all after that; there seems to be no solution other than unplugging the LimeSDR mini and plugging in again.

  3. Sending data to the flowgraph immediately after start() -ing it causes the flowgraph to stall, and does not recover until the flowgraph is destroyed and recreated. A 100 msec delay seems to help here. Issues with stream start?

  4. The BPSK/QPSK constellation seems to be dancing around a bit, which looks like some amplitude/phase variation in the LimeSDR-mini local oscillator. None of these issues are present on other devices.

Other than that, I’ve been successful sending and receiving analog and digital voice with QRadioLink/Gnuradio. The success rate is however not 100%. I will come back with more feedback as I keep working on it.

Best regards,
Adrian

Hi Adrian,

Great to hear that you’ve made such progress already! There may still be a few wrinkles to flush out, hence why it’s important that developers such as yourself get priority access to hardware.

@IgnasJ, any thoughts on the above?

Hello.

Does QRadioLink use SoapySDR or LimeSuite library directly? Are you using the latest LimeSuite from GitHub master branch or some other version?

  1. Setting Tx gain may take longer than setting Rx gain because it performs gain calibration (to avoid saturation), however this calibration should take <100 ms.

2,3. Can I look at the setup and streaming start sequence somewhere. Its hard to tell what may go wrong without knowing what is being done before configuring PLL and before/after starting streaming.

  1. Are you able to reproduce this issue using LimeSuiteGUI (FFTviewer)?

Hi Ignas,

Thanks for looking into this. QRadioLink is a Gnuradio application which uses gr-osmosdr sources and sinks, which in turn use SoapySDR as a wrapper for LimeSDR drivers. My LimeSuite version is Git 0167e645535e366f76fcd5d0ea986af37b630b72.

  1. Somehow (without actually being able to time this, it feels like longer than 100 msec. The main issue is that Tx seems to be turned off during this procedure, and when it comes back I can see a momentary large distortion of the waveform.
  2. Yes, the code is available on Github. For example, one of the flowgraphs is https://github.com/kantooon/qradiolink/blob/master/gr/gr_mod_bpsk_sdr.cpp
    I am calling tune() once the flowgraph has been initialised and start() when the user toggles on the PTT button. In the first case the PLL seems to take very long to settle and sometimes doesn’t lock, and for
  3. if I send data to the flowgraph right after calling start() the flowgraph stalls and nothing is transmitted.
  4. I have only had the device for a couple of days and I’m still trying to figure out LimeSuite. Once I do, I will check this. I may also record a small video because it’s kind of hard to describe in words the constellation movement.

Best regards,
Adrian