5
июнь
2025
Запуск приёмника RTL-SDR для APRS IGate в Linux
17:23

Запуск приёмника RTL-SDR для APRS IGate в Linux

5 июнь 2025 17:23

Продолжение статьи. На этот раз к RTLSDR добавил DireWolf для APRS.

Исходные данные

Передающая сторона (переносная радиостанция)

  • Baofeng UV-5r
  • кабель APRS K-1
  • смартфон
  • APRSdroid

Приёмная сторона (стационарный персональный компьютер - IGate)

  • Linux Mint 21.3
  • ezcap RTL-SDR
  • rtl_fm
  • DireWolf

Использование консольной утилиты rtl_fm и команды aplay для приёма FM радио

Утилита rtl_fm позволяет передавать результат демодуяции звука в stdout. Команда rtl_fm входит в пакет rtl-sdr (установлена ранее). Но для воспроизведения нужно использовать отдельную команду aplay из пакета alsa-utils, которая работает с "сырыми" (raw) даннымии. При помощи конвеера данные с частотой дискретизации 128 k

rtl_fm -M wbfm -f 87.5M -r 96k  - | aplay -c 2 -r 48000 -f S16_LE 

где -M wbfm - модуляция
-f 87.5M - частота
-r 48k - частота дискретизации выходного "сырого" потока
-o 4 - Oversampling output by: 4x.
- - - вывод в stdout
-c 2 - число каналов - стерео
-r 48000 - частота дискретизации выходного файла
-f S16_LE - формат входных данных

Стерео для WFM:

rtl_fm -M wnfm -f 87.5M -s 220k -r 96k -A std -F 2 | aplay -c 2 -r 48000 -f S16_LE

Моно (помех значительно меньше):

rtl_fm -M wnfm -f 87.5M -s 220k -r 48k -A std -F 2 | aplay -c 1 -r 48000 -f S16_LE

где
-s 220k - частота дискретизации по входу
-r 48k - частота дискретизации данных по выходу
-A std - режим расчёта atan
-F 2 - улучшенный режим FIR
-c 1 - один канал

console

Демодуляция узкополосной частотной модуляции (NBFM)

Чтобы принимать узкополосную ЧМ, нужно модифицировать параметры командной строки.

Для вывода на звуковую карту, частота 432.500 МГц для APRS:

rtl_fm -M fm -f 432.5M -r 24000  - | aplay -c 1 -r 24000 -f S16_LE 

Передача звука от rtl_fm в Direwolf для APRS

Установка DireWolf в Linux

Так как в репозитории свежая версия DireWolf 1.6, то не компилировал, а ставил из репозитория Linux Mint.

sudo apt-cache showpkg direwolf
sudo apt install direwolf

Настройка DireWolf

1) Копирование /etc/direwofl.conf в рабочую папку ~/direwolf,conf

2) Исправление в файле ~/direwolf.conf строчки ADEVICE на null null

direwolf_conf

3) Строка запуска Dire Wolf с передачей звука от rtl_fm (для декодирования APRS)

rtl_fm -M fm -f 432.5M -r 24k - | direwolf -c ~/direwolf.conf -r 24000 -D 1 -dgit

где параметры вызова rtl_fm
-M fm - модуляция узкополосная FM
-f 432.5M - частота приёма (или 144.8M для диапазона 2 метра)
-r 24k - частота оцифровки

параметры вызова direwolf
-c ~/direwolf.conf - файл конфигурации с указанием ADEVICE позывного
-r 24000 - частота дискретизации входных данных
-D 1 - разделить (Divide) входные данные на 1 канал (так как здесь моно, то цифра 1)
-dgit - отладка (-d) следующих параметров: "g" - интерфейс GPS, "i" - IGate, "t" - отслеживание маяка - трекера местоположения,
- - ввод звука с stdout

Передача и приём пакета APRS

На смартфоне запустил APRSdroid (версия 1.6.3d) загруженный с веб сайта APRSdroid.

В Baofeng настройка VOX уровень 1, кабель APRS-K1.

На компьютере - SDR приёмник USB, где выхода звука после демодуляции с RTLSDR с помощью rtl_fm подаётся через консоль на вход direwolf - программы декодирования пакетов APRS.

Результат

Пакет APRS был успешно принят RTLSDR и декодирован с помощью Dire Wolf.

igate

Источники: