DireWolf это универсальная APRS программа с продвинутым функционалом и гибкими настройками, которая работает со звуковой картой, в разных режимах:
• APRS GPS Tracker
• Digipeater
• Internet Gateway (IGate)
• Скорости: 300, 1200, 2400, 4800, 9600 bps
• APRStt gateway
• DTMF декодер
• Передача APRS, DTMF, CW и голосовых маяков
• AGW TCPIP Socket Interface
• KISS через TCP socket (виртуальный TNC)
• KISS TNC через последовательный портативных
• KISS TNC через псевдо-терминал
• Декодирование сигналов AIS и EAS SAME
• Поддержка SDR-приёмника
Программа DireWolf отличается высоким качеством декодирования принимаемых пакетов! Не хуже чем знаменитый Kantronics! Обратная сторона, это высокие требования к вычислительной мощности платы, поэтому используете Raspberry_Pi, не старше 2015 года.
Ниже, описание установки DireWolf (из исходных кодов) на Raspberry_Pi, c SD-картой не менее 8Гб.
(все команды нужно выполнять с доскональной точностью, пробелы, символы, большие и маленькие буквы - должны быть как в примерах ниже)
• Записываем образ Raspberry Pi OS Lite с помощью Imager.
• Заходим по SSH, обновляемся.
• Подключаем интерфейс и радиостанцию
Радиостанция для APRS (на скоростях 300/1200бод) может быть любой, линейность AЧХ не требуется. Сигнал на приёмник можно брать прямо с разьёма для подключения внешнего динамика. Шумодав, лучше держать открытым.

Для скорости 4800/9600бод нужна линейность, поэтому требования и рекомендации к радиостанции такие-же как и для DV узла, лучше всего будут работать моторолы с включенным режимом 'линейный без шумоподавителя' на заднем разьёме.
Интерфейс для радиостанции делаем на отдельной плате. Стабилизатор должен быть расчитан на ток до 2А. Звуковая карта - любая. DireWolf может работать с несколькими интерфейсами (звуковыми картами) одновременно и на разных скоростях!

В DireWolf реализована поддержка GPIO в CM108, это позволяет использовать другой интерфейс, но работать он будет также.
Детали типоразмера cmd, относящиеся к PTT, припаиваются к дорожкам, которые освободились после снятия гнёзд для динамика и микрофона.
На картинке ниже, вариант для переднего разьёма радиостанции моторола. Важно помнить, об ограничениях такого подключения:
1. Не все радиостанции моторола имеют выход НЧ на 1-ом контакте.
2. Уровень ручки регулировки громкости будет влиять на уровень приёма.
3. Такое подключение будет работать только на скоростях 300bps или 1200bps.

При использовании с узлом носимой радиостанции, нужно обязательно отключать экономайзер!
sudo apt update sudo apt upgrade -y sudo apt-get install -y git gcc g++ make cmake alsa-utils curl screen sudo apt-get install -y libudev-dev libasound2-dev libavahi-client-dev libgpiod-devСкачиваем исходный код, компилируем, устанавливаем (внимательно смотрим на ошибки).
cd ~ git clone https://www.github.com/wb2osz/direwolf cd direwolf mkdir build && cd build cmake .. make -j4 sudo make install make install-conf
Для создания своей конфигурации, редактируем файл:
nano ~/direwolf.confЧтобы узнать какую звуковую карту использовать, наберите:
aplay –lЕсли она у вас одна, это будет card 1 (для Raspberry_Pi).
Основные режимы работы, которые нужно настроить, это дигипитер (ретрансляция маяков в эфире), шлюз (передача маяков из эфира на aprs-сервера и обратно), возможна фильтрация маяков по набору признаков и передача маяков, данные для которых берутся из скрипта или файла.
Программа поддерживает режим APRStt GATEWAY (передача маяков с помощью DTMF команд). Поэтому, пользователи простых радиостанций (с dtmf), могут передавать aprs-маяки.
Пример минимальных настроек direwolf.conf
ADEVICE plughw:1,0 MYCALL UA6HJQ PTT GPIOD gpiochip0 18 PBEACON lat=41.95210 long=39.71570 symbol="digi" comment="dw-beacon"Мы указали звуковую карту, позывной, управление PTT и маяк (который по умолчанию передаётся каждые 10 минут). Если вы запускаете direwolf с правами обычного пользователя (возможно), понадобится изменить права hidraw0 (для CM108), тогда добавляем ещё одну команду. Для тестового запуска и проверки ошибок, набираем:
sudo chmod 777 /dev/hidraw0 direwolfВы должны видеть пакеты из эфира, вероятно придётся отрегулировать уровень звука на приём и передачу, командами:
alsamixer -c 1

DireWolf выводит в консоль много полезной информации о текущем состоянии, при этом, раскрашивая её разными цветами:
чёртные - информационные
светло-зелёные - принятые данные
зелёные - уровень аудио и качество декодирования
голубые - декодированные данные
оранжевые - переданные данные
красные - ошибки
DireWolf автоматически оптимизирует уровень сигнала в audio_in. Индикатор уровня аудио сигнала, наглядно показывает качество декодирования каждого сигнала из эфира:
| приём без ошибок
: одна битовая ошибка
. несколько битовых ошибок
_ приёма нет
Декодер aprs сигналов в DireWolf - действительно хорошо работает, особенно когда речь идёт о далёких, слабых и зашумлённых сигналах.
Для постоянной работы, DireWolf нужно запускать через скрипт:
dw-start.shСкрипт требует screen или графическую оболочку. После запуска вы увидите в какой виртуальной консоли работает DireWolf и сможете в любой момент к нему подключиться.
AX.25 + FEC = FX.25
Стандартный AX.25 не устойчив к помехам и слабым сигналам. В случае ошибки одного бита, будет перезапрошен весь пакет.
Поэтому, в 2006 году, был разработан FEC для AX.25 с сохранением обратной совместимости, со старым оборудованием. В первую очередь коррекцию ошибок внутри стандартных AX.35 пакетов применили для спутниковой связи и получили хороший результат.
В зависимости от режима FX.25, в кадре можно исправить до 32 поврежденных байтов! Обычный AX.25 дает сбой, если поврежден хотя бы один бит. FX.25 продолжает работать еще долго после того, как обычный AX.25 становится совершенно бесполезным.
Нужно понимать, что коррекция ошибок методом FEC, замедляет скорость обмена информацией. Программы Dire Wolf и UZ7HO Soundmodem поддерживают FX.25 уже сейчас.
Несовместимый IL2P
Протокол Improved Layer 2 Protocol (IL2P) создан KK4HEJ, на основе AX.25 и реализует прямую коррекцию ошибок Рида-Соломона, для большей помехоустойчивости, стабильности и пропускной способности, чем AX.25 или FX.25.
IL2P разработан на основе проекта FX.25, но не совместим с AX.25 в эфире, чтобы реализовать более функциональный стандарт. IL2P может использоваться с различными методами модуляции, включая AFSK и GFSK.
Этот протокол работает в режимах FM/SSB, на скоростях от 300 до 19200bps.
Ключи командной строки
Кроме файла помощи, много полезной информации можно получить из командной строки программы. Например:
direwolf -d .. (трассировка конкретного режима) direwolf -c файл.conf (другой файл конфигурации) direwolf -I 1 (включить режим IL2P) direwolf -X 1 (включить режим FX.25) direwolf -B скорость (300, 1200, 2400, 4800, 9600bps, AIS, EAS) direwolf -S (показать коды и названия aprs-символов) direwolf -t 0 (отключить цвета в консоли) direwolf.exe -a 10 (статистика по аудио устройству, каждые 10 секунд) direwolf.exe -х a(передача тонального сигнала, для настройки уровня TX) и много других ...
DireWolf может работать модемом, для любых программ с интерфейсом KISS и AGW, локально или удалённо. Программа работает стабильно, даже через мобильный интернет и потребляет минимальный траффик.
Чтобы настроить уровень девиации, останавливаем DireWolf (screen -D -r direwolf затем Ctrl+C), запускаем SDR-приёмник на другом ПК, с программой SDR#. Становимся на частоту и делаем высокое разрешение, чтобы были видны составляющие тонового сигнала.
Запускаем команду:
direwolf -x m
Открываем вторую консоль и запускаем alsamixer, чтобы регулировать уровень девиации. Если подавить центральный сигнал (на который показывает стрелка), девиация составит 2.8кГц.

В режиме пакетной связи (в отличии от aprs), вы можете подключаться к bbs, соединяться между терминалами, напрямую или через digi, болтать в чате, обмениваться файлами, читать dx-бюллетени и т.д.
Поскольку протокол для APRS и Packet Radio один, то одни и теже устройства могут работать в обоих сетях на одной частоте. Если APRS сеть не загружена маяками, то её можно использовать и для Packet Radio c другими сервисами.
Для полноценной работы в пакетной сети, к DireWolf нужно добавить терминал, например EasyTerm от UZ7HO для Windows (который имитирует пакетной программу BayCom).
Соединяется DireWolf с терминалом через TCP/IP сеть. Порт 8000 уже включен (делать ничего не нужно). В терминале открываем Settings, вводим позывной, адрес raspberry c direwolf и жмем ОК.
Терминал EasyTerm имеет многооконный интерфейс, может передавать по эфиру файлы (протокол YAPP) и имеет встроенный Mailbox, с возможностью обмениваться персональными сообщениями и бюллетенями.

Исходный код
Документация
APRS документы
Презентация DireWolf
Setup IP Networking via Packet Radio with DireWolf and IL2P
APRS IGate — домашняя станция для приема APRS пакетов
UA6HJQ