GNU Radio 3.9.0.0

GNU Radio is a free software development toolkit that provides signal processing blocks to implement software-defined radios and signal-processing systems. It can be used with external RF hardware to create software-defined radios, or without hardware in a simulation-like environment. It is widely used in hobbyist, academic, and commercial environments to support both wireless communications research and real-world radio systems.

Tags signal processing radio sdr amateur radio
License GNU GPL
State stable

Recent Releases

3.9.0.018 Jan 2021 11:05 minor feature: Josh Morman. Thomas Habets. Jacob Gilbert. Andrej Rode. Ryan Volz. We now require commits to be signed off (DCO); this means you have to attach -s to your git commit command line. License headers now SPDX format. C++14. use C++11 facilities in a lot of places where Boost was still used, especially smart pointers, range loops. lambdas where boost::bind was used. C11. Dependency versions: Python 3.6.5 numpy 1.13.3 VOLK 2.4.1 CMake 3.10.2 Boost 1.65 Mako 1.0.7 PyBind11 2.4.3 . Python 3.6.5. numpy 1.13.3. VOLK 2.4.1. CMake 3.10.2. Boost 1.65. Mako 1.0.7. PyBind11 2.4.3. Compiler options: GCC 8.3.0 Clang 11.0.0 / Apple Clang 1100 MSVC 1910 (Microsoft VS 2017 15.0) . GCC 8.3.0. Clang 11.0.0 / Apple Clang 1100. MSVC 1910 (Microsoft VS 2017 15.0). VOLK now "regular" dependency, not in-tree submodule. numpy now also a CMake-checked hard dependency for Python support. Exception Handling: throw by value, catch by reference (clang-tidy check). C++11: Emplace in vectors where you can; brings performance boni, but not included in clang-tidy-checks. Further clang-tidy based code optimizations: empty() instead of size() == 0. override where overriding virtual functions (which we do a lot). Logging: removed all std::cerr and fprintf(stderr, ) by GNU Radio logging. Logging: Changed logging format for many multiline error logs. purged snprintf, printf logging. There were a lot of places where a malloc'ed object was used internally, where that was inappropriate. Using simple instance-holding fields now. const for members that were only set at construction time is now desired, and implemented in most places. const - constexp in a lot of places. assert - static_assert. An exception-throwing block will now terminate the flow graph process, configurable through top_block. gr-utils cleanup, folder restructuring. config version checks installed CMake file will accept "at least this version" now. PyBind11 replaces SWIG Full tree conversion from SWIG to Pybind11 bindings . Full tree conversi
3.9.0.0-rc208 Jan 2021 03:16 minor feature: Call SWIG without -modern flag if new enough to make that inherent, thus removing warnings. Mako templating now strict_undefined. Show block comments by default. dynamically updated block namespaces (execute imports from templates). Name-lookup detection of dark color themes, adjusted input box color scheme. dvb_bbscrambler: LUT 8B alignment (private, but relevant for future usable optimization). incorrect "clear console" and "save console" labels. generator: flow_graph.py.mako now contains import for print_function for compatibility in Py2 generation. variable_config.block.yml now properly handles configparser /ConfigParser import. Change port types of all selected block on key-press cycling, not just first one. Always check for Python version in flow graph generation, not only in specific block types. Don't run stale flow graphs. Prevent search keystrokes from modifying flowgraph. file_sink flushes contents to file on stop(). file_meta_sink block YAML: emit proper default PMT dict. XMLRPC client/server block templates: use Py3 XMLRPC when possible. soft_dec_lut_gen now explicitly casts 2.0prec to int. map_bb: add missing definition of static constexpr size_t s_map_size. Reduce send_frame_size in UHD examples (broken after UHD v3.13.0.3-rc1). logpwrfft YAML was hiding FFT length. FFT frequency range calculation was occasionally off due to abuse ofnumpy.arange. GRC band pass filter taps block: use firdes.complex_band_pass when complex. firdes.root_raised_cosine gain for unity alpha. qtgui_chooser regained 3.7 capability to set default. Frequency Sink hovering now respects set units. GRC blocks had optional stream inputs. ignore len_tag_name in USRP Source YAML generator python. uhd_fft/uhd_siggen_gui: import order of sip and Qt. GRC example block errors. OS X: Meta modifier key support (eq. Ctrl on other platforms). configuration setting show_block_comments. Signal source cmd port. Message-based ZMQ blocks take bind argument, as necessary for N:1 patterns. Changes A
3.8.2.022 Aug 2020 16:05 minor feature: Call SWIG without -modern flag if new enough to make that inherent, thus removing warnings. Mako templating now strict_undefined. Show block comments by default. dynamically updated block namespaces (execute imports from templates). Name-lookup detection of dark color themes, adjusted input box color scheme. dvb_bbscrambler: LUT 8B alignment (private, but relevant for future usable optimization). incorrect "clear console" and "save console" labels. generator: flow_graph.py.mako now contains import for print_function for compatibility in Py2 generation. variable_config.block.yml now properly handles configparser /ConfigParser import. Change port types of all selected block on key-press cycling, not just first one. Always check for Python version in flow graph generation, not only in specific block types. Don't run stale flow graphs. Prevent search keystrokes from modifying flowgraph. file_sink flushes contents to file on stop(). file_meta_sink block YAML: emit proper default PMT dict. XMLRPC client/server block templates: use Py3 XMLRPC when possible. soft_dec_lut_gen now explicitly casts 2.0prec to int. map_bb: add missing definition of static constexpr size_t s_map_size. Reduce send_frame_size in UHD examples (broken after UHD v3.13.0.3-rc1). logpwrfft YAML was hiding FFT length. FFT frequency range calculation was occasionally off due to abuse ofnumpy.arange. GRC band pass filter taps block: use firdes.complex_band_pass when complex. firdes.root_raised_cosine gain for unity alpha. qtgui_chooser regained 3.7 capability to set default. Frequency Sink hovering now respects set units. GRC blocks had optional stream inputs. ignore len_tag_name in USRP Source YAML generator python. uhd_fft/uhd_siggen_gui: import order of sip and Qt. GRC example block errors. OS X: Meta modifier key support (eq. Ctrl on other platforms). configuration setting show_block_comments. Signal source cmd port. Message-based ZMQ blocks take bind argument, as necessary for N:1 patterns. Changes A
3.7.13.428 Feb 2019 02:51 minor bugfix:
3.7.1124 Apr 2018 01:07 minor bugfix: The GNU Radio project tracks changes via Github pull requests. You can get details on each of the below by going to: https://github.com/gnuradio/gnuradio Note: Please see the release notes for 3.7.10.2 for details on the bug fixes included in this release. gnuradio-runtime #1077 Support dynamically loaded gnuradio installs (Josh Blum) gnuradio-companion #1118 Support vector types in embedded Python blocks (Clayton Smith) gr-audio #1051 Re-implemented defunct Windows audio source (Geof Gnieboer) #1052 Implemented block in Windows audio sink (Geof Gnieboer) gr-blocks #896 Added PDU block setters and GRC callbacks (Jacob Gilbert) #900 Exposed non-vector multiply const to GRC (Ron Economos) #903 Deprecated old-style message queue blocks (Johnathan Corgan) #1067 Deprecated blks2 namespace blocks (Johnathan Corgan) gr-digital #910 Deprecated correlate_and_sync block 3.8 (Johnathan Corgan) #912 Deprecated modulation blocks for 3.8 (Sebastian Müller) #1069 Improved build memory usage with swig split (Michael Dickens) #1097 Deprecated mpsk_receiver_cc block (Johnathan Corgan) #1099 Deprecated old-style OFDM receiver blocks (Martin Braun) gr-dtv #875 Added ability to cross-compile gr-dtv (Ron Economos) #876 Improved ATSC transmitter performance (Ron Economos) #894 Refactored DVB-T RS decoder to use gr-fec (Ron Economos) #898 Improved error handling and logging (Ron Economos) #900 Improved DVB-T performance (Ron Economos) #907 Updated examples to use QT (Ron Economos) #1025 Refactor DVB-T2 interleaver (Ron Economos) gr-filter #885 Added set parameter msg port to fractional resampler (Sebastian Müller) gr-trellis #908 Updated examples to use QT (Martin Braun) gr-uhd #872 Added relative phase plots to uhd_fft (Martin Braun) #1032 Replace zero-timeout double-recv() with one recv() (Martin Braun) #1053 UHD apps may now specify multiple subdevs (Martin Braun)