pyBOMBS gnuradio and LimeSDR how?

I’m trying to get some out of tree gnuradio modules to build and I am having issues with this and the LimeSDR. Has anyone build the pyBOMBS versions of uhd and gr-osmosdr that work with the soapySDR drivers? If so how? Basically I can get everything built fine but it does not recognize the soapy driver when I specify it in the source block.

Is there a how-to out there somewhere that details usig the pyBOMBS build system with LimeSDR/LimeSuite?

Thanks!
Mike

Hi Mike,

AFAIK support has been in gr-osmosdr for a while. With UHD you’ll need to make sure that it’s configured to support loading modules and that the UHD_MODULE_PATH is set so that the Soapy module is picked up. See:

@joshblum, wondering if there would be merit in having a PyBOMBS recipe for Lime Suite. Although given the various packages and installers we already have, it might be nice if someone volunteered to take this on.

Someone has already volunteered the work for limesuite:

Hrm, ok, so what did I do wrong?

mike@atlantis:~/SDR$ pybombs install soapysdr uhd gr-ax25 gnuradio
PyBOMBS - INFO - PyBOMBS Version 2.3.0
PyBOMBS.install_manager - INFO - Phase 1: Creating install tree and installing binary packages:
You are using pip version 8.1.1, however version 9.0.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
Install tree:
|
+- soapysdr
|
\- gr-ax25
   |
   \- gnuradio
      |
      \- uhd
PyBOMBS.install_manager - INFO - Phase 2: Recursively installing source packages to prefix:
PyBOMBS.install_manager - INFO - Installing package: uhd
Cloning:     (100%) [=====================================================================================================================================================================================]
Configuring: (100%) [=====================================================================================================================================================================================]
Building:    (100%) [=====================================================================================================================================================================================]]
Installing:  (100%) [=====================================================================================================================================================================================]
PyBOMBS.install_manager - INFO - Installation successful.
PyBOMBS.install_manager - INFO - Installing package: gnuradio
Cloning:     (100%) [=====================================================================================================================================================================================]
Configuring: (100%) [=====================================================================================================================================================================================]
Building:    (100%) [=====================================================================================================================================================================================]
Installing:  (100%) [=====================================================================================================================================================================================]
PyBOMBS.install_manager - INFO - Installation successful.
PyBOMBS.install_manager - INFO - Installing package: gr-ax25
Cloning:     (100%) [=====================================================================================================================================================================================]
Configuring: (100%) [=====================================================================================================================================================================================]
Building:    (100%) [=====================================================================================================================================================================================]
Installing:  (100%) [=====================================================================================================================================================================================]
PyBOMBS.install_manager - INFO - Installation successful.
PyBOMBS.install_manager - INFO - Installing package: soapysdr
Cloning:     (100%) [=====================================================================================================================================================================================]
Configuring: (100%) [=====================================================================================================================================================================================]
Building:    (100%) [=====================================================================================================================================================================================]
Installing:  (100%) [=====================================================================================================================================================================================]
PyBOMBS.install_manager - INFO - Installation successful.
mike@atlantis:~/SDR$ which gnuradio-companion
/home/mike/pybombs/bin/gnuradio-companion
mike@atlantis:~/SDR$ gnuradio-companion 
<<< Welcome to GNU Radio Companion 3.7.12git-13-gd2ca9800 >>>

Block paths:
	/home/mike/pybombs/share/gnuradio/grc/blocks

Loading: "/home/mike/SDR/2m-rxonly.grc"
Block key "osmosdr_source" not found
linux; GNU C++ version 5.4.0 20160609; Boost_105800; UHD_003.010.001.001-release

[INFO] [UHD] linux; GNU C++ version 5.4.0 20160609; Boost_105800; UHD_3.11.0.git-94-g5964adcd
>>> Done

Generating: '/home/mike/SDR/rx_top.py'

Executing: /usr/bin/python2 -u /home/mike/SDR/rx_top.py

linux; GNU C++ version 5.4.0 20160609; Boost_105800; UHD_003.010.001.001-release

[INFO] [UHD] linux; GNU C++ version 5.4.0 20160609; Boost_105800; UHD_3.11.0.git-94-g5964adcd
Error: failed to enable real-time scheduling.
Traceback (most recent call last):
  File "/home/mike/SDR/rx_top.py", line 345, in <module>
    main()
  File "/home/mike/SDR/rx_top.py", line 333, in main
    tb = top_block_cls()
  File "/home/mike/SDR/rx_top.py", line 108, in __init__
    channels=range(1),
  File "/home/mike/pybombs/lib/python2.7/dist-packages/gnuradio/uhd/__init__.py", line 122, in constructor_interceptor
    return old_constructor(*args)
  File "/home/mike/pybombs/lib/python2.7/dist-packages/gnuradio/uhd/uhd_swig.py", line 1969, in make
    return _uhd_swig.usrp_source_make(*args)
RuntimeError: LookupError: KeyError: No devices found for ----->
Device Address:
    driver: lime
    soapy: 0


>>> Done (return code 1)

Argh, I think I found it… I didn’t see the limesuite recipe. Installing that now.

Mike

@joshblum

Hmm yeah that still didn’t fix it. I uninstalled gnuradio and UHD and reinstalled them after installing limesuite, but no dice.

SoapySDRUtil does find the card and the driver, so I am not sure what I did wrong.

I just wanted to point out there is a pybombs recipe for limesuite itself and gr-osmosdr with the soapy support. So you should not have to change gnuradio or uhd for this.

  • For the gr-osmosdr blocks, just reinstall gr-osmosdr, it should build the soapy support; gr-osmosdr also prints out the available factories so you can check if the support is there.

  • For the uhd support, its just like andrew said. SoapyUHD and probably setting UHD_MODULE_PATH. Some tips here: https://github.com/pothosware/SoapyUHD/wiki#soapy-devices-in-uhd

@joshblum Cool, yeah I eventually figured out that I had to use the osmocom source block not the UHD USRP one. Once I got that figured out I’m up and running again.

Thanks!

PS: If I were to write up a quick installation how-to for PyBOMBS and LimeSDR where would a good place be to put it?

FWIW , if you don’t have a device that requires UHD then you can build without if you’re building from sources. Not sure if pybombs allows to be built without UHD.

There was (still is?) an issue with Gqrx and UHD, so Gqrx had to be built without UHD.

Most people use google blogspot to dump images and text up on the Internet. It does mean that google will profile everyone that visits the site, for eventual keyword auctions of targeting ads, on that site or on others (using tracking cookies), but it has gotten to the stage that that is true for pretty much any website, most are using google analytics services (this site that you are reading this on is using google analytics, google API and google fonts). It is very hard to avoid googles “free” services (if a service is free you are the product).

Great to hear you’re up and running! I’ve created a stub page for this on the wiki and it would be much appreciated if you could add details here:

https://wiki.myriadrf.org/PyBOMBS

I’ll create a wiki account for you and let me know if you don’t receive your password.

@andrewback

Awesome! I got the email for the login. I will try to find some time this weekend to start updating the wiki.

Thanks!

Mike

1 Like

Should we link back to Lime Suite - Myriad-RF Wiki so we enumerate the options all in one place?

Sounds good!

Based on my recent experience, ithe current versions of PyBombs will install soapy as part of the gr-osmosdr install and then you can use PyBombs to install limesuite. At which point you’re basically up and running.

–Chuck

Really wish someone would work on that wiki.

root@debian:~/prefix/default# pybombs install gr-limesdr

PyBOMBS - INFO - PyBOMBS Version 2.3.1
PyBOMBS.install_manager - INFO - Phase 1: Creating install tree and installing binary packages:
Install tree:
|
- gr-limesdr
PyBOMBS.install_manager - INFO - Phase 2: Recursively installing source packages to prefix:
PyBOMBS.install_manager - INFO - Installing package: gr-limesdr
PyBOMBS.Packager.source - WARNING - Build dir already exists: /root/prefix/default/src/gr-limesdr/build
Building: (100%) [=============================================================================]
[ 4%] Building CXX object lib/CMakeFiles/gnuradio-limesdr.dir/common/device_handler.cc.o
/root/prefix/default/src/gr-limesdr/lib/common/device_handler.cc: In member function ‘void device_handler::set_gain(int, bool, int, unsigned int)’:
/root/prefix/default/src/gr-limesdr/lib/common/device_handler.cc:769:107: error: ‘LMS_SetGaindB’ was not declared in this scope
GaindB(device_handler::getInstance().get_device(device_number),direction,channel,gain_dB)!=LMS_SUCCESS)
^
/root/prefix/default/src/gr-limesdr/lib/common/device_handler.cc:779:101: error: ‘LMS_GetGaindB’ was not declared in this scope
S_GetGaindB(device_handler::getInstance().get_device(device_number),direction,channel,&gain_value);
^
lib/CMakeFiles/gnuradio-limesdr.dir/build.make:110: recipe for target ‘lib/CMakeFiles/gnuradio-limesdr.dir/common/device_handler.cc.o’ failed
make[2]: *** [lib/CMakeFiles/gnuradio-limesdr.dir/common/device_handler.cc.o] Error 1
CMakeFiles/Makefile2:135: recipe for target ‘lib/CMakeFiles/gnuradio-limesdr.dir/all’ failed
make[1]: *** [lib/CMakeFiles/gnuradio-limesdr.dir/all] Error 2
Makefile:138: recipe for target ‘all’ failed
make: *** [all] Error 2
PyBOMBS.Packager.source - ERROR - Build failed. See output above for error messages.
PyBOMBS.Packager.source - ERROR - Problem occurred while building package gr-limesdr:
Build failed.
PyBOMBS.install_manager - ERROR - Error installing package gr-limesdr. Aborting.

pybombs remove gr-limesdr
pybombs remove limesuite
pybombs install limesuite
pybombs install gr-limesdr
This is what I needed to fix me up. I had started working on this since the first run of lime minis. Apparently something that I broke earlier needed me to fix by reinstalling.

1 Like

I executed

pybombs install limesuite
pybombs install gr-limesdr

and get

CMake Error at CMakeLists.txt:133 (MESSAGE):
GnuRadio version required: >=“3.7.8” < “3.8.0” found: “3.8.1.0”

gnuradio 3.8.1.0 can not be build?

My guess would be that that error is related to this:

Another solution would be for gr-limesdr to create a branch for 3.7 and make the master branch 3.8

Since the pull request was not accepted yet and has been siting there for the last 2 months.

Thank you for you reply. I’ll wait until the pull request is accepted.