Сначала WEB-SDR работал на raspberry pi 4 и приемнике boss sdr (клоне SDRPlay RSP1a). Использовался готовый образ SD карточки Openwebrx для RPi4.


Практика показала что полоса 8 мгц сжирает 55% мощности для первого клиента + 15% для каждого следующего. То есть 4 клиента, дальше лаги.

Посему решено было поставить миникомпьютер помощнее и дешевле (Rockpi 4a на rk3399) и купить несколько RTL-SDR и выбрать на них наиболее интересные участки кв диапазона шириной по 2,5мгц. На входе стоит апконвертер, его выход идет на трансформаторный делитель на 3 приемника. На данный момент физически подключено 2 РТЛки (что меняет сопротивление нагрузки смесителя и разбалансирует его, но WHO GIVES A SHIT?).








Поскольку RTL-SDR идет с дефолтным серийником 00000001 то при запуске нескольких приемников возникают проблемы.
Можно записать серийники прямо через консоль лнукса на одноплатнике командой rtl_eeprom -s XXXXXXX (x-серийный номер).

В винде можно сменить серийник с помощью rtl1090:
Создаем ярлык для программы, заходим в свойства ярлыка и в поле "объект" дописываем после пробела /EEPROM , сохраняем и запускаем.


Жмыхаем старт






Забиваем приемнику серийник (желательно и в старшх разрядах что-то забть), жмем continue и еще дальше несколько раз "ОК".

Либо на одноплатнике втыкая по одному и забивая командой rtl_eeprom -s XXXXXXXX
Либо если воткнуты через хаб то
rtl_eeprom -d n -s XXXXXXXX где n - порядковый номер, начинается с нуля


И все. Можем пользоваться несколькими одновременно.



Настройка на одноплатнике не совместимом с raspberry pi

Нужен curl
sudo apt install curl

ставим докер
curl -sSL https://get.docker.com | sh

ставим OpenWebRx
sudo docker pull jketterl/openwebrx-full:stable
sudo docker volume create openwebrx-settings

Отключаем мешающие драйвера. Редактируем файл
sudo nano /etc/modprobe.d/blacklist.conf

добавляем в конец строчки
blacklist dvb_usb_rtl28xxu
blacklist sdr_msi3101
blacklist msi001
blacklist msi2500
blacklist hackrf
выход из редактора - Ctrl+O, Enter - сохранить файл, Ctrl+Х закрыть редактор

Чтобы приемник запускался автоматом после включения одноплатника достаточно ввести один раз
sudo docker run --restart always --name OPENWEBRX --device /dev/bus/usb -p 8073:8073 -v openwebrx-settings:/var/lib/openwebrx jketterl/openwebrx-full:stable

перезагружаем
sudo reboot

создаем аккаунт для веб-интерфейса приемника (доступ к настройкам на веб-странице радио)
sudo docker exec -it OPENWEBRX bash
python3 openwebrx.py admin adduser username

На Rock Pi 4 A rtl-sdr полосой 2.8 МГц первый клиент загружает проц на 11%, каждый следующий - 4%
SDRPlay пока не смог запустить, хотя вроде должен.

Несколько одновременно работающих приемников на одном сервере можно сделать настроив отдельные устройства с разными серийными номерами, создав каждому по одному профилю.

Добавляем устройство, в настройках:



Выбираем rtl-sdr через soapy


В настройках приемника Settings/SDR device settings/Device settingsкаждого приемника нужно добавить параметр device identifier.

Additional optional settings>device id вида serial=xxxxxxxx






Одновременная работа двух приемников на одном сервере.


Переключаются приемники в меню приемника, как ни странно


Прикольная фишка Openwebrx-декодирование любительской цифры (не всей, но есть например экзотическая мода FreeDV - цифровая передача голоса)


При желании можно запустить несколько серверов.

Для второго делаем
sudo docker volume create openwebrx-settings1

sudo docker run --restart always --name OPENWEBRX1 --device /dev/bus/usb -p 8074:8073 -v openwebrx-settings1:/var/lib/openwebrx jketterl/openwebrx-full:stable

sudo docker exec -it OPENWEBRX1 bash
python3 openwebrx.py admin adduser username

27.01.2023 приемник переделан, изменена схема и частота преобразования апконвертера кв, добавлен диплексер кв-укв, поставлены буфрные усилители на укв и после конвертера.






Пути развития.
Ну всегда можно купить киви сдр. 30 мгц полосы, но есть не одно но.

1 демодуляция и отризовка FFT производится FPGA, ресурсы которой не бесконечны. Либо 4 пользователя с панорамой, либо 16 без панорамы, если я не ошибаюсь, с кучей вариантов между этими.
2 Стоит почти 40к на алике. При этом админы nothern utah sdr называют приемник чудовищным. 12 бит на 30 мгц полосы-очень смело.

Есть заманчивый вариант купить rx888 (16 бит 128MSPS) и подключить к Openwebrx, но даже для одного пользователя работа приемника потребует чудовищных вычислительных ресурсов, а веб-сдр пользуется обычно не один человек. Хотя стоимость rx888 (12к) плюс какой-нибудь хуанан с серверным камнем, памятью на 16 гигов (от 8к) будут стоить дешевле кивисдр, парадокс!
Но есть еще один минус у rx888. Дров под линукс нет, и с веб-сдр его не скрестить никак. Да и сам вебсдр написан не очень эффективно.


Судя по всему наиболее рациональный вариант сейчас-накупить дешевых клонов rsp1a (штук 6) благо они около 1.1к стоят на алике (были вообще по 700), вот таких:

И воткнуть их через диплексеры с полосой по 6 мгц (у них разрядность зависит от полосы, 10 мгц вообще на 8 бит работает), минус по полмегагерца на скаты встроенных в тюнер фильтров, в итоге 5 мгц полосы на приемник, итого 6 радио перекроют весь кв. 7 тысяч на приемник, плюс на сервер какой-то дешевый пк.

Интересная страничка старого вебсдра, админы описывают железо Northern Utah WebSDR - Landing Page (sdrutah.org)