Если вы зашли на эту страницу, скорее всего, вы уже знаете, что 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: пошагово
Это самый практичный вариант на сегодня. Ниже — реальный порядок действий, а не абстрактная теория.
- Берём плату STM32F103 «Blue Pill». Она стоит недорого, имеет два ADC, таймеры, DAC (на некоторых пинах) и достаточно памяти для полного стека AX.25.
- Прошиваем OpenModem. Берём исходники с репозитория проекта, собираем в PlatformIO или Arduino IDE, заливаем через ST-Link. Если всё сделано правильно — модем определяется как USB-CDC устройство.
- Подключаем радиостанцию. Выход DAC через делитель напряжения (10 кОм и 1 кОм) идёт на микрофонный вход. Вход ADC через конденсатор 0.1 мкФ и резистор 100 кОм — на выход динамика (линейный, не через трансформатор!). Земля общая.
- Настраиваем Soundmodem или APRSdroid. В программе выбираем звуковое устройство модема, скорость 1200 бод, указываем позывной и SSID.
- Проверяем на эфире. Передаём тестовый пакет и смотрим, принимает ли ближайшая 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 мкФ на каждую микросхему, короткие дорожки, по возможности — нормальная плата.
Как проверить, что модем работает правильно
Не бросайтесь сразу в эфир. Сначала убедитесь, что модем здоров на столе:
- Закоротите вход и выход модема (звуковой петлёй). Передайте тестовый пакет — он должен прийти обратно без ошибок.
- Подключите выход модема к компьютерной звуковой карте и посмотрите спектр в любом аудиоанализаторе (например, Spectrum Lab). Должны быть два чётких пика на 1200 и 2200 Гц.
- Проверьте осциллографом форму сигнала на выходе. Он должен быть синусоидальным, без обрезки и переползания частот.
- Только после этого подключайте к рации и пробуйте передать в эфир.
Программное обеспечение для работы с модемом
Сам модем — это только половина дела. Нужна программа, которая будет формировать пакеты и показывать карту. Вот что реально используют:
- Soundmodem (Linux/Windows) — классический софт, работает как звуковой модем, поддерживает 1200 и 9600 бод. Настраивается через конфиг, стабилен.
- APRSdroid (Android) — если у вас есть смартфон с OTG и простой аудиокабель к рации. Удобно в полевых условиях.
- Xastir (Linux) — полноценная APRS-станция с картами, шлюзами, фильтрами. Требует настройки, но даёт максимум возможностей.
- APRS.fi — не программа, а веб-сервис. Но если ваш модем подключён к интернет-шлюзу (IGate), вы увидите свои пакеты на карте в реальном времени.
Что в итоге
Собрать APRS-модем своими руками — задача абсолютно реальная, даже если вы не радиоинженер с двадцатилетним стажем. Самый практичный путь сегодня — это STM32 с прошивкой OpenModem, пара резисторов и конденсаторов, и любая программа вроде Soundmodem. Всё это умещается на столе, стоит недорого и реально работает в эфире.
Если хотите начать с минимальными усилиями — попробуйте Soundmodem на ноутбуке с самодельным кабелем к рации. Это не потребует пайки, но даст понимание, как устроена система. А уже потом, если зайдёт — собирайте полноценный автономный модем на STM32.
Главное — не бояться ошибок и обязательно проверять каждый этап на столе, прежде чем выходить в эфир. Радиоэфир общий, и некачественный сигнал мешает всем — это не теория, а реальная этика любительского радио.
