Если SDR приёмник подключается к rtl_tcp, который запущен на Raspberry PI 3 Model B через Wi-Fi сеть (эта модель поддерживает только 2.4 ГГц Wi-Fi), то её скорости иногда не хватает чтобы принимать сигнал без запинок. Решил попробовать OpenWebRX+ чтобы декодирование I/Q сигнала выполнялось локально на Raspberry а по сети передавалось меньше данных.
Записал образ Debian 13 для Raspberry на microSD карту которая подключена через USB считыватель и видна в системе как /dev/sda
curl -fsSLO https://cloud.debian.org/images/cloud/trixie/daily/latest/debian-13-raspi-arm64-daily.tar.xz tar -xzf debian-13-raspi-arm64-daily.tar.xz sudo dd if=disk.raw of=/dev/sda bs=10M oflag=direct status=progress
После записи образа установил microSD карту в одноплатник, подключил проводную сеть, клавиатуру и монитор и загрузился в систему (при первой загрузке попросит задать пароль для root пользователя и часовой пояс).
Далее поставил минимальный набор пакетов, настроил имя хоста, локаль и отключил проверку дубликатов IP адресов в Network Manager.
sudo apt --update install network-manager openssh-server openssh-client locales vim less echo pi3 | sudo tee /etc/hostname echo '127.0.1.1 pi3.local pi3' | sudo tee -a /etc/hosts sudo hostname -F /etc/hostname cat << _EOF_ | sudo tee /etc/locale.gen en_US.UTF-8 UTF-8 ru_RU.UTF-8 UTF-8 _EOF_ sudo locale-gen cat <<_EOF_ | sudo tee /etc/NetworkManager/conf.d/50-no-ipv4-dad.conf [connection-dad-default] ipv4.dad-timeout=0 _EOF_ sudo systemctl restart NetworkManager.service
Дальше настроил подключение к Wi-Fi точке через nmtui и установил сервис для управления антенной из SDR приложения.
sudo apt install rtl-sdr curl -fsSLO https://raw.githubusercontent.com/tataranovich/magnetic-loop-antenna/refs/heads/master/magloop-tuner.py curl -fsSLO https://raw.githubusercontent.com/tataranovich/magnetic-loop-antenna/refs/heads/master/magloop-tuner.service sudo mkdir /opt/magloop sudo useradd -r -d /opt/magloop -s /usr/sbin/nologin -G plugdev magloop sudo install -o root -m 644 magloop-tuner.py /opt/magloop/ sudo install -o root -m 644 magloop-tuner.service /etc/systemd/system/ sudo systemctl daemon-reload sudo systemctl enable --now magloop-tuner.service
Последним этапом была установка OpenWebRX+ по инструкции разработчика
sudo apt install gnupg curl -s https://luarvique.github.io/ppa/openwebrx-plus.gpg | sudo gpg --yes --dearmor -o /etc/apt/trusted.gpg.d/openwebrx-plus.gpg echo "deb [signed-by=/etc/apt/trusted.gpg.d/openwebrx-plus.gpg] https://luarvique.github.io/ppa/trixie ./" | sudo tee /etc/apt/sources.list.d/openwebrx-plus.list sudo apt --update install -y openwebrx
После установки нужно зайти на http://pi3:8073/ (pi3 это DNS имя Raspberry в домашней сети) и в настройках задать конфигурацию RTL-SDR приёмника с учётом что он будет доступен через rtl_tcp соединение (127.0.0.1:1234).
Поначалу немного непривычный интерфейс, но быстро привыкаешь. Работает из любого современного браузера включая мобильные.
Есть встроенный декодер цифровых видов связи.
Чтобы появилась возможность устанавливать произвольную частоту в окне приёмника нужно сделать несколько дополнительных настроек:
- Установить галочку в "General Settings / Receiver limits / Allow users to change center frequency"
- Задать пустое значение для "General Settings / Receiver limits / Magic key" (для персональной установки это допустимо, но для публичных стоит задать какое-то значение)
- Переименовать файл
/usr/lib/python3/dist-packages/htdocs/plugins/receiver/init.js.sampleв/usr/lib/python3/dist-packages/htdocs/plugins/receiver/init.js - Добавить плагин frequency_far_jump
Plugins.load(rp_url + '/frequency_far_jump/frequency_far_jump.js');
Из недостатков заметил отстутствие опции удаления пика в центре ("DC remove" в GQRX или "IQ Correction" в SDR++). Обойти это можно задавая центральную частоту в стороне от интересующих сигналов.
Если сравнивать OpenWebRX+ с SDR++ и GQRX, то они по разному настраивают усиление в rtl_tcp:
GQRX
set gain mode 1 set agc mode 0 set gain 86
SDR++
set gain mode 1 set agc mode 0 set tuner gain by index 13
OpenWebRX+
set gain mode 1 set gain 150
SDR++ задаёт усиление из набора значений, которые можно посмотреть в исходниках rtl-sdr, а GQRX/OpenWebRX+ - напрямую устанавливают усиление в десятых долях дБ (например 150 это 15 дБ). Судя по документации на тюнер R820T у него есть возможность плавно регулировать усиление от +1дБ до +48дБ, но я пока не смотрел что именно в железе настраивает команда "set gain".
Теперь что касается требуемой полосы пропускания сети - если подключаться к rtl_tcp на raspberry из SDR++, то скорость передачи около 20 МБит/с, а в случае OpenWebRX+ всего 200 кБит/с!


Комментариев нет:
Отправить комментарий