Как собрать APRS-модем своими руками: практическое руководство

Если вы зашли на эту страницу, скорее всего, вы уже знаете, что APRS — это автоматическая пакетная радиосистема обмена данными в любительском радио. И вы хотите не просто купить готовый TNC, а разобраться и собрать модем самостоятельно. Это имеет смысл: вы поймёте, как всё работает, сможете чинить и дорабатывать без сторонней помощи, и в большинстве случаев потратите меньше денег.

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

Что вообще делает APRS-модем

APRS-модем — это устройство, которое преобразует цифровые пакеты данных в звуковой сигнал для передачи через радиостанцию и обратно. По сути, это тот же модем, только вместо телефонной линии — эфир, а вместо интернета — пакетная радиосвязь на скорости 1200 бод (AFSK, аналог Bell 202).

Ключевые задачи модема:

  • Принимать данные от компьютера или контроллера через UART.
  • Кодировать их в AX.25-пакеты.
  • Модулировать в AFSK-сигнал (1200 Гц и 2200 Гц).
  • Отдавать этот сигнал на микрофонный вход радиостанции.
  • Принимать звук с выхода радиостанции, демодулировать и распаковывать пакеты.

Всё это можно реализовать на нескольких микросхемах или вообще на одном микроконтроллере. Разберём варианты.

Два основных подхода: аналоговый и цифровой

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

Путь 1: Модем на специализированной микросхеме

Классический вариант — использовать микросушилку типа MX614 или аналогичную. Это специализированный чип для генерации и приёма AFSK-сигналов. Он требует внешний микроконтроллер для формирования AX.25-пакетов, но самую грязную работу по модуляции-демодуляции берёт на себя.

Плюсы: проверенная временем архитектура, хорошая помехоустойчивость приёмника, много документации и готовых схем в сообществе.

Минусы: MX614 не всегда легко купить, корпуса могут быть неудобны для пайки, и схема получается многокомпонентной.

Путь 2: Всё на одном микроконтроллере

Современный подход — использовать микроконтроллер с достаточной производительностью (STM32, ESP32, ATmega328 с быстрыми таймерами), который и формирует пакеты, и генерирует/принимает AFSK-сигнал прямо в программном обеспечении.

Самый известный проект в этом направлении — OpenModem на STM32. Там и DAC для генерации тона, и ADC для приёма, и весь стек AX.25 — внутри одного чипа. Плюс — минимум обвязки, максимум гибкости.

Что выбрать под вашу ситуацию

Ваш случай Рекомендуемый путь Почему
Есть опыт с микроконтроллерами, хочется минимум деталей OpenModem на STM32 Одна плата, всё в прошивке, легко дорабатывать
Хочется классики, есть паяльник и немного аналоговой радиотехники в голове MX614 + Arduino/ATmega Проверенная схема, много примеров в сети, хороший приём
Нужен модем для ноутбука без паяльника Soundmodem на ПК + простой интерфейс на оптроне Всё делает звуковая карта, остаётся только согласовать уровни
Бюджет минимален, есть Arduino Uno Arduino + пара конденсаторов и резисторов (программный AFSK) Дёшево, но приём будет нестабильным — для начала пойдёт

Собираем модем на STM32: пошагово

Это самый практичный вариант на сегодня. Ниже — реальный порядок действий, а не абстрактная теория.

  1. Берём плату STM32F103 «Blue Pill». Она стоит недорого, имеет два ADC, таймеры, DAC (на некоторых пинах) и достаточно памяти для полного стека AX.25.
  2. Прошиваем OpenModem. Берём исходники с репозитория проекта, собираем в PlatformIO или Arduino IDE, заливаем через ST-Link. Если всё сделано правильно — модем определяется как USB-CDC устройство.
  3. Подключаем радиостанцию. Выход DAC через делитель напряжения (10 кОм и 1 кОм) идёт на микрофонный вход. Вход ADC через конденсатор 0.1 мкФ и резистор 100 кОм — на выход динамика (линейный, не через трансформатор!). Земля общая.
  4. Настраиваем Soundmodem или APRSdroid. В программе выбираем звуковое устройство модема, скорость 1200 бод, указываем позывной и SSID.
  5. Проверяем на эфире. Передаём тестовый пакет и смотрим, принимает ли ближайшая APRS-станция (обычно это местный шлюз с позывным вида XXXXX-1).

Важный момент: уровни звука. Если перегрузить микрофонный вход рации — пакет уйдёт с искажениями, и его никто не примет. Если сигнал слишком тихий — не хватит отношения сигнал/шум. Начинайте с минимального уровня и добавляйте по чуть-чуть, контролируя осциллографом или хотя бы аудиоспектром.

Простой вариант на Arduino: честные ожидания

Если вы хотите попробовать на Arduino Uno (ATmega328), вот что нужно знать. Генерация AFSK программно — задача реальная: таймер переключает пин с заданной частотой, получается чистый тон. А вот приём — боль. ADC ATmega328 медленный (около 100 кГц максимум), а для надёжного демодуляции Bell 202 нужно хотя бы 8-10 отсчётов на период сигнала. На практике приём через Arduino работает только при сильном сигнале и отсутствии помех.

Схема подключения элементарна: резистор 10 кОм и конденсатор 0.1 мкФ на вход, резистор 1 кОм и конденсатор 0.1 мкФ на выход. Но не ждите чудес — это скорее учебный стенд, чем рабочий модем.

Частые ошибки при сборке

  • Нет общей земли между модемом и радиостанцией. Без неё — шум, перекос уровней и полное отсутствие приёма. Проверьте осциллографом, что земля общая.
  • Неправильный делитель напряжения на входе рации. Микрофонный вход рассчитан на милливольты, а не вольты. Если подать сигнал напрямую с DAC микроконтроллера — получите какофонию в эфире.
  • Забывают про конденсатор развязки на входе ADC. Постоянная составляющая с выхода динамика радиостанции может вывести из строя пин микроконтроллера или сильно сместить рабочую точку.
  • Используют динамический выход рации без согласования. Выход на динамик — это усиленный сигнал, часто с трансформатором. Нужно либо брать сигнал до усилителя (если есть доступ), либо сильно ослаблять делителем.
  • Не проверяют полярность AFSK. Если перепутать 1200 и 2200 Гц местами — модем будет передавать, но никто его не поймёт. Проверьте в документации вашего софта: обычно mark = 1200 Гц, space = 2200 Гц.
  • Паяют на макетке без развязки по питанию. Импульсные помехи от цифровой части модема проникают в аналоговую, и приём превращается в кашу. Конденсаторы 0.1 мкФ на каждую микросхему, короткие дорожки, по возможности — нормальная плата.

Как проверить, что модем работает правильно

Не бросайтесь сразу в эфир. Сначала убедитесь, что модем здоров на столе:

  1. Закоротите вход и выход модема (звуковой петлёй). Передайте тестовый пакет — он должен прийти обратно без ошибок.
  2. Подключите выход модема к компьютерной звуковой карте и посмотрите спектр в любом аудиоанализаторе (например, Spectrum Lab). Должны быть два чётких пика на 1200 и 2200 Гц.
  3. Проверьте осциллографом форму сигнала на выходе. Он должен быть синусоидальным, без обрезки и переползания частот.
  4. Только после этого подключайте к рации и пробуйте передать в эфир.

Программное обеспечение для работы с модемом

Сам модем — это только половина дела. Нужна программа, которая будет формировать пакеты и показывать карту. Вот что реально используют:

  • Soundmodem (Linux/Windows) — классический софт, работает как звуковой модем, поддерживает 1200 и 9600 бод. Настраивается через конфиг, стабилен.
  • APRSdroid (Android) — если у вас есть смартфон с OTG и простой аудиокабель к рации. Удобно в полевых условиях.
  • Xastir (Linux) — полноценная APRS-станция с картами, шлюзами, фильтрами. Требует настройки, но даёт максимум возможностей.
  • APRS.fi — не программа, а веб-сервис. Но если ваш модем подключён к интернет-шлюзу (IGate), вы увидите свои пакеты на карте в реальном времени.

Что в итоге

Собрать APRS-модем своими руками — задача абсолютно реальная, даже если вы не радиоинженер с двадцатилетним стажем. Самый практичный путь сегодня — это STM32 с прошивкой OpenModem, пара резисторов и конденсаторов, и любая программа вроде Soundmodem. Всё это умещается на столе, стоит недорого и реально работает в эфире.

Если хотите начать с минимальными усилиями — попробуйте Soundmodem на ноутбуке с самодельным кабелем к рации. Это не потребует пайки, но даст понимание, как устроена система. А уже потом, если зайдёт — собирайте полноценный автономный модем на STM32.

Главное — не бояться ошибок и обязательно проверять каждый этап на столе, прежде чем выходить в эфир. Радиоэфир общий, и некачественный сигнал мешает всем — это не теория, а реальная этика любительского радио.

Radio-Blog.ru