M
Update SDR guides and fix Sphinx warnings for release
Fix Sphinx build errors:
- Add missing blank lines in rtlsdr.rst code-block directives
- Rename duplicate label in examples/sdr/index.rst
- Fix field list indentation in usrp.py and hackrf.py docstrings
Update SDR setup guides (all guides now cover both pip/venv and Radioconda):
- rtlsdr: switch to rtl-sdr-blog fork (required for rtlsdr_set_dithering
symbol), add pyrtlsdr==0.3.0 and setuptools==69.5.1 version pinning,
preserve Radioconda blacklist and udev symlink paths alongside new steps
- pluto: simplify primary path to apt install libiio, add Avahi network
discovery note, preserve Radioconda udev symlink as alternative
- hackrf: note out-of-box support, preserve Radioconda udev symlink
- blade: note no extra Python packages needed, preserve Radioconda udev symlinks
- usrp: add build-from-source path for pip/venv users with cmake flags,
Python binding copy step, and version mismatch warning; keep conda install
as primary option; preserve Radioconda udev symlink
- thinkrf: add lib2to3 install step, Python <=3.12 restriction, and full
Python 3 patching command to replace internal script reference
Update copyright year to 2026 in conf.py
2026-04-21 12:29:18 -04:00
|
|
|
.. _hackrf:
|
|
|
|
|
|
|
|
|
|
HackRF
|
|
|
|
|
======
|
|
|
|
|
|
|
|
|
|
The HackRF One is a portable and affordable software-defined radio developed by Great Scott Gadgets. It is an
|
|
|
|
|
open source hardware platform that is designed to enable test and development of modern and next generation
|
|
|
|
|
radio technologies.
|
|
|
|
|
|
|
|
|
|
The HackRF is based on the Analog Devices MAX2839 transceiver chip, which supports both transmission and
|
|
|
|
|
reception of signals across a wide frequency range, combined with a MAX5864 RF front-end chip and a
|
|
|
|
|
RFFC5072 wideband synthesizer/VCO.
|
|
|
|
|
|
|
|
|
|
Supported models
|
|
|
|
|
----------------
|
|
|
|
|
|
|
|
|
|
- **HackRF One:** The standard model with a frequency range of 1 MHz to 6 GHz and a bandwidth of up to 20 MHz.
|
|
|
|
|
- **Opera Cake for HackRF:** An antenna switching add-on board for HackRF One that is configured with command-line software.
|
|
|
|
|
|
|
|
|
|
Key features
|
|
|
|
|
------------
|
|
|
|
|
|
|
|
|
|
- **Frequency Range:** 1 MHz to 6 GHz.
|
|
|
|
|
- **Bandwidth:** 2 MHz to 20 MHz.
|
|
|
|
|
- **Connectivity:** USB 2.0 interface with support for power, data, and firmware updates.
|
|
|
|
|
- **Software Support:** Compatible with GNU Radio, SDR#, and other SDR frameworks.
|
|
|
|
|
- **Onboard Processing:** ARM-based LPC4320 processor for digital signal processing and interfacing over USB.
|
|
|
|
|
|
|
|
|
|
Hackability
|
|
|
|
|
-----------
|
|
|
|
|
|
|
|
|
|
.. todo::
|
|
|
|
|
|
|
|
|
|
Add information regarding HackRF hackability
|
|
|
|
|
|
|
|
|
|
Limitations
|
|
|
|
|
-----------
|
|
|
|
|
|
|
|
|
|
- Bandwidth is limited to 20 MHz.
|
|
|
|
|
- USB 2.0 connectivity might limit data transfer rates compared to USB 3.0 or Ethernet-based SDRs.
|
|
|
|
|
|
|
|
|
|
Set up instructions (Linux)
|
|
|
|
|
---------------------------
|
|
|
|
|
|
|
|
|
|
HackRF is supported out of the box after installing RIA Toolkit OSS.
|
|
|
|
|
|
|
|
|
|
1. Ensure ``libhackrf`` is installed at the system level. On most Ubuntu installations this is already
|
|
|
|
|
present. If not:
|
|
|
|
|
|
|
|
|
|
.. code-block:: bash
|
|
|
|
|
|
|
|
|
|
sudo apt install libhackrf-dev
|
|
|
|
|
|
|
|
|
|
2. Install udev rules to allow non-root device access:
|
|
|
|
|
|
|
|
|
|
For most users:
|
|
|
|
|
|
|
|
|
|
.. code-block:: bash
|
|
|
|
|
|
|
|
|
|
sudo udevadm control --reload
|
|
|
|
|
sudo udevadm trigger
|
|
|
|
|
|
|
|
|
|
For **Radioconda** users, create a symlink from your conda environment instead:
|
|
|
|
|
|
|
|
|
|
.. code-block:: bash
|
|
|
|
|
|
|
|
|
|
sudo ln -s $CONDA_PREFIX/lib/udev/rules.d/53-hackrf.rules /etc/udev/rules.d/53-radioconda-hackrf.rules
|
|
|
|
|
sudo udevadm control --reload
|
|
|
|
|
sudo udevadm trigger
|
|
|
|
|
|
|
|
|
|
Make sure your user account belongs to the ``plugdev`` group in order to access your device:
|
|
|
|
|
|
|
|
|
|
.. code-block:: bash
|
|
|
|
|
|
|
|
|
|
sudo usermod -a -G plugdev <user>
|
|
|
|
|
|
|
|
|
|
.. note::
|
|
|
|
|
|
|
|
|
|
You may have to restart your system for group membership changes to take effect.
|
|
|
|
|
|
|
|
|
|
Further information
|
|
|
|
|
-------------------
|
|
|
|
|
|
|
|
|
|
- `Official HackRF Website <https://greatscottgadgets.com/hackrf/>`_
|
|
|
|
|
- `HackRF Project Documentation <https://hackrf.readthedocs.io/en/latest/>`_
|
|
|
|
|
- `HackRF Software Installation Guide <https://hackrf.readthedocs.io/en/latest/installing_hackrf_software.html>`_
|
|
|
|
|
- `HackRF GitHub Repository <https://github.com/greatscottgadgets/hackrf>`_
|
|
|
|
|
- `HackRF Setup with Radioconda <https://github.com/radioconda/radioconda-installer?tab=readme-ov-file#hackrf>`_
|