Tom-McDermott / gr-hpsdr

gnuradio interface module for HPSDR Hermes / Metis, and Red Pitaya (using OpenHPSDR protocol 1)
Other
16 stars 19 forks source link
alex gnuradio hermes hpsdr metis receiver red-pitaya transmitter

gr-hpsdr

gnuradio modules for OpenHPSDR Hermes / Metis and Red Pitaya using the OpenHpsdr protocol. May 2021.

There are several branches, depending on which version of gnuradio you are using. Git checkout the branch you need. The instrucitons for configuraing and buld ARE DIFFERRENT for the different vsersions.

The modules are compatible with gnuradio and Hermes firmware version 1.8 through 3.2 (known as OpenHPSDR protocol 1). It is not compatible with the new OpenHPSDR protocol 2.

It is sometimes necessary to delete all files inside the build subdirectory before re-running cmake.

The gr_3.8 branch has been verified but minimally tested on Ubuntu 20.04

To Start:

Edit ~/.profile adding these two lines (for gr_3.8):

export PYTHONPATH=/usr/local/lib/python3/dist-packages:/usr/local/lib/python3.6/dist-packages:$PYTHONPATH export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH

Edit ~/.profile adding these two lines (for gr_3.10 and Python 3.10):

export PYTHONPATH=/usr/local/lib/python3.10/dist-packages/gnuradio:$PYTHONPATH export LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu/:$LD_LIBRARY_PATH

For gr_3.8 you may need to install:
    $ sudo apt install liborc-0.4-dev
    $ sudo apt install swig

You may get an error message:  x-term missing.   It is not needed, however
most Linux systems will have one available at:
    /usr/bin/gnome-terminal
If you want, edit the configuration file to add.
    Note that 3.7, 3.8, and 3.9 have different config files.

Preparation:

For versions 3.9 and beyond you need to mind which version of pybind11 is installed. Gnuradio 3.9.1.0 was built against pybind11 version 2.5.0. Ubuntu 20.04 uses pybind version 2.4.3 WHICH IS NOT COMPATIBLE. The supported version of pybind11 retrograded in the 20.04 packages.

Use the following command to see what version of pybind your gnuradio installion is using: $ gnuradio-config-info --pybind

For version 3.10 you should use Ubuntu 22.04 Jammy Jellyfish or equivalent. The version of many tools needed are correct in 22.04 while the versions in 20.04 Focal Fossa are not compatible.

To build:

git checkout the_branch_you_want  (i.e. gr_3.7, gr_3.8, or gr_3.9 or gr_3.10)
mkdir build 
cd build 

NOTE: For 3.8 only: if you have already previously built gr_3.8, then you need to
  sudo make uninstall it before updating 3.8. This is because of a problem
  with gnuradio 3.8.2 not always updating symlinks on revised builds.

cmake .. -DCMAKE_INSTALL_PREFIX=/usr
make 
sudo make install 
sudo ldconfig 

Note: If CMAKE_INSTALL_PREFIX is not defined on the cmake line above, the build configuration will write files to locations prefixed with /usr/local This is appropriate for gnuradio that has been installed and built from source. If gnuradio was installed from a binary (for example using apt install) it will expect Out-Of-Tree modules to be installed in /usr.

Release Tags:

Gnuradio 3.7

Gnuradio 3.8

Gnuradio 3.9

Gnuradio 3.10