Сначала 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)