Ранее в этом месяце сообщество увидело, как скромный ESP32-S3 можно превратить в передатчик и приёмник SDR, а затем разработчик под ником h0m3us3r выпустил проект w1700k-sdr, превращающий Wi-Fi 7 роутер Gemtek W1700K в широкополосный SDR-приёмник.
Проект с открытым исходным кодом LR2021-SDR за авторством Сэмюэла Рейнольдса (SAMS0N1TE) следует тем же принципам и превращает LoRa-трансивер Semtech LR2021 в программно-определяемую радиосистему (SDR), способную принимать сигналы в диапазоне от 100 МГц до 2,74 ГГц. Используя недокументированную команду в ПЗУ чипа, проект открывает доступ к «сырым» 16-битным I/Q-отсчётам, что позволяет программно декодировать цифровой голос P25 Phase 1, пейджинговые сообщения POCSAG и аналоговые ЧМ-сигналы без внешнего SDR-свистка.
Ключевые возможности прошивки LR2021-SDR:
Протестированный диапазон приёма LR2021 SDR — от 100 МГц до 2,74 ГГц (каждая точка — реальный сигнал, смещавшийся при перестройке приёмника; затенённые области — диапазоны, обещанные в даташите)
- Поддерживаемое оборудование — Semtech LR2021 с ПЗУ версии 1.24; вариант SX1262 для доступа к «сырым» I/Q несовместим.
- Диапазон приёма — от 100 МГц до 2,74 ГГц (по результатам экспериментов), что выходит за рамки указанных в даташите полос 150–960 МГц и 1,5–2,5 ГГц.
- Диапазон передачи — от 100 МГц до 2,74 ГГц (по результатам экспериментов), также шире заявленных в даташите полос.
- Захват I/Q — 16-битные отсчёты I и Q по SPI, с чистыми короткими захватами до 250 000 комплексных отсчётов в секунду.
- Непрерывный приём — 125 000 отсчётов/с на протяжении до 391 секунды без зафиксированных потерь FIFO и пропусков блоков.
- Декодирование сигналов — цифровой голос P25 Phase 1, пейджинговые сообщения POCSAG и аналоговая ЧМ через LakeShark.
- Bluetooth LE — приём рекламных пакетов BLE 1M на каналах 37, 38 и 39 с помощью встроенного пакетного движка BLE.
- Запись — «сырые» I/Q-захваты для офлайн-анализа, декодирования и воспроизведения, включая триггерные записи с предзахватом отсчётов.
В обычном режиме LR2021 работает с модуляциями LoRa, FSK, FLRC и другими, передавая декодированные пакеты на хост-процессор. Проект LR2021-SDR обходит штатный режим с помощью недокументированной команды ПЗУ, которая открывает доступ к «сырому» сигналу основной полосы. Процессор затем обрабатывает I/Q-отсчёты программно, что даёт возможность принимать сигналы, не поддерживаемые стандартным пакетным интерфейсом чипа напрямую.
Разработчик протестировал приёмник во всём диапазоне от 100 МГц до 2,74 ГГц, используя гармоники тактового генератора платы и отдельные сигналы, сгенерированные HackRF One внутри экранированного корпуса. Тесты подтвердили приём на частотах 100 МГц, 1,3 ГГц, 2,6 ГГц и 2,74 ГГц. Однако измерения проводились на единственной плате, поэтому результаты не устанавливают калиброванную чувствительность приёмника и не гарантируют такое же покрытие частот на другом оборудовании.
Односекундная запись вызова на частоте 154,785 МГц. Эти же отсчёты при офлайн-декодировании дали 27 голосовых кадров IMBE
Также была проверена непрерывная запись I/Q на скорости 125 000 отсчётов в секунду: три сессии длились до 391 секунды без потерь FIFO и отбраковки блоков. Короткие захваты на скорости до 250 000 отсчётов в секунду тоже работали, однако более высокие значения — 500 000 и 1 000 000 отсчётов в секунду — вызывали переполнение FIFO, поскольку интерфейс SPI на 16 МГц не успевал передавать данные.
LR2021-SDR поддерживает и экспериментальную передачу сигналов, включая тестовые голосовые сигналы P25, данные с датчика температуры и сигналы дистанционного управления OOK/FSK. В одном из тестов отдельный приёмник успешно декодировал 72 голосовых кадра P25 и восстановил исходный тестовый тон. Другие опыты включали отправку данных с датчика температуры, принятых утилитой rtl_433, и воспроизведение сигналов пульта, декодированных Flipper Zero. Пока передача ограничена короткими пакетами, а непрерывная передача и поддержка «живого» голоса ещё в разработке.
Один пакет из триггерного I/Q-рекордера в LakeShark, декодированный офлайн: 2-FSK на 2400 бод, синхрослово D391 D391, 4-байтовая полезная нагрузка, контроль CRC-16.
LakeShark (использованная выше) — ещё один проект прошивки с открытым исходным кодом того же автора, превращающий LilyGO T-Display P4 в карманный SDR-сканер с внешним RTL-SDR-свистком. С появлением LR2021-SDR стал возможен захват «сырых» I/Q-данных напрямую со встроенного трансивера Semtech LR2021, что позволяет LakeShark принимать и декодировать голос P25, сообщения POCSAG и аналоговую ЧМ без внешнего свистка.
Репозиторий проекта на GitHub включает Си-библиотеку под лицензией GPL-3.0, автономную прошивку захвата для ESP32-P4, инструменты на Python, инструкции по сборке и подробные результаты тестов. Пользователи могут установить LakeShark для живого декодирования и работы «на ходу» либо воспользоваться автономной прошивкой, чтобы захватывать I/Q-отсчёты по USB для анализа на компьютере. Проект остаётся экспериментальным, и для него требуется плата с чипом LR2021 и подходящей антенной.
















