By Forrest Cook
June 8, 2009
The
GNU Radio project is one of
the more unusual open-source projects to come about in recent years.
From the project's web site:
"
GNU Radio is a free software development toolkit that provides the signal processing runtime and processing blocks to implement software radios using readily-available, low-cost external RF hardware and commodity processors. It is widely used in hobbyist, academic and commercial environments to support wireless communications research as well as to implement real-world radio systems."
We conducted an email interview with GNU Radio developer Johnathan Corgan.
Greetings,
Could you start off by telling us how long the GNU Radio project
has been in existence and how is it funded?
The GNU Radio project began in 2001 and initial development was funded
by John Gilmore and implemented by Eric Blossom. Later, additional work
was completed as part of a United States National Science Foundation
grant. The aim of the project was to make software radio technology more
accessible with lower cost hardware and off-the-shelf computers.
As the project has gained in popularity and user base, most development
is contributed by a community of free software developers, though some
companies and organizations have paid to have certain features developed
for their specific use. All of our project code is assigned copyright
to the Free Software Foundation
and is released under the terms of the GPL, version 3.
What are your responsibilities with the GNU Radio project?
I joined the project in 2005. My first effort was to combine the
various bits and pieces of GNU Radio that had been spread over several
source code trees and repositories. This led to the creation of the
gnuradio.org website and release 3.0 in 2006. At this point, there was
a single, unified tree and build system for all of GNU Radio, and a
central repository, issue tracking system, and Wiki based on Subversion
and Trac.
Today I act as release manager, site administrator, and coordinate
integration of various developers' code into our development trunk and
stable branch releases. Apart from the project itself, I work full-time
as a software radio consultant, providing custom GNU Radio application
development services and technical training for corporate, academic, and
government clients.
How many primary team members does the project have, and what are
their functions?
Eric Blossom continues to lead the overall project direction and scope,
and serves as our own "benevolent dictator." He focuses primarily on
the core GNU Radio infrastructure itself, and his emphasis on code
quality and maintainability has allowed us to sustain heavy growth in
the code base in the last several years. Eric also maintains our
relationship with the Free Software Foundation.
Matt Ettus, of Ettus Research LLC,
manufactures the most popular RF
hardware for use with GNU Radio, the Universal Software Radio Peripheral
(USRP).
While this is distinct from GNU Radio proper, and both projects
work with other hardware or software, the combination of GNU Radio and
the USRP has become the de-facto platform for open software radio
research. Matt has also played a key role in developing many of our DSP
blocks.
Josh Blum is the developer and maintainer of the
GNU Radio Companion
graphical editor package. This application has allowed GNU Radio to be
more easily used by engineers whose skills lie more in the RF/DSP area
than in the programming area.
We have a regular part-time contributor base of about 15 developers.
These vary from maintainers of specific architecture ports to
development of specific DSP algorithms and documentation and build
system updates.
What are some of the more interesting projects that have been
accomplished using GNU Radio?
GNU Radio has been used to develop a very diverse variety of
applications such as digital communication links, low-power radar,
satellite ground stations for command uplink and telemetry reception,
ionospheric research, weather monitoring, direction
finding/radiolocation, acoustic signal processing, spectrum sensing,
radio astronomy, seismic analysis, marine ship tracking, amateur radio,
and many more.
Kestrel Signal Processing has developed OpenBTS, a USRP-based GSM base
station implementation with VOIP backhaul, successfully demonstrated at
Burning Man 2008.
(LWN.net looked at
OpenBTS in September, 2008.)
A number of researchers have used GNU Radio as a means to evaluate the
security of radio-based systems, such as the recent demonstration of the
vulnerability of the MTBA's T card fare system, or the ability to
reprogram certain models of implantable cardiac defibrillators.
(See this article
for more information.)
George Nychis, of Carnegie Mellon University, maintains the
"Comprehensive GNU Radio Archive Network" (CGRAN), with a small but
growing number of 3rd party applications and blocks for GNU Radio.
Could you give us a brief explanation of the software used on the
Linux side of a GNU Radio development system?
GNU Radio signal processing blocks are implemented in C++, with
top-level applications written in either C++ or Python, and the
environment is fully based on the GNU toolchain and autotools
cross-platform build system.
It is designed as a library to be incorporated into a larger application
that might be using other libraries or IDEs, and in general follows
typical free software best practices. It has some convenience code for
working with the wxPython and QT windowing systems, but these are not
required.
While most of its signal processing is implemented natively, including
taking advantage of SIMD instruction sets of x86 processors, it does
rely on the FFTW Fourier-transform library, the GNU Scientific Library,
and the Numeric Python library for some of its functions.
Do any GNU Radio projects use Linux systems to provide the user interface?
Yes. As a software radio toolkit, it is up to the developer to
implement the graphical user interface of their choice, though again,
there is high-level support for wxPython and QT.
The GNU Radio Companion allows creation of graphical Python applications
using GNU Radio, without the need to explicitly write GUI code.
Could you explain what's new in GNU Radio 3.2, which was announced on
May 24?
GNU Radio 3.2 is the start of a new "stable branch" release series. We
make all of our intermediate development work available via Subversion,
so in a sense, release 3.2 is not "new", as many of its features have
been available for quite some time. We periodically freeze the API into
a stable release that developers can code to, and this release branch
gets bug fixes and backports of selected functionality in a way that
maintains source code compatibility with users' projects.
The release 3.2 API has undergone many internal changes since 3.1. The
core infrastructure has been made multi-threaded, to better scale with
multi-core CPU architectures. The use of Python has become optional; it
is now possible to write entire GNU Radio applications in C++. Some
internal refactoring of code has sped up the build process and reduced
memory requirements. A variety of new DSP blocks have been contributed.
This release supports the recently announced second generation USRP2
hardware from Ettus Research. Full support for native C++ applications
for the USRP(1) has been implemented.
The GNU Radio Companion, originally a stand-alone 3rd party application,
has been integrated into GNU Radio and has its first official release in
3.2.
Release 3.2 brings formal support to the IBM Cell processor, with
cross-build support for Linux on the PS3 platform and support for using
the SPE floating point engines.
What are the plans for the next release and beyond in GNU Radio?
For most of its lifetime, GNU Radio has focused on the lowest layer of
radio functionality, what would be called the "PHY layer" in networking
terms. This is the domain of continuously streaming, unbounded,
sample-by-sample RF or DSP processing, and the GNU Radio system
architecture reflects this.
There is strong interest in using GNU Radio for higher layers of radio
system functions, where data tends to be dealt with in packetized form.
MAC-layer protocols which govern access to the communication channel and
TDMA systems which require very tight timing and sequencing of transmit
and receive waveforms are examples of this. Furthermore, radio systems
often require processing of high-level metadata about signals flowing
through the system.
GNU Radio release 3.3 will augment the existing streaming data flow
model with a message passing architecture. This will allow developers to
write signal processing blocks that operate in either of these domains,
to easily cross between them, and to annotate streams or packetized data
with metadata that will propagate with them through the signal chain.
The VITA Standards Organization has developed the Digital IF transport
standard (VITA 49). This is a standard means of moving digitized RF data
over a network or other transport between components of an RF system.
Release 3.3 will include an implementation of this standard, with the
USRP2 as the first of several hardware platforms to be supported.
As the capabilities of GNU Radio grow, it is important to remain
accessible to the newcomer to software radio technologies and to those
without formal software development training. The GNU Radio Companion
will be expanding the types and complexity of radio applications it can
design.
Device driver writers for programmable WiFi cards often have to tiptoe
around the frequency regulatory agencies due to the cards' ability to
transmit on arbitrary frequencies. Has the GNU Radio project
encountered any issues with a software definable transmitter and do you
have any plans for dealing with such issues if they should arise?
GNU Radio itself, as software, has none of these issues, of course.
As the USRP hardware is sold separately, as test equipment, it becomes
the responsibility of the end user to comply with any applicable
regulatory agency rules regarding the emission (or reception, in some
cases) of RF.
Is there anything else you would like to share with our readers about
the project?
While GNU Radio is focused on real-time signal processing applications,
it is also possible to experiment with simulated or stored waveforms.
Instead of using hardware, one can write GNU Radio transmitter
applications that generate waveforms on-the-fly, but record them to
files. Receiver systems can be developed using this synthetic data as a
source of RF samples instead of actual hardware. Furthermore, these
waveforms may be created outside of GNU Radio using applications such as
GNU Octave or Matlab.
Various channel models and channel impairments
can be simulated using GNU Radio blocks. We frequently use this method
ourselves to implement modulator and demodulator blocks under "carefully
controlled" conditions before testing over-the-air. This is an
excellent way to learn about RF signal processing without making any
actual hardware investment.
Thank you for your time.
Thank you as well, and for the excellent source of Linux related news
over the years.
Comments (none posted)
System Applications
Database Software
Version 5.1.35 of MySQL Community Server has been announced.
"
MySQL 5.1.35 is
recommended for use on production systems."
Full Story (comments: none)
The June 7, 2009 edition of the PostgreSQL Weekly News
is online with the latest PostgreSQL DBMS articles and resources.
Full Story (comments: none)
Version 1.1.4 of Slony1-ctl has been announced.
"
A new version of slony1-ctl, a collection of shell scripts aiming at
simplifying everyday admnistration of a Slony replication has been released.
This version adds support for propagating an SQL script through all nodes of a
replication outside of slony."
Full Story (comments: none)
Version 0.4 of squeal has been
announced.
"
I've put together a tarball release of my SQL/command-line collision, formerly "show", now "squeal".
See this
LWN article
for background on show.
Comments (none posted)
Telecom
Matthew Garrett
dissects the software inside of a Palm Pre, the Linux-based smartphone recently released by Sprint, on his weblog. He concludes that it looks like a fairly sane Linux, particularly compared to the Android "distribution", that is likely to be an interesting platform for hacking on. "
A lot of the software on the Pre is GPLed, and Palm are therefore obliged to provide copies of the appropriate source code to anyone who receives the software (note that receiving the device is not required - if the software is downloadable then the source offer must be made available to anyone who receives the software). The source code is not currently downloadable - instead Palm have included a written offer to supply the source code on request. This satisfies the GPL, but I can't be bothered doing that for the moment so all of this is purely based on examining the binaries."
Comments (24 posted)
Web Site Development
Google has
announced the release of its
Page Speed tool under the Apache license. "
Page Speed is a tool we've been using internally to improve the performance of our web pages -- it's a Firefox Add-on integrated with Firebug. When you run Page Speed, you get immediate suggestions on how you can change your web pages to improve their speed. For example, Page Speed automatically optimizes images for you, giving you a compressed image that you can use immediately on your web site. It also identifies issues such as JavaScript and CSS loaded by your page that wasn't actually used to display the page, which can help reduce time your users spend waiting for the page to download and display."
Comments (8 posted)
Version 1.0.2 of Webware for Python has been announced.
"
This is the second bugfix release for Webware for Python release 1.0,
mainly fixing some problems and shortcomings of the PSP plug-in.
See the WebKit and PSP release notes for details.
Webware for Python is a suite of Python packages and tools for
developing object-oriented, web-based applications."
Full Story (comments: 1)
Desktop Applications
Data Visualization
Version 1.6.0 of python-graph has been announced.
"
python-graph is a library for working with graphs in Python.
This software provides a suitable data structure for representing
graphs and a whole set of important algorithms."
Full Story (comments: none)
Desktop Environments
The following new GNOME software has been announced this week:
You can find more new GNOME software releases at
gnomefiles.org.
Comments (none posted)
KDE hacker Aaron Seigo
posts on his weblog about a project for KDE to collaborate with distributions on branding artwork. The idea is to build instantly identifiable default wallpapers that will evoke both Linux and the distribution (and KDE as well), so that the public will recognize Linux in the same way they do other operating systems. "
Unfortunately, in the F/OSS world we like to build little fences around our plots of land and then design the gardens in them like the unique little acres of wonder we feel they are. This is natural and expected: the people creating F/OSS systems take as much pride in their final product as anyone else and wish to mark it as 'that thing I've done'. Similarly, companies wish to push their own brand for commercial purposes. Neither set of motivations is wrong or unnatural, but they are hurting us right now more than they are helping."
Comments (64 posted)
Version 4.3.0 Beta 2 of KDE has been announced.
"
The KDE Community today announced the immediate availability
of KDE 4.3 Beta 2, the second preview of the 3rd iteration over the KDE 4
desktop, applications and development platform.
KDE 4.3 focuses on polishing and completing the user experience by providing
a modern and beautiful Free working environment."
Full Story (comments: none)
The following new KDE software has been announced this week:
You can find more new KDE software releases at
kde-apps.org.
Comments (none posted)
The following new Xorg software has been announced this week:
More information can be found on the
X.Org Foundation wiki.
Comments (none posted)
Electronics
The
Gnucap+
circuit analysis package has been added to the
gEDA
collection of electronic design software.
"
Gnucap+ is an extension of the Gnu Circuit Analysis Package, Gnucap.
Our aim is to extend Gnucap and make it the best simulator available, period. That includes besting expensive and slow-moving commercial packages."
Comments (none posted)
Games
Version 1.2.0 of Quadra has been released, the last release was in 2001.
"
it is an addictive action
puzzle game with single player and multi-player capabilities (Internet
or LAN). It started life as a commercial game in 1999, but when the
developer company closed doors, was released as open source, in August
2000, and seems to have collected a small but strong cult following."
Full Story (comments: none)
Interoperability
Version 1.1.23 of Wine has been
announced. Changes include:
"
- Support for registering MIME types with the Linux desktop.
- FBO mode is now the default for Direct3D.
- Support for COM proxy delegation.
- Improved support for the Mingw cross-compile.
- Proper fullscreen mode for the virtual desktop.
- Various bug fixes."
Comments (none posted)
Medical Applications
LinuxMedNews
reports
on improvements to the VA VistA electronic medical record system.
"
For you VA VistA fans, here is the status of GUI-registration which has recently changed with tmg-cprs. In case you didn't know, patient registration up until recently was text-based and somewhat annoying in an otherwise good system".
Comments (none posted)
Multimedia
Version 1.0.2 of Moovida Media Center has been announced.
"
Moovida, formerly known as Elisa, is a cross-platform and open-source
Media Center written in Python.
It uses GStreamer for media playback and pigment to create an
appealing and intuitive user interface.
This release is a lightweight release, meaning it is pushed through our
automatic plugin update system."
Full Story (comments: 1)
Office Suites
The May, 2009 edition of the OpenOffice.org Newsletter
is out with the latest OO.o office suite articles and events.
Full Story (comments: none)
Languages and Tools
C
The June 4, 2009 edition of the GCC 4.5.0 Status Report
has been published.
"
The trunk is in Stage 1. As previously stated, we expect that Stage 1
will last through at least July.
There are still large pending merges we are aware of, specifically
the VTA and LTO branches will be considered when deciding when to
go to Stage 3."
Full Story (comments: none)
Caml
The June 9, 2009 edition of the Caml Weekly News
is out with new articles about the Caml language.
Full Story (comments: none)
Python
Version 1.2 Beta of HDF5 for Python has been announced, it includes
significant new features.
"
HDF5 for Python (h5py) is a general-purpose Python interface to the
Hierarchical Data Format library, version 5. HDF5 is a versatile,
mature scientific software library designed for the fast, flexible
storage of enormous amounts of data."
Full Story (comments: none)
Version 1.5 of jsonlib2 has been announced.
"
I've just revved jsonlib2, the C-based json parser used at metaweb for
freebase.com. Compared with simplejson, my initial tests have it
between 21 and 25 times faster for loads() and around 10x faster for
dumps()".
Full Story (comments: none)
Version 2.5.0 RC4 of Jython 2.5.0, an implementation of Python under Java,
has been announced.
"
This is the fourth and probably final release candidate of the 2.5.0
version of Jython. If no major bugs are found in rc4, we will relabel
it as 2.5.0 final. With this version, all of the regression tests that
we follow on Windows now pass."
Full Story (comments: none)
Version 0.12 of mpmath has been announced, it includes new features,
bug fixes and speed improvements.
"
Mpmath is a pure-Python library for arbitrary-precision floating-point
arithmetic that implements an extensive set of mathematical functions.
It can be used as a standalone library or via SymPy".
Full Story (comments: none)
Version 1.0.1 of python-colormath has been announced.
"
python-colormath is a developer-oriented module that abstracts a number of
color math operations behind a small set of classes representing color
spaces (IE: RGB, CIE Lab, XYZ, and LCH, etc.). Color conversions, delta E
comparisons, and density calculations are all relatively involved, but are
hid behind the simple API. For example, conversions from RGB to CMY and CMYK
are trivial, while conversions from Spectral to LCHab are equally so (even
though much more math happens behind the scenes)."
Full Story (comments: none)
Version 1.0.2 of python-colormath has been announced, it includes new
capabilities and other improvements.
"
python-colormath is a developer-oriented module that abstracts a number of
color math operations behind a small set of classes representing color
spaces (IE: RGB, CIE Lab, XYZ, and LCH, etc.). Color conversions, delta E
comparisons, and density calculations are all relatively involved, but are
hid behind the simple API."
Full Story (comments: none)
The June 10, 2009 edition of the Python-URL! is online with
a new collection of Python article links.
Full Story (comments: none)
Cross Compilers
Version 0016 of Arduino, an open-source development system for
Atmel AVR microprocessors, is
available.
See the
release notes
for more information.
Comments (none posted)
Test Suites
The SPARK suite of tools for program verification (to help ensure reliability and security) are
now available under the GPL. Because of that,
Tokeneer, an experiment in using formal methods to verify the correctness of a biometric authentication system, is now an "
open proof". That means that all of the tools needed to verify Tokeneer are available as free software. (thanks to David Wheeler who also has a lengthy
blog posting about the release)
Comments (18 posted)
Version Control
Version 1.6.3.2 of the GIT distributed version control system
has been announced, it includes many bug fixes.
Full Story (comments: none)
Page editor: Forrest Cook
Next page: Linux in the news>>