i SCAN RADIO SIGNAL WITH RTL-SDR – All things in moderation


RTL-SDR is a very cheap ~$25 USB dongle that can be used as a computer based radio scanner for receiving live radio signals in your area (no internet required). Depending on the particular model it could receive frequencies from 500 kHz up to 1.75 GHz. Most software for the RTL-SDR is also community developed, and provided free of charge.


The origins of RTL-SDR stem from mass produced DVB-T TV tuner dongles that were based on the RTL2832U chipset. With the combined efforts of Antti Palosaari, Eric Fry and Osmocom (in particular Steve Markgraf) it was found that the raw I/Q data on the RTL2832U chipset could be accessed directly, which allowed the DVB-T TV tuner to be converted into a wideband software defined radio via a custom software driver developed by Steve Markgraf.

Over the years since its discovery RTL-SDR has become extremely popular and has democratized access to the radio spectrum. Now anyone including hobbyists on a budget can access the radio spectrum. It’s worth noting that this sort of scanner capability would have cost hundreds or even thousands of dollars just a few years ago. The RTL-SDR is also sometimes referred to as RTL2832U, DVB-T SDR, DVB-T dongle, RTL dongle, or the “cheap software defined radio”.

Radio components such as modulators, demodulators and tuners are traditionally implemented in hardware components. The advent of modern computing and analogue to digital converters allows most of these traditionally hardware based components to be implemented into software instead. Hence, the term software defined radio. This enables easy signal processing and thus cheap wide band scanner radios to be produced.

The RTL-SDR can be used as a wide band radio scanner. Applications include:

  • Use as a police radio scanner.
  • Listening to EMS/Ambulance/Fire communications.
  • Listening to aircraft traffic control conversations.
  • Tracking aircraft positions like a radar with ADSB decoding.
  • Decoding aircraft ACARS short messages.
  • Scanning trunking radio conversations.
  • Decoding unencrypted digital voice transmissions such as P25/DMR/D-STAR.
  • Tracking maritime boat positions like a radar with AIS decoding.
  • Decoding POCSAG/FLEX pager traffic.
  • Scanning for cordless phones and baby monitors.
  • Tracking and receiving meteorological agency launched weather balloon data.
  • Tracking your own self launched high altitude balloon for payload recovery.
  • Receiving wireless temperature sensors and wireless power meter sensors.
  • Listening to VHF amateur radio.
  • Decoding ham radio APRS packets.
  • Watching analogue broadcast TV.
  • Sniffing GSM signals.
  • Using rtl-sdr on your Android device as a portable radio scanner.
  • Receiving GPS signals and decoding them.
  • Using rtl-sdr as a spectrum analyzer.
  • Receiving NOAA weather satellite images.
  • Listening to satellites and the ISS.
  • Radio astronomy.
  • Monitoring meteor scatter.
  • Listening to FM radio, and decoding RDS information.
  • Listening to DAB broadcast radio.
  • Listening to and decoding HD-Radio (NRSC5).
  • Use rtl-sdr as a panadapter for your traditional hardware radio.
  • Decoding taxi mobile data terminal signals.
  • Use rtl-sdr as a high quality entropy source for random number generation.
  • Use rtl-sdr as a noise figure indicator.
  • Reverse engineering unknown protocols.
  • Triangulating the source of a signal.
  • Searching for RF noise sources.
  • Characterizing RF filters and measuring antenna SWR.
  • Decoding Inmarsat STD-C EGC geosynchronous satellites.
  • Listening to the ISS (International Space Station).


The rtl-sdr code can be checked out with:

git clone git://git.osmocom.org/rtl-sdr.git

You have to install development packages for libusb1.0 and can either use cmake or autotools to build the software.

cd rtl-sdr/
mkdir build
cd build
cmake ../
sudo make install
sudo ldconfig

In order to be able to use the dongle as a non-root user, you may install the appropriate udev rules file by calling cmake with -DINSTALL_UDEV_RULES=ON argument in the above build steps.


Building with autotools

cd rtl-sdr/
autoreconf -i
sudo make install
sudo ldconfig

The built executables (rtl_sdr, rtl_tcp and rtl_test) can be found in rtl-sdr/src/.

In order to be able to use the dongle as a non-root user, you may install the appropriate udev rules file by calling

sudo make install-udev-rule


IMSI-catcher is a project on GitHub. This program shows you IMSI numbers, country, brand and operator of cellphones around you. Link: https://github.com/Oros42/IMSI-catcher


git clone https://github.com/Oros42/IMSI-catcher.git
sudo apt install python-numpy python-scipy python-scapy

Order to install gr-gsm for Debian Testing (10) and Ubuntu 18.04+ :
See https://osmocom.org/projects/gr-gsm/wiki/Installation


In terminal 1 :

python scan-and-livemon

This step can take a few minutes to get started, as it first run grgsm_scanner to find nearby base stations and ask grgsm_livemon_headless to receive the signal from the strongest signals.

In terminal 2

python simple_IMSI-catcher.py
Tags: , , ,

Leave a Reply