Glitchy behavior | gr-limesdr | LimeSDR USB | Sinewave test

To properly explain the issue I’m facing, I recorded a video showing Oscilloscope waveforms.

The gnuradio flowgraph is here:

The various versions of the software/hardware involved are the following.

  • gnuradio-companion: (Python 3.6.9)
  • gr-limesdr: branch gr-3.8 (last commit 47511dd58de1695b70e1028366411bada85eb60f)
  • sdrangel: 4.12.1
  • OS: Linux Mint 19.1
  • CPU: Intel© Core™ i7-4900MQ CPU @ 2.80GHz × 4
  • RAM: 16GB
  • H/w: Thinkpad T440p


I’m trying a simple test to create a sinewave output from a WFM modulator block. If there is no audio input, its WFM modulated signal should be a simple sinewave. If I test this with SDRAngel, I see a clean-ish actual sinewave in time domain on the oscilloscope. But if I try to do the same with gnuradio, it seems to produce a glitchy signal.

Could I have any advice on what I might be doing wrong?


Anish // VU2TVE

I fed it a wave file and got good sounding output by setting the

Max Deviation: 2k

and the gain to 55.

A gain of 40 gave no audio and the Max Deviation: 125k gave much distortion.

Thanks, but I’m looking at something even more basic. The ability to produce a clean sine wave.

I am able to sort of do that with SDRAngel, but not with Gnuradio apparently keeping the settings (to the best of my understanding) the same.

This suggests that something is wrong:

  1. With my understanding of settings between gnuradio/sdrangel
  2. With the radio
  3. With some piece of software (either gnuradio/gr-limesdr toolchain, or somewhere else - maybe on the board)

So I’d like to get to the bottom of that :slight_smile:

I’m gonna attempt running pothos as well to see what it produces.

Is it a question of “tx calibration” ? or calibration in general? or something else.

See this envelope of the sine captured in the oscilloscope. note the time base in the screenshot. If I zoom into the timebase, then I see the glitchy sinewave behavior.

I investigated some more, and the waveform above seems to happen with the Rational Resampler before the WBFM block. When it is after the WBFM block, this abrupt envelope is not there, but the signal is still quite noisy.

So, I tried the following approach.

  • Limesuite allows me to read the settings on the device.
  • So I run SDRAngel, followed by Limesuite to take a dump of the settings -
  • Then I run gnuradio, followed by a dump of the settings. -

Both setting files are attached.

Both the debug logs too are attached. My knowledge in this is very limited, but in the case of SDRAngel-settings, the log ends like this.
DEBUG: Selected: VCOL
DEBUG: csw 169; interval [166, 172]
DEBUG: M=195, N=3, Fvco=1300.000 MHz

in the case of gnuradio, log ends like this
DEBUG: Selected: VCOM
DEBUG: csw 174; interval [171, 177]

Does that give any more insight?

At this point, I’d be interested to try out any (simple) WBFM flowgraph that is known to work with a LimeSDR-USB

I’d say the fact there seem to be issues with the basic wbfm example in the gr-limesdr repo doesn’t speak well of the current state of things :frowning:

Any pointers?

Hi @vu2tve,

What about examples provided with gr-limesdr? Are they working OK?

Are you sure it is proper output file here?

What geteware version is flashed to your board?

Sorry. I believe this should have been the log

I only tried the FM transmitter example, and was facing issues. Also, perhaps because of gnuradio, most/all the examples were failing due to a selector block, but that’s easy to get around and get the examples to work.

I can try the other examples once I get back to my radio in 2-3 days’ time.

Also, I’ll let you know the gateware version flashed as well in 2-3 days, but I do remember doing a Limeutil -update as once I initially used Limesuitegui, it had complained of an old gateware version.

My next course of action (since my knowledge of limesdr settings is very limited at this point) was to use the .ini file (settings) that sdrangel uses, and load that using the advanced settings in the limesdr-sink gnuradio-companion block.

Can try other approaches too, if anyone has ideas :slight_smile: