ChangeLog v3.7.10

This significant feature release of the 3.7 API series, and incorporates all the bug fixes implemented in the maintenance release.


The following list of people directly contributed code to this release:

Major Development Areas

This release sees the integration of a number of long-time development efforts in various areas of the tree, including GRC, new packet/burst communications features for gr-digital, new standards implementations for gr-dtv. In addition, it incorporates all of the bug fixes released as part of the maintenance release.


The GNU Radio Companion development environment continues to undergo rapid development and refactoring. The tools and workflow have been improved in the following ways:

  • Variable explorer panel and option to hide variables from canvas
  • Nicer block documentation tool-tip and properties dialog tab
  • Screenshots can have transparent background
  • Darker color for bypassed blocks
  • Select all action
  • Block alignment tools
  • Added bits (unpacked bytes) as a data type
  • Show warning for blocks flagged as deprecated
  • Remove [] around categories in the block library
  • Separate core and OOT block trees via the category of each block

The refactor of GRC continues. This should be mostly feature neutral and make it easier for new contributors to come in and make useful changes. Part of this is deprecating blks2 and and xmlrpc blocks and moving them to components where they would be expected to be found rather than the GRC sub-tree.

Packet Communications

A long-time feature branch developed by Tom Rondeau has been merged into the tree, implementing new blocks and methods for packet communications. This is intended to replace much of the older, overlapping, and Python-only packet-based code that already exists. As this code matures, we will be marking this older code as deprecated with the plan to remove it in the new 3.8 API.


DTV has new transmitters for DVB-S and ITU-T J.83B 64QAM. New support for DVB-S2X VL-SNR code rates, modulation, and framing for AMSAT are also available.

A significantly improved OFDM symbol synchronizer was implemented for the DVB-T receiver (Ron Economos, Federico La Rocca).

Other Feature Development


Clear tags and reset all item counters when merging connections between blocks, which prevents bad values from being propagated on lock/unlock operations.

Blocks always set their max_noutput_items before a flowgraph starts if it hasn't already been set.

Added some options to gnuradio-config-info that prints information about the gnuradio prefs file. The old customized preference file reader is replaced with a boost program options object.


The QT GUI widgets can now toggle axis labels and the frequency sink has a new feature to set the y-axis label. This could be useful for changing units on calibrated measurements.

The QT GUI Entry widget has a new message port that emits a message containing the new text whenever editing is finished.

QT widgets recently had an optional message port to plot PDUs. This release adds a feature to plot the tag metadata contained in the PDU.

A new example shows how to build a C++ only QT based application.


New QA for tagged stream correlate access code blocks further cement how these blocks should be behaving.

16QAM is now available from the GRC constellation object dialog drop down menu.


The frequency modulator now has sensitivity exposed through controlport.

New FM pre emphasis and de-emphasis filters. The previous filters were effectively all-pass filters. There is a very nice write up on the new filters in gr-analog/python/analog/

A new message port to sig_source is available that can set signal frequency with the same convention as gr-uhd usrp_source.


Use the max_noutput_items in start() to allocate FFT buffers for the PFB decimator rather than always allocating/freeing a buffer in work().


Add a run-time accessor and setter for interpolation of repeat blocks.

vector_sink.reset() clears tags now

Add accessors for the vector_source repeat flag so it's settable outside the ctor.

Fix tuntap devices MTU size. Previously MTU size argument was used to allocate correct buffer size, but didn't actually change the MTU of the underlying device.

The UDP source block can read gr prefs file for the payload buffer size or default to the existing value of 50.

Yet another block making use of VOLK: the divide_cc block is now 10x faster on some machines.


New argument in usrp_source initializer to start streaming on the start of a flowgraph which defaults to true (the existing behavior).

Add a clock-source argument to uhd_fft.

A new message command handler for the usrp_source block will trigger a time and rate tag to be emitted.

Added support for importing, exporting, and sharing LOs.


Refactor audio sink for windows with multiple buffers to prevent skipping.


Add an option to set the copyright field for new files.

New modules will detect PYBOMBS_PREFIX and install to the defined location.

Add versioning support for OOT modules by default.


Enable controlport for static builds.

Enable GR_GIT_COUNT and GR_GIT_HASH environment variables for extended versioning number for packagers.

We explicitly set the C/C++ standards to C++98 and gnu11 rather than use the compiler defaults since many compilers are moving to C++11 by default. Incidentally this caused minor breakage with a subtle VOLK API fix in gr-dtv which was also fixed.

Fixed finding GNU Radio + VOLK in non-standard prefixes when compiling OOT modules.