EdigE
← ЛЕНТА

В ESP32 нашли недокументированный выход сырых I/Q до Wi‑Fi‑модема

Шестнадцать GPIO ESP32-S3 можно превратить в параллельную шину, по которой наружу вылетают отсчёты радиосигнала. В проекте eSpDR их принимает внешняя ПЛИС Alchitry Au, складывает в DDR3 и передаёт в компьютер через FT600 USB 3. Такой стенд заявляет захват до 80 млн комплексных отсчётов в секунду. Речь идёт о конкретных ESP32 с встроенным радиоблоком и только о приёме: опубликованный путь не делает микроконтроллер двунаправленным SDR.

Сигнал сворачивает до штатного модема

Внутри чипа существует недокументированный отладочный sample-dump-тракт. После понижения частоты и АЦП он отводит пары I/Q в SRAM до фиксированной обработки Wi‑Fi-модемом. В обычной жизни этот модем сам синхронизируется, демодулирует 802.11 и выдаёт уже пакеты. Здесь наружу попадает материал для собственной DSP-цепочки: спектроанализатора, декодера, измерителя помех или эксперимента с алгоритмами синхронизации.

У ESPARGOS один комплексный отсчёт хранится в 32-битном слове с двумя 10-битными знаковыми компонентами I и Q; часть разрядов отведена служебной информации приёмника. При 80 MSa/s SRAM приходится принимать 2.56 Гбит/с. Это и объясняет странную раздвоенность результата: сам радиочип умеет быстро снять сигнал, но типичные USB, UART и Wi‑Fi-интерфейсы платы не могут бесконечно выносить такой массив.

80 миллионов отсчётов упираются в вывод

Основной режим ESP-SDR поэтому работает снимками и короткими захватами с паузами на выгрузку. Для ESP32-S31 опубликован экспериментальный непрерывный профиль: до 20 MSa/s через USB High-Speed либо до 40 MSa/s по Gigabit Ethernet, с 8 битами на I и 8 битами на Q. В этом режиме пока остаются DC-пик и вопросы к качеству тракта. Внешняя ПЛИС в eSpDR решает именно транспортную часть: автор указывает полезный поток 200 MB/s и около 190 MB/s, измеренных на USB-тракте.

Радиотракт остаётся Wi‑Fi-трактом

Радиочасть не становится универсальным широкополосным приёмником. Для реализации ESPARGOS указана настройка около 2.2–2.7 ГГц и аналоговая полоса порядка 13–54 МГц, зависящая от выбранного режима. 5-гигагерцовый диапазон привязан к ESP32-C5, а не ко всему семейству. Частота дискретизации 80 MSa/s также не означает автоматически 80 МГц чистой полезной полосы: её формируют встроенные фильтры, настройка тракта, АЧХ и алиасинг.

Восемь Wi-Fi-чипов становятся массивом приёмников

ESPARGOS One изначально объединяет восемь ESP32 для экспериментов с Wi-Fi CSI. Доступ к raw I/Q расширяет набор наблюдаемых сигналов за пределы декодируемых training fields: массив может записывать Bluetooth, Zigbee, 802.11b и нестандартные формы сигнала, а центральная обработка — сравнивать каналы, искать направление прихода или выполнять согласованную фильтрацию.

Однако восемь потоков I/Q ещё не означают когерентную фазированную решётку. Для настоящего beamforming нужны общий либо калиброванный опорный генератор, известные межканальные задержки и измеренная стабильность фазы; таких данных пока нет. Практический путь снова ведёт к обработке рядом с АЦП: DDC, decimation, FFT или детектор должны уменьшить поток до того, как восемь каналов упрутся в интерфейс.

Для одиночной платы есть и противоположный по сложности вход: WebSerial-инструмент прошивает поддерживаемую ESP32 из браузера и показывает spectrum/waterfall без отдельного desktop-приложения. Это не меняет RF-характеристики тракта, зато превращает скрытый тестовый канал в воспроизводимый эксперимент.

Зачем вскрывать этот внутренний шлюз

Самое ценное в этой находке — возможность увидеть границу, которую производитель обычно прячет внутри Wi‑Fi-чипа. ESP32 превращается в дешёвый приёмный RF-фронтенд для узкого участка около своих штатных диапазонов. Его динамический диапазон, фильтрация и стабильность не конкурируют с измерительным SDR, зато доступ к сырому сигналу открывает эксперименты, для которых прежде требовался отдельный радиотрансивер или готовый SDR-донгл.