Одна из проблем, с которой сталкиваешься при работе на спутнике QO-100, заключается в дрейфе LNB. Существует несколько решений, одно из которых – это программная коррекция частоты по маяку со спутника. Используемый мной Gqrx из коробки такого не умеет. К счастью, программа является расширяемой.
Ранее в посте Управляем Gqrx при помощи Python мы установили, что Gqrx можно управлять по TCP-протоколу. Также из release notes мы узнаем, что с версии Gqrx 2.17.7 протокол позволяет включать и выключать запись IQ-данных.
Напрашивается следующий алгоритм:
LNB_LO;Иллюстрация первых двух шагов:
Здесь я использовал частоту дискретизации поменьше, чтобы на графике можно было что-то разглядеть. Пики маяка видны слева. Сигналы справа – это цифровые виды связи. Между ними находится телеграфный участок. На момент создания записи в телеграфе никто не работал.
Скрипт на Python, при помощи которого был построен график, можно скачать здесь. Также вас может заинтересовать статья Построение диаграмм на Python с помощью Matplotlib, если вдруг вы ее пропустили.
Казалось бы, остальное – дело техники. Но все оказалось не так просто. Когда Gqrx корректирует частоту LNB, то также меняется и частота приема. А ее менять не нужно. Для управления частотой приема в протоколе предусмотрена команда F. Однако данная команда автоматически меняет как частоту, на которую настроен SDR-приемник, так и смещение фильтра (USB / CW-U / ...) в полосе приема. Это не то что нужно.
В идеале хотелось бы иметь отдельные команды – чтение / запись центральной частоты, а также чтение / запись смещения фильтра. Итого четыре команды. Я отправил соответствующий pull request в Gqrx. На момент написания поста он не был принят. А значит, предстоит собрать пропатченный Gqrx. Это не сложно.
Клонируем Gqrx, применяем патч:
$ git clone git@github.com:gqrx-sdr/gqrx.git
$ cd gqrx
$ git reset --hard 0b4ab30e42c3
$ wget https://eax.me/files/2026/06/gqrx-remote-protocol.patch
$ git am gqrx-remote-protocol.patch
Устанавливаем менеджер изолированных окружений micromamba:
$ /bin/bash <(curl -L https://micro.mamba.pm/install.sh)
Создаем окружение с зависимостями:
$ micromamba create -n gqrx \
c-compiler cxx-compiler cmake make pkg-config \
gnuradio-core gnuradio-osmosdr libboost-devel libgl-devel \
pybind11 pulseaudio qt6-gtk-platformtheme qt6-main \
soapysdr-module-lms7 soapysdr-module-plutosdr soapysdr-module-remote \
"sysroot_linux-64=2.17.*" volk
Компилируем Gqrx, используя данное окружение:
$ micromamba run -n gqrx bash -el -c "
mkdir -p build && cd build &&
cmake -DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=\$CONDA_PREFIX .. &&
make -j4 && make install"
Собираем AppImage:
$ APPIMAGE_EXTRACT_AND_RUN=1 \
PREFIX=/home/eax/micromamba/envs/gqrx ./appimage.sh
С пропатченным Gqrx все работает как часы:
В ходе экспериментов выяснилось следующее:
Полученный Python-скрипт можно скачать здесь. Заинтересованным читателям предлагается изучать его самостоятельно.
| # | Наименование новости | Тональность | Информативность | Дата публикации |
|---|---|---|---|---|
| 1 | Доработка апконвертера для QO-100: стабилизация частоты | 0 | 5 | 23-06-2026 |
| 2 | Самодельный апконвертер для спутника QO-100 | 0 | 5 | 12-05-2026 |
| 3 | Q/V-Band Dual Circular Polarized, Frequency Diplexer Feed System for Next-Generation Satcom | 0 | 28.18 | 12-05-2026 |
| 4 | Детектор наличия ВЧ сигнала от передатчика | 0 | 5 | 28-04-2026 |
| 5 | Измерения приращений ускорения силы тяжести гравиметром ГНУ-КВ | 0 | 5 | 15-09-2025 |
| 6 | Минкомсвязь предложила уменьшить стоимость использования частот для 5G в 85 раз | 0 | 0 | 25-07-2019 |
| 7 | Скорость полета космической обсерватории "Спектр-РГ" снизят | 0 | 0 | 22-07-2019 |
| 8 | ГКРЧ вновь отказала операторам в выделении необходимых для 5G частот | 0 | 0 | 01-08-2019 |
| 9 | Ученые РФ работают над технологией, благодаря которой часы на спутниках могут стать точнее | 0 | 0 | 16-07-2019 |
| 10 | Разработка плана по расчистке частот для 5G может обойтись в 200 млн рублей | 0 | 0 | 01-08-2019 |