Передатчик SSTV для стратосферного аэростата на SX1276 (RA-02)
Kacper Kidala SP8ESA
Передатчик изображений SSTV для стратосферного аэростата с телеметрией Horus v2, использующий модуль SX1276 (RA-02) и Raspberry Pi Pico. USB-накопитель для загрузки изображений, режимы Robot36/PD120, диапазоны 2 м/70 см.
![]()
Описание проекта
Передатчик изображения 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_TXBuild
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. Снимите перемычку и выполните сброс
Загрузка изображений
- Подключите Pico к компьютеру через USB.
- Дождитесь появления диска "SSTV" (это может занять несколько секунд).
- Скопируйте файлы JPEG на диск.
- Файлы будут передаваться в алфавитном порядке.
Требования к изображению
- Формат: 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 Поиск неисправностей
Файлы становятся доступными только для чтения.
Иногда файловая система флэш-памяти может быть повреждена, и файлы отображаются только для чтения.
Решение:
- Отключите Pico от USB.
- Подключите контакт GP5 к земле с помощью перемычки.
- Подключите Pico к USB, удерживая перемычку.
- Дождитесь сообщения "Форматирование завершено" (проверьте вывод UART).
- Снимите перемычку и перезагрузите Pico.
- Загрузите заново изображения и файл 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 бод)
![]()
Заметки о миссии на воздушном шаре
- Используйте 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 ]