Я решил продолжить обзор bladeRF 2.0 micro xA9 через рассмотрение списка проектов, которые наиболее ярким образом демонстрируют возможности данного SDR в реальных применениях. Многие из этих вариантов прямо или косвенно базируются и обусловлены возможностями данного SDR.  Перебирая все упоминания проектов с поддержкой bladeRF, я пришел к выводу, что bladeRF 2.0 micro xA9 лучше всего раскрывается там, где нужны не просто прием и декодирование, а широкий захват, передача, full duplex, MIMO, FPGA и кастомные GNU Radio/Soapy/libbladeRF сценарии. Самые сильные и практически ценные направления рассмотрим ниже. Но обо всем по порядку. 

Всем заинтересовавшимся - добро пожаловать под кат =)

⚠️ Заметка об ответственности

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

Общий прием и анализ спектра

Для bladeRF 2.0 micro xA9 задачи приема радиосигнала и анализа спектра являются одной из самых естественных областей применения. В этом классе задач плата дает не только базовую визуализацию эфира в широкой полосе, но и полноценную рабочую среду для наблюдения, измерений, записи и последующего разбора сигналов. Практическая ценность здесь определяется сочетанием широкой полосы, RX/TX, full duplex, 2x2 MIMO, FPGA и нормальной программной интеграции через libbladeRF в GNU Radio, gr-osmosdr или SoapySDR.

Интересно всего выглядит встроенный анализатор спектра gr-osmosdr: 

На начальном уровне bladeRF удобно использовать как широкополосный приемник для обзора диапазона, просмотра спектра и водопада, оценки занятости канала, поиска активных сигналов и записи IQ-данных. Для этого подходят SDRangel, Gqrx, CubicSDR, SigDigger и похожие приложения. Такой сценарий полезен сам по себе, но для этой платы он обычно является только первым шагом.

Дальше устройство можно использовать в режиме исследовательского инструмента. Через GNU Radio, SoapySDR и собственные утилиты его можно включать в измерительные цепочки, собирать flowgraph'ы под конкретную задачу, автоматизировать съем спектральной обстановки, выполнять длительное логирование активности в диапазоне, сравнивать параметры сигналов в разных режимах и строить воспроизводимые стенды. 

Отдельно важен программный стек. Наличие libbladeRF дает прямой доступ к устройству и потокам IQ, gr-bladeRF и gr-osmosdr позволяют быстро включать плату в GNU Radio-сценарии, а SoapyBladeRF открывает путь к широкому набору приложений и сервисных утилит. За счет этого bladeRF можно использовать как в простом GUI-режиме, так и в составе более сложной лабораторной инфраструктуры, где прием, запись, обработка и удаленный доступ являются частями одной системы.

Те, возможности, что предоставляет этот слой во многом определять то, на чем держится значительная часть дальнейших описанных сценариев использования. С проектами вы можете самостоятельно ознакомиться по ссылкам. 

Передача и генерация сигналов

Для bladeRF 2.0 micro xA9 задачи передачи и генерации сигналов являются второй из ключевых практических областей применения. Именно здесь в полной мере используются те возможности, ради которых обычно выбирают устройство такого класса. В результате плата подходит не только для приема и анализа, но и для построения полноценных лабораторных стендов, тестовых радиоканалов и исследовательских сценариев, где требуется формировать собственный сигнал и контролировать параметры его передачи. 

На базовом уровне это включает генерацию простых тестовых сигналов, подачу IQ-потока на передачу, проверку полосы, уровней, частотной настройки и поведения тракта в различных режимах. Для этих задач подходят libbladeRF examples, bladeRF-cli, GNU Radio flowgraph'ы и MATLAB/Simulink-сценарии. Такой режим полезен для отладки DSP-цепочек, проверки трактов приема на другой аппаратуре, лабораторной настройки фильтров, усилителей и антенных решений, а также для учебных стендов, где важно воспроизводимо формировать известный сигнал с заданными параметрами. 

Следующий уровень - это прикладные и исследовательские сценарии, в которых передача используется как часть более сложной системы. Сюда относятся GNU Radio-проекты, official FRS transceiver example, ATSC flowgraph'ы, GPS/GNSS signal generation через gps-sdr-sim и bladeGPS, а также телеком-стенды на базе Yate/YateBTS, srsRAN_4G и других SDR-ориентированных стеков. В таких задачах bladeRF уже работает не как генератор отдельного сигнала, а как программно управляемый радиоинтерфейс, включенный в полноценную систему с обработкой, синхронизацией, логикой протокола и внешней инфраструктурой.

Отдельное значение имеет то, что передача на bladeRF может использоваться в нескольких инженерных режимах. Первый - как инструмент генерации эталонного или тестового RF-сигнала для проверки приемников и DSP-алгоритмов. Второй - как часть двустороннего лабораторного канала, где нужно одновременно передавать и принимать, оценивать задержки, устойчивость синхронизации и поведение системы под нагрузкой. Третий - как основа для исследовательских проектов, в которых важны нестандартные PHY/MAC-эксперименты, работа с собственными waveform'ами, FPGA-обработка или нетипичная конфигурация канала. 

С программной точки зрения этот класс задач хорошо опирается на несколько уровней интеграции. Через libbladeRF можно формировать и подавать на передачу собственные IQ-данные с прямым контролем параметров потока. Через GNU Radio удобно собирать и модифицировать передающие цепочки под конкретные эксперименты. Через SoapySDR и совместимые приложения появляется возможность использовать плату в более универсальной среде, где передача является частью общей SDR-инфраструктуры. Дополнительно FPGA-ориентированные проекты, включая bladeRF-wiphy и специальные reference design'ы, показывают, что xA9 подходит не только для программной генерации сигнала на хосте, но и для более глубокой аппаратно-программной реализации радиосистем.

gps-sdr-sim

gps-sdr-sim используется для генерации GPS baseband signal data streams, которые затем подаются в RF-тракт bladeRF. В официальном Nuand репозитории это сформулировано прямо: проект generates GPS baseband signal data streams, which can be converted to RF using the bladeRF SDR. В практическом плане это инструмент для лабораторного моделирования навигационного сигнала, проверки приемников, тестов алгоритмов позиционирования и воспроизводимых GNSS-экспериментов в экранированной среде.

bladeGPS

bladeGPS решает близкую задачу, но в режиме realtime signal generation. В описании проекта сказано, что это experimental implementation of gps-sdr-sim for real-time signal generation и что код works with bladeRF and has been tested on Windows 10 and Ubuntu 20.04. Для bladeRF это более удобный путь там, где нужен не заранее подготовленный файл baseband, а живая генерация GNSS-сигнала с последующей подачей в радиотракт для лабораторной отладки и тестирования навигационного оборудования.

Yate и YateBTS

Yate и YateBTS переводят bladeRF в класс телеком-стендов, где SDR работает как радиочасть локальной GSM-системы. В официальной wiki Nuand этот сценарий описан как quick guide on creating a test setup of Yate and YateBTS with the bladeRF с целью проверить basic "Network-in-a-Box" functionality by placing a call or sending an SMS message between two devices. На странице поддержки Nuand отдельно указано, что для bladeRF 2.0 micro используется libbladeRF based YateBTS RC-3 и требуется конкретный рабочий набор версий. В прикладном смысле это лабораторная мини-сеть GSM, где bladeRF выполняет роль SDR-фронтенда для базовой станции.

srsRAN_4G

srsRAN_4G относится к LTE-стендам и используется там, где bladeRF нужен как радиоинтерфейс для eNB, UE и связанных лабораторных сценариев. В документации srsRAN 4G проект позиционируется как полноценный 4G software suite, а в issue tracker есть реальные примеры запуска srsenb и srsue с bladeRF, а также обсуждения сборки bladeRF driver и поведения radio path на bladeRF 2.0 micro. В прикладном плане это уже не генерация отдельного сигнала, а работа в составе LTE-стека с синхронизацией, attach procedure, RF-конфигурацией и внешней core-network инфраструктурой. Для такого стенда обычно требуется больше ручной настройки, чем в GNU Radio-примерах или в YateBTS.

bladeRF-wiphy

bladeRF-wiphy - это один из самых интересных для меня проектов из общего списка - открытый IEEE 802.11-совместимый SDR-модем на VHDL, который работает прямо в FPGA платы bladeRF 2.0 micro xA9. Смысл проекта в том, что на FPGA реализуются не абстрактные DSP-блоки, а полноценный Wi-Fi PHY: модуляция и демодуляция 802.11 пакетов происходят на самой плате, а между FPGA и libbladeRF передаются уже пакеты, а не непрерывный поток сырых IQ-отсчетов. В связке с Linux mac80211 это позволяет превратить bladeRF 2.0 micro xA9 в программно-определяемую Wi-Fi точку доступа, а в релизном анонсе Nuand прямо указано, что проект поддерживает режимы access point и client.

Главная инженерная идея проекта связана с задержками и таймингом. Для IEEE 802.11 этого нельзя считать второстепенной деталью: после корректного приема кадра устройство должно начать передачу ACK примерно через 10 мкс. Nuand прямо объясняет, что такую реакцию трудно или практически невозможно обеспечить, если гнать сырые IQ через USB/PCIe, обрабатывать их на CPU и возвращать ответ обратно в радиотракт. Поэтому bladeRF-wiphy построен как FPGA-доминирующий модем, где критичная по времени часть работает с детерминированной задержкой и с точностью до тактов, а не зависит от общей нагрузки хоста и задержек при передачи в шине. Для изучения проекта это, пожалуй, самая важная мысль: перед вами не еще один Wi-Fi анализатор на SDR, а пример того, как в SDR-платформе реализуют реальный PHY под жесткие временные требования.

По структуре проект организован довольно прозрачно. На верхнем уровне находится модуль wlan_top, под которым собраны два основных блока: wlan_tx и wlan_rx. На том же верхнем уровне находятся очереди пакетов, логика DCF и механизмы ACK. wlan_top принимает уже декодированные пакеты от wlan_rx, переводит их в интерфейс обмена через libbladeRF и управляет передачей через wlan_tx с учетом правил доступа к среде, включая SIFS, DIFS и exponential backoff. Внутри передающего и приемного трактов дальше идут уже типовые для 802.11 PHY узлы: scrambler, encoder, interleaver, modulator, IFFT/FFT, equalizer, demodulator, depuncturer, Viterbi decoder, descrambler и framer. В документации Nuand это описано достаточно подробно, и именно поэтому bladeRF-wiphy удобен для изучения как живая, читаемая реализация Wi-Fi PHY, а не как черный ящик.

С точки зрения возможностей проект уже интересен сам по себе. В README перечислены FPGA-based PHY receiver and transmitter, Linux mac80211 MAC integration, RX/TX monitor mode support, hardware DCF для быстрого ACK и equalizer с Zero Forcing и опциональным DFE. По поддерживаемым схемам там указаны DSSS-CCK и OFDM 20 MHz, а по скоростям OFDM перечислены режимы от 6 до 54 Мбит/с. Для практического использования это означает, что bladeRF-wiphy годится не только как демонстрация "Wi-Fi на SDR", а как основа для лабораторных экспериментов с реальными 802.11 кадрами, PHY/MAC взаимодействием, monitor mode и исследованием работы канального доступа. Для изучения особенно полезно то, что в одном проекте собраны и пакетная логика, и цифровая модуляция, и реальные ограничения по таймингам, и интеграция с Linux wireless stack.

В использовании bladeRF-wiphy состоит не только из одного FPGA-образа. Nuand описывает целый рабочий набор компонентов: bladeRF, bladeRF-wiphy, bladeRF-linux-mac80211, bladeRF-mac80211_hwsim, hostap, а при необходимости еще bladeRF-net и DHCP-сервис для клиентов. Типовой запуск включает загрузку kernel module, конфигурацию сетевого интерфейса, загрузку FPGA image, запуск bladeRF-linux-mac80211 и затем hostapd. То есть проект живет на стыке нескольких уровней: FPGA-модем, пользовательский bridge к libbladeRF, интеграция с mac80211 и обычный Linux user space для работы точки доступа. В этом его практическая ценность: проект не замыкается внутри HDL, а доводит SDR до состояния системного сетевого устройства.

Для исследовательского применения у проекта есть еще одна сильная особенность: он хорошо подходит для поэтапного изучения. Его можно рассматривать как reference design для FPGA-реализации PHY, как пример интеграции SDR с Linux mac80211, как учебный материал по OFDM/DSSS трактам и как базу для собственных модификаций. Nuand отдельно дает не только инструкции по сборке и запуску, но и guide по simulation, а сторонние инструменты вроде Kismet умеют видеть устройство с WiPhy FPGA image как отдельный тип источника bladerf-wiphy. Это делает проект удобным и для чтения кода, и для воспроизведения стенда, и для практических экспериментов с monitor mode, packet capture и Wi-Fi PHY/MAC behavior на SDR-платформе.

GNU Radio эксперименты

Для bladeRF 2.0 micro xA9 среда GNU Radio является одной из наиболее естественных и практически значимых областей применения. Именно здесь плата раскрывается как универсальный программно-управляемый радиоинтерфейс, который можно включать в самые разные DSP-цепочки без привязки к одному готовому приложению или заранее заданному сценарию. В этом классе задач ценность bladeRF определяется сочетанием широкой полосы, RX/TX, full duplex, 2x2 MIMO, доступа через libbladeRF, наличия gr-bladeRF и совместимости через gr-osmosdr.

На базовом уровне GNU Radio дает для bladeRF удобную рабочую среду для сборки и проверки собственных flowgraph'ов. Сюда относятся прием и передача IQ-потоков, спектральный анализ, фильтрация, ресемплинг, демодуляция, генерация тестовых сигналов, запись baseband-данных и построение разнообразных экспериментов и лабораторных сценариев. В таком режиме устройство удобно использовать как основу для учебных стендов, отладки DSP-цепочек и проверки гипотез на реальном радиоканале.

Практическая ценность этой связки хорошо видна при использовании целой кучи официальных и прикладных примеров. gr-bladeRF или libbladeRF дают прямую интеграцию платы в GNU Radio. gr-osmosdr расширяет набор доступных проектов и позволяет подключать bladeRF к более широкому кругу flowgraph'ов и внешних модулей. Official rx_gui подходит для быстрой проверки тракта и начальной настройки. Official FRS transceiver показывает, как на базе GNU Radio можно собрать двусторонний радиоканал с элементами реального прикладного сценария. Например, проекты вроде argilo/sdr-examples полезны для работы с широкополосной передачей и тестовыми телевизионными или цифровыми сигналами.

Следующий уровень составляют специализированные GNU Radio-проекты, где bladeRF используется уже не как универсальный источник IQ, а как аппаратная часть конкретной исследовательской или прикладной системы. Сюда относятся OP25 для P25 (APCO P25 Phase 1 and Phase 2 digital voice communications), gr-gsm для GSM-анализа, gr-lora_sdr для LoRa-экспериментов, gr-ieee802-15-4 для low-power wireless протоколов, gr-ieee802-11 для исследовательской работы с 802.11, а также gr-satellites и другие штуки для работы со спутниковыми данными. В этих сценариях GNU Radio выступает не просто графической оболочкой, а полноценной средой конструирования приемников, передатчиков и промежуточных DSP-блоков под конкретную радиотехническую задачу, что позволяет использовать устройство на нескольких уровнях сложности в рамках одной и той же платформы. 

Сначала пользователь может собрать простой flowgraph для приема и записи сигнала. Затем добавить обработку, синхронизацию, декодирование и автоматизацию. После этого перейти к двусторонним схемам, экспериментам с full duplex, двухканальному приему, MIMO или взаимодействию с внешними протокольными стеками. В общем применение ограничено лишь фантазией инженера и ТТХ платы. =) Идём далее.

Аналоговая связь

Для bladeRF 2.0 micro xA9 аналоговая связь остается вполне прикладной областью применения. Здесь речь идет о приеме и, в ряде сценариев, передаче AM, FM, narrow FM, SSB и близких по структуре аналоговых сигналов, где важны удобная настройка тракта, стабильный поток IQ, запись, базовый спектральный анализ и возможность быстро переходить от наблюдения к собственным лабораторным сценариям. В этом классе задач наиболее полезны Gqrx, SDRangel, RTLSDR-Airband, официальный FRS flowgraph от Nuand и набор утилит rx_tools. 

Gqrx подходит для базового и повседневного приема. В официальном описании проекта прямо указана поддержка Nuand bladeRF, а сам Gqrx работает через gr-osmosdr и может использоваться как традиционный AM/FM/SSB приемник или как FFT-only инструмент. Для bladeRF это удобный входной уровень: обзор диапазона, прослушивание аналоговых каналов, проверка занятости частот, запись и первичная оценка сигнала без сложной конфигурации среды. 

SDRangel дает более широкую рабочую среду. В документации проекта есть отдельные input и output plugins именно для BladeRF 2.0 micro на базе LibbladeRF v2, а среди аналоговых модемов перечислены AM, Broadcast FM, DSB, FM, ILS, NTSC, PAL, SSB, VOR. На практике это делает SDRangel удобным инструментом для тех случаев, когда кроме приема нужны анализ, запись, несколько параллельных каналов внутри одного захваченного диапазона, а также лабораторные TX/RX сценарии в одном интерфейсе. 

Для авиационного диапазона и потокового приема голосовых каналов полезен RTLSDR-Airband. В актуальной wiki проекта описан режим работы через SoapySDR, а в сопутствующей документации для контейнерной сборки BladeRF прямо указан в списке поддерживаемого оборудования через SoapySDR. Это делает связку bladeRF + SoapyBladeRF практичным вариантом для VHF airband monitoring, локального или удаленного аудиостриминга и построения простого приемного узла под несколько аналоговых авиационных каналов. 

В общем вариантов в чем можно было бы поюзать данную плату именно в разрезе аналогового применения - достаточно :) идем дальше.

Специфические кейсы применения

bladeRF-adsb

bladeRF-adsb - это специализированный проект Nuand для приема ADS-B, в котором основная обработка перенесена в FPGA самой платы. В описании проекта прямо сказано, что декодер работает в FPGA, а не на CPU, и что user-space утилита передает уже декодированные сообщения в dump1090-сервер на порту 30001 для визуализации и дальнейшей обработки. Для bladeRF 2.0 micro xA9 этот сценарий особенно интересен как пример аппаратного ускорения на FPGA. Здесь плата используется не просто как источник IQ, а как часть законченного приемного тракта, где часть вычислений уже вынесена из хоста. Такой подход уместен для постоянно работающего ADS-B узла, для экспериментов с HDL-ускорением и для обзора возможностей xA9 как платформы под прикладные RF-акселераторы. 

readsb

readsb - это прикладной декодер Mode-S, ADS-B и TIS, рассчитанный на постоянную приемную работу. В описании проекта он представлен как decoder для нескольких типов SDR, а в коде есть отдельный модуль sdr_ubladerf.c для bladeRF 2.0 Micro. На практике readsb используется как обычный приемный узел на 1090 MHz: плата принимает сигнал, программа декодирует пакеты, ведет статистику, отдает данные в карту, сеть или внешние сервисы. Для bladeRF этот вариант удобен тем, что он ориентирован на повседневную эксплуатацию и не требует отдельного HDL-проекта.  

AIS-catcher

AIS-catcher - это современный dual-channel AIS receiver, рассчитанный на прием морских AIS-сообщений и выдачу данных в стандартных форматах, прежде всего NMEA. По сути это готовое прикладное ПО для выделенной задачи: прием двух AIS-каналов, декодирование сообщений, дальнейшая передача или отображение. Для bladeRF такой сценарий выглядит естественно, потому что устройство позволяет строить стабильный приемный AIS-узел с записью, сетевой отдачей данных и длительной работой. В практическом использовании это морской мониторинг, береговой приемный пост, локальный сервер AIS-сообщений или учебный стенд для разбора самого протокола.

gr-ais

gr-ais - это AIS-декодер в форме GNU Radio модуля. Смысл проекта состоит в том, что прием AIS здесь организован как DSP-цепочка, а не как закрытое приложение. Такой подход удобен тогда, когда требуется не только получить готовые сообщения, но и встроить AIS в собственный flowgraph: добавить фильтрацию, параллельную обработку, запись IQ, промежуточные контрольные точки или дополнительные блоки декодирования. Для bladeRF этот сценарий интересен как часть более широкой GNU Radio-среды, где плата используется в составе кастомного приемного тракта под конкретную задачу.

acarsdec

acarsdec - это многоканальный декодер ACARS, ориентированный на прием и разбор авиационных служебных сообщений. Он берет на себя именно прикладную часть задачи: настройку каналов, извлечение пакетов и выдачу уже обработанных сообщений в пригодной для хранения или дальнейшей обработки форме. В связке с bladeRF такой проект подходит для построения авиационного приемного узла, который может работать длительное время, собирать сообщения по нескольким каналам и передавать результат в базы, визуализаторы или собственные аналитические скрипты. Это типичный сценарий специализированного мониторинга, где SDR играет роль радиоинтерфейса, а acarsdec - роль прикладного декодера.

P25

Для P25 практический интерес представляют OP25 и trunk-recorder. OP25 - это open-source проект для приема и декодирования систем APCO P25 на базе SDR и GNU Radio. Он применяется в задачах анализа и мониторинга цифровой профессиональной радиосвязи, где требуется разбор control channel, голосовых каналов и базовой структуры сети. trunk-recorder решает более прикладную задачу: запись вызовов в trunked и conventional radio systems, используя SDR и GNU Radio для захвата широких участков спектра и последующей обработки. В сочетании с bladeRF это дает приемный стенд для P25 и смежных trunking-сценариев, где важны устойчивый wideband прием, запись, разбор событий и длительная работа.

Passive radar

Passive radar - это исследовательский класс задач, в котором система не излучает собственный сигнал, а использует внешние передатчики как источник подсветки и анализирует отражения. В программных проектах этого типа обычно реализуются reference и surveillance каналы, взаимная корреляция, delay-Doppler обработка и отображение результатов. Для bladeRF этот сценарий связан прежде всего с двухканальным приемом и синхронизацией. Плата подходит для лабораторных passive radar систем, где один канал используется как опорный, второй как наблюдательный, а основная логика находится в DSP-цепочке на хосте. Такая конфигурация интересна для учебных и исследовательских стендов по радиолокационной обработке, когерентному приему и анализу отраженных сигналов.

Direction finding

Direction finding и angle-of-arrival задачи относятся к сценарию, где нужно оценивать направление прихода сигнала по фазовой или временной разности между каналами. Для bladeRF этот класс применения выглядит естественно из-за наличия двух приемных трактов в одном устройстве. Проект AoA-Estimation показывает именно такой подход: два канала принимают один и тот же сигнал с двух пространственно разнесенных антенн, после чего по фазовой разности оценивается угол прихода. На практике это лабораторные стенды для AoA, phase comparison, начальных DOA-экспериментов и учебных задач по пространственной обработке сигналов. Здесь bladeRF используется уже не как обычный приемник, а как основа измерительной двухканальной системы.

Спутниковые системы

Для bladeRF 2.0 micro xA9 спутниковые сценарии применения охватывают несколько устойчивых направлений: прием и декодирование метеоспутников, прием телеметрии и данных с любительских спутников, мониторинг спутниковых сетей связи вроде Iridium, а также лабораторные эксперименты с собственными спутниковыми waveform'ами в GNU Radio. 

SatDump

SatDump является одним из самых практичных проектов для спутниковой работы на bladeRF. Сам проект описывается как generic satellite data processing software. В документации SatDump предусмотрены live processing и recording напрямую с SDR, а среди примеров приведены реальные спутниковые pipeline'ы, включая metop_ahrpt с live и offline обработкой baseband. В практическом смысле это означает, что bladeRF можно использовать как универсальный приемный front-end для погодных спутников, HRPT/AHRPT-потоков, части Earth observation downlink'ов и других сценариев, которые SatDump уже умеет разбирать до конечных изображений и продуктов. SatDump закрывает не только прием baseband, но и весь дальнейший путь обработки: запись, декодирование, постобработку и визуализацию. Такой режим особенно удобен для weather satellite reception, когда интересует не просто факт приема сигнала, а получение готового изображения, набора каналов или продукта наблюдения. При этом у этого направления есть и практическое ограничение: разработчики SatDump прямо отмечают, что для некоторых очень широкополосных сигналов, например части новых Metop-SG downlink'ов, прием на BladeRF уже недостаточен по полосе для приемлемого качества.

gr-satellites

gr-satellites относится к более углубленных и низкоуровневых спутниковых инструментов. Это GNU Radio out-of-tree module, который поддерживает telemetry decoders для большого числа Amateur satellites, включая популярные протоколы AX.25, GOMspace, CCSDS-компоненты и другие типовые спутниковые форматы. В описании проекта отдельно сказано, что он умеет не только декодировать кадры, но и собирать файлы, в том числе JPEG-изображения, а также отображать часть телеметрии в человекочитаемом виде. Для bladeRF этот проект полезен там, где требуется не закрытое приложение, а управляемая GNU Radio-среда для приема любительских спутников, CubeSat-телеметрии, студенческих миссий и собственных наземных станций. 

iridium-sniffer

iridium-sniffer закрывает отдельный спутниковый сценарий - мониторинг и декодирование burst'ов сети Iridium. Проект описывается как standalone Iridium satellite burst detector and demodulator written in C и прямо перечисляет BladeRF среди поддерживаемых устройств для live capture. Это делает его одним из самых прямых и прикладных спутниковых проектов для bladeRF: плата используется как приемник L-band burst'ов, а сам декодер берет на себя выделение burst'ов и выдачу iridium-toolkit compatible RAW output. Такой сценарий полезен для исследовательской работы со спутниковыми служебными каналами, анализа burst-структуры, мониторинга активности сети и построения автономных приемных узлов, в том числе на ARM-платформах. 

С практической точки зрения iridium-sniffer интересен еще и своей архитектурой. В отличие от многих старых SDR-проектов, он не тянет за собой обязательную GNU Radio-зависимость и ориентирован на более легковесный путь обработки. Для bladeRF это удобно в тех случаях, когда требуется специализированный приемник под одну задачу, а не большая лабораторная среда. Такой проект хорошо показывает отдельный класс спутниковых применений bladeRF: не получение погодных изображений и не университетская телеметрия, а прием и разбор коротких цифровых burst-передач из коммерческой спутниковой сети.

GNU Radio-проекты для спутниковой связи

Кроме готовых приемных декодеров, bladeRF подходит и для лабораторных спутниковых сценариев в GNU Radio, где задача состоит в формировании или приеме стандартных спутниковых waveform'ов. Показательный пример - gr-dvbs, который прямо описан как software-defined DVB-S transmitter for GNU Radio, а в репозитории отдельно указаны dvbs_tx.grc и standalone Python script именно для bladeRF transmit capable SDR. Такой проект относится уже не к пассивному приему спутников, а к лабораторным экспериментам с DVB-S сигналом, проверке собственной PHY-цепочки, тестированию демодуляторов и учебным стендам по цифровой спутниковой связи. 

Для bladeRF 2.0 micro xA9 этот класс сценариев особенно уместен в тех случаях, когда спутниковая тема рассматривается как задача цифровой связи, а не как готовый приемный сервис. Здесь плата выступает как программно-управляемый передатчик или приемопередающий front-end, а основная логика находится в GNU Radio flowgraph'е. На практике это означает работу с DVB-S и родственными экспериментальными цепочками в экранированной лабораторной среде, с внешним upconverter'ом, фильтрацией и трактом мощности там, где это требуется по частотному плану. 

В качестве заключения

Итак. bladeRF 2.0 micro xA9 по совокупности возможностей следует рассматривать как универсальную SDR-платформу исследовательского и лабораторного класса. Практическая ценность bladeRF 2.0 micro xA9 лучше всего видна в тех сценариях, где требуется не только наблюдение спектра, но и управляемая работа с трактом, синхронизация, двухканальный прием, передача, автоматизация экспериментов и интеграция с внешним программным стеком. Именно поэтому вокруг устройства естественно складываются несколько устойчивых направлений применения: общий прием и анализ спектра, GNU Radio-эксперименты, прикладные декодеры для ADS-B, AIS, ACARS и P25, спутниковые задачи, GNSS-сценарии, лабораторные GSM/LTE-стенды и FPGA-ориентированные проекты.

Отдельную ценность для xA9 дает FPGA-слой. Проекты вроде bladeRF-wiphy показывают, что плата подходит не только для работы с сырым IQ-потоком, но и для реализации законченных радиомодемов с критичными требованиями по таймингу. В bladeRF-wiphy 802.11 пакеты модулируются и демодулируются прямо в FPGA, а интеграция с Linux mac80211 переводит систему на уровень полноценного сетевого интерфейса. Для общего вывода по статье это важный пример, потому что он хорошо показывает масштаб платформы и ее пригодность для глубоких PHY/MAC-экспериментов.

В результате bladeRF 2.0 micro xA9 выглядит как удачная основа для большого числа практических и исследовательских проектов, если пользователю нужна одна платформа с широким диапазоном задач и возможностью постепенно усложнять стенд без смены базового оборудования. Для простых бытовых SDR-задач потенциал устройства будет использован лишь частично. Для лабораторной, учебной и инженерной работы его возможности раскрываются существенно полнее, особенно там, где важны TX, 2x2 MIMO, full duplex, GNU Radio, SoapySDR и FPGA.


Размещайте облачную инфраструктуру и масштабируйте сервисы с надежным облачным провайдером Beget.

Эксклюзивно для читателей Хабра мы даем бонус 10% при первом пополнении.

Воспользоваться