Как пощупать радиоэфир от 1 МГц до 6 ГГц с помощью open-source проектов

09 авг 2026
8,087
1,722
542
6 дней

HackRF One

Большинство веб-разработчиков привыкли думать о сети в терминах сокетов и HTTP-запросов. Но как только данные улетают в воздух через Wi-Fi, Bluetooth или брелок от ворот, они становятся обыкновенной электромагнитной волной. Долгое время исследование радиоэфира оставалось уделом специалистов с железками за тысячи долларов.

Ситуация изменилась, когда Майкл Оссманн и команда Great Scott Gadgets выпустили HackRF. Они сделали доступную SDR-платформу (Software Defined Radio) и полностью открыли её схемы, прошивку и исходный код.

Что находится в репозитории

Репозиторий greatscottgadgets/hackrf объединяет все наработки проекта. Это единая точка входа для работы с железом и софтом.

Внутри исходников находятся:

Реклама
  • Чертежи печатных плат и схемы компоновки компонентов
  • Исходный код прошивки микроконтроллера LPC43xx и плагинов FPGA
  • Системная C-библиотека libhackrf
  • Набор консольных утилит для управления устройством
  • Исходные файлы документации на Sphinx

Проект написан на C. Документация собирается локально с помощью Sphinx или LaTeX, если нужен готовый PDF-файл.

Погружение в код и утилиты

Софтовая часть проекта делится на два уровня. Первый уровень — библиотека libhackrf. Она берет на себя низкоуровневый обмен данными с USB-контроллером и выдает понятный C API для приема и передачи сэмплов. Второй уровень — консольные утилиты, с которых обычно и начинают работу.

Например, для захвата радиосигнала на частоте 433.92 МГц используется утилита hackrf_transfer:

hackrf_transfer -r capture.raw -f 433920000 -s 8000000

Эта команда записывает эфир с частотой дискретизации 8 мегасэмплов в секунду и сохраняет отсчеты quadrature (I/Q) в бинарный файл. Дальше этот файл можно открыть в программном пакете GNU Radio или Universal Radio Hacker для анализа протокола.

Если нужно просканировать частоты и узнать, какие каналы заняты, пригодится утилита hackrf_sweep:

hackrf_sweep -f 2400:2500 -l 32 -g 20

Она быстро перестраивает частоту синтезатора и выводит данные о мощности сигнала. С ее помощью легко построить спектрограмму помещения за считанные секунды.

Практическая польза для программиста

Зачем программисту без образования радиотехника изучать репозиторий HackRF?

Во-первых, это практический пример того, как строить архитектуру ПО для работы с железом через USB. В коде библиотеки libhackrf видно, как обрабатывать потоки данных в реальном времени без потерь сэмплов.

Во-вторых, репозиторий открывает дорогу к реверс-инжинирингу. С помощью этой платформы разбирают работу радиопультов, датчиков давления в шинах, меток RFID и сигналов спутниковой навигации.

В-третьих, устройство дает возможность писать свои протоколы связи с нуля, используя готовые блоки в GNU Radio или собственный C-код.

Железо и его особенности

У платы есть понятные технические ограничения. Режим работы — полудуплексный. Это означает, что трансивер умеет либо принимать, либо передавать сигнал в конкретный момент времени. Одновременно делать и то и другое плата не умеет.

Разрядность АЦП составляет 8 бит. Для глубокого анализа сложных помех этого мало, но для большинства инженерных задач вполне достаточно. Зато диапазон рабочих частот перекрывает отрезок от 1 МГц до 6 ГГц без необходимости менять модули.

С чего начать изучение

Если хочется погрузиться в проект, стоит начать с официальной документации на Read the Docs. При желании её легко собрать локально из папки docs:

cd docs
make html

Для сборки PDF-версии на Ubuntu понадобится установить пакеты LaTeX:

sudo apt install latexmk texlive-latex-extra
cd docs
make latexpdf

Сообщество проекта живет в Discord и почтовых рассылках. Разработчики честно отмечают в README, что разбор тикетов с меткой технической поддержки занимает до двух недель. Если вы нашли баг или хотите внести вклад в код, заводите Issue на GitHub.

HackRF остается одной из самых понятных и открытых баз для тех, кто хочет выйти за пределы привычного софта и поработать с радиоэфиром напрямую.

🍪 Мы используем файлы cookie и сервис аналитики Яндекс.Метрика, чтобы сайт работал лучше. Продолжая пользоваться devtrends.ru, вы соглашаетесь с обработкой данных согласно Политике конфиденциальности.