Hemos visto cómo los ESP32 se emplean para todo, desde sencillos dispositivos IoT hasta proyectos de IA, audio y visión. Sin embargo, mientras buscaba un proyecto nuevo, descubrí el firmware ESP-SDR, que convierte el ESP32 en una radio definida por software (SDR) nativa sin necesidad de hardware adicional.
Este firmware de código abierto sortea los módems Wi-Fi y Bluetooth de función fija del ESP32 y se conecta directamente a la cadena de señal del ADC interno para capturar muestras I/Q de banda base en bruto. Después envía esas muestras a un ordenador por USB o UART, donde se pueden procesar y visualizar como espectro de radio o diagrama de cascada, transformando los chips ESP32 compatibles en receptores SDR de bajo coste sin necesidad de hardware SDR adicional.
Características principales y hardware compatible:
- Chips compatibles: ESP32, ESP32-C3, ESP32-C5 (banda dual de 2,4/5 GHz), ESP32-C6, ESP32-C61, ESP32-S2, ESP32-S3 y el ESP32-S31 en versión preliminar.
- Rango de sintonización: nominalmente 2,4 GHz ISM (2,2–2,7 GHz en algunos chips) y 5 GHz (4,8–6,0 GHz en el ESP32-C5). El C61 puede sintonizar hasta 2,7 GHz y capturar señales LTE de banda 7 y 5G NR de banda n7.
- Frecuencia de muestreo y ancho de banda: hasta 80 MSa/s con un ancho de banda de ~13–54 MHz, según el chip.
- FFT integrada: el firmware admite FFT en el propio chip y envía datos de espectro compactos en lugar de muestras I/Q en bruto.
Según los desarrolladores, es probable que los ingenieros de Espressif dejaran en el silicio una ruta de muestreo I/Q de depuración para las pruebas de obleas en fábrica. Utilizando LLM para hacer ingeniería inversa de la función adctrig dentro de la biblioteca librftest de Espressif, el equipo averiguó cómo configurar registros de depuración especiales.
Una vez habilitado, el ESP32 escribe las muestras I/Q en bruto directamente en su SRAM interna. El firmware utiliza entonces un búfer circular para trasladar las muestras desde la SRAM y transferirlas a un ordenador por USB o UART. Para visualizar las señales capturadas se necesita ESP-WebSDR, una herramienta basada en navegador que se conecta al ESP32 por USB y muestra el espectro de radio y el diagrama de cascada en tiempo real. También permite grabar el firmware ESP-SDR directamente desde un navegador web compatible (como Chrome o Edge).
El ESP32 es rápido y puede capturar datos a hasta 80 MSa/s, lo que genera unos 2,56 Gbps de datos, pero sacar toda esa información fuera del chip es el principal problema. USB y UART no pueden soportar la tasa de datos completa, por lo que ESP-WebSDR captura instantáneas breves de I/Q para construir el espectro y el diagrama de cascada. Esto implica que puede perderse señales que llegan entre ventanas de captura. Para el flujo continuo, el equipo trabaja en SoapyESPSDR para el ESP32-S31, capaz de transmitir datos I/Q por Gigabit Ethernet a 8–16 MSa/s hacia programas como GNU Radio y Gqrx.
Anteriormente hemos hablado de varios proyectos de radio y SDR basados en el ESP32, pero todos ellos seguían dependiendo de un receptor externo o de datos Wi-Fi ya procesados. Hace solo unos días contamos cómo el firmware LakeShark convierte un LilyGO T-Display P4 en un escáner SDR de mano en el que el ESP32-P4 carece de radio propia y recurre a un dongle RTL-SDR Blog V3 o V4 como front-end de RF. También hemos cubierto el analizador Wi-Fi ESP32-C5 de Chen Liang, que monitoriza señales Wi-Fi de 2,4 GHz y 5 GHz, mientras que ESP-WIFI-CSI trabaja con información de estado de canal. nRFBOX V2 y ESP32-DIV emplean un nRF24 externo para escanear los 2,4 GHz. En comparación con todo ello, ESP-SDR se apoya en la radio integrada del ESP32, así que no hace falta hardware SDR adicional. Esto hace posible el análisis de espectro básico en una placa ESP32 que puede costar menos de 5 dólares.
Los desarrolladores Florian Euchner y Zoltan Doczi, del proyecto ESPARGOS, encontraron esta función mientras trabajaban en ESPARGOS One, una instalación de ocho antenas para detección mediante Wi-Fi. Con ESP-SDR, también puede funcionar como un SDR de ocho canales y detectar y localizar señales como Bluetooth LE y Zigbee en la banda de 2,4 GHz.
Tanto ESP-SDR como ESP-WebSDR son proyectos de código abierto publicados bajo la licencia GPL-3.0. El código fuente está disponible en GitHub y puedes probar la demo de SDR basada en navegador con una placa de desarrollo ESP32 compatible. Además, dejaron una nota sobre el uso de IA en el repositorio de ESP-WebSDR:
Partes de este código están generadas por IA. Aunque dedicamos un gran esfuerzo manual a pyespargos y al firmware de nuestras matrices ESPARGOS One, no tenemos tiempo para revisar manualmente todo el código fuente de ESP-WebSDR.
Traducido del artículo en inglés «ESP-SDR firmware turns ESP32 into a 2.4/5 GHz Software-Defined Radio (SDR)» de Debashis Das.
Publicaciones traducidas automáticamente
