Forward from: ПОЛЕЗНАЯ НАГРУЗКА
На ESP32-C5 собрали приёмник аналогового FPV-видео
В первом посте про ESP-SDR мы отмечали два ограничения: вывод короткими окнами и непроверенную настройку 100-6000 МГц. Теперь есть измерения и обходы.
Диапазон измерили с генератором. ESP32-C5 принимает 2130-2730 и 4790-5990 МГц, выше генератор не пускал. Участок над ~5,75 ГГц берётся только через тракт настройки драйвера Wi-Fi, штатный теряет там около 20 дБ. Ниже ~2,1 ГГц синтезатор не перестраивается и молча остаётся около 2,2 ГГц: команда на 1090 МГц на деле слушает 2186-2234 МГц. ELRS на 868/915 МГц, видео 1,2-1,3 ГГц и ГНСС чипу недоступны. ESP32-S3 в режиме преобразования 5/6 достаёт 1,84-2,79 ГГц, крайние точки зависят от платы.
Пропуски между окнами закрыли двумя путями. h0m3us3r нашёл тот же тракт независимо от ESPARGOS. Его eSpDR снимает с ESP32-S3 непрерывные 80 млн отсчётов/с по 10 бит на компоненту. Оба ядра программно выдают данные по 16 линиям GPIO на ПЛИС Alchitry Au (Artix-7, 256 МБ DDR3). Та на типичном эфире сжимает поток без потерь примерно до 1,2 байта на отсчёт и гонит по USB 3 через FT600. Каждая потеря учитывается как точный пропуск во времени, 30-минутная запись на стенде прошла без ошибок. АЧХ по полосе 80 МГц неравномерна, только приём.
На C5 обошлись без внешнего железа. Отсчёты с диагностической шины модема идут через матрицу GPIO на параллельный порт PARLIO внутри чипа. Выходит 40 млн отсчётов/с без пропусков, но по 4 бита на I и Q: линий данных у PARLIO всего восемь. При удачно выбранном окне битов отношение сигнал/шум на тоне лишь на 1 дБ хуже полного 10-битного захвата. На время записи восемь выводов работают как выходы с переключением до 40 МГц, вешать на них ничего нельзя.
Для ЧМ-видео этого хватило. C5VRX делает из Seeed XIAO ESP32-C5 автономный приёмник 5,8 ГГц на 48 каналов. Демодуляция идёт в аппаратном блоке BitScrambler, композитный сигнал через резистивный 6-битный ЦАП подаётся прямо в видеоочки. Процессор только держит усиление. Штатная АРУ на непрерывной несущей перезахватывается каждые ~21 мкс и рисует полосы, поэтому автор написал свой регулятор, а попутно нашёл ошибку в драйвере PARLIO, Espressif её подтвердила. Результат пока стендовый: край дальности, перегрузку рядом с передатчиком и долгие сеансы не проверяли.
ESPsoup взял у C5VRX идею беспропускного захвата и превращает ESP32-C5 в сканер для Android или браузера. В тесте с генератором все 52 канала (5362-5945 и 2414-2468 МГц) дали картинку, 24-28 кадров/с, чёрно-белую или с грубым цветом. Строк доходит около 7 900 в секунду из 15 625 у PAL, мешает USB: у C5 он только Full Speed, ~0,94 МБ/с. Одна плата держит один канал, на весь Raceband нужно восемь, их и проверили на одном хабе.
По птицам в бета-версии 0.3 автор заявляет:
⚙️ Remote ID по Bluetooth и Wi-Fi с координатами борта и пилота
⚙️ DJI DroneID для OcuSync 2/3: серийный номер, модель, координаты
⚙️ у DJI O4 DroneID зашифрован, канал опознаётся по сигнатуре OFDM
⚙️ LoRa 2,4 ГГц и ELRS: коэффициент расширения, полоса, частота пакетов, команды не читаются
⚙️ HDZero, Walksnail, цифровое видео DJI и линии Autel только опознаются
С передачей тоже сдвиг. В ESP32SDR произвольные I/Q на передачу не работали, а h0m3us3r нашёл в ESP32-S3 движок, который проигрывает I/Q из SRAM на ЦАП передатчика до 80 млн отсчётов/с. jochenhammes повторил его в исследовательской ветке esp32-sdr-trx и передал кадры LoRa, их принял PlutoSDR. Мощность передатчика в проекте не откалибрована, по оценке автора - несколько микроватт на антенне отладочной платы. Гармоники не измерялись.
🟢Подписаться на канал
🟢Подписаться в MAX
В первом посте про ESP-SDR мы отмечали два ограничения: вывод короткими окнами и непроверенную настройку 100-6000 МГц. Теперь есть измерения и обходы.
Диапазон измерили с генератором. ESP32-C5 принимает 2130-2730 и 4790-5990 МГц, выше генератор не пускал. Участок над ~5,75 ГГц берётся только через тракт настройки драйвера Wi-Fi, штатный теряет там около 20 дБ. Ниже ~2,1 ГГц синтезатор не перестраивается и молча остаётся около 2,2 ГГц: команда на 1090 МГц на деле слушает 2186-2234 МГц. ELRS на 868/915 МГц, видео 1,2-1,3 ГГц и ГНСС чипу недоступны. ESP32-S3 в режиме преобразования 5/6 достаёт 1,84-2,79 ГГц, крайние точки зависят от платы.
Пропуски между окнами закрыли двумя путями. h0m3us3r нашёл тот же тракт независимо от ESPARGOS. Его eSpDR снимает с ESP32-S3 непрерывные 80 млн отсчётов/с по 10 бит на компоненту. Оба ядра программно выдают данные по 16 линиям GPIO на ПЛИС Alchitry Au (Artix-7, 256 МБ DDR3). Та на типичном эфире сжимает поток без потерь примерно до 1,2 байта на отсчёт и гонит по USB 3 через FT600. Каждая потеря учитывается как точный пропуск во времени, 30-минутная запись на стенде прошла без ошибок. АЧХ по полосе 80 МГц неравномерна, только приём.
На C5 обошлись без внешнего железа. Отсчёты с диагностической шины модема идут через матрицу GPIO на параллельный порт PARLIO внутри чипа. Выходит 40 млн отсчётов/с без пропусков, но по 4 бита на I и Q: линий данных у PARLIO всего восемь. При удачно выбранном окне битов отношение сигнал/шум на тоне лишь на 1 дБ хуже полного 10-битного захвата. На время записи восемь выводов работают как выходы с переключением до 40 МГц, вешать на них ничего нельзя.
Для ЧМ-видео этого хватило. C5VRX делает из Seeed XIAO ESP32-C5 автономный приёмник 5,8 ГГц на 48 каналов. Демодуляция идёт в аппаратном блоке BitScrambler, композитный сигнал через резистивный 6-битный ЦАП подаётся прямо в видеоочки. Процессор только держит усиление. Штатная АРУ на непрерывной несущей перезахватывается каждые ~21 мкс и рисует полосы, поэтому автор написал свой регулятор, а попутно нашёл ошибку в драйвере PARLIO, Espressif её подтвердила. Результат пока стендовый: край дальности, перегрузку рядом с передатчиком и долгие сеансы не проверяли.
ESPsoup взял у C5VRX идею беспропускного захвата и превращает ESP32-C5 в сканер для Android или браузера. В тесте с генератором все 52 канала (5362-5945 и 2414-2468 МГц) дали картинку, 24-28 кадров/с, чёрно-белую или с грубым цветом. Строк доходит около 7 900 в секунду из 15 625 у PAL, мешает USB: у C5 он только Full Speed, ~0,94 МБ/с. Одна плата держит один канал, на весь Raceband нужно восемь, их и проверили на одном хабе.
По птицам в бета-версии 0.3 автор заявляет:
⚙️ Remote ID по Bluetooth и Wi-Fi с координатами борта и пилота
⚙️ DJI DroneID для OcuSync 2/3: серийный номер, модель, координаты
⚙️ у DJI O4 DroneID зашифрован, канал опознаётся по сигнатуре OFDM
⚙️ LoRa 2,4 ГГц и ELRS: коэффициент расширения, полоса, частота пакетов, команды не читаются
⚙️ HDZero, Walksnail, цифровое видео DJI и линии Autel только опознаются
С передачей тоже сдвиг. В ESP32SDR произвольные I/Q на передачу не работали, а h0m3us3r нашёл в ESP32-S3 движок, который проигрывает I/Q из SRAM на ЦАП передатчика до 80 млн отсчётов/с. jochenhammes повторил его в исследовательской ветке esp32-sdr-trx и передал кадры LoRa, их принял PlutoSDR. Мощность передатчика в проекте не откалибрована, по оценке автора - несколько микроватт на антенне отладочной платы. Гармоники не измерялись.
🟢Подписаться на канал
🟢Подписаться в MAX