Gnuradio Versions Save

GNU Radio – the Free and Open Software Radio Ecosystem

v3.10.10.0

1 week ago

[3.10.10.0] - 2024-04-22

Changed

Runtime

  • Modernize location of config files. XDG_CONFIG_HOME will be used if set (often $HOME/.config). This change attempts to be backward compatible with existing config file locations, but be aware that config files may show up in the old ($HOME/.gnuradio/) and new ($XDG_CONFIG_HOME/gnuradio) locations depending on GNU Radio version. Files are not automatically moved, since some users run multiple versions of GNU Radio.
  • Ctrlport Probe, Ctrlport Probe PSD and gr-ctrlport-monitor. Ctrlport Monitor blocks are still broken.

GRC

  • NEW Qt-based front end! Run gnuradio-companion --qt to try it out. This feature is still in testing, so the Gtk front end runs by default. In a future release, Qt will become the default, removing Gtk as a manditory dependency. Maintenance will focus on the Qt front end at that point.
  • Restore property field background colors (as a View option, off by default) for the Gtk front end. Background colors were previously replaced with textual type string.
  • The canvas can be panned using the middle mouse button
  • C++ code generation improvements related to parameters and strings
  • C++ code generation fixed for Add Const

gr-audio

  • Added 96 kHz and 192 kHz selections to ALSA source/sink

gr-blocks

  • Float To UChar block adds vector support, and also scale and bias params

gr-digital

  • Additive Scrambler adds soft symbol handling
  • Add callback to set header format in Digital Protocol Formatter

modtool

  • Improvements to handling of Python blocks (add, rm, and rename work reliably)
  • New parseable manifest format (yaml instead of md) to better support the OOT ecosystem
  • Manifest and examples are installed by "make install"

Build system and packaging

  • Python byte-compiled (pyc) files are no longer installed, as they are deprecated by Python

Testing

  • Added MinGW test runner and fixed various MinGW compilation failures
  • Update Fedora to test 38, 39 and 40

v3.10.10.0-rc1

4 weeks ago

[3.10.10.0-rc1] - 2024-04-06

Changed

Runtime

  • Modernize location of config files. XDG_CONFIG_HOME will be used if set (often $HOME/.config). This change attempts to be backward compatible with existing config file locations, but be aware that config files may show up in the old ($HOME/.gnuradio/) and new ($XDG_CONFIG_HOME/gnuradio) locations depending on GNU Radio version. Files are not automatically moved, since some users run multiple versions of GNU Radio.
  • Ctrlport Probe, Ctrlport Probe PSD and gr-ctrlport-monitor. Ctrlport Monitor blocks are still broken.

GRC

  • NEW Qt-based front end! Run gnuradio-companion --qt to try it out. This feature is still in testing, so the Gtk front end runs by default. In a future release, Qt will become the default, removing Gtk as a manditory dependency. Maintenance will focus on the Qt front end at that point.
  • Restore property field background colors (as a View option, off by default) for the Gtk front end. Background colors were previously replaced with textual type string.
  • The canvas can be panned using the middle mouse button
  • C++ code generation improvements related to parameters and strings
  • C++ code generation fixed for Add Const

gr-audio

  • Added 96 kHz and 192 kHz selections to ALSA source/sink

gr-blocks

  • Float To UChar block adds vector support, and also scale and bias params

gr-digital

  • Additive Scrambler adds soft symbol handling

modtool

  • Improvements to handling of Python blocks (add, rm, and rename work reliably)
  • New parseable manifest format (yaml instead of md) to better support the OOT ecosystem
  • Manifest and examples are installed by "make install"

Build system and packaging

  • Python byte-compiled (pyc) files are no longer installed, as they are deprecated by Python

Testing

  • Added MinGW test runner and fixed various MinGW compilation failures
  • Update Fedora to test 38, 39 and 40

v3.10.9.2

3 months ago

[3.10.9.2] - 2024-01-17

Changed

Project

  • Fix a few memory errors in various modules.

GRC

  • Fix regressions in bus connections.

v3.10.9.1

4 months ago

[3.10.9.1] - 2024-01-01

Changed

Project

  • Python minimum version is now 3.7.2, vs 3.6.5, to support type hints. Even Python 3.7 is EOL, so this is not expected to affect people using newer versions of GNU Radio.
  • Add tox.ini, so that editors use the same formatting as github CI.
  • Use pointers to pass s32fc arguments to VOLK in gr-blocks, gr-digital, and gr-dtv to avoid undefined behavior. The fix is conditional on VOLK 3.1.0, which add a new supporting function.

Runtime

  • Disallow None for pmt_t arguments in Python.
  • Support spdlog installations with internal or external libfmt.

GRC

  • Use text labels to specify types for block parameters, instead of background colors which were difficult to read/remember.
  • Enable setting of documentation URLs, relative or absolute in yaml. This allows OOTs to use the documentation link in the block parameter dialog.
  • Disallow use of block ids that are Python keywords and "gnuradio".
  • Add type annotations in some places (required bump to Python 3.7.2).
  • Use C version of YAML loader (yaml.CSafeLoader) for better performance.
  • Connections may have properties for supported connection domains. This feature was added for RFNoC connections. Standard stream and message connections do not support this feature, but they may in future versions.
  • Check grc file version. The above feature required a version bump to "2". Where no connection properties are used, version "1" is still emitted. Note that previous versions of GRC do not check for file version. RFNoC flowgraphs with connection properties will fail to load in previous versions as a result.
  • Fix bug where an impressive number of backslashes were added to some filenames.

gr-dtv

  • Read expected data as little-endian

gr-fec

  • Add FEC_API to CCSDS Reed-Solomon functions so they can be used by OOTs.

gr-qtgui

  • QT GUI Msg Push Button: add a callback for Message Value to allow it to change at runtime.

gr-uhd

  • RFNoC Rx-Streamer: Add start stream options
  • Add back-edge property to RFNoC connections

Build system and packaging

  • Update conda build. Re-rendered with conda-build 3.27.0, conda-smithy 3.28.0, and conda-forge-pinning 2023.11.07.18.09.01.
  • Use utf-8 encoding when writing files in gr_python_install.

Testing

There has been a great effort to identify why tests fail intermittently, or only on certain platforms. This has lead to a number of improved test, and identification of a number of real bugs.

v3.10.9.0-rc2

4 months ago

[3.10.9.0] - 2023-12-24

Changed

Project

  • Python minimum version is now 3.7.2, vs 3.6.5, to support type hints. Even Python 3.7 is EOL, so this is not expected to affect people using newer versions of GNU Radio.
  • Add tox.ini, so that editors use the same formatting as github CI.
  • Use pointers to pass s32fc arguments to VOLK in gr-blocks, gr-digital, and gr-dtv to avoid undefined behavior. The fix is conditional on VOLK 3.1.0, which add a new supporting function.

Runtime

  • Disallow None for pmt_t arguments in Python.
  • Support spdlog installations with internal or external libfmt.

GRC

  • Use text labels to specify types for block parameters, instead of background colors which were difficult to read/remember.
  • Enable setting of documentation URLs, relative or absolute in yaml. This allows OOTs to use the documentation link in the block parameter dialog.
  • Disallow use of block ids that are Python keywords and "gnuradio".
  • Add type annotations in some places (required bump to Python 3.7.2).
  • Use C version of YAML loader (yaml.CSafeLoader) for better performance.
  • Connections may have properties for supported connection domains. This feature was added for RFNoC connections. Standard stream and message connections do not support this feature, but they may in future versions.
  • Check grc file version. The above feature required a version bump to "2". Where no connection properties are used, version "1" is still emitted. Note that previous versions of GRC do not check for file version. RFNoC flowgraphs with connection properties will fail to load in previous versions as a result.
  • Fix bug where an impressive number of backslashes were added to some filenames.

gr-dtv

  • Read expected data as little-endian

gr-fec

  • Add FEC_API to CCSDS Reed-Solomon functions so they can be used by OOTs.

gr-qtgui

  • QT GUI Msg Push Button: add a callback for Message Value to allow it to change at runtime.

gr-uhd

  • RFNoC Rx-Streamer: Add start stream options
  • Add back-edge property to RFNoC connections

Build system and packaging

  • Update conda build. Re-rendered with conda-build 3.27.0, conda-smithy 3.28.0, and conda-forge-pinning 2023.11.07.18.09.01.
  • Use utf-8 encoding when writing files in gr_python_install.

Testing

There has been a great effort to identify why tests fail intermittently, or only on certain platforms. This has lead to a number of improved test, and identification of a number of real bugs.

v3.10.9.0-rc1

4 months ago

Here is the git log for v3.10.9.0-rc1 ... we'll write up a nicer changelog for the final.

fix gr_python_install
UHD: set URL of FPGA FFT to avoid collision with plain URL
GRC: enable setting of documentation URLs, relative or absolute in yaml
fec: add FEC_API to CCSDS Reed-Solomon functions
blocks: Fix flaky chunk throttling test
blocks: msq_pair_to_var QA: wait up to 1 s.
qtgui: Remove unnecessary imports from templates
gr-uhd: Remove old references
analog: PLL frequency detector example: use limited-wait throttle
blocks: msg_pair_to_var: Log with block logger, not gr.log (#6950)
pmt: Disallow None for pmt_t arguments in Python
conda: sync conda-build.yml with main branch
qt-gui: QRfnocF15ColorMapper: Add missing <array> include.
MNT: Re-rendered with conda-build 3.27.0, conda-smithy 3.28.0, and conda-forge-pinning 2023.11.07.18.09.01
ci: conda: Move conda stuff to .conda directory to unify with OOT style.
ci: conda: Clean up recipe and update for latest boost packages.
modtool: template: Update conda recipe.
spdlog: include spdlog system settings header before including spdlog/fmt/
gr-qtgui: QT GUI Msg Push Button add callback for Message Value
Use pointers to pass s32fc arguments to VOLK
filter: Accept rounded output from fir_filter_fsf
Remove 'friend' from 'read_wavein' callback function (#6971)
gr-uhd: RFNoC Rx-Streamer: Add start stream options
grc: Extend ID blacklist by Python keywords
grc/core/FlowGraph: pythonify old strings, lists
grc: param.py: refactor internal function name
grc/core: Type annotations, so I can somewhat sensibly work in my editor
grc/core/FlowGraph: remove unused imports
grc/core/FlowGraph: refactor internal namespace refresh code
grc: remove Py3 backports
grc: no Python type 'long'
grc: backlist gnuradio as valid id
grc: use yaml.CSafeLoader for performance if available
GRC: generated python code use gr.logger.warn instead of ….warning
grc: Consistently format filenames in messages
uhd: rfnoc: Add back-edge property to RFNoC connections
grc: Add edge (connection) properties
grc: Check flow graph format version
grc: Remove superfluous import
fec: fix incorrect runtime error message
gr-fec: cc_decoder: untangle C-style, strange argument check
project: add tox.ini, so that editors use the same formatting as github CI
Python: minimum version 3.7.2, was 3.6.5
qtgui: remove stray d_wf_lines in rfnoc_f15_display
qtgui: Rename instances of fosphor to rfnoc_f15
Revert "qtgui: Add fosphor formatter block"
fosphor display widget: Fix std::bad_alloc
qtgui: conditionally install fosphor yaml files
qtgui/QFosphorColorMapper: std::sstream+string replacing sscanf("%m")+char*
uhd: Add RFNoC Fosphor example
qtgui: Add fosphor formatter block
qtgui: Add fosphor display widget
grc: Fix way-over-backslashing in file paths
gr-digital every time
grc: Remove param field colorings by type and replace with labels

v3.10.8.0

6 months ago

[3.10.8.0] - 2023-10-20

Changed

Runtime

  • Add MAP_FIXED to circular buffer implementations using shm_open() and mmap backed by tmp files. These versions are not used by most system, and flaws were discovered during a FreeBSD build.
  • PMTs can be formatted for logging (format wrapper added).
  • New io_signature::make() variant replaces makev(), and optionally specifies buffer types. Previous variants are still valid, for backward compatibility. The single-stream make(), along with the makev(), make2() and make3() variants should not be used in new code, and may be removed in the future.
    make(int min_streams,
         int max_streams,
         const std::vector<size_t>& sizeof_stream_items,
         const gr::gr_vector_buffer_type& buftypes =
             gr::gr_vector_buffer_type(1, default_buftype::type));
  • Fix logging params to be compatible with C++20

GRC

  • Add "Choose Editor" button to Python block properties. Use the GTK app chooser. Save choice to the config file.
  • Correct Python Qt imports in Hier blocks and flowgraph templates.

gr-blocks

  • Enable building the benchmark testing executable, which runs tests on various math functions.
  • Repeat block implemented as a basic block (vs sync interpolator) and output buffer allocation fixed.
  • Add a GRC example for Throttle usage.

gr-digital

  • Add set_sps() to Symbol Sync.
  • Header Format: Fix CRC and OFDM formats, add option to header_buffer to read bits lsb first, and refactor extract_bits functions as templates.
  • Constellation Sink uses different colors for each input by default.
  • Rework Constellation Soft Decoder, Constellation Object and LDPC Decoder Definition. Previously, the LDPC Decoder did not work at all. The sigma parameter was removed from the decoder and an optional noise power npwr parameter was added to the constellation.

gr-network

  • Better support for vectorized output from UDP source. The payload size must still be a multiple of item size * vector size for this to work.

gr-qtgui

  • Range widget eng_slider and eng modes can now be selected in GRC.
  • Range widget and a couple of UHD apps now accept values on editingFinished, e.g., loss of focus, rather than on returnPressed. Since UIs generated by GRC do not have OK/Apply for such values, there is no "correct" behavior. The behavior is now selectable on the Entry widget.
  • Frequency Sink startup time improved where sample rate is low

gr-soapy

  • RTLSDR buffer size may be specified

gr-uhd

  • RFNoC NullSrcSink block added. The block may be both source and sink.
  • Add support and examples for RFNoC loopback.
  • RFNoC Rx Radio adds issue_stream_cmd() and block message handler.

gr-zeromq

  • Explicitly shutdown and close source/sinks to prevent hangs in some cases.
  • Require zmq.hpp (cppzmq) version with context_t.shutdown() defined. If shutdown is not defined, the gr-zeromq is disabled.

Modtool

  • Add cmake-format support for generated modules

Build system and packaging

  • Update Read-the-docs config to include build.tools

Testing

  • Change Debian 11 to Debian 12 in CI

v3.10.8.0-rc2

6 months ago

Since v3.10.8.0-rc1

  • Require zmq.hpp (cppzmq) version with context_t.shutdown() defined. If shutdown is not defined, the gr-zeromq is disabled.

v3.10.8.0-rc1

6 months ago

Runtime

  • Add MAP_FIXED to circular buffer implementations using shm_open() and mmap backed by tmp files. These versions are not used by most system, and flaws were discovered during a FreeBSD build.
  • PMTs can be formatted for logging (format wrapper added).
  • New io_signature::make() variant replaces makev(), and optionally specifies buffer types. Previous variants are still valid, for backward compatibility. The single-stream make(), along with the makev(), make2() and make3() variants should not be used in new code, and may be removed in the future.
    make(int min_streams,
         int max_streams,
         const std::vector<size_t>& sizeof_stream_items,
         const gr::gr_vector_buffer_type& buftypes =
             gr::gr_vector_buffer_type(1, default_buftype::type));
  • Fix logging params to be compatible with C++20

GRC

  • Add "Choose Editor" button to Python block properties. Use the GTK app chooser. Save choice to the config file.
  • Correct Python Qt imports in Hier blocks and flowgraph templates.

gr-blocks

  • Enable building the benchmark testing executable, which runs tests on various math functions.
  • Repeat block implemented as a basic block (vs sync interpolator) and output buffer allocation fixed.
  • Add a GRC example for Throttle usage.

gr-digital

  • Add set_sps() to Symbol Sync.
  • Header Format: Fix CRC and OFDM formats, add option to header_buffer to read bits lsb first, and refactor extract_bits functions as templates.
  • Constellation Sink uses different colors for each input by default.
  • Rework Constellation Soft Decoder, Constellation Object and LDPC Decoder Definition. Previously, the LDPC Decoder did not work at all. The sigma parameter was removed from the decoder and an optional noise power npwr parameter was added to the constellation.

gr-network

  • Better support for vectorized output from UDP source. The payload size must still be a multiple of item size * vector size for this to work.

gr-qtgui

  • Range widget eng_slider and eng modes can now be selected in GRC.
  • Range widget and a couple of UHD apps now accept values on editingFinished, e.g., loss of focus, rather than on returnPressed. Since UIs generated by GRC do not have OK/Apply for such values, there is no "correct" behavior. The behavior is now selectable on the Entry widget.
  • Frequency Sink startup time improved where sample rate is low

gr-soapy

  • RTLSDR buffer size may be specified

gr-uhd

  • RFNoC NullSrcSink block added. The block may be both source and sink.
  • Add support and examples for RFNoC loopback.
  • RFNoC Rx Radio adds issue_stream_cmd() and block message handler.

gr-zeromq

  • Explicitly shutdown and close source/sinks to prevent hangs in some cases.

Modtool

  • Add cmake-format support for generated modules

Build system and packaging

  • Update Read-the-docs config to include build.tools

Testing

  • Change Debian 11 to Debian 12 in CI

v3.10.7.0

9 months ago

[3.10.7.0] - 2023-07-15

Changed

Runtime

  • Setting the minimum buffer size should have the desired effect now, and not be overwritten. NOTE: the value returned by min_buffer_size() is not intended to indicate the actual buffer size. Header Payload Demod was the only block attempting to use this value, and was corrected.
  • Use a set to store thread group (more efficient)
  • Message Debug can now output via the logging system
  • The field prefs.singleton is no longer externally exposed (was unintentional)
  • PMT dict can be generated more easily using pmt::dict_from_mapping()

GRC

  • Save changes under all exit conditions (a couple were previously missed)
  • Prevent silent Generate/Run failures for unsaved flowgraphs

Testing

  • Add Fedora 38, using the clang compiler
  • Remove EOL Fedora 36

gr-analog

  • C++ code generation for Quadrature Demod
  • Add max_gain parameter for AGC

gr-blocks

  • Probe Rate adds a name parameter, for clearer logging
  • Selector has a new "sync" more that consumes the same number of items from all inputs. Default is now to consume as many items as possible from the active input, and no more than that many items from other inputs. The previous behavior was, well, broken.
  • Throttle reset item count on restart, to avoid long delays

gr-digital

  • Constellation Encoder and Decoder: constellation can be changed at runtime

gr-filter

  • Filter design tool: multiple improvements in bounds checking and exception handling
  • Filter design tool: update QMessageBox to work in Qt5

gr-network

  • Multiple memory management errors fixed in UDP Source/Sink and TCP Sink

gr-soapy

  • Better AGC and gain behavior in RTL, AirspyHF and SDRPlay blocks
  • Support bias controls in RTL and SDRPlay blocks

gr-uhd

  • Remove possibility of infinite recursion for network overruns
  • Support fmtlib v10
  • RFNoC: bindings and block yml for Vector IIR, Replay and Log Power blocks
  • RFNoC: add S16 format to RX Streamer

gr-vocoder

  • Support additional codec2 modes

Modtool

  • Don't override user-defined CMAKE_INSTALL_PREFIX