Software Defined Radio

hackrf

hackrf provides the tools for the HackRF One, a big step up from an RTL dongle. It covers a very wide frequency range (1 MHz to 6 GHz) and, crucially, it can transmit as well as receive — which makes it a tool for actively probing and replaying signals, not just listening. That capability is powerful and regulated: transmitting is legally restricted almost everywhere, so keep it to shielded lab setups and frequencies you’re licensed for.

Official-repo package; Security → Software Defined Radio → hackrf. It ships hackrf_info (device check), hackrf_transfer (capture and replay), hackrf_sweep (fast spectrum sweep), plus firmware and clock utilities.

The help it prints

hackrf_info confirms the device and its firmware:

hackrf_info version: 2026.01.3
libhackrf version: 2026.01.3 (0.9.2)
No HackRF boards found.

hackrf_transfer is the capture/replay workhorse:

hackrf_transfer: invalid option -- '-'
Usage:
	-h # this help
	[-d serial_number] # Serial number of desired HackRF.
	-r <filename> # Receive data into file (use '-' for stdout).
	-t <filename> # Transmit data from file (use '-' for stdin).
	-w # Receive data into file with WAV header and automatic name.
	   # This is for SDR# compatibility and may not work with other software.
	[-f freq_hz] # Frequency in Hz [1MHz to 6000MHz supported, 0MHz to 7250MHz forceable].
	[-i if_freq_hz] # Intermediate Frequency (IF) in Hz [2170MHz to 2740MHz supported, 2000MHz to 3000MHz forceable].
	[-o lo_freq_hz] # Front-end Local Oscillator (LO) frequency in Hz [84MHz to 5400MHz].
	[-m image_reject] # Image rejection filter selection, 0=bypass, 1=low pass, 2=high pass.
	[-a amp_enable] # RX/TX RF amplifier 1=Enable, 0=Disable.
	[-p antenna_enable] # Antenna port power, 1=Enable, 0=Disable.
	[-l gain_db] # RX LNA (IF) gain, 0-40dB, 8dB steps
	[-g gain_db] # RX VGA (baseband) gain, 0-62dB, 2dB steps
	[-x gain_db] # TX VGA (IF) gain, 0-47dB, 1dB steps
	[-s sample_rate_hz] # Sample rate in Hz (2-20MHz supported, default 10MHz).
	[-F force] # Force use of parameters outside supported ranges.
	[-n num_samples] # Number of samples to transfer (default is unlimited).
	[-S buf_size] # Enable receive streaming with buffer size buf_size.
	[-B] # Print buffer statistics during transfer
	[-c amplitude] # CW signal source mode, amplitude 0-127 (DC value to DAC).
	[-R] # Repeat TX mode (default is off) 
	[-b baseband_filter_bw_hz] # Set baseband filter bandwidth in Hz.
	Possible values: 1.75/2.5/3.5/5/5.5/6/7/8/9/10/12/14/15/20/24/28MHz, default <= 0.75 * sample_rate_hz.
	[-C ppm] # Set Internal crystal clock error in ppm.
	[-H] # Synchronize RX/TX to external trigger input.

Examples

# Verify the device and firmware
hackrf_info

# Capture at 433.92 MHz to a file
hackrf_transfer -r capture.iq -f 433920000 -s 2000000

# Fast sweep across a range (spectrum survey)
hackrf_sweep -f 400:450

# Replay a previously captured file (transmit — lab use only, licensed frequencies)
hackrf_transfer -t capture.iq -f 433920000 -s 2000000 -x 20