LimeSDR setup with GnuRadio

Hello,

I followed the instructions from @csete to install the STREAM Lime SDR. My board is detected:

> SoapySDRUtil --find
> ######################################################
> ## Soapy SDR -- the SDR abstraction library
> ######################################################

> Found device 0
>   addr = 241:1204
>   driver = lime
>   media = USB
>   module = STREAM
>   name = USB 3.0 (Stream)

I am working with gnuradio for about 2 months now and I only used simulation without any hardware.

What sink/source block shall I use to be able to talk with my STREAM board and how can I test if it is correctly connected with the gnuradio api?

@andrewback did you finish the blog post you talked about at the begining of this thread? :slight_smile:

Thanks for the answers,

cheers

@Glaupre I believe the gr-osmosdr source and sink blocks should work. STREAM + LMS7 EVB (UNITE) was the originally the reference hardware platform for LimeSuite development, but this changed to LimeSDR. However, the two are pretty much functionally the same and you can think of LimeSDR as an integrated solution, without the HDMI etc.

Should just be a case of installing LimeSuite and dependencies, GNU Radio and gr-osmosdr.

Hello @andrewback

A thing is that my LMS isn’t the 7002 , but the 6002 (myRiad rf-1). It seems that I can’t use the lime suite 7. And therefore I am not sure that the osmosdr block will work properly.

I was trying to use the block anyway I have the following messages:

!!! Warning: firmware version mismatch !!!
Expected firmware version , but found version 4
Follow the FW and FPGA upgrade instructions:
http://wiki.myriadrf.org/Lime_Suite#Flashing_images

!!! Warning: gateware version mismatch !!!
Expected gateware version 1, but found version 65535
Follow the FW and FPGA upgrade instructions:
http://wiki.myriadrf.org/Lime_Suite#Flashing_images

I tried to update the firmeware and fpga gateway but I found only files for the 7002 at http://wiki.myriadrf.org/Lime_Suite#Flashing_images.

In addition, I wanted to use the lms6 control software from https://github.com/limemicro/lms6suite but, well, there are compilation errors.

Where shall I begin to use gnuradio + stream + myriad rf-1. Tks :stuck_out_tongue:

@Glaupre ah, I assumed you were using the LMS7002M EVB with STREAM. OK, so you are using a Myriad-RF 1 module with it… I will try and find out what you should be using with this combination.

@andrewback :smiley: tks a lot

Any update? I managed to change the image of the fpga to configure the registers of the 6002 with lms-suite. I still can’t use the gnuradio block. I have seen that some clocks and even some pins are not connected for the 7002 with the STREAM board as they are not relevant while for the 6002, those pins should be connected i.e. the 7002 uses the same clock while the 6002 uses different clocks.

Is it possible to use git clone for all thats needed …
Or is there some that must be done from PPA ?

Is there a list for the items that can be goten from Git ?

Does this part pertain to Linux/Ubuntu too?

export SOAPY_SDR_PLUGIN_PATH=/home/marty/sdr/limesdr/runtime/lib/SoapySDR/modules

I assume that the path for others would be the location of where SoapySDR was build from git …

Not where it was built but where it is installed using the make install. In the quoted case above, the source was build using the -DCMAKE_INSTALL_PREFIX=/home/marty/sdr/limesdr/runtime cmake option. The default prefix is /usr/local and in that case it should not be necessary to export the plugin path.

I do not know if it will work without running make install.

gr-osmosdr seems to mot be showing soapy as a sink … is there a way to test gr-osmosdr?

SoapySDRUtil --probe=lime
Outputs a bunch of stuff so i figure thats ok … and i can connect to the Limesdr-usb and get the gateware version and such with LimeSuite

I have finally got gnuradio to work with LimeSDR. I installed Kali Linux on a new partition and used git for SoapySDR, LimeSuite, and Pothos, installing all of the dependencies with apt-get. I used apt-get for gnuradio.
This took hours.
I tried the apt-get gqrx too but it hangs at the beginning where you are supposed to pick the input device. It never pops the dialog box. So now I am going to try to ‘git’ gqrx.
Wish me luck.
I still want URH and qspectrumanalizer to work next.

Hi Josh,

thanks for this post, I followed these steps and manage to get Gnu-radio working with Lime SDR. I still have an issue, I manage to receive signals on freq 433.42 MHz with no troubles using Gnu-radio and the antenna accessory pack from crowd supply. However, when I tried transmitting at the same frequency I got the following error:

[ERROR] setBandwidth(Tx, 0, 1.5 MHz) Failed - Tx lpf(1.5 MHz) out of range 5-40 MHz and 50-130 MHz
Traceback (most recent call last):
_ File “up.py”, line 78, in _
_ main()_
_ File “up.py”, line 67, in main_
_ tb = top_block_cls()_
_ File “up.py”, line 41, in init_
_ self.osmosdr_sink_0.set_bandwidth(0, 0)_
_ File “/usr/lib/python2.7/dist-packages/osmosdr/osmosdr_swig.py”, line 2194, in set_bandwidth_
_ return osmosdr_swig.sink_sptr_set_bandwidth(self, bandwidth, chan)
RuntimeError: Tx lpf(1.5 MHz) out of range 5-40 MHz and 50-130 MHz

I am not sure how it is possible to set the receiver at 433.42 MHz but not the transmitter, I am also wondering if the antennas I’ve got are not the right ones (because they are tunned for 800-960MHz / 1710-2170MHz / 2400-2700MHz).

Any ideas? Thanks

Ok, trying to get limesdr and gnuradio working with the PPA since my attempts to build from source were unsuccessful.

I’ve added the launchpad.net ppa for Myriadrf/gnuradio

I tried apt-get install gr-osmosdr gnuradio

It fails at the end, if I try to fix the failure with -f install apt is complaining about this:

The following NEW packages will be installed:
  libgnuradio-iqbalance
0 upgraded, 1 newly installed, 0 to remove and 18 not upgraded.
30 not fully installed or removed.
Need to get 0 B/93.4 kB of archives.
After this operation, 532 kB of additional disk space will be used.
Do you want to continue? [Y/n] y
(Reading database ... 300163 files and directories currently installed.)
Preparing to unpack .../libgnuradio-iqbalance_0.37.2-myriadrf5~xenial_amd64.deb ...
Unpacking libgnuradio-iqbalance (0.37.2-myriadrf5~xenial) ...
dpkg: error processing archive /var/cache/apt/archives/libgnuradio-iqbalance_0.37.2-myriadrf5~xenial_amd64.deb (--unpack):
 trying to overwrite '/usr/lib/x86_64-linux-gnu/libgnuradio-iqbalance.so', which is also in package gr-iqbal 0.37.2-5
dpkg-deb: error: subprocess paste was killed by signal (Broken pipe)
Processing triggers for libc-bin (2.23-0ubuntu9) ...
Errors were encountered while processing:
 /var/cache/apt/archives/libgnuradio-iqbalance_0.37.2-myriadrf5~xenial_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

If I remove gr-osmosdr it stops trying to install iqbalance and I can get the package system ‘clean’ again (not complaining about things) but if I try to install gr-osmosdr it fails with the install of this library like so:

root@qbert:~# apt-get install gr-osmosdr
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
  libfftw3-3 libgnuradio-iqbalance libosmodsp
The following NEW packages will be installed:
  gr-osmosdr libfftw3-3 libgnuradio-iqbalance libosmodsp
0 upgraded, 4 newly installed, 0 to remove and 18 not upgraded.
Need to get 0 B/319 kB of archives.
After this operation, 2,038 kB of additional disk space will be used.
Do you want to continue? [Y/n] y
Selecting previously unselected package libfftw3-3:amd64.
(Reading database ... 300054 files and directories currently installed.)
Preparing to unpack .../libfftw3-3_3.3.4-2ubuntu1_amd64.deb ...
Unpacking libfftw3-3:amd64 (3.3.4-2ubuntu1) ...
Selecting previously unselected package libosmodsp.
Preparing to unpack .../libosmodsp_0.3.0-myriadrf1~xenial_amd64.deb ...
Unpacking libosmodsp (0.3.0-myriadrf1~xenial) ...
Preparing to unpack .../libgnuradio-iqbalance_0.37.2-myriadrf5~xenial_amd64.deb ...
Unpacking libgnuradio-iqbalance (0.37.2-myriadrf5~xenial) ...
dpkg: error processing archive /var/cache/apt/archives/libgnuradio-iqbalance_0.37.2-myriadrf5~xenial_amd64.deb (--unpack):
 trying to overwrite '/usr/lib/x86_64-linux-gnu/libgnuradio-iqbalance.so', which is also in package gr-iqbal 0.37.2-5
dpkg-deb: error: subprocess paste was killed by signal (Broken pipe)
Selecting previously unselected package gr-osmosdr.
Preparing to unpack .../gr-osmosdr_0.1.4.91.cf95494-myriadrf1~xenial_amd64.deb ...
Unpacking gr-osmosdr (0.1.4.91.cf95494-myriadrf1~xenial) ...
Processing triggers for libc-bin (2.23-0ubuntu9) ...
Processing triggers for man-db (2.7.5-1) ...
Errors were encountered while processing:
 /var/cache/apt/archives/libgnuradio-iqbalance_0.37.2-myriadrf5~xenial_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)
root@qbert:~#

Without the osmocom SDR wrapper for soapy which wraps the limesdr driver I cannot use LimeSDR with gnuradio. Any thoughts on how I might fix this problem?

–Chuck

Of course part of this is the difference between the mainline gnuradio stuff and the custom myriadrf stuff. I managed to uninstall the iqbalance that was coming from the gnuradio packages and install it from the launch pad PPA which made my package system happy again. However trying a simple osmocodm_fft gets us this winner:

qbert:~$ osmocom_fft --device='soapy=0;driver=lime'
Traceback (most recent call last):
  File "/usr/bin/osmocom_fft", line 33, in <module>
    import osmosdr
  File "/usr/lib/python2.7/dist-packages/osmosdr/__init__.py", line 26, in <module>
    from osmosdr_swig import *
  File "/usr/lib/python2.7/dist-packages/osmosdr/osmosdr_swig.py", line 28, in <module>
    _osmosdr_swig = swig_import_helper()
  File "/usr/lib/python2.7/dist-packages/osmosdr/osmosdr_swig.py", line 24, in swig_import_helper
    _mod = imp.load_module('_osmosdr_swig', fp, pathname, description)
ImportError: /usr/lib/x86_64-linux-gnu/libgnuradio-uhd.so.3.7.10: undefined symbol: _ZN3uhd4usrp10multi_usrp7ALL_LOSB5cxx11E
qbert:~$

Whoops, the 3.7.10 version of gnuradio-uhd apparently doesn’t have the symbols that the osmocom_sdr python swigs were built with? Is that what I’m seeing correctly?

And gqrx now fails with this:

gqrx: error while loading shared libraries: libgnuradio-osmosdr.so.0.1.4: cannot open shared object file: No such file or directory

Well it has been an interesting journey. There is an incompatibility between the myriad PPA’s and other parts of the gnuradio ecosystem with respect to UHD. That undefined symbol above is a constant in the Ettus UHD module (uhd::usrp::multi_usrp::ALL_LOS) and I believe its part of the IQbalance stuff which has two different providers of the same file.

My use case (which is perhaps unusual) is that I’ve got multiple SDRs so I need gnuradio to work with all of them. As a result the only way to get this stuff working correctly was to remove all the packages from the myriad PPA, build the SoapySDR and LimeSuite packages from source, and then rebuild all of gnuradio from source. That finally got me to a point where gnuradio-companion had a version of osmosdr that would play LimeSDR, HackRF, and RTLSDR files.

That said it has a pretty bad noise floor? ANT500 in the LNAW port –

1 Like

Sigh, and after getting gnuradio to work my LimeSuiteGUI application segfaults

qbert:~$ LimeSuiteGUI
[INFO] creating directory /home/cmcmanis/.limesuite
[INFO] LMS7002M cache /home/cmcmanis/.limesuite/LMS7002M_cache_values.db
Visible GUI update time: 0
Visible GUI update time: 0
Create time 0 ms
Segmentation fault (core dumped)
qbert:~$

Every month I look at dropping a dime and securing my place in-line then I come here to see if anyone has gotten GNURadio to work. Nope, my money is growing dust along with the other projects I started that never made it past an idea. It is past a month since the last update in the GNURadio issue, is it dead?

Bad joke, or what :blush:
ubuntu 17.04

Hi @andrewback,

Did you ever put together a blog post about it? Info on getting the osmocom blocks working in GRC seems fragmented across the discourse forum.

GNU Radio and Pothos examples are covered in the LimeSDR Made Simple series parts 6 & 7:

https://myriadrf.org/blog/limesdr-made-simple-part-6-one-way/