LimeSDR-Mini GR-3.8 Block Transmit Distortion

Just received my LimeSDR-Mini 1 week ago:

  • GNU Radio 3.8
  • Ubuntu 20.04
  • With GNU Radio Flowgraph BPSK transmit, received spectrum seems distorted and bits not recovered - Spectrum as follows on transmit and receive to compare (Frequency sink before Lime Tx block is bottom spectrum in Figure). Flowgraph as follows below also:
  • FM transmit and receive worked on another flowgraph well enough to hear wav file, BPSK flowgraph booted with lime with no issues noted, and LimeQuickTest passed. Transmit spectrum on Pluto Receive looked distorted/same too when lime transmitted to it.
  • 20 dB attenuator used in loop, many gain levels, saturation checked, RF loop cable disconnected and reconnected to verify receive signal above noise floor, 10 minute increments of testing only to keep lime board temperature low, tried many frequencies - sometimes transmit frequency same as receive frequency and sometimes not (offset with NCO parameter).

Assuming no mistake in setup, is there a gr-limesdr block 3.8 branch issue maybe where the “Cal” on limesdr-mini board is not occurring well when directed by gnu radio flowgraph?
Seems like limeboard is OK, but maybe it is not calibrating well when controlled via a gr-limesdr block in gnu radio 3.8?

Any thoughts?
Thank You

Your spectrum shows periodic spikes - one of my computers generates spikes like those - so I cannot use it when the interference is important.


The spikes exist because I used a relatively short repeating data pattern on that run. I also did runs with a long repeating data pattern but no difference on this issue. Spectrum shown below on that run with long repeating patterns.

You are correct though implying short repeating patterns with those spikes should not be used operationally and that was a good point and needed to be eliminated as a possible cause for this issue.

Dave M


  • Transmitted via Windows SDRangel with DATV channel and LimeSDR-mini at 2.0 Msymbols/s and received on another laptop with Pluto. At Pluto source output, received spectrum with Lime/SDRangel transmitting looks fine with good received I/Q Constellation. See attached figure below.
  • Therefore, seems like my LimeSDR-mini board is working and can be configured with good quality BPSK transmit output signal with SDRangel-Windows, but not with GNU Radio 3.8 blocks and Ubuntu 20.04 for BPSK and QPSK transmissions. My board just came off the assembly line in May.
  • Does Myriad/LimeMicro concur and if yes is there a plan to upgrade the GR-LimeSDR 3.8 blocks or add an issue tracker on github for planned software upgrades later to GR-Limesdr blocks for 3.8?

Thank You,

Update, but really original questions still from above on GR-LimeSDR block for GNU Radio version 3.8 with LimeSDR-mini board:

• I have gotten QPSK at 4.0 Mbps with SDRangel and Ubuntu 20.04  and LimeSDR-mini working with above clean I/Q Constellation.
    ◦ Fairly clean transmit signal so SDRangel seems to be calibrating the LimeSDR-mini reasonably well with their API code/functions design
• But, I still have same issue with distorted spectrum signal above though with the GR-LimeSDR block with GNU Radio version 3.8 and Ubuntu 20.04 for high sample rate transmissions -  not clean 
    ◦ Narrowband FM works though even though transmit signal does not look too clean but sufficient for FM voice
• I also noticed during the last month that a couple of others on this MyriadRF message board have indicated that the high data rate OFDM example on github GR-LimeSDR block site has issues.

1. Therefore, have the LimeMicro folks been able to transmit at BPSK or QPSK on GNU Radio version 3.8 like the simple flowgraph above in this thread at high sample rates (>4.0 Msps) and 2 to 4 samples per bit?
2. If yes, can such an example be placed on GR-LimeSDR block github site to help?
3. If no, are there plans to upgrade the GR-LimeSDR block for GNU Radio version 3.8 for better performance with high sample rates - Block may not be calibrating the limesdr-mini board optimally?
    ◦ For example, what has the SDRAngel author done with the LimeSDR API that may not be in the current GR-LimeSDR block functions/code for version 3.8?
    ◦ I have looked at the API functions on SDRAngel github and did not see anything yet not implemented in the GR-LimeSDR block.  Is that worth pursuing more as the source of the unclean transmit signal issue at high sample rates with GNU Radio version 3.8? 

Thank You,

Hi @DaveM,

Recently I experimented with BPSK based packet data transfer with LimeSDR-mini. I used Gnuradio 3.8 to create the flow graph. It’s working in simulation mode perfectly. But I’m yet to resolve the issue with LimeSDR mini. Looks like some synchronization problem is happening between transmitter and receiver hardware. I’m not an RF engineer, so having some difficulties to pinpoint the problem.

You might get some idea from my post here for the BPSK flow graph. I’m trying to understand the problem and will report back if any success.


Hi @Phoenix,

If I understand your post, everything is working in simulation for you, but not when using the limeSDR-mini.

That is the same issue I am having basically. Also, works fine for me with Pluto dongle up to its maximum USB 2.0 limit and then limeSDR-mini with SDRangel works too. That is why I suspect as stated above the gr-limesdr block for gnuradio version 3.8 is not calibrating the limeSDR-mini well enough for BPSK/QPSK, but good enough for analog FM and my LimeSDR-mini board is probably OK. If transmitted signal not “clean” due to poor calibration, cannot synchronize and lock well on receive side. But, not sure yet. I will also post something more on your thread too if I uncover something useful.

Thanks, your post was helpful.

Update (I think issue solved),

I used my own BPSK modulator flow graph creation in GNU Radio as shown below in first figure (did not use GNU Radio In-tree modulator blocks). Square wave pulse rather than RRC for each bit/symbol. 2 samples per symbol. Saved Modulated signal to File. Then, ran second figure below flowgraph to run RF loop with LimeSDR blocks and LimeSDR-mini board and Modulator file from first figure. Obtained good BPSK I/Q Constellation as shown below in third figure and verified bits received well at 3.0 Mbps (6 Msamples per second) via file sink block.

So I think now the LimeSDR-mini board I received is working well with BPSK and at high sample rates. No idea why the GNU Radio 3.8.3 modulator blocks I used and the LimeSDR blocks were not compatible together, but I have a work around now.