SDR

Software Defined Radio

The invisible world of Radio Frequency (RF) drives the modern world of communications. Without it there would be no cell phones, wifi, GPS, FM radio, I could go on and on. It is often described as black magic that we are able to transmit and receive wireless data streams with amazing accuracy but it is all based in math and science. The science of electromagnetic radiation and the foundation of communication theory. But we rarely get to play and experiment with these tools to understand our world better. Most of the research and development is done at the university, government, and company level.

From left to right: Lime SDR, RTL-SDR, Lime SDR Mini. Loop back cable with attenuators in front.

But that is changing thanks to Software Defined Radios (SDR) which take the radio processing and removes it from the hardware, the only things left being the analog hardware to drive the antennas and an Analog to Digital Converter (ADC) and a Digital to Analog Converter (DAC). The processing is then done in software running on a normal PC. This abstraction allows you to create your own radio from scratch to learn what goes on in the air around us.

The one caveat to this is that it does not make it easy, it only makes it easier than before, it is still very difficult even for me. It is frustrating, time consuming, math and programming intensive, and still an art form to make all the pieces align.

SDR Hardware

Even just a few years ago SDRs were extremely expensive pieces of hardware, but now a ton of new devices aimed at makers have become available. It all started with the RTL-SDR, a repurposed tv tuner that allowed anyone to start receiving data over the air for less than $30.

Then came Great Scott Gadgets with the HackRF One that developed a half-duplex transmit and receive SDR for ~$300.

Then lime Microsystems developed a full 2×2 MIMO SDR (2 transmit and 2 receive chains simultaneously) for less than $300. Then they came out with a mini version with 1 transmit and one receive for under $100.

The main component to driving down the cost of the SDR is the use of cheaper Field Programmable Gate Arrays (FPGA). These amazing integrated circuits are basically reprogrammable hardware. For example a micro controller gets programmed by a list of instructions the hardware knows how to interpret. An FPGA could be programmed with the logic to mimic the micro controller’s architecture. These devices are amazing feats of technology that deserve a post in the future.

The SDR cannot function without software to process the streams of digital data flowing from the hardware. There are many free and paid software tools that can be used to interface with an SDR the first being the open source GNU Radio project.

GNU Radio Software

GNU Radio Companion Flow diagram for an FM music receiver.

GNU Radio is a community built software that allows the user to import pre-defined software blocks that process the data. These blocks are built by other users of the software and encompasses a comprehensive set of communications processing you need to get started. This includes modulation, visualization, coding, channel modeling, data packing, etc. The software is flexible because it uses a python wrapper around C++ implementation. This allows for quick setup but also enables it to run reasonably fast. The software is mostly user friendly but has a few quirks. The best part is that it is free! It runs best on Ubuntu Linux, but can also be run on Windows and Mac OS. 

Basic Getting Started

Their are several tutorials out there to help new users get started with GNU Radio and SDR. below are a few links to get you started. I will also be building a tutorial in the future to help new users and to help build their SDR skills. Thanks for Reading!

Links