10 Things You Can Do with Software-Defined RadioFollow article
A look at just a small selection of the things that can be done using software-defined radio.
As interest in SDR grows unabated and we continue to see ever more affordable hardware platforms, I thought it would be timely to round-up just a few of the things that it can be used for. This is by no means an attempt at an exhaustive list and software implementations covered are open source, since this means they are accessible to all, and proprietary SDR is whole other world also!
1. Receive broadcast radio
Ettus Research, the folks behind what has come to be regarded as the grandaddy of affordable wideband SDR hardware platforms: the USRP, have put together a video tutorial in which they demonstrate how you can create an FM receiver application in under 10 minutes. This is based on using GNU Radio and its excellent graphical tool, GNU Radio Companion (GRC).
Of course, you don't need hardware anywhere near as capable as a USRP for this, and the low cost RTLSDR receiver hardware I wrote about back in May 2012 could also be used.
2. Amateur radio
As you might expect radio hams are doing a lot of work with SDR and there are plenty of options available. Ranging from the popular, low cost and simple to understand SoftRock SDR hardware, up to the modular and incredibly flexible High Performance Software-Defined Radio (HPSDR) project that I first wrote about in November 2010.
In addition to using hardware that has been designed with amateur radio use in mind, it's also possible to use something such as a USRP or RTLSDR receiver, depending on whether you need a transceiver or receive-only, and the required frequency coverage and dynamic range etc.
3. Radio astronomy
Image © Marcus D. Leech
Marcus Leech of Science Radio Laboratories published a paper [PDF] entitled “A 21cm Radio Telescope for the Cost-Conscious”, in which he describes how this can be built using RTLSDR hardware along with other low cost and easily sourced components, with the option of using an Ettus Research USRP B100 + WBX daughter card for improved performance.
4. Track ships via AIS transmissions
A screen capture from aprs.fi
Automatic Identification System (AIS) is an automatic tracking system employed by ships to identify and locate vessels, which is used to supplement marine radar.
There are a number of options available for receiving and decoding AIS data, and one which uses RTLSDR hardware with a GNU Radio-based receiver plus gnuais is described in a blog post by Alexandru Csete, who also happens to be the author of the aforementioned Gqrx software.
Using this AIS messages can be logged, plotted, and fed to the Google Maps-based aprs.fi service.
5. Track aircraft via Mode S transmissions
Mode S is similar in purpose to AIS, albeit for aircraft. Once again the humble RTLSDR hardware can be used for receiving transmissions, and in July of last year I described how the gr-air-modes software can be used for this purpose and with aircraft positions plotted in Google Earth.
6. Set up a DRM transmitter
That's not DRM as in Digital Rights Management, but rather instead Digital Radio Mondiale — the set of digital radio technologies designed for use with shortwave AM broadcasting.
A DRM implementation was created by a student as part GNU Radio's participation in Google Summer of Code 2012. The gr-drm software is fully integrated with GNU Radio Companion and together with a USRP can be used to create a DRM/DRM+ transmitter.
7. Build a GSM network
A Fairwaves GSM base station which uses UmTRX, installed at a festival
When it comes to creating a GSM network using open source SDR there are two software options: OpenBTS and OsmoBTS. The former has been around the longest and is used with a software switch such as Asterisk to essentially turn mobile handsets into SIP/VoIP endpoints.
OsmoBTS provides layers 1-3 of a GSM base station and can be used with the transceiver component from OpenBTS, to provide a fully open source implementation which may be used with Asterisk, or integrated with a traditional GSM network architecture using the Abis protocol.
8. Experiment with LTE
Image source: openLTE project
It's much earlier days as far as open source LTE (4G mobile) is concerned, but there are currently two partial implementations. gr-lte is a modular GNU Radio-based environment for an LTE downlink receiver, and openLTE provides GNU Octave code for test simulation along with GNU Radio applications. The latter includes downlink scanner and recorder applications which have hardware support for RTLSDR and HackRF.
9. Learn how Global Navigation Satellite Systems work
Image source: GNSS-SDR project
The GNSS-SDR software is described as being“focused on signal processing, understood as the process between the ADC and the computation of code and phase observables that allow the application of high-accuracy positioning algorithms”. Furthermore, it “allows you to control all the process inside a GNSS receiver, from the raw bits at the output of an analog-to-digital converter to the computation of the navigation solution, that is, obtaining receiver’s position and time.”
By providing a working implementation and opening up baseband processing which is usually done inside an IC, GNSS-SDR makes a great platform for learning about and developing navigation systems.
10. Invent the wireless future!
This post barely scratches the surface when it comes to what can be done using SDR, and with open source implementations of one degree or another of current standards such as 802.11, ZigBee and Bluetooth also, there are plenty of relevant codebases to learn from. On top of which tools such as GNU Radio Companion when combined with low cost wideband SDR hardware make it easier, faster and increasingly affordable to prototype next generation wireless applications.
Obligatory disclaimer: a license from the appropriate authority is required in order to transmit on licensed spectra.
Top: detail of image from the GNSS-SDR project