Каждый радиолюбитель проходит стадию, когда вместо хаоса проводов, антенн и адаптеров хочется сконцентрировать все в аккуратную и удобную систему. Но это весьма непростая задача: разные вендоры, протоколы и скорости передачи данных. Один трансивер требует пачки драйверов, другой не умеет нажимать PTT через CAT, третьему вообще нужен COM-порт, и желательно нативный. В итоге радиолюбительский «шэк» (от английского shack — «хижина») превращается во Франкенштейна, где приходится учитывать особенности каждого отдельного девайса. 

DigiPi был создан как попытка навести порядок, объединив функции звукового интерфейса, контроллера трансиверов и небольшого сервера, позволяющего управлять всем непосредственно из браузера с любого устройства — от лэптопа до планшета. Сегодня я покажу, как DigiPi на Raspberry Pi 4 превращается в удобный центр управления радиооборудованием. Затем шаг за шагом соберем собственную систему с его встроенными модулями.

Что умеет DigiPi

APRS TNC

На Хабре есть прекрасная публикация про этот протокол радиолюбительской связи, поэтому лишь вкратце напомню, что это такое. Он отлично работает для передачи коротких текстовых сообщений, данных телеметрии и координат маяков GPS. В мире существует глобальная сеть APRS, которая функционирует поверх другого протокола канального уровня AX.25. Последний позволяет работать напрямую или через ретрансляторы (digipeaters).

Те представляют собой классическую радиорелейную станцию, которая расширяет дальность действия связи, принимая и ретранслируя фреймы AX.25 в эфир. Основой станции служит TNC (Terminal Node Controller), который по своей сути очень схож с обычным Dial-up-модемом. Они оба преобразуют аналоговый сигнал в цифровой вид и обратно. Различие в том, что TNC в качестве среды передачи данных использует радиоэфир вместо телефонной линии и «завязан» на протоколы радиосвязи, такие как вышеупомянутый AX.25.

TNC MFJ-1278. Источник
TNC MFJ-1278. Источник

Вот такие железные девайсы раньше приходилось использовать, чтобы работать с пакетной связью вроде APRS. Сейчас модуляцию/демодуляцию, упаковку и проверку фреймов успешно выполняет любой компьютер со звуковой картой. Остается лишь передать аудиопоток на трансивер и после этого принять ответный поток, передав его на линейный вход компьютера.

Push-To-Talk

Проблемой остается еще и то, что надо как-то эмулировать нажатие тангенты (PTT). Чаще всего для этого используется отдельный кабель COM или USB2COM, который передает соответствующий сигнал по CAT-протоколу. Однако если трансивер не поддерживает переход в режим передачи с помощью CAT, приходится задействовать отдельные управляющие линии порта RS-232. Для этой цели в основном применяются DTR (Data Terminal Ready) и RTS (Request To Send).

Если на выходе USB2COM-адаптера выставлять эти линии в HIGH/LOW, то на пинах появится +5V или 0V соответственно. А это значит, что, подключив такие линии к гнезду тангенты, можно добиться ее «аппаратного» нажатия. Забавно, но на практике я столкнулся с весьма интересным глюком при использовании такого способа.

Когда я впервые настраивал работу своего Icom IC-706MKIIG для пакетных видов связи, то как раз использовал аудиоинтерфейс MFJ-1279M. В приложении WSJTX выставил активацию PTT через DTR/RTS. При выходе на передачу столкнулся с тем, что на каких-то диапазонах это виртуальное нажатие на PTT как бы «залипало» и трансивер продолжал передавать даже за пределами выделенного временного «окна» FT8.

Ответ был прост — наводки. Для решения пришлось навесить ферритовые бочонки на USB2COM-кабели и сделать воздушный высокочастотный дроссель (RF-choke) для снижения синфазных токов на внешней оплетке фидерного кабеля. После этого «залипания» PTT ушли.

APRS iGate

APRS чаще всего применяется на VHF-диапазоне, а это значит, что в качестве передатчика подходят любые портативные станции, вроде народного Quansheng UV-K6. Проблема в том, что роль TNC должен исполнять какой-либо внешний компьютер. Многие радиолюбители решили этот вопрос с помощью смартфона и специального кабеля APRS-K1. Но что делать, если хочется поднять свой диджипитер? Вот тут как раз пригодится DigiPi.

DigiPi способен не только работать в качестве простого TNC для VHF- и HF-радиостанций. Он умеет функционировать в роли iGate во всемирной радиолюбительской сети APRS-IS, которая объединяет подобные репитеры и позволяет им передавать данные в глобальном масштабе.

Так, на МКС есть любительская радиостанция Kenwood TM-D710GA, оборудованная встроенным AX.25 TNC, которая работает в режиме диджипитера с позывным RS0ISS-4. Если в момент пролета МКС над головой отправить APRS-пакет, в поле пути которого указано что-то вроде:

RS0ISS-4,WIDE2-1

то диджипитер ретранслирует его обратно, где он будет принят одной из тысяч наземных станций. Если она подключена к APRS-IS, пакет попадет в глобальную сеть.

APRS WebChat

Еще одна интересная фича DigiPi относительно работы с APRS, — имплементация веб-сервиса aprs.chat. Он представляет собой своеобразный центр всех APRS-IS сообщений для конкретного позывного. Дело в том, что у APRS-пакетов нет механизма подтверждения доставки на уровне протокола. Если путь закончился и ни один адрес не сработал, пакет просто исчезает.

APRS Chat играет роль почтового ящика, компенсируя тем самым отсутствие постоянного канала связи. Стоит помнить, что работает это лишь в пределах APRS-IS. Вместо того чтобы заходить в веб-интерфейс сервиса, роль клиента может играть скрипт, встроенный в DigiPi:

DigiPi APRS WebChat
DigiPi APRS WebChat

Так вы никогда не пропустите сообщение, которое проходило через APRS-IS и может служить альтернативным способом связи, когда привычные мессенджеры недоступны.

AX.25 Node Network

Эта опция в DigiPi не что иное, как возможность построения «радиоинтернета» из 90-х, но без TCP/IP. Это расширение протокола, позволяющее строить многошаговые маршруты (сетевой уровень). AX.25 сам по себе канальный, то есть он может сделать ряд штатных действий вроде соединения, обмена фреймами данных и отключения. Проблема возникает, когда получателя нет в прямой видимости, а следовательно, нет понимания, куда маршрутизировать пакет дальше.

При включенной функции AX.25 Node Network одноплатник с DigiPi превращается не просто в цифровой модем, а в узел для пакетной радиосети. Каждый такой узел будет хранить таблицу «соседей» и может направлять трафик через них, формируя сеть, подобную ARPANET. Это делает возможным выстраивать цепочки соединений для достижения конечного узла.

Это очень любопытная технология, которая напоминает эпоху BBS (Bulletin Board System). Пользователи могут не только связаться с конкретным узлом, но и взаимодействовать с каким-либо сервисом вроде доски объявлений. Подобный «альтернативный интернет» может быть очень полезен, поскольку полностью независим от традиционных сетей связи.

Winlink Email

Электронная почта для многих давно уже кажется пережитком прошлого. Зачем она нужна в эпоху мессенджеров и глобального проникновения интернета? Но ни одна современная система связи не застрахована от отказов оборудования. Мобильная связь может быть прервана землетрясением, а спутниковая группировка Starlink хотя и редко подвержена сбоям, но все же такое случается.

Система Winlink была изначально разработана радиолюбителями, чтобы передавать обычную электронную почту по радиоканалу на HF- и VHF-диапазонах. При этом предусматривалась интеграция с традиционными службами. Winlink Email можно условно поделить на серверную и клиентскую часть.

Первая носит имя Winlink Email Server, однако многие ее называют RMS (Radio Message Server). Задачей узла с настроенным RMS является пересылка писем, отправленных по радиоканалу на обычные почтовые сервисы и наоборот. Все сообщения хранятся на распределенных серверах Winlink CMS (Common Message Servers), которые установлены по всему миру. Интересно, что каждый сервер CMS является зеркалом других CMS, это обеспечивает отказоустойчивость. Пока есть хотя бы один живой такой сервер, вся корреспонденция будет в целости и сохранности.

RMS же доступа ко всей почте не имеет, однако способен кешировать сообщения, помещая их в собственный буфер. Как только письмо передано CMS, оно удаляется из кеша RMS. В итоге каждый клиент может подключиться к любому RMS-серверу и получить свою почту. Ну а CMS играет роль «мозга» этой системы и с конечными пользователями не взаимодействует.

У сети Winlink есть официальный и альтернативный клиенты. Первый называется Winlink Express, работает только под Windows и имеет забавную особенность. Формально софт бесплатный и не требует оплаты. Однако приложение будет каждый раз вам напоминать о возможности внести добровольное пожертвование, которое пойдет на поддержание работы сети, оплату серверов Winlink CMS и так далее.

Если задонатить проекту $24, назойливые сообщения пропадают, а Winlink Express начинает нормально сохранять сделанные настройки. Получается такой добровольно-принудительный взнос. «А если не будут брать — отключим газ…»

Альтернативный клиент называется Pat Winlink Email Client, и именно он включен в состав DigiPi. Он легковесный, кросс-платформенный, написан на Go и имеет современный минималистичный веб-интерфейс:

Создание письма через Pat Winlink Client
Создание письма через Pat Winlink Client

Так что если вдруг остались без интернета, но у вас есть «малинка» с образом DigiPi и КВ-трансивер, вы точно сможете создать и отправить Email через Winlink. Правда, не без помощи следующего софта.

ARDOP Modem

Чтобы письмо успешно долетело до адресата в Winlink, вам, как ни странно, помимо клиентской части нужен отдельный TNC вроде SCS PACTOR Modem. Это довольно дорогая железка, работающая на проприетарном семействе протоколов PACTOR. Современный SCS P4dragon DR-7800 стоит примерно 2000 долларов и позволяет устанавливать соединение со скоростью 10 500 бод. Да-да, вы правильно поняли — 10,5 Кбит/с.

SCS P4dragon DR-7800
SCS P4dragon DR-7800

Альтернативой PACTOR может служить протокол VARA HF, о котором мы не так давно рассказывали на Хабре. Платная версия софт-модема этого протокола способна выжать 7–8 Кбит/с, ну а доступная для всех радиолюбителей бесплатная версия ограничена смешной скоростью в 175 бит/с. За $69 вы получаете почти то же самое, что и с железкой за $2000, — идеально для моряков, если под рукой нет терминала Starlink.

Но есть еще более простая и дешевая альтернатива — ARDOP (Amateur Radio Digital Open Protocol) Modem. Это тоже программный модем, но полностью открытый и документированный. Абсолютно все исходники выложены на GitHub, и это позволило интегрировать его во множество проектов, в том числе и в Pat Winlink Email Client.

Потолок скорости у ARDOP всего лишь 2 Кбит/с, но это с лихвой окупается бесплатностью и доступностью. Работает быстрее, чем VARA HF Modem для радиолюбителей, и при этом не зависит от закрытых протоколов. В рамках DigiPi включение режима ARDOP Modem означает поднятие локального демона на порту 8515, к которому можно подключить как Pat Winlink, так и любое другое приложение с поддержкой этого транспорта.

WSJTX FT8

Протокол FT8 прочно вошел в жизнь современных радиолюбителей, позволяя проводить связи с уровнем сигнала до -24 дБ относительно шумового фона в полосе 2,5 кГц. На практике это означает, что там, где корреспондента не слышно вообще, FT8 успешно декодирует символы из эфирного шума. Этот вид цифровой связи максимально заточен на работу в самых плохих условиях и поэтому стал очень популярен.

Разработкой FT8 и первого приложения WSJT занимался Джозеф Хотон Тейлор-младший (Joseph Hooton Taylor Jr., K1JT), американский астрофизик и лауреат Нобелевской премии по физике. Вместе со Стивом Франке (Steve J. Franke, K9AN), почетным профессором кафедры электротехники и вычислительной техники Университета Иллинойса, им удалось создать протокол на грани чистой математики и практики радиолюбительской связи.

Приложение WSJT-X в DigiPi
Приложение WSJT-X в DigiPi

Разработчик DigiPi сделал очень удобную, на мой взгляд, штуку. Он завернул приложение в сессию noVNC, что позволяет без проблем получить интерфейс программы прямо в браузере. Кстати, именно библиотека noVNC давно используется в Proxmox для получения доступа к консоли виртуальных машин и прекрасно себя зарекомендовала. 

Так что если вы хотели удаленно управлять своим трансивером и проводить связи на FT8 — это готовое решение. Оно, может быть, не столь удобно, как JTDX, но вполне справляется со своими обязанностями.

SSTV

Довольно часто радиолюбители принимают и декодируют SSTV (Slow-Scan TeleVision) изображения, передаваемые с МКС или спутников вроде УМКА-1. Но этот протокол успешно применяется и на коротких волнах. Если вы захотите не только принять, но и сами отправить какую-либо картинку в эфир, в DigiPi встроено приложение QSSTV:

QSSTV на DigiPi
QSSTV на DigiPi

Доступ здесь реализован точно так же, прямо из браузера. Единственный момент — изображения вначале придется передать на «малинку», например, через SFTP.

FLDigi

Еще один софт-модем, поддерживающий огромное количество протоколов, таких как CW (Азбука Морзе), PSK31, MFSK, RTTY, Olivia и более десятка других. Это одно из наиболее универсальных приложений, которое заменяет собой множество аппаратных модемов из разных эпох. Написано оно на C/C++ и использует графический интерфейс FLTK:

Запущенный FLDigi в DigiPi
Запущенный FLDigi в DigiPi

Многим оно может показаться устаревшим, но поверьте на слово — это вовсе не так. Несмотря на архаичный вид интерфейса, FLDigi один из лучших софт-модемов на этой планете, который позволяет работать с десятками видов связей, включая разную экзотику вроде Hell 80 (конкурент RTTY из 1970 года).

JS8Call

Представьте себе FT8 «на стероидах». Если последний был заточен на автоматический обмен данными в строго отведенные временные «окна», то JS8Call больше рассчитан на свободное общение между корреспондентами. В нем есть все те же «плюшки» в виде способности принимать сигналы даже на уровне -24 дБ, но при этом можно отвечать когда угодно, а не строго через 15 секунд.

Более того, есть возможность пересылки сообщений другим станциям. Даже если пользователя нет в эфире, можно оставить для него послание, а ближайшая станция передаст его позже. В общем, настоящий цифровой чат, работающий без интернета и на огромных расстояниях:

JS8Call в DigiPi
JS8Call в DigiPi

Работает это как тот же самый FT8, поверх которого строится структура сообщений. Это позволяет не только посылать короткие фразы или команды, но и выстраивать цепочки ретрансляции. Прекрасное поле для экспериментов и DX.

Как скачать DigiPi

Если честно, одной публикации даже близко не хватит описать все возможности DigiPi — штука интересная и определенно заслуживающая внимания. Но есть одна «ложка дегтя», которая может вам помешать. DigiPi нельзя скачать без активного спонсорства на Patreon. Здесь автор гуляет на очень тонкой грани между open source и коммерческим приложением.

Все используемые скрипты и конфигурационные файлы в DigiPi открыты и доступны в репозитории проекта на GitHub. Вы без проблем найдете там все для крафта собственного образа DigiPi. Но «рецепта» сборки автор не дает, оставляя это на исследование пользователя. Позволю отметить, что ChatGPT создает вполне рабочий скрипт для имплементации всего этого добра в стандартный Raspbian, однако все равно потребуется доработка напильником.

Если станете патроном проекта, вам выдадут логин и пароль для скачивания актуального образа. При этом автор особо отмечает, что разрешает распространять его среди друзей, но просит не выкладывать реквизиты для скачивания. 

Я оформил такую подписку на оригинальный образ DigiPi за $1 в месяц только потому, что активно пользуюсь этой штукой и хочу получать обновления. В целом ничего мне не мешает отменить подписку в любой момент и остаться на той версии образа, которая у меня есть. Более того, образ я спокойно могу распространять среди своих друзей по радиоклубу или скормить ChatGPT для составления собственного скрипта сборки.

Вот такой неоднозначный проект, который привлекает универсальностью и удобством, но может оттолкнуть необходимостью спонсирования автора для получения готовых образов. 

А вы используете DigiPi? Поделитесь своим опытом в комментариях.

Комментарии (1)


  1. BSOZ
    07.10.2025 15:08

    Где можно достать корпус в размерах как на первом изображении с дюймовой высотой и стандартной рэковой глубиной?