Issues with getting LimeSDR working with GQRX

Hi all,
I recently received my LimeSDR card a couple of days ago and have beens struggling to get it working with GQRX. I think the board is operating properly as LimeSuite seems to mostly work properly (i.e Programming seems to complete successfully, I can change flags and write data to the device, etc…however when I run some sample tests in the FFT viewer it doesn’t seem to be displaying anything.)

I’m currently trying to get this to work on a Xeon 4c/8t system with plenty of ram running Ubuntu 16.10. I’ve tried completely removing all Soapy, LimeSuite, and GQRX packages, re-installing from PPA, etc…but whenever I fire up GQRX I don’t see anything on the waterfall or even carrier frequency. I don’t have it in front of me to give any log output, but should be able to provide later. My first question is whether anyone has gotten LimeSDR to work on Ubuntu 16.10. At one point there was some issues getting GQRX to run on 16.10 due to UHD I think, but I think that issue may be resolved now. GQRX only seems to crash when I try to reference the Lime device i.e driver=lime,soapy=0. I’ve tried various bandwidth and sample rates with no success.

Any step by step guides?
Has anyone successfully ran this on 16.10?
Any guides/wikis on what all of the settings do in LimeSuite?

I think I was naive in thinking this would be a plug and play device as there are many many options I am not used to having.

I got my lime working on the latest version of Ubuntu (cant remember which version) I installed all the drivers as per the instructions, plugged the board in and it worked straight away with GQRX. Did you select the aerial socket in the GQRX screen? There’s a few options so maybe try that. It’s an easy mistake to make!

Aerial socket? Where is that option located?

Input Controls - Antenna dropdown menu - 5 diff options.

Sometimes the aerial is mounted next to the bonnet. But in this case it’s like @TegwynTwmfatt says.

Hmm, I don’t have any options for antenna. On my rtl-sdr I have RX and my HackRF I have TX/RX, but with the LimeSDR I don’t have any options - just blank. I’m guessing something is not configured correctly.

SoapyUtil --find displays my device appropriately so I think Soapy is communicating correctly, but I think GQRX isn’t connecting to soapy or the lime driver properly to control the device.

LimeSuite seems to communicate properly.

GQRX no go. I have the container app installed (I installed this a while back to work around the UHD issue that was occurring in Ubuntu 16.10) as well as GQRX from the PPA. The one installed from the PPA seems to crash immediately while the other one seems to run, but isn’t communicating with the LimeSDR properly. When I get home I’ll post error messages and any other information I can send.

I haven’t tried Gqrx on Ubuntu. On Windows 7, I see LimeSDR USB […] listed in the device drop-down and it only works when I select that option.

Is this what you see, or are you selecting “Other…” and then manually setting the device string? I wasn’t able to get that to work under Windows.

—Gary, W6ARY

I select Other I believe… I don’t think it has an option for LimeSDR USB, but I’ll double check when I get home…

You need to check the console output when it crashes, otherwise it is impossible to say what is wrong.

LimeSDR integration into gqrx still experimental. We can say it is plug an play when it works :wink:

I know some bandwidth settings make it crash and I am also experiencing problems every second time I try to start it, although that could be a local issue.

@gsnethen

In GQRX there is a tab on the right side for demod and antenna selection. There is also a pull-down list and you select the antenna port that you’ve modifed for HF use (RX1_W or RX1_L) then adjust the LNA, PIA, and TIA gains as appropriate to obtain best signal strength.

If you have no antenna selections, then you may have an issue with GQRX not seeing the Lime. Hopefully you’ve done the ‘driver=lime,soapy=0’ entry on the first line (Device String) of the form for the board you’re using (Lime). In the upper right-hand corner there’s an icon that looks like a circuit board. Click on that and then ensure you have ‘driver=lime,soapy=0’ in the first space and also ensure that the Bandwidth entry is (and type it exactly like this) 100000000

Also, look at this thread for settings for GQRX, too -----> LimeSDR with Gqrx is working!

Let us know how you’re doing if you still cannot start GQRX.

73 de Marty, KN0CK

Of course…My apologies for starting the thread without being in front of my Lime & Computer. Its like asking a doctor what’s wrong with me without telling them any symptoms or providing any blood work. haha.

I’ll post the error messages when I get off work…

Hey, no problem. You will find that the SoapyLMS backend prints lots of info during start and it will probably show which function call fails.

Hello,

I also have issue with gqrx under Windows 10 from PhotosSDR (binary installed).
If I use ‘driver=lime,soapy=0’ and start DSP I get no waterfall.
If I use ‘driver=lime,index=0’ it seems gqrx is working. I even bearly heard some FM station but performance much worse compared with SDR Console. And in ‘input control’ > ‘Antenna’ I have a single option ‘RX’

Probably something not good with the Soapy layer?

Here are the logs until the crash:

gr-osmosdr v0.1.x-xxx-xunknown (0.1.5git) gnuradio 3.7.10
built-in source types: file osmosdr fcd rtl rtl_tcp miri hackrf bladerf rfspace airspy soapy redpitaya
Resampling audio 96000 -> 48000
gr::fft: can’t import wisdom from /home/justinslatten/.gr_fftw_wisdom
BookmarksFile is /home/justinslatten/.config/gqrx/bookmarks.csv
gr-osmosdr v0.1.x-xxx-xunknown (0.1.5git) gnuradio 3.7.10
built-in source types: file osmosdr fcd rtl rtl_tcp miri hackrf bladerf rfspace airspy soapy redpitaya
[INFO] Make connection: ‘USB 3.0 (LimeSDR-USB)’
Estimated reference clock 30.7197 MHz
Selected reference clock 30.720 MHz
[INFO] Device name: LimeSDR-USB
[INFO] Reference: 30.72 MHz
[INFO] Init LMS7002M(0)
LMS7002M values cache at /home/justinslatten/.limesuite/LMS7002M_cache_values.db
[INFO] Ver=7, Rev=1, Mask=1
[INFO] LMS7002M calibration values caching Enable
CGEN: Freq=80 MHz, VCO=2.4 GHz, INT=77, FRAC=131072, DIV_OUTCH_CGEN=14
[INFO] SoapyLMS7::setFrequency(Rx, 0, BB, 0 MHz)
[INFO] SoapyLMS7::setFrequency(Tx, 0, BB, 0 MHz)
[INFO] SoapyLMS7::setAntenna(Rx, 0, LNAL)
[INFO] SoapyLMS7::setAntenna(Tx, 0, BAND1)
[INFO] SoapyLMS7::setGain(Rx, 0, PGA, 0 dB)
[INFO] SoapyLMS7::setGain(Rx, 0, LNA, 0 dB)
[INFO] SoapyLMS7::setGain(Rx, 0, TIA, 0 dB)
[INFO] SoapyLMS7::setGain(Tx, 0, PAD, -50 dB)
[INFO] SoapyLMS7::setSampleRate(Rx, 0, 10 MHz), CGEN=80 MHz, ADC=20 MHz, decim=2
ConnectionSTREAM::ConfigureFPGA_PLL(tx=20MHz, rx=10MHz)
----- FPGA PLL #0 CONFIG -----
M=112, N=7, Fvco=640.000 MHz
C0=16, Fout=40.000 MHz, CNT_IND=2, nSteps=0, phaseShift=0.0
C1=16, Fout=40.000 MHz, CNT_IND=3, nSteps=35, phaseShift=98.4
----- FPGA PLL #1 CONFIG -----
M=93, N=3, Fvco=620.000 MHz
C0=31, Fout=20.000 MHz, CNT_IND=2, nSteps=0, phaseShift=0.0
C1=31, Fout=20.000 MHz, CNT_IND=3, nSteps=78, phaseShift=113.2
[INFO] SoapyLMS7::setSampleRate(Tx, 0, 10 MHz), CGEN=80 MHz, DAC=20 MHz, interp=2
ConnectionSTREAM::ConfigureFPGA_PLL(tx=10MHz, rx=10MHz)
----- FPGA PLL #0 CONFIG -----
M=93, N=3, Fvco=620.000 MHz
C0=31, Fout=20.000 MHz, CNT_IND=2, nSteps=0, phaseShift=0.0
C1=31, Fout=20.000 MHz, CNT_IND=3, nSteps=65, phaseShift=94.4
----- FPGA PLL #1 CONFIG -----
M=93, N=3, Fvco=620.000 MHz
C0=31, Fout=20.000 MHz, CNT_IND=2, nSteps=0, phaseShift=0.0
C1=31, Fout=20.000 MHz, CNT_IND=3, nSteps=78, phaseShift=113.2
[INFO] SoapyLMS7::setBandwidth(Rx, 0, 30 MHz)
[INFO] Rx Filter calibrated from cache
[INFO] SoapyLMS7::setBandwidth(Tx, 0, 30 MHz)
[INFO] Tx Filter calibrated from cache
[INFO] SoapyLMS7::setFrequency(Rx, 1, BB, 0 MHz)
[INFO] SoapyLMS7::setFrequency(Tx, 1, BB, 0 MHz)
[INFO] SoapyLMS7::setAntenna(Rx, 1, LNAL)
[INFO] SoapyLMS7::setAntenna(Tx, 1, BAND1)
[INFO] SoapyLMS7::setGain(Rx, 1, PGA, 0 dB)
[INFO] SoapyLMS7::setGain(Rx, 1, LNA, 0 dB)
[INFO] SoapyLMS7::setGain(Rx, 1, TIA, 0 dB)
[INFO] SoapyLMS7::setGain(Tx, 1, PAD, -50 dB)
[INFO] SoapyLMS7::setSampleRate(Rx, 1, 10 MHz), CGEN=80 MHz, ADC=20 MHz, decim=2
ConnectionSTREAM::ConfigureFPGA_PLL(tx=20MHz, rx=10MHz)
----- FPGA PLL #0 CONFIG -----
M=112, N=7, Fvco=640.000 MHz
C0=16, Fout=40.000 MHz, CNT_IND=2, nSteps=0, phaseShift=0.0
C1=16, Fout=40.000 MHz, CNT_IND=3, nSteps=35, phaseShift=98.4
----- FPGA PLL #1 CONFIG -----
M=93, N=3, Fvco=620.000 MHz
C0=31, Fout=20.000 MHz, CNT_IND=2, nSteps=0, phaseShift=0.0
C1=31, Fout=20.000 MHz, CNT_IND=3, nSteps=78, phaseShift=113.2
[INFO] SoapyLMS7::setSampleRate(Tx, 1, 10 MHz), CGEN=80 MHz, DAC=20 MHz, interp=2
ConnectionSTREAM::ConfigureFPGA_PLL(tx=10MHz, rx=10MHz)
----- FPGA PLL #0 CONFIG -----
M=93, N=3, Fvco=620.000 MHz
C0=31, Fout=20.000 MHz, CNT_IND=2, nSteps=0, phaseShift=0.0
C1=31, Fout=20.000 MHz, CNT_IND=3, nSteps=65, phaseShift=94.4
----- FPGA PLL #1 CONFIG -----
M=93, N=3, Fvco=620.000 MHz
C0=31, Fout=20.000 MHz, CNT_IND=2, nSteps=0, phaseShift=0.0
C1=31, Fout=20.000 MHz, CNT_IND=3, nSteps=78, phaseShift=113.2
[INFO] SoapyLMS7::setBandwidth(Rx, 1, 30 MHz)
[INFO] Rx Filter calibrated from cache
[INFO] SoapyLMS7::setBandwidth(Tx, 1, 30 MHz)
[INFO] Tx Filter calibrated from cache

FATAL: destination port 1 out of range for source_impl(47)

Trying to fill up 18446744073709551615 missing channel(s) with null source(s).
This is being done to prevent the application from crashing
due to gnuradio bug #528.

terminate called after throwing an instance of ‘std::invalid_argument’
what(): destination port 2 out of range for source_impl(47)
Aborted (core dumped)

Ah, I got it to work finally. Messed around with the sample rate and bandwidth some more.

Sample rate set to 5000000 and bandwidth set to 40 MHZ.

Device: Other
Device String: driver=lime,soapy=0

BTW for others…I am using with an upconverter to get around the poor HF performance issue so I’m setting the LNB LO to -125MHZ. Unless you also have an upconverter in place (Ham it up is the one I use) then just leave that setting at 0 mhz.

Strange it fails every other time. What kernel and what libusb version is what comes to mind. Only as another data point. I’ve not seen that problem running 4.9 kernels and libusb-1.0.20.

Thanks for the info. I am using kernel 4.4.0 and libusb 1.0.20.

It fails every other time for me as well. It seems to be the driver not releasing the USB device properly.

It goes kinda like this:

(From a fresh reboot lets say)
start gqrx->gqrx starts
stop gqrx->“libusb: warning [libusb_exit] application left some devices open”
attempt to start gqrx again->and boom:

[INFO] Make connection: 'LimeSDR-USB [USB 3.0] 9060B00462714'

########################################################
##   !!!  Warning: gateware version mismatch  !!!
## Expected gateware version 2, revision 6
## But found version 0, revision 27919
## Follow the FW and FPGA upgrade instructions:
## http://wiki.myriadrf.org/Lime_Suite#Flashing_images
## Or run update on the command line: LimeUtil --update
########################################################

Estimated reference clock 0.0000 MHz
Selected reference clock 30.720 MHz
[INFO] Device name: LimeSDR-USB
[INFO] Reference: 30.72 MHz
[INFO] Init LMS7002M(0)
LMS7002M values cache at /home/mike/.limesuite/LMS7002M_cache_values.db
[INFO] Ver=7, Rev=1, Mask=1
[INFO] LMS7002M calibration values caching Enable
CGEN: Freq=80 MHz, VCO=2.56 GHz, INT=82, FRAC=349525, DIV_OUTCH_CGEN=15
[INFO] SoapyLMS7::setFrequency(Rx, 0, BB, 0 MHz)
[INFO] SoapyLMS7::setFrequency(Tx, 0, BB, 0 MHz)
[INFO] SoapyLMS7::setAntenna(Rx, 0, LNAL)
[INFO] SoapyLMS7::setAntenna(Tx, 0, BAND1)
[INFO] SoapyLMS7::setGain(Rx, 0, PGA, 0 dB)
[INFO] SoapyLMS7::setGain(Rx, 0, LNA, 0 dB)
[INFO] SoapyLMS7::setGain(Rx, 0, TIA, 0 dB)
[INFO] SoapyLMS7::setGain(Tx, 0, PAD, -50 dB)
[INFO] SoapyLMS7::setSampleRate(Rx, 0, 10 MHz), CGEN=4062.74 MHz, ADC=5.93968 MHz, decim=0.593968

FATAL: SoapyLMS7::setSampleRate() -- rate too high

Trying to fill up 1 missing channel(s) with null source(s).
This is being done to prevent the application from crashing
due to gnuradio bug #528.

On next start it finds and initializes the device fine.