HackRF Tools

Great Scott Gadgets provides some commandline tools for interacting with HackRF.
  • hackrf_info Read device information from HackRF such as serial number and firmware version.

  • hackrf_transfer Send and receive signals using HackRF. Input/output files are 8-bit signed quadrature samples.

  • hackrf_sweep, a command-line spectrum analyzer.

  • hackrf_clock Read and write clock input and output configuration.

  • hackrf_operacake Configure Opera Cake antenna switch connected to HackRF.

  • hackrf_spiflash A tool to write new firmware to HackRF. See: Updating Firmware.

  • hackrf_debug Read and write registers and other low-level configuration for debugging.

hackrf_sweep

Usage

[-h] # this help
[-d serial_number] # Serial number of desired HackRF
[-a amp_enable] # RX RF amplifier 1=Enable, 0=Disable
[-f freq_min:freq_max] # minimum and maximum frequencies in MHz
[-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
[-w bin_width] # FFT bin width (frequency resolution) in Hz, 2445-5000000
[-1] # one shot mode
[-N num_sweeps] # Number of sweeps to perform
[-B] # binary output
[-I] # binary inverse FFT output
-r filename # output file

Output fields

date, time, hz_low, hz_high, hz_bin_width, num_samples, dB, dB, ...

Running hackrf_sweep -f 2400:2490 gives the following example results:

Date

Time

Hz Low

Hz High

Hz bin width

Num Samples

dB

dB

dB

dB

dB

2019-01-03

11:57:34.967805

2400000000

2405000000

1000000.00

20

-64.72

-63.36

-60.91

-61.74

-58.58

2019-01-03

11:57:34.967805

2410000000

2415000000

1000000.00

20

-69.22

-60.67

-59.50

-61.81

-58.16

2019-01-03

11:57:34.967805

2405000000

2410000000

1000000.00

20

-61.19

-70.14

-60.10

-57.91

-61.97

2019-01-03

11:57:34.967805

2415000000

2420000000

1000000.00

20

-72.93

-79.14

-68.79

-70.71

-82.78

2019-01-03

11:57:34.967805

2420000000

2425000000

1000000.00

20

-67.57

-61.61

-57.29

-61.90

-70.19

2019-01-03

11:57:34.967805

2430000000

2435000000

1000000.00

20

-56.04

-59.58

-66.24

-66.02

-62.12

Each sweep across the entire specified frequency range is given a single time stamp.

The fifth column tells you the width in Hz (1 MHz in this case) of each frequency bin, which you can set with -w. The sixth column is the number of samples analyzed to produce that row of data.

Each of the remaining columns shows the power detected in each of several frequency bins. In this case there are five bins, the first from 2400 to 2401 MHz, the second from 2401 to 2402 MHz, and so forth.