Skip to content
Josh Blum edited this page Nov 28, 2015 · 46 revisions

Bundled GNURadio + GrOsmoSDR

GNU Radio and GrOsmoSDR are bundled with the PothosSDR Windows installer. This allows the GNU Radio blocks to be used within the Pothos framework API and GUI. However, with some additional python dependencies, users can use stock GNU Radio with the GNU Radio companion on a Windows OS.

https://raw.githubusercontent.com/wiki/pothosware/PothosSDR/images/bundled_gr.png
  • The installer is built for 64-bit Windows (amd64).
  • The build configuration is RelWithDebInfo (compatible with Release mode builds).
  • We provide installers for MSVC 2012 and 2013 and eventually 2015 when Qt5 installers are available
  • Boost runtime DLLs are included with the installer. Users developing C++ GR blocks will need boost development files.
  • GnuRadio is build against Python2.7. We will probably switch to Python3 when its officially supported.
  • GrQtGUI is not included in the installer. Pothos GUI and plotters are based around Qt5, and the PothosSDR installer includes Qt5 runtime. We will be able to build GrQtGUI when GNU Radio switches to Qt5.

1) Install PothosSDR environment

Follow the download and install instructions from the PothosSDR tutorial. We highly recommend following the "recognizing your device" instructions as well. The Pothos GUI instructions are optional, but they might be worth trying out.

2) Install Python2.7 for amd64

Several environment variables must be set in order to use GNURadio runtime, companion, and python modules:

  • The installer should automatically set the GRC_BLOCKS_PATH.
  • Follow the notes about setting the PATH from the tutorial.
  • Set the PYTHONPATH to include the GNURadio modules, typically this is "C:/Program Files/PothosSDR/lib/site-packages".

Make sure that the new python path shows up in the following list:

C:\Python27\python.exe -c "import sys; print('\n'.join(sys.path))"

Make sure the following commands work before continuing:

gnuradio-config-info.exe
C:\Python27\python.exe -c "from gnuradio import gr"

We provide a Python script called GNURadioHelper.py that checks the version of python, looks for various runtime libraries, and test imports various python modules. When a dependency is missing, the script automatically downloads and installs the missing dependency, or prints out a helpful message to guide the user.

Download and run the GNURadioHelper script. Some dependencies make modifications to the system PATH, and require that you close the terminal and re-run the script:

C:\Python27\python.exe GNURadioHelper.py

As an alternative to the automatic instructions, we also provide manual instructions below.

1) Install Cheetah templates:

C:\Python27\Scripts\pip.exe install cheetah

2) Download OpenGL, PyGTK, WxPython, LXML, and Numpy wheel files for amd64

And install all wheel files with Pip:

C:\Python27\Scripts\pip.exe install <path to each whl file>

3) Install GTK+ Runtime for 64-bit

Download and install the 64-bit GTK+ runtime, make sure it matches the PyGTK version number: http://lvserver.ugent.be/gtk-win64/gtk2-runtime/

4) A quick import test

Make sure the following import tests work before continuing:

C:\Python27\python.exe -c "import Cheetah"
C:\Python27\python.exe -c "import OpenGL"
C:\Python27\python.exe -c "import gtk"
C:\Python27\python.exe -c "import wx"
C:\Python27\python.exe -c "import lxml"
C:\Python27\python.exe -c "import numpy"

Invoke the GNURadio Companion:

gnuradio-companion.py

Supporting this project relies on community help to test the installer and to report bugs.

Found a bug? having a problem? Let us know: https://github.com/pothosware/pothos/wiki/Support

If you think the bug is narrowed down to a specific software package, post an issue to the PothosSDR issue tracker and to the relevant package's issue tracker as well. This helps us to coordinate to fix issues. We don't want to lose track of an issues or problems that may have been resolved.

We tend to collect a lot of patches the PothosSDR this installer, you can find them here: https://github.com/pothosware/PothosSDR/tree/master/patches Typically we add conditional ifdef and build checks to account for the MSVC compiler differences. Therefore, most of the patches are very small and non-breaking for the standard GCC compiler usage.

Ideally, the patches/ directory should be empty. We are looking for volunteers; anyone who can apply a patch, test the patch on a standard Linux/GCC box, and get the patch upstreamed to its respective project. This can helps others who build with the MSVC compiler from duplicating the same fixes, and makes building future PothosSDR installers more manageable.