After a year and a half of development a new version was formed significant of the free digital signal processing platform GNU Radio 3.9 and in this new version changes have been made to the development organization, as well as support improvements and more.
For those who are unfamiliar with the platform, they should know that this includes a set of programs and libraries that allow you to create arbitrary radio systems, modulation schemes and the form of received and sent signals are configured in software, and simple hardware devices are used to capture and generate signals.
In combination with universal programmable transceivers that are not tied to the frequency band and type of signal modulation, the platform can be used to create devices as base stations for GSM networks, devices for remote reading of RFID tags (electronic identifications and passes, smart cards), GPS receivers, WiFi, FM radio receivers and transmitters, TV decoders, passive radars, spectrum analyzers, etc.
In addition to USRP, the package can use other hardware components for signal input and output, for example, drivers are available for sound cards, TV tuners, BladeRF, Myriad-RF, HackRF, UmTRX, Softrock, Comedi, Funcube, FMCOMMS, USRP, and S-Mini devices.
Main new features of GNU Radio 3.9
In this new version of GNU Radio 3.9 major changes were made to participate in development and it is that time no longer requires the signature of a CLA, instead of which the developer only needs to confirm that he has the right to transfer the code and is not trying to appropriate someone else’s code.
The Developer Certificate of Origin document (DCO) is used to formalize code transfer, which has been used since 2004 to transfer changes to the Linux kernel. To track the author, a line “Signed by: developer name and email” (git commit -s) is attached to each change. By attaching this signature to the patch, the developer confirms its authorship about the transferred code and accept its distribution as part of the project or as part of the code under a free license.
Another change that stands out in the new version of GNU Radio 3.9 is the discontinued use of the API SWIG generator, as PyBind11 is now used to link C / C ++ and Python code, which requires additional code, but provides a more predictable and stable result. Along with the change to PyBind, a lot of work has been done to modernize the GRC GUI code (GNU Radio Companion).
Added a new gr-network module to create network blocks that support TCP and UDP.
The gr-qtgui GUI added graphs for azimuth, distance and autocorrelation, provided compass display, added vertical panel.
Added support for UHD 4.0 (USRP hardware driver) and proposed a new API to create filters.
Support for Python 2 has been removed, now requires at least Python 3.6.5 to work. Updated dependencies: numpy 1.13.3, VOLK 2.4.1, CMake 3.10.2, Boost 1.65, Mako 1.0.7, PyBind11 2.4.3. Of the compilers, GCC 8.3.0, Clang 11.0.0, and MSVC 1910 (Microsoft VS 2017 15.0) are supported. The libsndfile library is included in the dependencies. VOLK (Vector Optimized Library of Kernels) moved from submodules to a separate dependency.
In addition, C ++ 14 constructs are allowed, but code that continues to use Boost continues to use C ++ 11 constructs. Additionally, headings with license information in SPDX format have been added to the code.
How to install GNU Radio on Ubuntu and derivatives?
For those who are interested in being able to install this new version, at the moment they must compile their source code, since it is not yet available within the Ubuntu repositories.
Before doing so, we must install the necessary dependencies for its operation, we install them by opening a terminal in the system (you can do it with the key combination Ctrl + Alt + T) and in it you are going to type the following:
sudo apt install git cmake g++ libboost-all-dev libgmp-dev swig python3-numpy python3-mako python3-sphinx python3-lxml doxygen libfftw3-dev libcomedi-dev libsdl1.2-dev libgsl-dev libqwt-qt5-dev libqt5opengl5-dev python3-pyqt5 liblog4cpp5-dev libzmq3-dev python3-yaml python3-click python3-click-plugins
After that we will only have to type the following to download the source code:
git clone --recursive https://github.com/gnuradio/gnuradio.git cd gnuradio mkdir build cd build
And finally we are going to compile by typing the following commands one by one:
cmake ../ make make test sudo make install