Linux SDR Radio

What is SDR Radio?

SDR (Software Defined Radio) is a system whereby components of a radio that are normally implemented with physical hardware (modulators/demodulators amplifiers etc..) are instead implemented by means of software running on a computer. A simple and cheap way of creating a SDR is to use a DVB-T dongle. DVB-T dongles that are based on the Realtek RTL2832U chip can be used. These dongles can then be used to receive and decode a very wide range of frequencies. In the example below we will install "gqrx" which is a SDR front end "dump1090" which is used for processing ADS-B aircraft signals.

What do you need?

Basically all that is required is a computer, some decoding software and a DVB-T+DAB+FM USB dongle.

Below is an example of a small dongle that retails for around £20 / $30. These can be picked up from most electrical retailers. A good selection can be found on Amazon.

Linux - SDR Dongle

You will need a computer to install the software to. My SDR setup runs on Ubuntu and Linux Mint (Ubuntu 20.04 LTS and Linux Mint 20.

Install GQRX Software

GQRX is Software Defined Radio that supports a wide range of devices. In this example we will be using the a low-cost RTL2832U based DVB-T dongle.

GQRX has the following features:

Discover devices attached to the computer.
Process I/Q data from the supported devices.
Change frequency, gain and apply various corrections (frequency, I/Q balance).
AM, SSB, CW, FM-N and FM-W (mono and stereo) demodulators.
Special FM mode for NOAA APT.
Variable band pass filter.
AGC, squelch and noise blankers.
FFT plot and waterfall.
Record and playback audio to / from WAV file.
Record and playback raw baseband data.
Spectrum analyzer mode where all signal processing is disabled.
Basic remote control through TCP connection.
Streaming audio output over UDP.

GQRX install Commands

GQRX is now available from the standard Ubuntu and Linux Mint repositories. This means you can either install the software from the Software Centre or from the command line.To install from the command line, issue the command:
sudo apt update && sudo apt install gqrx-sdr

Once installed, you can launch your software by searching for the "GQRX" application on your menu. Once loaded, you will be asked to select your USB dongle from a pull down menu. Select the device that matches your dongle.

Once you have done this, you will be presented with a screen similar to the one below:

Linux - GQRX SDR Radio

In the above example I have selected a frequency of a local radio station on the FM band. The spike is an indication that a signal is present. The image below the spike shows a "waterfall" view of the transmission. A waterfall display is a graphical representation of received signals across a frequency range. The signals are colour coded giving an indication of amplitude or strength over a period of time. A waterfall display is useful for spotting weaker signals. The frequency can be changed by clicking on the numbers. Modulation mode can be changed by clicking on the "mode" menu" (AM/FM/WFM/NBFM/USB/LSB/CW). In the example, I am using Wide Band FM (WFM Stereo).

What can I receive?

The range of frequencies that can be received by the dongle vary from model to model. The model I am testing here covers 24MHz through to 1.766GHz. The table below is a quick guide to what you may be able to receive (Voice). For a more comprehensive list of frequencies search for "scanner frequencies" or "Radio Frequency Guide" on your favourite search engine.

Reception will vary depending on your proximity to the transmitting station and also depending on the antenna you are using. Most SDR dongles come with a very small antenna. These work fine for local stations, however, you can purchase better antennas or use an antenna for a specific frequency. I use a small wide band antenna that covers 25MHz to 2GHz, these antennas are quite cheap and have a magnetic base.

Description - Mode Frequency
12m Amateur Radio (AM/FM/CW/USB/LSB) 24.890 - 24.990MHz
CB Radio (AM/FM/USB/LSB) 26 - 28MHZ
10m Amateur Radio (AM/FM/CW/USB/LSB) 28.400 - 29.700MHz
6m Amateur Radio (AM/FM/CW/USB/LSB) 50 - 52MHZ
Civil Airband (AM) 117.975 - 136.000 MHz
2m Amateur Radio (AM/FM/CW/USB/LSB) 144 - 146MHZ
Marine Band (FM) 156 - 163MHz
PMR (Private Mobile Radio) (NFM) 163 - 185MHZ
Military Airband (AM) 200 - 399MHZ
70 cm Amateur Radio (AM/FM/CW/USB/LSB) 430 - 440MHZ
PMR and Security (NFM) 440 - 470MHZ

Installing Dump1090 - ADS-B Software

What is ADS-B?

ADS-B stands for Automatic Dependent Surveillance Broadcast. This technology is used by aircraft to transmit their location and speed to Air Traffic Controllers (ATC). For more information on ADS-B see the wiki page wiki ADS-B.

Dump1090 is the software used for displaying a graphical representation of aircraft on a google map. The "1090" in the name relates to the frequency that aircraft transmit their positional information on (1090MHz).

To install dump1090, issue the command: sudo apt install dump1090-mutability

Terminal View

Linux - ADSB - Decode