Передатчик SSTV для стратосферного аэростата на SX1276 (RA-02)


Kacper Kidala SP8ESA
Передатчик изображений SSTV для стратосферного аэростата с телеметрией Horus v2, использующий модуль SX1276 (RA-02) и Raspberry Pi Pico. USB-накопитель для загрузки изображений, режимы Robot36/PD120, диапазоны 2 м/70 см.

Logo

Описание проекта

Передатчик изображения SSTV (Slow Scan Television) со встроенной телеметрией Horus Binary v2 4FSK для миссий на стратосферных аэростатах. Предназначен для любительского радиодиапазона 70 см (430 МГц).

Функции

  • USB-накопитель — Pico отображается как USB-накопитель для удобной загрузки изображений.
  • Поддержка JPEG — автоматическое декодирование JPEG с масштабированием.
  • Несколько изображений — перебор всех файлов JPEG в алфавитном порядке.
  • Два режима SSTV — Robot36 (36 с) и PD120 (126 с).
  • Телеметрия Horus v2 — 4FSK-телеметрия для отслеживания местоположения.
  • Интеграция GPS — поддержка модуля GPS ATGM336H
  • Наложение изображения — позывной, метка и счетчик изображений на передаваемых изображениях.
  • Файл конфигурации — простая настройка через config.txt
  • Коррекция PPM — точная настройка частоты для компенсации смещения кварцевого резонатора.
  • Раздельные частоты - независимые частоты SSTV и Horus.
  • Автоматическое восстановление - перемычка GP5 для сброса к заводским настройкам.

Аппаратное обеспечение

Необходимые компоненты

Компонент Описание
Raspberry Pi Pico Mикроконтроллер RP2040
RA-02 (SX1276) Модуль LoRa 433 МГц
АТГМ336Х GPS-модуль (необязателен, но рекомендуется)
Проволочная антенна 1/4 волны для диапазона 70 см (~17 см)

Частотный диапазон

Группа Диапазон частот
70 см 430,000 - 440,000 МГц

Схема подключения

Схема

Подробную схему подключения см. в файле WIRING.txt.


Raspberry Pi Pico              RA-02 Module (SX1276)
=================              =====================
GPIO 10 (SPI1 SCK)  ---------- SCK
GPIO 11 (SPI1 TX)   ---------- MOSI
GPIO 12 (SPI1 RX)   ---------- MISO
GPIO 13            ---------- NSS (CS)
GPIO 14            ---------- RESET
GPIO 15            ---------- DIO0

3V3 (Pin 36)       ---------- VCC (3.3V!)
GND                ---------- GND

Raspberry Pi Pico              ATGM336H GPS Module
=================              ===================
GPIO 1 (UART0 RX)  ---------- TX
3V3                ---------- VCC
GND                ---------- GND

GPIO 5             ---------- GND (jumper for factory reset)

USB                ---------- To computer

!!! ВНИМАНИЕ: Модуль RA-02 работает при напряжении 3,3 В. НЕ ПОДКЛЮЧАЙТЕ к источнику напряжения 5 В!

Примечания:
1. Используется SPI1 (а не SPI0)
2. Все сигналы с активным низким уровнем (NSS, RESET) подключены напрямую
3. DIO0 используется для обнаружения прерывания TX Done
4. GPIO5 используется для перемычки сброса к заводским настройкам — подключите её к GND при загрузке для форматирования флэш-памяти
5. USB обеспечивает питание и выступает в качестве устройства хранения данных для загрузки образа

Изготовление

Требования

  • Raspberry Pi Pico SDK 2.0+ (или расширение VS Code Pico)
  • CMake 3.13+
  • Инструментарий ARM GCC

Клонируем репозитории

git clone https://github.com/raspberrypi/pico-sdk/ pico-sdk.git
git clone https://github.com/SP8ESA/SX1276_HAB_SSTV_TX.git
cd SX1276_HAB_SSTV_TX

Build

mkdir build &&
cd build
export PICO_SDK_PATH=../../pico-sdk
cmake ..
make -j4

Прошивка

# Hold BOOTSEL and connect USB
cp SX1276_HAB_SSTV_TX.uf2 /media/$USER/RPI-RP2/

Использование

Для сброса файловой системы флешки:
1. Установите перемычку между GPIO5 и GND
2. Подключите Pico к USB
3. Дождитесь завершения форматирования
4. Снимите перемычку и выполните сброс

Загрузка изображений

  1. Подключите Pico к компьютеру через USB.
  2. Дождитесь появления диска "SSTV" (это может занять несколько секунд).
  3. Скопируйте файлы JPEG на диск.
  4. Файлы будут передаваться в алфавитном порядке.

Требования к изображению

  • Формат: JPEG (базовый, не прогрессивный)
  • Размер: любой (автоматически масштабируется до 320x240)
  • Именование: Стандартные имена файлов версии 8.3 (например, IMAGE1.JPG)

Конфигурация

Редактировать файл config.txt на USB-накопителе:

sstv_freq=433.400
horus_freq=437.600
ppm=0.0
interval=3
mode=robot36
horus=1
horus_id=256
horus_count=1
sstv_callsign=N0CALL
sstv_label=
sstv_font_size=2
sstv_counter=1

Параметр Описание По умолчанию
sstv_freq Частота передачи SSTV в МГц 433.400
horus_freq Частота передачи Horus в МГц 437.600
ppm Коррекция кристалла PPM 0.0
interval Секунды между передачами 3
mode Режим SSTV: robot36 или pd120 robot36
horus Включить телеметрию Horus v2: 0 или 1 1
horus_id Идентификатор полезной нагрузки Horus (256-65535 для пользовательской настройки) 256
horus_count Количество пакетов Horus за цикл SSTV 1
sstv_callsign Наложение позывного (верхний левый угол) Позывного нет
sstv_label Накладка на этикетку (нижний левый угол) (пусто)
sstv_font_size Размер шрифта для наложений (1-4) 2
sstv_counter Показать счетчик изображений (1/12, 2/12...): 0 или 1 1

Наложение изображения

Перед передачей передатчик автоматически накладывает текст на изображения:

  • Вверху слева: позывной (из sstv_callsign)
  • В правом верхнем углу: счетчик изображений (например, "3/12"), если sstv_counter=1имеется несколько изображений.
  • Внизу слева: Пользовательская метка (из sstv_label)

Размер шрифта можно регулировать с помощью sstv_font_size(1 = маленький, 4 = большой).

Horus Binary v2 Telemetry

Передатчик поддерживает телеметрию Horus Binary v2 4FSK. При включении этой функции пакеты телеметрии передаются перед каждым изображением SSTV на отдельной частоте.

Технические характеристики Horus v2:

  • 100 бод 4FSK (прямое смещение радиочастоты)
  • 270 Гц интервал между тонами
  • Golay FEC для коррекции ошибок
  • Смещение аудиосигнала +1200 Гц для приема USB-сигнала
  • Совместимо с декодером Horus-GUI.

Приём через USB: Настройте свой SDR-приемник на нужный режим horus_freqи используйте режим USB. Самый низкий тон будет на частоте +1200 Гц, самый высокий — на +2010 Гц. Это позволяет осуществлять прямой приём со стандартными настройками Horus-GUI.

Содержимое упаковки:

  • Идентификатор полезной нагрузки и счетчик пакетов
  • Время (часы, минуты, секунды) по данным GPS
  • Местоположение (широта, долгота, высота) по данным GPS.
  • Скорость и количество спутников
  • Температура ядра и напряжение батареи (АЦП)

Интеграция с GPS: Подключите модуль GPS ATGM336H к GPIO1 (UART0 RX) для получения реальных данных о местоположении. Без GPS передаются имитированные тестовые координаты.

Режимы SSTV

Режим Разрешение Время VIS-код
Робот36 320?240 36с 0x08
PD120 640?496 126с 0x5F

Поиск неисправностей

Файлы становятся доступными только для чтения.

Иногда файловая система флэш-памяти может быть повреждена, и файлы отображаются только для чтения.

Решение:

  1. Отключите Pico от USB.
  2. Подключите контакт GP5 к земле с помощью перемычки.
  3. Подключите Pico к USB, удерживая перемычку.
  4. Дождитесь сообщения "Форматирование завершено" (проверьте вывод UART).
  5. Снимите перемычку и перезагрузите Pico.
  6. Загрузите заново изображения и файл config.txt.

Декодирование JPEG не удалось.

Библиотека TJpgDec не поддерживает прогрессивный JPEG. Преобразуйте ваши изображения:

# Using ImageMagick
convert input.jpg -interlace none output.jpg

# Using ffmpeg
ffmpeg -i input.jpg -pix_fmt yuvj420p output.jpg

USB-накопитель не отображается

  • Подождите 5-10 секунд после подключения.
  • Попробуйте другой USB-кабель (кабель для передачи данных, а не только для зарядки).
  • Проверьте вывод UART на наличие отладочных сообщений.

Технические характеристики

Параметр Ценить
Модуляция SSTV FM (аудиочастота 1200-2300 Гц)
Горовая модуляция 4FSK (с шагом 270 Гц)
Выходная мощность +20 дБм (100 мВт) макс.
Точность частоты Зависит от кристалла + поправка PPM
Буфер изображения 320?240 YCbCr
Флэш-память 256 КБ для изображений
GPS ATGM336H через UART0 (9600 бод)

Logo

Заметки о миссии на воздушном шаре

  • Используйте Robot36 для более быстрых обновлений, PD120 — для лучшего качества.
  • Включите телеметрию Horus для отслеживания местоположения в реальном времени.
  • Перед запуском проверьте коррекцию PPM на земле.
  • Убедитесь, что антенна правильно согласована с выбранной частотой.
  • Учитывайте рабочий цикл и терморегулирование на большой высоте.
  • Для определения местоположения GPS-сигналу может потребоваться беспрепятственный обзор неба.

Предупреждение

!!! Для работы в режиме любительской радиосвязи требуется соответствующая лицензия!

Убедитесь, что у вас есть действующая лицензия радиолюбителя и вы соблюдаете правила вашей страны. Для полетов на воздушном шаре может потребоваться дополнительная координация с авиационными властями.

Лицензия

Данный проект распространяется под лицензией CC BY-NC 4.0 (Creative Commons Attribution-NonCommercial).

  • Некоммерческое использование (включая любительскую радиосвязь) - Разрешено
  • Допускаются изменения - OK
  • Для коммерческого использования требуется разрешение автора.

73 de SP8ESA


Первоисточник: https://github.com/SP8ESA/SX1276_HAB_SSTV_TX


[ На главную ] [ RP2040 ]