Спасибо Пшемыславу Вчисло (SO5DZ) за написание и публикацию rxx_lora, командного LoRa приемника для устройств RTL-SDR и SDRplay RSP. Пшемыслав отмечает, что он был разработан в духе rtl_fm, поэтому нет необходимости строить или поддерживать графы потоков GNU Radio. Вместо этого это один небольшой бинарный файл на C (rtl_lora или rsp_lora, плюс file_lora для сохраненных I/Q захватов). Декодированные пакеты выводятся в формате JSONL в stdout, так что вы можете передавать их в другие программы.
Пшемыслав пишет:
- Он быстрый. Вся цепочка приема (обнаружение, синхронизация, демодуляция, FEC) работает в десятки и сотни раз быстрее реального времени, в зависимости от параметров PHY и аппаратного обеспечения, конечно.
- Он чувствительный. Я протестировал бинарный файл от начала до конца в условиях AWGN, и он приближается к ~1-2 дБ от идеальной теоретической производительности LoRa. Он легко демодулирует предустановку MediumFast от Meshtastic при -14 дБ SNR. Я также могу подтвердить это на основе реальных наблюдений. Действительные декоды регулярно появляются при -12 до -14 дБ. Я даже видел кадр при -17 дБ SNR, хотя у него был плохой CRC 🙂
- Он стабильный. Он никогда не зависал у меня, кроме случаев, когда я случайно выдернул донгл из USB порта 😉 Он также должен быть стабильным с точки зрения качества программного обеспечения. Я собрал обширный набор контрольных точек качества и тестов, включая тесты на шум, тесты на ранее записанных захватах… Это должно сделать маловероятным, что предстоящее изменение случайно приведет к серьезной регрессии.
- Он не требует много: librtlsdr, FFTW, компилятор C и make. Большинство тех, кто имел дело с RTL-SDR, вероятно, не потребуется устанавливать ни одного пакета сверх того, что у них уже есть. Python и несколько библиотек используются для тестов и дополнительных инструментов, но они не обязательны для нормальной работы.
Приемник реализует стандартный LoRa PHY, поэтому его можно использовать для Meshtastic, LoRaWAN, MeshCore, APRS-over-LoRa и других LoRa сигналов. Включенный Python-скрипт также расшифровывает пакеты Meshtastic с использованием ключей канала по умолчанию или настроенных ключей и выводит их в читаемом виде.
Ядро демодуляции основано на проектах gr-lora и gr-lora_sdr GNU Radio. Код является открытым и распространяется под лицензией GPLv3 и доступен на GitHub. Он работает на Linux, а в README говорится, что macOS “вероятно” также работает. Версия для SDRplay также требует API SDRplay. Для приема Meshtastic он охватывает аналогичную область, что и проект Meshtastic_SDR на основе GNU Radio, о котором мы ранее писали, но с гораздо меньшим объемом.

AI Disclaimer: Пшемыслав отмечает, что улучшения чувствительности были достигнуты благодаря “терпеливому и целенаправленному использованию мощных инструментов ИИ”, и в README говорится, что проект активно использовал ИИ как для кодирования, так и для теоретического исследования.
