Створення APRS iGate вузла на базі RaspberryPi, RTL-SDR і Direwolf

APRS iGate вузол це — система яка приймає дані з радіоефіру на частоті 144.800 мГц і передає в Інтернет.

У цій статті ми покажемо як створити таку систему на базі найпопулярнішої програми під Linux — Direwolf, одноплатного комп’ютера RaspberryPi (також можна використати клони, для прикладу OrangePi) і rtl-sdr “свистка”.

За основу для даної статті використаний офіційний мануал на [GitHub](https://github.com/wb2osz/direwolf/blob/master/doc/Raspberry-Pi-SDR-IGate.pdf)

Будемо вважати що у вас вже є налаштований RaspberryPi з SSH доступом до системи.

Для початку необхідно встановити драйвера для rtl-sdr

``` sudo apt-get update sudo apt-get install cmake build-essential libusb-1.0-0-dev cd ~ git clone git://git.osmocom.org/rtl-sdr.git cd rtl-sdr mkdir build cd build cmake ../ -DINSTALL_UDEV_RULES=ON -DDETACH_KERNEL_DRIVER=ON make sudo make install sudo ldconfig ```

Далі встановлюємо програму Direwolf.

  • 1.

    Для коректної роботи Direwolf необхідно встановити драйвера на звук. Пакети “libasound2-dev” і “libudev-dev”.

    ``` sudo apt-get install libasound2-dev sudo apt-get install libudev-dev ```
  • 2.

    Встановлюємо програму Direwolf. Будемо компілювати з вихідного коду
    Переходимо в домашній каталог і клонуємо репозиторій

    ``` cd ~ git clone https://www.github.com/wb2osz/direwolf cd direwolf ```

    Компілюємо та інсталюємо

    ``` cd ~/direwolf mkdir build && cd build cmake .. make -j4 sudo make install make install-conf ```
  • 3.

    Після цього в домашньому каталозі з'являться файли конфігурації ` direwolf.conf ` ` sdr.conf ` .
    Відкриваємо ` nano sdr.conf ` та вносимо необхідні налаштування.

  • Ось приклад файлу sdr.conf на одному з діючих вузлів

    ```
    #

    Sample configuration for SDR read-only IGate.

    We might not have an audio output device so set to null.

    We will override the input half on the command line.

    ADEVICE null null
    CHANNEL 0
    MYCALL UR0AAA-2

    First you need to specify the name of a Tier 2 server.

    The current preferred way is to use one of these regional rotate addresses:

    noam.aprs2.net - for North America

    soam.aprs2.net - for South America

    euro.aprs2.net - for Europe and Africa

    asia.aprs2.net - for Asia

    aunz.aprs2.net - for Oceania

    IGSERVER euro.aprs2.net

    You also need to specify your login name and passcode.

    Contact the author if you can’t figure out how to generate the passcode.

    IGLOGIN UR0AAA-2 00000

    That’s all you need for a receive only IGate which relays

    messages from the local radio channel to the global servers.

    PBEACON sendto=IG delay=0:15 every=30 overlay=S symbol=“digi” lat=50^38.25N lon=026^16.99E comment=“iGate 145.800 mHz”
    ```

    Пояснення до конфігурації:

    `ADEVICE null null` вимкнути прийом сигналу через звукову карту
    `CHANNEL 0` вимкнути прийом сигналу через звукову картку
    `MYCALL UR0AAA-2` позивний iGate

    ` IGSERVER euro.aprs2.net ` сервер до логування для передачі пакетів
    `IGLOGIN UR0AAA-2 00000` дані до логування. UR0AAA-2 логін, 00000 пароль. Змінити на свої.
    `PBEACON sendto=IG delay=0:15 every=30 overlay=S symbol="digi" lat=50^67.25N lon=026^17.99E comment="iGate 145.800 mHz"` дані для трансляції маяка в Інтернет. Тут потрібно змінити координати.

  • 4.

    Запускаємо iGate командою </s>rtl_fm -f 145.800M - | direwolf -c sdr.conf -r 24000 -D 1 -<e>

    Команда </s>rtl_fm -f 145.800M -<e> запускає rtl-sdr з стандартними налаштуваннями (автоматичне підсилення). Залежно від якості вашого “свистка” можливо виникне потреба внести поправку частоти або рівня підсилення сигналу.

    </s>rtl_fm -p 62 -g 12 -f 144.800M<e> ця команда запускає “свисток” з корекцією ppm 62 (ключ -p) і підсиленням сигналу 12 (ключ -g). Для запуску системи разом з Direwolf необхідно виконати наступну команду </s>rtl_fm -p 62 -g 12 -f 144.800M - | direwolf -c sdr.conf -r 24000 -D 1 -<e>

  • 5.

    Запускаємо програму автоматично через `rc.local` і `screen`. Додаємо до файлу `/etc/rc.local` наступний рядок
    `/usr/bin/screen -D -m -S direwolf /bin/bash -c '/usr/local/bin/rtl_fm -f 432.500M -g 40.2 -s 44100 | /usr/local/bin/direwolf -c /home/pi/sdr.conf -r 44100 -B 1200 -' &`

  • Використані матеріали:
    [Raspberry-Pi-APRS.pdf
    ](https://github.com/wb2osz/direwolf/blob/master/doc/Raspberry-Pi-APRS.pdf)
    [Raspberry-Pi-SDR-IGate.pdf
    ](https://github.com/wb2osz/direwolf/blob/master/doc/Raspberry-Pi-SDR-IGate.pdf)
    Розділ з документацією на [Github](https://github.com/wb2osz/direwolf/tree/master/doc)