Software Defined Radio

rtl-sdr

rtl-sdr is where almost everyone starts. Those cheap USB TV-tuner dongles built on the Realtek RTL2832U chip turn out to be capable wideband radio receivers, and this package provides the driver and the command-line utilities to use them. On their own the utilities are low-level — they capture raw samples, tune FM, sweep power across a band — but they’re also the foundation every higher-level SDR tool builds on, and they’re the quickest way to confirm your dongle works.

Official-repo package; Security → Software Defined Radio → rtl-sdr. It ships several tools: rtl_test (verify the device), rtl_sdr (raw capture), rtl_fm (FM/AM demodulation), rtl_power (power sweep for spectrum surveys), rtl_adsb (aircraft), rtl_tcp (network server), plus rtl_eeprom and rtl_biast.

The help it prints

rtl_test is the first thing to run — it confirms the dongle is detected:

rtl_test: invalid option -- '-'
rtl_test, a benchmark tool for RTL2832 based DVB-T receivers

Usage:
	[-s samplerate (default: 2048000 Hz)]
	[-d device_index or serial (default: 0)]
	[-t enable Elonics E4000 tuner benchmark]
	[-p[seconds] enable PPM error measurement (default: 10 seconds)]
	[-b output_block_size (default: 16 * 16384)]
	[-S force sync output (default: async)]

And rtl_sdr itself, for raw capture:

rtl_sdr: invalid option -- '-'
rtl_sdr, an I/Q recorder for RTL2832 based DVB-T receivers

Usage:	 -f frequency_to_tune_to [Hz]
	[-s samplerate (default: 2048000 Hz)]
	[-d device_index or serial (default: 0)]
	[-g gain (default: 0 for auto)]
	[-p ppm_error (default: 0)]
	[-b output_block_size (default: 16 * 16384)]
	[-n number of samples to read (default: 0, infinite)]
	[-S force sync output (default: async)]
	[-D enable direct sampling (default: off)]
	filename (a '-' dumps samples to stdout)

Examples

# Confirm the dongle is working
rtl_test

# Listen to a broadcast FM station, pipe audio out through aplay
rtl_fm -f 96.9M -M wbfm -s 200000 -r 48000 | aplay -r 48000 -f S16_LE

# Sweep 400-450 MHz and log power (a quick spectrum survey)
rtl_power -f 400M:450M:1k -i 10 -1 survey.csv

# Capture raw IQ samples to a file for offline analysis
rtl_sdr -f 433.92M -s 2048000 capture.iq

# Serve the dongle over the network for a remote client
rtl_tcp -a 0.0.0.0