Результаты поиска по запросу тега: sdr_split_sdr_commander
Июня
2018 года
19
WEBSDR - ч3. Cофт - WebSDR by PA3FWM /Lubuntu / AFRDRI SDR-NET
2018 года
Да-да... Не прошло и года, как мне все же ответил PA3FWM и скинул ссылку на скачивание софта. С софтом идет подробная инструкция как его ставить и в целом там проблем нет, остановлюсь на двух нюансах.
Первое - несмотря на заполнение файла /cfg/websdr.cfg после запуска страница с панорамой выглядит незаполненной, нет данных с located in, operated by итд
Так вот что бы они появились, их нужно запонить руками. И лежит файлик по пути /dist11/pub2/index.html
Второе - приложение websdr от PA3FW написано не совсем корректно. При запуске оно КАТЕГОРИЧЕСКИ требует libpng12. И то, что на дворе 2018, либа имеет совсем другую обновленную версию (кажется 1.6), мир использует libpng-dev. Это никого не волнует. Попытка обойти дурацкое требование методом линковки на версию посвежее - ничего не дала, после того как приложение находит библиотеку, оно проверяет версию. И если версия не 12, то начинает истерить и материться. Так что, только libpng12, только хардкор!(с)
sudo nano /etc/apt/sources.list
#### Manually Added sources ## source for libpng12-0 package deb http://mirrors.kernel.org/ubuntu/ xenial main
press ctrl+x and hit yes to save the file
sudo apt-get update
sudo apt-get install libpng12-0
Ну или свой вариант, но ход мыслей, думаю, понятен...
Далее... Как я говорил Афедри у меня сетевой. Это очень удобно, спасибо автору за такую реализацию. На самом деле, как мне кажется, это предполагает возможность установить в конечном итоге приемник в деревне, а сервер в дата-центре. Ну а трафик между сервером и приемником в 200 килобит, вполне реализуемая вещь, даже с самым убогим мобильным интернетом. Возможно буду пробовать такой вариант в дальнейшем. Но это лирика....
Запуск даже сетевой версии оказался несложным. Все нужные библиотеки уже стояли, дело за малым - настроить!
Нам нужно организовать трафик между WEBSDR и Afedri, трафик направить в файл, а приложение WEBSDR заставить этот файл читать.
Что бы не забыть - копируем sdr_commander и sdr_split в папку dist11
Создаем FIFO файл:
mkfifo /home/websdr/band20/fifo/afedri-ch-1
В /cfg/websdr.cfg находим параметр device и прописываем в него путь к файлу
device /home/websdr/band20/fifo/afedri-ch-1
Заполняем остальные поля и параметры в конфиге, создаем бэнд. И обязательно добавляем в конце диапазона команду
swapiq
что бы стартовало в USB... (если диапазоны верхние)
Делаем тестовый запуск сервера, что бы убедится что все работает. Должно ругаться только на afedri-ch-1, с остальными нужно разобраться - выставить пермишены, chmod итд.
Теперь делаем запускной файл. У меня это привычный ./afedri_start.sh
#!/bin/bash
FREQUENCY=14128000
SAMPLE_RATE=256000
GAIN=25./sdr_commander -t192.168.0.245 -sn$SAMPLE_RATE -g$GAIN -q0 -f$FREQUENCY
./sdr_split -s$SAMPLE_RATE -O -c1 -s256000 -u50000 -i192.168.0.245 > /home/websd
r/band20/fifo/afedri-ch-1 &
sleep 1
./websdr
Можно заметить, что он является почти точной копией запускного файла от openwebrx, но есть отличие.
/sdr_split -s$SAMPLE_RATE -O -c1 -s256000 -u50000 -i192.168.0.245 > /home/websdr/band20/fifo/afedri-ch-1
В этот раз сдр_сплит гонит данные в файл FIFO.
После запуска мы видим что-то вроде...
websdr@websdr:~/band20/dist11$ ./afedri-start.sh
sdr_commander v.1.24
SDR IP=192.168.0.245:50000
SO_KEEPALIVE is OFF
The new sample rate was set in SDR: 256000 (Hz)
ACK rprt=28, cmd=8
RF gain 25dB => 93
ACK rprt=28, cmd=48
The new multichannel mode is Single Channel
RX Frequency 14128000 (Hz) for the channel 0>>> WebSDR server (20140718.1716-32)<<<
Copyright 2007-2014, Pieter-Tjerk de Boer, pa3fwm@websdr.org
Samplerate 256000 is not supported yet; continuing anyway, but this probably is not going to work well...
, Can't set audio data format to 16 bit little-endian.
, Can't select 2 input channels.
, Can't set fragmentsize.
, Can't set input sample rate to 256000.
size_of_int=4, size_of_long=4
SDR Split 1.19 will use next parameters
Starting in network mode SDR IP=192.168.0.245:50000
1 RX IQ channels data stream.
Split to 1 channels...
Playback device is stdin
Channel sample rate 256000
SO_KEEPALIVE is OFF
UDP socket receive buffer size 262144
Any address on port 50000
Output mode is 1 , DSP mode is 0
Planning FFTs for band 0... done.
Writing frequency axis images... doneInitialization completed; server is now running.
Не помню была ли раньше проблема с ", Can't set audio data format to 16 bit little-endian" но даже с такой ошибкой все работает.
Стартовый скрипт нечто вроде:
sudo -H -u websdr tmux new -d -s websdr20 'bash -c "cd /home/websdr/band20; ./afedri-start.sh; bash"'
Килскрипт
tmux kill-session -t websdr20
killall -9 websdr sdr_split csdr nmux nc sdr_commmander
pkill tmux
Приложение замечательно держит нагрузку. Что и понятно, в силу убогости водопада.
Сравнивая между собой OPENWEBRX и WEBSDR, прихожу к мнению что первый мне более симпатичен. На его водопаде можно хоть что-то разглядеть и более удобно подстраиваться. Но это, конечно, вкусовщина. Побродив по другим вебприемникам взял на заметку опцию автоматической смены диапазона, возможно сделаю в будущем такую опцию и у себя...
Июня
2018 года
16
WEBSDR - ч2. Cофт - OpenWebRX /Lubuntu / AFRDRI SDR-NET
2018 года
Сразу скажу, все мои эксперименты носили и носят изыскательский характер. Просто интересно "как оно" работает? Смогу ли запустить? Что для этого нужно?
AFRDRI SDR-NET лежал у меня в столе мертвым грузом где-то с год. С того момента или даже ранее, когда на столе появился SUNSDR2. И глядя на панорамы SDR.HU хотелось завести такое и у себя. Но голос разума говорил - какой смысл в этом всем если нет антенны?
И все же, желание поэксперементировать взяла свое и я принялся собирать информацию. Информации было не то, чтобы много, но она была сильно разрознена. К тому же материалов по Affedri было – кот наплакал, а про союз между Афедри и Openwebrx итого меньше. Какое-то время ушло на то, чтобы уяснить полученную информацию. Не уверен, что понял все до конца, хотя по большей части сейчас все работает.
Итак, для запуска OpenWebRx на Afedri нам понадобится.
0) Софт для компилирования другого софта,
Питон не ниже 2.7:
sudo apt-get install python
Библиотеки для генерации водопада и прочее
sudo apt-get install libfftw3-dev libfftw3-3 libpng-dev
sudo apt-get install -f libpng-dev
ВТЧ библиотеки для работы со звуком
sudo apt-get install libasound2 libasound2-dev
1)Собственно сам репозиторий OpenWebRx. Желательно понимание git.
В домашней папке делаем:
git clone git@github.com:simonyiszk/openwebrx.git
2) Csdr – библиотека для работы с SDR
В домашней папке делаем:
git clone https://github.com/simonyiszk/csdr.git
после скачивания выполняем make:
cd csdr
make
sudo make install
3) sdr_commander, которая позволяет управлять приемником AFEDRi SDR-Net из коммандной строки разработанная Александром 4Z5LV
Качаем последнюю версию, у меня это 1.24
Распаковываем и собираем согласно инструкции
sudo apt-get install libudev-dev
cd sdr_commander.v24
make
Если есть ошибки, то гуглим, доставляем библиотеки и снова компилируем до победы. Пока не увидим банарный файл sdr_commander
4) Качаем библиотеку Sdr_Split
распаковываем в папку и тоже компилируем до получения sdr_split
5) Копируем получившиеся бинарники sdr_split и sdr_commander в папку к OpenWebRx.
6)Создаем запускной файл afedri_start.sh (устанавливем на него нужный chmod и chown)
Со следующим содержимым
#!/bin/bash
SAMPLE_RATE=256000
GAIN=25
FREQUENCY=14128000
./sdr_commander -t192.168.0.245 -sn$SAMPLE_RATE -g$GAIN -q0 -f$FREQUENCY
sleep 1
python ./openwebrx.py
В моем случае приемник Afedri подключен по сети (его IP 192.168.0.245) и вся конфигурация крутится вокруг такого способа подключения.
Как видно из содержимого файла мы задаем полосу, усиление, и «срединную» частоту на которую будет настроен приемник. Затем с минимальной паузой стартует вебсервер на питоне.
7)Редактируем конфигурационный файл от сервера config_webrx.py. Внутри много всякой полезной фигни, но самых главных места тут несколько
samp_rate = 256000
center_freq = 14128000
ниже самое главное
#afedri
sdr_ip = "192.168.0.245"
sdr_port = 50000
start_rtl_command="./sdr_split -i{sdr_ip} -u{sdr_port} -O -s{samp_rate} -f{cente
r_freq} ".format(sdr_ip=sdr_ip, sdr_port=sdr_port, rf_gain=rf_gain, center_freq=
center_freq, samp_rate=samp_rate)
format_conversion="csdr convert_s16_f"
Именно эти строки главные в данном конфиге, все остальное вторично.
К примеру такие настройки как "водопад"
waterfall_min_level = -115 #in dB
waterfall_max_level = -55
waterfall_auto_level_margin = (0, 50)
Хотя когда он веселенького глубого цвета – глазу все же приятнее.
Прочие плюшки можно настроить по единой инструкции
Должно получится что-то вроде этого
Особенно хорошо смотрится с хорошей антенной… :)
Но именно в этом месте меня постигло самое большое разочарование…
Ожидания:
Реальность
Нету переключения диапазонов! Совсем!
OpenWebRX это совсем не разу не KiWiSDR WebInterface!
Вот такой облом.
Начав читать блог ha7ilm, выяснилось что разработчики kiwiSDR помимо собранных 50к $ на кикстартере еще и кинули ha7ilm, построив на его коде свой улучшенный вариант. По факту на данный момент openWebRx может еще и не мертв, но пахнет очень соотвественно. Не смотря на урегулирование финансовой ситуции между авторами kiwi и ha7ilm проект выглядит заброшенным. Есть ряд интересных доработок по коду предложенными другими пользователями сервера, но они так и остаются на уровне «когда-нибудь» будучи реализованными на 80-90% в коде.
Думаю над собственными доработками и интеграцией, все же один приемник и один диапазон без вариантов переключения это слишком уныло…
ps. В данный момент вся эта... все это... работает тут http://websdr.ew8ax.info/
Работает в экспериментально-тестовом режиме, с недоантенной и прочее.
Прокинуть сервер наружу не составило труда, если кому-то это интересно.
Достаточно на роутере прописать любой фришный DynDNS, у моего асуса такой есть. Прописать Port Forwarding:
где 192.168.0.174 стаический IP с сервером на Лубунте.
А на стороне подомена прописать простейший iframe c адресом ДинДНС. Дешего и сердито, по крайнй мере на данном тестовом этапе...