Быстрый старт

Запуск наблюдения вручную, без soniks-client-new. Полезно для проверки станции после установки и для отладки декодера.

Подготовка

1. Каталог для результатов. Подписчики открывают файлы на запись и не создают каталоги сами:

mkdir -p /tmp/.satnogs/data

2. rigctld. Флоуграфы получают доплеровский сдвиг от rigctld по сети (модель NETRIGCTL). Без него блок доплер-компенсации не запустится. Для проверки без реального трансивера подойдёт фиктивная модель:

rigctld -m 1 -T 127.0.0.1 -t 4532 &

Проверить, что отвечает:

echo "f" | nc 127.0.0.1 4532

3. Приёмник. Узнать строку устройства для SoapySDR:

SoapySDRUtil --find

Обычно это driver=rtlsdr, driver=airspy, driver=hackrf и т. п.

Приём в режиме FM

Самый простой режим: без декодера кадров, только аудио, водопад и IQ.

flowgraph_dispatcher \
    --mode FM \
    --soapy-rx-device=driver=rtlsdr \
    --samp-rate-rx=2.048e6 \
    --rx-freq=145800000 \
    --gain=40.0 \
    --antenna=RX \
    --ppm=0 \
    --rigctl-host=127.0.0.1 \
    --rigctl-port=4532 \
    --file-path=/tmp/.satnogs/data/audio.ogg \
    --waterfall-file-path=/tmp/.satnogs/data/waterfall.dat \
    --decoded-data-file-path=/tmp/.satnogs/data/data

Остановка — Ctrl+C. Диспетчер гасит флоуграф и подписчиков сам.

Появится:

  • /tmp/.satnogs/data/audio.ogg — демодулированное аудио, OGG Vorbis, 48 кГц моно;

  • /tmp/.satnogs/data/waterfall.dat — данные водопада.

Кадров не будет: у режима FM нет декодера (outputs_frames: False).

Приём телеметрии Geoscan

Режим с декодером кадров: добавляется --baud, и диспетчер поднимает подписчика кадров на порту 16887 (--zmq-base-port).

flowgraph_dispatcher \
    --mode GFSK_GEOSCAN \
    --baud 9600 \
    --soapy-rx-device=driver=rtlsdr \
    --samp-rate-rx=2.048e6 \
    --rx-freq=436500000 \
    --gain=40.0 \
    --rigctl-host=127.0.0.1 \
    --rigctl-port=4532 \
    --file-path=/tmp/.satnogs/data/audio.ogg \
    --waterfall-file-path=/tmp/.satnogs/data/waterfall.dat \
    --decoded-data-file-path=/tmp/.satnogs/data/data

Каждый декодированный кадр — отдельный JSON-файл /tmp/.satnogs/data/data_<UTC-метка>:

ls -1 /tmp/.satnogs/data/data_*
cat /tmp/.satnogs/data/data_2026-08-22T14-31-07
{
    "pdu": "SGVsbG8sIEdlb3NjYW4h"
}

Полезная нагрузка кадра лежит в pdu в base64. Набор остальных полей зависит от декодера — Выходные данные.

Для USP (Спутникс) всё то же самое, только --mode "GMSK USP" (кавычки обязательны — в названии режима пробел).

Запись IQ

По умолчанию IQ не пишется. Включается отдельным флагом:

flowgraph_dispatcher --mode FM --enable-iq-dump=1 \
    --iq-file-path=/tmp/.satnogs/data/iq   

Получится /tmp/.satnogs/data/iq_cs16_<UTC>.raw — чередующиеся комплексные int16. Частота дискретизации в имени файла не сохраняется, её нужно помнить самому; для FM это 48 кГц, для режимов с бодрейтом — baudrate × decimation (см. Соглашения в .grc).

Живой поток IQ по UDP

Параллельно записи флоуграф всегда шлёт доплер-скорректированный поток по UDP:

flowgraph_dispatcher --mode FM --udp-dump-host=127.0.0.1 --udp-dump-port=57356   

Формат — комплексные 16-битные целые, полезная нагрузка пакета 1472 байта. Удобно смотреть в реальном времени в gqrx, inspectrum или собственном флоуграфе GNU Radio.

Что дальше