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?
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?
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?
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?
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?
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?
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?
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?
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?
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?
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.
Database SoftwareMySQL 5.1.35 is recommended for use on production systems." 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." 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.
Telecomdissects 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."
Data Visualizationpython-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."
ElectronicsGnucap+ 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."
Gamesit 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."
Interoperabilityannounced. 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."
Medical Applicationsreports 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".
MultimediaMoovida, 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."
Languages and Tools
CThe 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."
PythonHDF5 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." 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()". 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." 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". 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)." 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."
Cross Compilersavailable. See the release notes for more information.
Test Suitesnow 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)
Page editor: Forrest Cook
Next page: Linux in the news>>
Copyright © 2009, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds