Releases: gnuradio/gnuradio
Release Candidate v3.10.1.0-rc1
This is mostly a bug fix release. It is API compatible with 3.10.X.Y releases. Code built against GNU Radio libraries (including OOTs) will likely need to be recompiled, as ABI compatibility is not guaranteed.
Runtime
- Add ownership and locking to hier_block2 to avoid crash/freeze after disconnect.
gr-analog
- Fix C++ code generation for random_uniform_source
gr-blocks
- Minimal implementation of a SigMF Sink, allowing users to easily try out generation SigMF output. SigMF uses a raw data file and a separate JSON metadata file. A SigMF Source is also provided. At this time, it is a wrapper around a File Source (the data files are compatible), but metadata is not processed.
gr-filter
- Bug fix: buses should now work with PFB channelizer and synthesizer.
gr-iio
- Various fixes for fmcomms2/3/4.
gr-uhd
- Bug fix: overflow count was uninitialized.
- Correct descriptor names in uhd_fpga_ddc/duc.
GRC
- Bug fix: initialize value for "priority" parameter in Python Snippets.
- Show blocks with "deprecated" flags as deprecated.
Release v3.10.0.0
It is with much excitement (and after only 4 RCs!!) that we release the next step forward for GNU Radio - 3.10.0.0!
Not only does this release bring in some extremely useful new modules (gr-iio, gr-pdu, and arguably gr-soapy thought that thankfully made it also into recent 3.9 maintenance releases), but also sets a path forward for using GNU Radio in heterogeneous compute environments by providing "custom buffers" for more efficiently interacting with accelerators (GPUS, FPGAs, TPUs, etc.).
We have been fortunate this year to have extremely active backporting and consistent maintenance releases from co-maintainter Jeff Long - so many of the fixes and smaller features (and larger ones) have already seen the light of day in the 3.9.x.x and even 3.8.x.x releases. Here are some highlights of the 3.10 release:
gr-pdu
PDUs (protocol data units) in GNU Radio are a special type of PMT that have a dictionary and a uniform vector type representing a burst of data with some metadata. Up to this point, support of pdus has been scattered throughout the codebase with minimal supporting the way of handling this type of data consistently. Fortunately, Jacob Gilbert has been able to upstream much of the amazing work from himself and the team at Sandia National Labs which brings in-tree a suite of tools for manipulating these data objects (see https://github.com/sandialabs/gr-pdu_utils). Also, many of the previous PDU processing blocks that existed in other in-tree modules have been migrated to this module, so there has been some block re-arrangement. Please see https://www.youtube.com/watch?v=bT60hVVte48 for more detailed information
gr-iio
IIO is the industrial I/O framework that provides an industry standard method for communicating with a wide-range of devices. Analog Devices has supported out of tree a gr-iio module that brings this capability into GNU Radio and now upstreamed this module so support for devices like the PlutoSDR are available out of the box. Special thanks here to Adam Horden, Dave Winter, Volker Shroer for bringing this in-tree and working through many of the complexities.
Please see https://www.youtube.com/watch?v=2gKbollW6wg for a more technical description of IIO and gr-iio.
Custom Buffers Support
NOTE: this is an advanced "experimental" feature that if not actively employed will not affect normal GNU Radio usage.
David Sorber from Black Lynx has introduced a feature that enables streamlined data movement between GNU Radio blocks and hardware accelerators. By creating a "custom buffer" class (or using one that is provided by someone else), blocks can be made to abstract the data movement behind the scenes so that when the work
function is reached, data already exists in the device memory.
Let me give a quick example - previously if you wanted to write a GPU accelerated block with CUDA, you would have to get into the work function, move the data from the GNU Radio circular buffers to GPU device memory, execute the CUDA kernels, then move the data back to GR buffers. Now that data movement is done behind the scenes if the block is set up right so that when the work function is hit, the data is in GPU device memory and will get transferred back to CPU memory behind the scenes as well. This allows back to back HW accelerated blocks to not have to ingress/egress in and out of GR memory unnecessarily. Also, the single mapped buffer abstraction brings huge performance benefits as can be seen here:
https://www.youtube.com/watch?v=VO1zMXowezg for a much better description, and for all the technical details: https://wiki.gnuradio.org/index.php/Custom_Buffers
For examples of this in action, please see the gr-cuda repository here: https://github.com/gnuradio/gr-cuda - which contains the CUDA custom buffers (that can be re-used in your OOT) and some example blocks.
Logging Infrastructure
Log4CPP has previously been our logging backend library, but has become a troublesome dependency. A huge thanks to Marcus Müller for fixing all of this up, replacing Log4CPP with spdlog - a more modern logging library, and also for his ongoing architectural leadership on this project. The move to spdlog also opens up the door for more modern logging statements that don't rely on Boost.format, and libfmt (which is now also a dependency) can be used for general string manipulation as well. All the previous methods and macros still exist (except for the log4cpp specific ones), but there is now new capability to log in a more convenient way using the libfmt statements.
Previous: GR_LOG_INFO(this->d_logger, boost::format("this happened: %d") % code)
New: this->d_logger->info("this happened {:d}", code)
Contributors
Much appreciation to all that contributed through code, documentation, review, and just generally being a part of this wonderful community. The code contributors for 3.10 includes AT LEAST the following:
0xloem 0xloem@gmail.com
a-andre 13609565+a-andre@users.noreply.github.com
Adam Horden adam.horden@horden.engineering
Adarsh Singh 79402080+furiousluck@users.noreply.github.com
Aditya Thomas sepia_tone@protonmail.com
Adrien Michel adriengit@users.noreply.github.com
André Apitzsch andre.apitzsch@etit.tu-chemnitz.de
Andrej Rode mail@andrejro.de
Artem Pisarenko artem.k.pisarenko@gmail.com
Bernard Tyers - Sane UX Design bernard+work@ei8fdb.org
beroset beroset@users.noreply.github.com
Bill Muzika bill.muzika@outlook.com
Callyan sufodex@gmail.com
Chris christopher.donohue@gmail.com
Christophe Seguinot christophe.seguinot@univ-lille.fr
Christoph Koehler ckoehle@sandia.gov
Chuang Zhu genelocated@yandex.com
Clayton Smith argilo@gmail.com
cmrincon cmrincon611@hotmail.com
Codey McCodeface Codey.McCodeface@gmail.com
Daniel Estévez daniel@destevez.net
David Pi david.pinho@gmail.com
David Sorber david.sorber@blacklynx.tech
David Winter david.winter@analog.com
Derek Kozel derek.kozel@gmail.com
Doron Behar doron.behar@gmail.com
duggabe barry@dcsmail.net
efardin efardin@ieee.org
Elof Wecksell elof@wecksell.se
Emmanuel Blot emmanuel.blot@free.fr
Ferenc Gerlits fgerlits@gmail.com
GitHub noreply@github.com
gnieboer gnieboer@corpcomm.net
Håkon Vågsether hakon.vagsether@gmail.com
Igor Freire igor@blockstream.com
Ipsit mmkipsit@gmail.com
Jacob Gilbert jacob.gilbert@protonmail.com
japm48 japm48@users.noreply.github.com
JaredD jareddpub@gmail.com
Jason Uher jason.uher@jhuapl.edu
Jeff Dumps jeffdumps@gmail.com
Jeff Long willcode4@gmail.com
Jeppe Ledet-Pedersen jlp@satlab.com
jfmadeira jf.madeira@campus.fct.unl.pt
jmadeira jmadeira@pdmfc.com
Johannes Demel demel@ant.uni-bremen.de
John Sallay jasallay@gmail.com
Josh Blum josh@joshknows.com
Josh Morman jmorman@gnuradio.org
karel 5636152+karel@users.noreply.github.com
lenhart malte.lenhart@t-online.de
Liu, Andrew Z liu.andrew@vast-inc.com
luz paz luzpaz@users.noreply.github.com
Marc L marcll@vt.edu
Marcus Müller mmueller@gnuradio.org
Mark Bauer markb5@illinois.edu
Mark Pentler tehhustler@hotmail.com
Martin Braun martin@gnuradio.org
Martyn van Dijke martijnvdijke600@gmail.com
masw masw@masw.tech
Matt Ettus MattEttus@users.noreply.github.com
Matt Mills mmills@2bn.net
muaddib1984 70996692+muaddib1984@users.noreply.github.com
Nicholas Bruce saltair93+github@gmail.com
Nicholas Corgan n.corgan@gmail.com
Nick Foster bistromath@gmail.com
Nick M taclane@users.noreply.github.com
Nick Østergaard oe.nick@gmail.com
Niki niki@aveer.io
Notou barthy42@laposte.net
Oleksandr Kravchuk open.source@oleksandr-kravchuk.com
Pavon pavon@protonmail.com
Philip Balister philip@balister.org
rear1019 rear1019@posteo.de
Rohan Sharma rhnsharma5113@gmail.com
Ron Economos w6rz@comcast.net
Ryan Volz ryan.volz@gmail.com
schneider42 schneider@blinkenlichts.net
Sebastian Koslowski sebastian.koslowski@gmail.com
Seth Hitefield sdhitefield@gmail.com
shwhiti shwhiti@sandia.gov
Solomon Tan solomonbstoner@yahoo.com.au
Sylvain Munaut tnt@246tNt.com
Terry May terrydmay@gmail.com
Thomas Habets thomas@habets.se
Tim Huggins tim.huggins@systemminnovationgroup.org
Travis F. Collins travis.collins@analog.com
Vasilis Tsiligiannis acinonyx@openwrt.gr
Vasil Velichkov vvvelichkov@gmail.com
Victor Wollesen victor.w@pervices.com
Volker Schroer 3470424+dl1ksv@users.noreply.github.com
Zackery Spytz zspytz@gmail.com
Release Candidate v3.10.0.0-rc4
Release candidate 4 for v3.10.0.0
This is a hard freeze and will convert into v3.10.0.0 if no serious issues are found
Release Candidate v3.10.0.0-rc3
Release candidate 3 of v3.10.0.0
Release v3.9.5.0
This is an API compatible update to GNU Radio 3.9. Code written for 3.9.X versions should compile and link without modification. The ABI is not guaranteed to be compatible, so a rebuild of OOT modules may be necessary.
Changes
GRC
- Fix: dependent variables sometimes fail to evaluate
- Modify and cleanup bokeh server loop
gr-analog
- Update python bindings for power squelch
gr-dtv
- Add energy normalization for DVB-S2X constellations.
gr-filter
- Remove pyqwt and qt4 from filter_design
gr-network
- Fix: segfaults when TCP & UDP blocks are restarted
- Add throttle flag to the tcp source and sink blocks
gr-qtgui
- Enable use of Qwt 6.2
gr-uhd
- Add Python bindings for rfnoc_{block, ddc, duc, rx/tx_radio}
modtool
- Improvements in generated QA code
Build System
- Better support for cross-compiling (OpenEmbedded)
- Find log4cpp on Ubuntu systems
- Handle optional components in
find_package
- Add version check for pygccxml
CI/QA
- Update tests to work with OpenEmbedded
Contributors
At LEAST the following people contributed to this release:
- a-andre
- Aditya Thomas sepia_tone@protonmail.com
- Andre Puschmann andre@softwareradiosystems.com
- Bill Muzika bill.muzika@outlook.com
- Christoph Koehler christoph@zerodeviation.net
- Christoph Koehler ckoehle@sandia.gov
- Chris Vine vine35792468@gmail.com
- Clayton Smith argilo@gmail.com
- Jeff Long willcode4@gmail.com
- Josh Morman jmorman@gnuradio.org
- masw masw@masw.tech
- Nicholas Bruce saltair93+github@gmail.com
- Nick M taclane@users.noreply.github.com
- Nick Østergaard oe.nick@gmail.com
- Notou barthy42@laposte.net
- Philip Balister philip@balister.org
- Ron Economos w6rz@comcast.net
- Ryan Volz ryan.volz@gmail.com
- shwhiti shwhiti@sandia.gov
- Volker Schroer
Release v3.8.5.0
This is an API compatible update to GNU Radio 3.8. Code written for 3.8.X versions should compile and link without modification. The ABI is not guaranteed to be compatible, so a rebuild of OOT modules may be necessary.
GRC
- GRC now runs on Fedora 35 ... Gtk initialization checks were too strict
- Fix: dependent variables sometimes fail to evaluate
- Change type aliasing to allow interleaved short/byte to be connected to vectors of short/byte. Stricter type checking was added previously and caused some blocks to be unconnectable when using these types.
- Account for scale factor when computing drawing area size
- Tooltips fixed for categories and modules
gr-digital
- Fix yml file for Header/Payload Demux
gr-dtv
- Add energy normalization for DVB-S2X constellations.
gr-filter
- Remove pyqwt and qt4 from filter_design
gr-qtgui
- Enable use of Qwt 6.2
- Remove unusable int type in Number Sink yml
- RangeWidget - implement Eng & EngSlider
At LEAST the following authors contributed to this release.
- Bill Muzika bill.muzika@outlook.com
- Chris christopher.donohue@gmail.com
- Chris Vine vine35792468@gmail.com
- Clayton Smith argilo@gmail.com
- Doron Behar doron.behar@gmail.com
- Jeff Long willcode4@gmail.com
- John Sallay jasallay@gmail.com
- Josh Morman jmorman@gnuradio.org
- Marcus Müller mmueller@gnuradio.org
- Mark Pentler tehhustler@hotmail.com
- Martin Braun martin@gnuradio.org
- masw masw@masw.tech
- Matt Mills mmills@2bn.net
- Nick Østergaard oe.nick@gmail.com
- Ron Economos w6rz@comcast.net
- Ryan Volz ryan.volz@gmail.com
- Sec sec@42.org
- Volker Schroer
Release Candidate v3.9.5.0-rc1
v3.9.5.0-rc1
Release Candidate v3.8.5.0-rc1
v3.8.5.0-rc1
Release v3.10.0.0-rc2
Second release candidate for v3.10.0.0
Release v3.10.0.0-rc1
Release candidate for v3.10.0.0. This release introduces the following major features:
- gr-pdu
- gr-iio
- Custom Buffers
- Log4CPP Replacement