GNU Radio

Last updated
GNU Radio
Original author(s) Eric Blossom
Developer(s) GNU Radio Community
President: Derek Kozel
Maintainer: Josh Morman
Initial release2001;22 years ago (2001)
Stable release
3.10.8.0 [1]   OOjs UI icon edit-ltr-progressive.svg / 20 October 2023
Repository
Written in C++, Python
Operating system Cross-platform
Available inEnglish
Type Radio
License 2007: GPL-3.0-or-later [2]
2001: GPL-2.0-or-later [3]
Website www.gnuradio.org

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 radio frequency (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.

Contents

Overview

GNU Radio plotting demodulated radio samples. GNU Radio Qt GUI Plots Screenshot.png
GNU Radio plotting demodulated radio samples.

The GNU Radio software provides the framework and tools to build and run software radio or just general signal-processing applications. The GNU Radio applications themselves are generally known as "flowgraphs", which are a series of signal processing blocks connected together, thus describing a data flow.

As with all software-defined radio systems, reconfigurability is a key feature. Instead of using different radios designed for specific but disparate purposes, a single, general-purpose, radio can be used as the radio front-end, and the signal-processing software (here, GNU Radio), handles the processing specific to the radio application.

These flowgraphs can be written in either C++ or Python. The GNU Radio infrastructure is written entirely in C++, and many of the user tools (such as GNU Radio Companion) are written in Python.

GNU Radio is a signal processing package and part of the GNU Project. It is distributed under the terms of the GNU General Public License (GPL), and most of the project code is copyrighted by the Free Software Foundation. [4]

History

First published in 2001, GNU Radio is an official GNU package. Philanthropist John Gilmore initiated GNU Radio with the funding of $320,000 (US) to Eric Blossom for code creation and project-management duties. One of the first applications was building an ATSC receiver in software.

The GNU Radio software began as a fork of the Pspectra code that was developed by the SpectrumWare project at the Massachusetts Institute of Technology (MIT). In 2004, a complete rewrite of GNU Radio was completed, so today GNU Radio no longer has any original Pspectra code.

Matt Ettus joined the project as one of the first developers, and created the Universal Software Radio Peripheral (USRP) to provide a hardware platform for use with the GNU Radio software. In 2004, Matt founded Ettus Research LLC and began selling USRPs that worked with GNU Radio. [5]

In September 2010, Eric Blossom stepped down as Project Lead and was replaced by Tom Rondeau. [6]

Early in the project, the core developers began holding semi-annual Hackfests . In 2011, the GNU Radio project began holding a yearly conference, called "GRCon", which generally has a Hackfest on the last day of the conference.

In March 2016, Tom Rondeau stepped down and was replaced by Ben Hilburn as the Project Lead, and Johnathan Corgan, a long-time maintainer, as the Chief Architect. [7]

In January 2018, Johnathan Corgan retired from his role as Chief Architect and was replaced by Marcus Müller. [8]

In September 2020, GNU Radio became part of the SETI Institute (a non-profit, multi-disciplinary research and education organization) for all financial and contractual purposes. [9]

In October 2020, Ben Hilburn and the project officers at the time voted to reorganize the GNU Radio Project's leadership, forming a General Assembly with a set of by-laws that regulate details of how the organization operates. [10] [11] A three-member Board made up of elected General Assembly members took over the roles previously handled by the Project Lead.

Software

GNU Radio Companion

GNU Radio Companion, the GUI tool for GNU Radio Flow Graph design, used to work on a simulation GNU Radio Companion (3.8.1.0) Screenshot.png
GNU Radio Companion, the GUI tool for GNU Radio Flow Graph design, used to work on a simulation

The GNU Radio Companion is a graphical UI used to develop GNU Radio applications. [12] This is the front-end to the GNU Radio libraries for signal processing. GRC was developed by Josh Blum during his studies at Johns Hopkins University (2006-2007), then distributed as free software for the October 2009 Hackfest. Starting with the 3.2.0 release, GRC was officially bundled with the GNU Radio software distribution.

GRC is effectively a Python code-generation tool. When a flowgraph is compiled in GRC, it generates Python code that creates the desired graphical user interface (GUI) windows and widgets, and creates and connects the blocks in the flowgraph.

GRC currently supports GUI creation using the Qt toolkit.

Plotting and Displays

GNU Radio provides many common plotting and data visualization data sinks, including FFT displays, symbol constellation diagrams, and scope displays. These are commonly used both for debugging radio applications and as the user-interface to a final application.

PyBOMBS

Many users create "out-of-tree modules" for use with GNU Radio. To manage these, and the dependencies required to run GNU Radio, the organization created the PyBOMBS (Python Build Overlay Managed Bundle System) project. [13]

See also

Related Research Articles

<span class="mw-page-title-main">Free software</span> Software licensed to be freely used, modified and distributed

Free software, libre software, or libreware is computer software distributed under terms that allow users to run the software for any purpose as well as to study, change, and distribute it and any adapted versions. Free software is a matter of liberty, not price; all users are legally free to do what they want with their copies of a free software regardless of how much is paid to obtain the program. Computer programs are deemed "free" if they give end-users ultimate control over the software and, subsequently, over their devices.

<span class="mw-page-title-main">GNU Debugger</span> Source-level debugger

The GNU Debugger (GDB) is a portable debugger that runs on many Unix-like systems and works for many programming languages, including Ada, Assembly, C, C++, D, Fortran, Go, Objective-C, OpenCL C, Modula-2, Pascal, Rust, and partially others.

<span class="mw-page-title-main">Source Mage</span> Linux distribution

Source Mage is a Linux distribution. As a package is being installed, its source code is automatically downloaded, compiled, and installed. Source Mage is descended from Sorcerer.

<span class="mw-page-title-main">GNU Mailman</span> Mailing list manager software

GNU Mailman is a computer software application from the GNU Project for managing electronic mailing lists. Mailman is coded primarily in Python and currently maintained by Abhilash Raj. Mailman is free software, licensed under the GNU General Public License.

The GNU C Library, commonly known as glibc, is the GNU Project's implementation of the C standard library. It is a wrapper around the system calls of the Linux kernel for application use. Despite its name, it now also directly supports C++. It was started in the 1980s by the Free Software Foundation (FSF) for the GNU operating system.

<span class="mw-page-title-main">GnuTLS</span> Free software library implementing TLS

GnuTLS is a free software implementation of the TLS, SSL and DTLS protocols. It offers an application programming interface (API) for applications to enable secure communication over the network transport layer, as well as interfaces to access X.509, PKCS #12, OpenPGP and other structures.

<span class="mw-page-title-main">Universal Software Radio Peripheral</span> Product family of software-defined radios

Universal Software Radio Peripheral (USRP) is a range of software-defined radios designed and sold by Ettus Research and its parent company, National Instruments. Developed by a team led by Matt Ettus, the USRP product family is commonly used by research labs, universities, and hobbyists.

<span class="mw-page-title-main">Free and open-source software</span> Software whose source code is available and which is permissively licensed

Free and open-source software (FOSS) is a term used to refer to groups of software consisting of both free software and open-source software where anyone is freely licensed to use, copy, study, and change the software in any way, and the source code is openly shared so that people are encouraged to voluntarily improve the design of the software. This is in contrast to proprietary software, where the software is under restrictive copyright licensing and the source code is usually hidden from the users.

Tivoization is the practice of designing hardware that incorporates software under the terms of a copyleft software license like the GNU General Public License, but uses hardware restrictions or digital rights management (DRM) to prevent users from running modified versions of the software on that hardware. Richard Stallman of the Free Software Foundation (FSF) coined the term in reference to TiVo's use of GNU GPL licensed software on the TiVo brand digital video recorders (DVR), which actively block modified software by design. Stallman believes this practice denies users some of the freedom that the GNU GPL was designed to protect. The FSF refers to tivoized hardware as "proprietary tyrants".

<span class="mw-page-title-main">Linux</span> Family of Unix-like operating systems

Linux is a family of open-source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged as a Linux distribution (distro), which includes the kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses and recommends the name "GNU/Linux" to emphasize the use and importance of GNU software in many distributions, causing some controversy.

License compatibility is a legal framework that allows for pieces of software with different software licenses to be distributed together. The need for such a framework arises because the different licenses can contain contradictory requirements, rendering it impossible to legally combine source code from separately-licensed software in order to create and publish a new program. Proprietary licenses are generally program-specific and incompatible; authors must negotiate to combine code. Copyleft licenses are commonly deliberately incompatible with proprietary licenses, in order to prevent copyleft software from being re-licensed under a proprietary license, turning it into proprietary software. Many copyleft licenses explicitly allow relicensing under some other copyleft licenses. Permissive licenses are compatible with everything, including proprietary licenses; there is thus no guarantee that all derived works will remain under a permissive license.

Toybox is a free and open-source software implementation of over 200 Unix command line utilities such as ls, cp, and mv. The Toybox project was started in 2006, and became a 0BSD licensed BusyBox alternative. Toybox is used for most of Android's command-line tools in all currently supported Android versions, and is also used to build Android on Linux and macOS. All of the tools are tested on Linux, and many of them also work on BSD and macOS.

<span class="mw-page-title-main">Free-software license</span> License allowing software modification and redistribution

A free-software license is a notice that grants the recipient of a piece of software extensive rights to modify and redistribute that software. These actions are usually prohibited by copyright law, but the rights-holder of a piece of software can remove these restrictions by accompanying the software with a software license which grants the recipient these rights. Software using such a license is free software as conferred by the copyright holder. Free-software licenses are applied to software in source code and also binary object-code form, as the copyright law recognizes both forms.

<span class="mw-page-title-main">GNU General Public License</span> Series of free software licenses

The GNU General Public License is a series of widely used free software licenses that guarantee end users the four freedoms to run, study, share, and modify the software. The license was the first copyleft for general use and was originally written by Richard Stallman, the founder of the Free Software Foundation (FSF), for the GNU Project. The license grants the recipients of a computer program the rights of the Free Software Definition. These GPL series are all copyleft licenses, which means that any derivative work must be distributed under the same or equivalent license terms. It is more restrictive than the Lesser General Public License and even further distinct from the more widely used permissive software licenses BSD, MIT, and Apache.

<span class="mw-page-title-main">Linux kernel</span> Operating system kernel

The Linux kernel is a free and open-source, monolithic, modular, multitasking, Unix-like operating system kernel. It was originally written in 1991 by Linus Torvalds for his i386-based PC, and it was soon adopted as the kernel for the GNU operating system, which was written to be a free (libre) replacement for Unix.

Open security is the use of open source philosophies and methodologies to approach computer security and other information security challenges. Traditional application security is based on the premise that any application or service relies on security through obscurity.

A software GNSS receiver is a Global Navigation Satellite System (GNSS) receiver that has been designed and implemented using software-defined radio.

Software categories are groups of software. They allow software to be understood in terms of those categories, instead of the particularities of each package. Different classification schemes consider different aspects of software.

<span class="mw-page-title-main">Natron (software)</span> Open source compositing software

Natron is a free and open-source node-based compositing application. It has been influenced by digital compositing software such as Avid Media Illusion, Apple Shake, Blackmagic Fusion, Autodesk Flame and Nuke, from which its user interface and many of its concepts are derived.

References

  1. "Release 3.10.8.0". 20 October 2023. Retrieved 1 November 2023.
  2. "Updated license from GPL version 2 or later to GPL version 3 or later". GitHub . 2007-07-21.
  3. "Copying in gnuradio-0.9.tar.gz". 2001-04-14.
  4. ""How is GNU Radio licensed?"". Archived from the original on 2016-12-04. Retrieved 2016-03-31.
  5. "Ettus Research acquired by National Instruments [LWN.net]". lwn.net. Retrieved 2021-12-30.
  6. Mail on GNU Radio mailinglist where Eric Blossom introduces Tom Rondeau as the new project manager
  7. Mail on GNU Radio mailinglist announcing leadership transition
  8. Mail on the GNU Radio mailing list discussing the maintainer transition
  9. "SETI Institute and GNU Radio Join Forces". September 8, 2020.
  10. Lee, Adam (2020-11-13). "GNU Radio, One Step at a Time: GNU Radio Organization Updates". GNU Radio, One Step at a Time. Retrieved 2021-12-29.
  11. GNU Radio: Governance, GNU Radio, 2021-09-14, retrieved 2021-12-29
  12. ""GNU Radio Companion Wiki"". Archived from the original on 2016-03-04. Retrieved 2014-08-08.
  13. ""GNU Radio Wiki - PyBOMBS"". Archived from the original on 2017-02-11. Retrieved 2014-08-08.