Декодер USP (Спутникс)¶
satellites/usp_fsk_decoder.grc, режим GMSK USP. Добавлен форком.
Декодирует телеметрию аппаратов «Спутникс» в протоколе USP (Unified SPUTNIX Protocol). Как и Декодер Geoscan, опирается на блоки gr-satellites.
Примечание
Название «Sputnix» встречается только в сообщениях коммитов. В коде, в имени файла и в строке режима используется «USP». В командной строке режим нужно брать в кавычки — в названии есть пробел:
flowgraph_dispatcher --mode "GMSK USP" --baud 9600 …
Предупреждение
Требует gr-satellites, не объявленного в зависимостях проекта. См. Установка и сборка.
Отличия от Geoscan¶
Файлы структурно идентичны — одинаковый набор параметров, одинаковые переменные, одинаковые ответвления водопада, IQ, UDP и аудио. Различий ровно три:
Geoscan |
USP |
|
|---|---|---|
Дефреймер |
|
|
Порог синхрослова |
|
|
Срез ФНЧ в контуре несущей |
|
|
Размер кадра |
параметр |
не задаётся — определяется протоколом |
Всё остальное, включая формулу децимации, тракт аудио и поведение при пустых метаданных, описано на странице Декодер Geoscan и здесь не повторяется.
Параметры¶
Общий набор (см. flowgraph_dispatcher) плюс baudrate (9600) и rx_freq
(435 МГц).
audio_samp_rate = 48000
decimation = max(4, satnogs.find_decimation(baudrate, 2, audio_samp_rate))
Именно ради этого флоуграфа в формулу добавили нижнюю границу max(4, …)
(коммит «Fix decimation for USP»): без неё при некоторых бодрейтах
целочисленная децимация decimation // 2 в аудио-тракте обращалась в ноль и
флоуграф не запускался.
Частота после доплеровской компенсации — baudrate × decimation.
Тракт декодирования¶
soapy_source → satnogs_doppler_compensation → doppler_corrected
→ satellites_fsk_demodulator (iq=1, samp_rate = baudrate·decimation)
→ satellites_usp_deframer (threshold=8)
→ zeromq_pub_msg_sink → :zmq_base_port
Порог 8 бит несовпадения выше, чем у Geoscan: синхрослово USP длиннее, и более мягкий порог даёт больше захватов при том же уровне ложных срабатываний.
Формат кадра¶
Как и у Geoscan — только полезная нагрузка:
{
"pdu": "…base64…"
}
Дальнейший разбор полей телеметрии — задача принимающей стороны
(soniks-network), флоуграф отдаёт кадр как есть.
Отладка¶
flowgraph_dispatcher --mode "GMSK USP" --baud 9600 --enable-iq-dump=1 \
--iq-file-path=/tmp/.satnogs/data/iq …
gr_satellites <имя-спутника> --iq --samp_rate <baudrate×decimation> \
--wavfile /tmp/.satnogs/data/iq_cs16_*.raw
Прочие типовые отказы — Диагностика неисправностей.