21
май
2020
Использование DireWolf совместно с Xastir вместо soundmodem
11:40

Использование DireWolf совместно с Xastir вместо soundmodem

21 май 2020 11:40

Стандартная программа soundmodem декодирует только сильные сигналы Packet и APRS на частоте 144.800, пропуская слабые передачи. Поэтому решил заменить Soundmodem на более современный пакетный модем DireWolf и настроить его по инструкции https://elafargue.github.io/aprs-box/direwolf/#configuring-direwolf.

Установка новой версии DireWolf 1.5 1.6

В Linux Mint и Debian 10 доступна не самая новая версия 1.4 от апреля 2017 года. Более свежий 1.5 от октября 2018 года имеет
улучшенные средства коррекции ошибок AX.25, поэтому мною было принято решение устанавливать версию 1.5 1.6.

В Debian нужно выполнить подготовительное действие - добавить локального пользователя в группу sudoers (если не было выполнено ранее).

su -
usermod -aG sudo username
exit

(где username - имя вашей учётной записи пользователя)
Для применения новых полномочий нужно завершить текущий сеанс пользователя (выйти и войти).

logout

затем ввести имя и пароль.

Обновляем кеш пакетов:

sudo apt-get update

Установил зависимости:

sudo apt install libudev-dev libasound2-dev

Установка git, компилятора с++ gcc и утилиты make:

sudo apt install git gcc make

Внимание: без поддержки hamlib в Dire Wolf не будет работать PTT через CAT.
Нужно перед компиляцией Dire Wolf скачать исходные тексты hamlib 4, скомпилировать и установить hamlib
отсюда: https://sourceforge.net/projects/hamlib/files/hamlib/

Инструкция:

git clone https://github.com/Hamlib/Hamlib.git
cd Hamlib
sh bootstrap
./configure
make
make check

sudo make install

Первый вариант инструкции рассчитан на hamlib 3.3, но в 2021 году вышла 4-я версия. Скомпилированный под hamlib 3.3, модем direwolf будет работать. Но в 2021 году желательно перейти на более свежий hamlib 4.0 (перекомпилировать библиотеку - см. инструкцию выше). Отличие версии 4.0 от 3.3 в номерах моделей приемопередатчиков (трансиверов). Например для Yaesu FT-857 код был 122, стал 1022. Затем, необходимо исправить в конфигурационном файле direwolf.conf код трансивера (см. ниже).

Клонируем GIT, компилируем и устанавливаем DireWolf

git clone http://github.com/wb2osz/direwolf

Компиляция проекта direwolf:

cd direwolf
make

Во время компиляции в сообщениях на экране должен быть выдан текст "This includes support for hamlib."

sudo make install

Дополнение от 01.11.2021 - начиная с версии 1.6 порядок компиляции DireWolf изменён!

sudo apt-get install cmake
git clone http://github.com/wb2osz/direwolf
cd ~
git checkout dev
mkdir build && cd build
cmake ..
make -j4
sudo make install
make install-conf

Настройка DireWolf в конфигурации AGWPE engine для использования совместно с Xastir

  1. Установил дополнительный пакет утилит для настройки звука:

sudo apt install alsa-utils

  1. Посмотрел, какие звуковые карты подключены

aplay -l

List of PLAYBACK Hardware Devices
card 0: Intel [HDA Intel], device 0: ALC662 rev1 Analog [ALC662 rev1 Analog]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: Intel [HDA Intel], device 1: ALC662 rev1 Digital [ALC662 rev1 Digital]
Subdevices: 1/1
Subdevice #0: subdevice #0

  1. Подключил наушник к звуковой карте и проверил наличие звука

для встроенной звуковой карты.

speaker-test -Dplughw:0,0 -c2

или в случае внешней звуковой карты

speaker-test -Dplughw:1,0 -c2

либо устройство по умолчанию:

speaker-test -Ddefault -c2

Один из трёх вариантов должен сработать.

В наушниках услышал шипение (белый шум) с некоторым стерео-эффектом.

Если шум не услышали, нужно подобрать имя plughw:1,0 и т. д., ориентируясь на вывод aplay -l

Замечание. В первоначальном варианте установки я взял direwolf.conf
С ресурса

https://github.com/elafargue/aprs-box/blob/master/config/etc/direwolf/direwolf.conf

и сохранил его в «Загрузки».
Но инструкция самой программы советует при первой установке создать конфигурационный файл при помощи команды make install-conf.

Во втором варианте установки выполнил указанную команду make install-conf для создания direwolf.conf.

  1. Скопировал конфигурационный файл direwolf.conf в глобальный каталог /etc

su -
cd /etc`**
mkdir direwolf
exit
sudo cp ~/direwolf/direwolf.conf /etc/direwolf/direwolf.conf

  1. Открыл конфигурационный файл DireWolf на редактирование

su -
nano /etc/direwolf/direwolf.conf

  1. Исправил в конфигурационном файле имя звуковой карты.

Имя «ADEVICE pasym0» на

«ADEVICE - plughw:0,0» из пункта №3

Примечание: для встроенной звуковой карты вначале попробовать вариант:
ADEVICE default default

Внимание: первый параметр Input, второй Output. Здесь, в этом примере, вход звука "-" задан некорректно, т.к. указана не звуковая карта для входа звука, а stdout. Смотри комментарии в файле direwolf.conf от разработчика. Правильную строку ADEVICE см. в самой конце этой статьи.

  1. Исправил позывной на всякий случай (хотя это и не нужно - т.к. управляет всем Xastir).

MYCALL RA1AHQ-0

  1. В разделе PTT убрал комментарий у строки «PTT» и исправил COM-порт для выполнения передачи, передача через CAT-команды HamLib, где 122 - код модели HamLib для трансивера Yaesu FT-857 для версии 1.5

PTT RIG 122 /dev/ttyUSB0

В последних hamlib версии 4.x коды трансиверов изменены - Yaesu FT-857 стал № 1022:

см. HamLib wiki/Supported-Radios

PTT RIG 1022 /dev/ttyUSB0

Примечание: код радиостанции (здесь 1022) должен соответствовать номеру модели из вывода команды rigctl --list

  1. Закомментировал строки для Raspberry PI (у меня стационарный ПК)

# PTT GPIO 60

и эту (временно, на период тестирования):

# IGTXLIMITIGTXLIMIT 6 10

  1. Оставляем порты по умолчанию, без изменений

AGWPORT 8000

KISSPORT 8001

  1. Комментирую все строки про APRStt GATEWAY

# TTPOINT

# TTVECTOR

# TTGRID

# TTUTM

# TTCORRAL

# TTMACRO

  1. Сохранил direwolf.conf

  2. Запустил xastir

  3. В меню "Interfaces" добавил новый интерфейс «Networked AGWPE» с адресом localhost.
    порт по умолчанию 8000

Сохранил настройки CRTL+O, CTRL+X.

  1. Запустил direwolf следующей командой:
    (Так как конфигурационный файл создан, то передавать параметры командной строки такие как вид работы, скорость передачи не нужно. Указываем лишь конфигурационный файл direwolf.conf, который настроили ранее).

direwolf -c /etc/direwolf/direwolf.conf  -d n 1

где ключ "-d n" означает вывод на экран отладочной информации (debug) при работе KISS network client.

Вывод версии без поддержки PTT (неправильный)

Dire Wolf version 1.5
Includes optional support for: cm108-ptt

(пропущено)

Note: PTT not configured for channel 0. (Ignore this if using VOX.)

Вывод версии с поддержкой PTT - должен быть такой:

Dire Wolf version 1.5
Includes optional support for: hamlib cm108-ptt

Reading config file /etc/direwolf/direwolf.conf
Audio device for both receive and transmit: plughw:1,0 (channel 0)
Channel 0: 1200 baud, AFSK 1200 & 2200 Hz, E+, 44100 sample rate.
Ready to accept AGW client application 0 on port 8000 ...
Ready to accept KISS TCP client application 0 on port 8001 ...

  1. Запустил Xastir

(Если он не стартует с ярлыка, советую прочитать статью про Xastir APRS - там рассказано, как дать права.
Для целей тестирования, если нет желания читать статью, можно использовать "грубое" решение запустить от имени sudo xastir).

  1. В Xastir стартовал интерфейс «Networked AGWPE» - перешёл в состояние UP

Вывод в окне Driewolf изменился, добавились строки:

!!!Attached to AGW client application 0...

Ready to accept AGW client application 1 on port 8000 ...

  1. Надел наушники и выполнил проверку передачи: Xastir — Interfaces — Transmit now!

Звук чистый не прерывается!!

  1. В окне с терминалом и Direwolf посмотрел нет ли ошибок:

Ошибок тоже нет!!!

[0L] RA1AHQ>APX210,WIDE2-2:=6000.00N/03000.00Ex

Настройка выполнена успешно!


Решение проблемы с включением передачи PTT при использовании hamlib.

Ready to accept AGW client application 1 on port 8000 ...
Error sending rig_set_ptt command for channel 0 PTT
Communication timed out
[0L] RA1AHQ-1>APX216,WIDE2-2:=6000.00N/03000.00Ex
Transmit timing error: PTT is on 207 mSec too long.
Error sending rig_set_ptt command for channel 0 PTT
Communication timed out

Решение: в трансивере Yaesu в меню 019 повысить скорость CAT с 4800 до 38400bps.

Теперь PTT работает. Станция появилась на карте APRS.

карта

Осталось наладить приём (его нет). ;-)

В сообщениях direwolf видно, что вход берётся с stdin, что неправильно:
Audio input device for receive: stdin (channel 0)
а должно быть plughw:1,0 (channel 0)

Окончательная правка файла конфигурации:

ADEVICE plughw:1,0 plughw:1,0

либо для встроенной звуковой карты:

ADEVICE default default

Результат положительный, и вход и выход берутся теперь с нужной звуковой карты:
после настройки

Теперь работает и прием и передача.
Файл конфигурации прилагаю: direwolf.zip

Осталось лишь настроить уровень громкости Line In с помощью команд su -, alsamixer.

Установка оптимального уровня приёма и передачи

Установка оптимального уровня приёма

При высоком уровне сигнала на приёме, DireWolf выдаст предупреждение.
level

Необходимо уменьшать уровень.
Если есть CAT-интерфейс с регулировкой уровня (ручками) - можно использовать их. Я использовал AlsaMixer:

Ввести в консоли команду alsamixer:

sudo alsamixer

Открылся микшер громкости alsamixer с текстовым, псевдографическим интерфейсом.

Нажал F6 - Select Sound Card, выбрал звуковую карту "USB Audio Device"

Нажал F4 - Capture (регулировка уровня записи с линейного входа)

Уменьшил уровень Mic с 70 до 6 (усиление -6дБ).
lvl

Нажал ESC

Запустил DireWolf снова:

direwolf -c /etc/direwolf/direwolf.conf -d n

Поднял интерфейс в Xastir:

Меню "Interface" - "Interface Control" - (выбрать запись, соответствующую DireWolf) - кнопка "Start"
Интерфейс должен перейти в состояние UP.
Кнопка Close

После регулировки уровня приёма, ошибки в окне Dire Wolf вовсе исчезают:
DireWolf работает

Установка оптимального уровня передачи

Регулировка громкости на передачу производится системным регулятором уровня (графическим "ползунком" в правой нижней части экрана).

Вначале установил большую мощность 25 Вт и регулятор уровня на 20%. На контрольной радиостанции во время команды "Interface" - "Transmit Now"
наблюдал за громкостью и чистотой сигнала. На цифровом ретрансляторе APRS, установленном в 5 км от меня слышал ответные пакеты и на ARPS.FI следил за изменением времени,
когда станцию RA1AHQ-1 слышали в последний раз. Затем подбором уровня передачи, постепенно снижая выходную мощность, добивался наилучшего срабатывания от моего сигнала Digi или i-gate.

Окончательная настройка уровня громкости передачи APRS производилась при мощности 5 Вт.

Возможные ошибки

  1. Если во время передачи возникает ошибка "Audio output data underrun.",
    попробуйте использовать другую звуковую карту (см. speaker-test -Ddefault -c2), с соответствующей правкой файла конфигурации direwolf.conf.
  2. Если во время приёма выводится "Audio input level is too low. Increase so most stations are around 50. " - отрегулируйте чувствительность на приём с помощью alsamixer - F4 (input - уровень записи) - F6 (выбор звуковой карты).
    Так как чувствительность у всех карт разная.
  3. После каждого завершения работы команды "direwolf -c /etc/direwolf/direwolf.conf -d n" не забываем поднимать интерфейс в Xastir - Interface - Interface control и проводить тестирование Interfaces - Transmit Now.
  4. Цифровой ретранслятор может не откликаться на наши посылки (например, вне зоны досягаемости или отключен) - бесполезно проверять прохождение пакета на слух, по "эху" от DIGI. Гораздо надёжнее работают RX-Only шлюзы (узлы, которые транслируют принятые из эфира пакеты в сеть Интернет). RX-Only шлюзы передают информацию на динамическом сайте с APRS-информацией реального времени: https://aprs.fi. То есть после передачи нужно смотреть свой позывной на карте APRS.FI, а не ждать ответа от APRS ретранслятора.

Дата последнего изменения: 01.11.2021.

Ссылки на страницы DireWolf в сети Интернет:



Похожие публикации