ESP-SDR es un firmware de código abierto que transforma un ESP32 en un receptor de radio definida por software. No necesita hardware adicional. El truco consiste en saltarse los módems fijos de Wi-Fi y Bluetooth y leer directamente la cadena interna del conversor analógico-digital. El chip captura muestras I/Q en banda base y las envía al ordenador por USB o UART. Allí se ven como espectro y cascada. El proyecto es obra de Florian Euchner y Zoltan Doczi, del equipo ESPARGOS. Funciona en la banda de 2,4 GHz y, con el ESP32-C5, también en la de 5 GHz. Alcanza hasta 80 MSa/s. Repasamos cómo funciona, qué cifras maneja y qué límites tiene.

Una radio que ya estaba dentro del chip

El ESP32 lleva años en proyectos de domótica, audio y visión artificial. Hasta ahora, para usarlo con radio libre hacía falta un receptor externo. Con ESP-SDR eso cambia. El firmware aprovecha un camino de muestreo que ya existía en el silicio.

Los autores creen que Espressif dejó ese camino como depuración para las pruebas de fábrica de las obleas. Es una hipótesis suya. No consta confirmación del fabricante. Para activarlo, el equipo analizó la función adctrig de la biblioteca librftest de Espressif. Según CNX Software, usaron modelos de lenguaje para ayudarse en esa ingeniería inversa. Así averiguaron qué registros de depuración había que configurar.

El resultado es curioso. Una placa que puede costar menos de 5 dólares se convierte en un receptor de espectro básico. No sustituye a un equipo de laboratorio. Pero para muchas tareas de observación sobra.

Cómo funciona por dentro

El proceso tiene cuatro pasos. Primero, el firmware esquiva el módem Wi-Fi y activa el camino de depuración. Segundo, el chip escribe las muestras I/Q en bruto en su SRAM interna. Tercero, un búfer circular las saca de la memoria. Cuarto, las envía al ordenador por USB o UART.

Las muestras I/Q son dos valores por instante: fase y cuadratura. Con ellos se reconstruye la señal de radio. Un programa externo los convierte en espectro y cascada.

Para verlo existe ESP-WebSDR. Es una herramienta que corre en el navegador y se conecta al ESP32 por USB. Muestra el espectro y la cascada en tiempo real. También permite grabar el firmware desde Chrome o Edge, sin instalar nada. Puedes probar la demostración en el navegador si tienes una placa compatible.

Además, el firmware ofrece una FFT en el propio chip. Con ella envía datos de espectro ya calculados, en vez de muestras en bruto. Eso reduce mucho el tráfico hacia el ordenador.

Chips compatibles y cifras de radio

La lista de chips es amplia. Incluye ESP32, ESP32-C3, ESP32-C5, ESP32-C6, ESP32-C61, ESP32-S2 y ESP32-S3. También figura el ESP32-S31, aún en vista previa.

El sintonizador cubre de forma nominal la banda ISM de 2,4 GHz. En algunos chips llega de 2,2 a 2,7 GHz. El ESP32-C5 añade la banda de 5 GHz, de 4,8 a 6,0 GHz. El C61 sube hasta 2,7 GHz. Con ello puede capturar señales de la banda 7 de LTE y de la banda n7 de 5G NR.

La frecuencia de muestreo llega a 80 MSa/s. El ancho de banda útil va de unos 13 a unos 54 MHz, según el chip. Esa diferencia importa. Un ancho de 13 MHz apenas cubre un canal Wi-Fi de 20 MHz de forma parcial. Uno de 54 MHz abarca más de dos canales contiguos de 20 MHz.

El cuello de botella: sacar los datos

Aquí está la parte técnica más reveladora. A 80 MSa/s, el flujo bruto ronda los 2,56 Gbit/s. Eso equivale a 32 bits por muestra, es decir, 16 bits para I y 16 para Q.

Ningún puerto del chip aguanta ese caudal. Un USB de velocidad completa llega a 12 Mbit/s. Eso es apenas un 0,5 % del flujo. Una UART a 3 Mbaudios queda en torno al 0,1 %. Son cálculos nuestros con valores de ejemplo. Aun así, muestran la escala del problema.

Por eso ESP-WebSDR no transmite de forma continua. Toma instantáneas cortas de I/Q y con ellas construye el espectro y la cascada. La consecuencia es clara. Puede perder señales que lleguen entre dos capturas. Un paquete breve de Bluetooth LE puede pasar sin ser visto.

El equipo trabaja en una solución para el ESP32-S31, llamada SoapyESPSDR. Transmitiría I/Q por Gigabit Ethernet a entre 8 y 16 MSa/s. A 32 bits por muestra, eso supone entre 256 y 512 Mbit/s. Cabe en un enlace de 1 Gbit/s. El destino serían programas como GNU Radio y Gqrx. Es una línea de trabajo, no un producto cerrado.

Qué aporta frente a otros proyectos

El ecosistema ya tenía herramientas de radio sobre ESP32. Ninguna llegaba tan lejos sin ayuda externa. Un ejemplo reciente es LakeShark. Convierte una LilyGO T-Display P4 en un escáner portátil. Pero el ESP32-P4 no tiene radio propia. Depende de un receptor RTL-SDR Blog V3 o V4 como etapa de radiofrecuencia.

Otros proyectos analizan el Wi-Fi con datos ya procesados. Es el caso del analizador Wi-Fi con ESP32-C5, que vigila 2,4 y 5 GHz. También hay herramientas de pruebas de seguridad que añaden un chip nRF24 externo para explorar 2,4 GHz.

ESP-SDR es distinto en un punto. Usa la radio integrada del propio ESP32. No hay etapa externa. Los datos son muestras en bruto, no resultados ya interpretados por el módem. Eso abre la puerta a análisis propios.

El producto de cerca

Conviene fijarse en el origen del proyecto. Los autores no buscaban una radio de bajo coste. Lo encontraron mientras desarrollaban ESPARGOS One, una matriz de ocho antenas para detección con Wi-Fi.

Con ESP-SDR, esa matriz puede funcionar como un SDR de ocho canales. Con ello puede detectar y localizar señales de Bluetooth LE y de Zigbee en la banda de 2,4 GHz. La localización con varias antenas es lo que distingue este uso. Un solo receptor te dice que hay una señal. Ocho antenas coordinadas te permiten estimar de dónde llega.

Ambos proyectos, ESP-SDR y ESP-WebSDR, están publicados con licencia GPL-3.0. Eso permite estudiar el código, modificarlo y redistribuirlo con las mismas condiciones. Los repositorios están en GitHub bajo la organización ESPARGOS.

Un aviso sobre el código

Los autores incluyen una nota honesta en el repositorio de ESP-WebSDR. Indican que parte del código está generado con inteligencia artificial. Explican que han revisado a mano el trabajo de pyespargos y del firmware de ESPARGOS One. Pero no han tenido tiempo de revisar a mano todo ESP-WebSDR.

Esa transparencia es útil. Quien quiera usarlo en un entorno serio debería revisar el código por su cuenta. Para experimentar en el banco de trabajo, el riesgo es menor.

Reflexiones finales

ESP-SDR no sustituye a un receptor dedicado. Las cifras lo dejan claro. El caudal de salida es el límite. Con USB o UART, solo se ven fragmentos de la señal. Para vigilar emisiones breves o intermitentes hace falta un enlace más ancho, como el Ethernet que prepara el equipo para el S31.

Aun así, el valor práctico es alto. Para un aficionado, una placa de pocos euros pasa a ser un analizador de espectro de 2,4 GHz. Para quien trabaja con domótica, sirve para ver la ocupación real de los canales donde conviven Wi-Fi, Zigbee y Bluetooth. En nuestro caso, con dispositivos Zigbee y ESP32-C6 como los del Apollo ESPHome Starter Kit que analizamos en su día, tendría una utilidad inmediata: comprobar interferencias sin comprar nada más.

También hay una lectura de fondo. Un chip de uso masivo guardaba una función que casi nadie conocía. Salió a la luz por ingeniería inversa, con ayuda de modelos de lenguaje. Queda por ver cómo reaccionará Espressif. Podría documentarla, limitarla o ignorarla. No hay anuncio al respecto.

Un último apunte de prudencia. Hablamos de recepción. El proyecto captura señales, no las emite. Aun así, conviene respetar la normativa local sobre escucha de comunicaciones. Observar la ocupación de una banda ISM propia es una cosa. Analizar redes ajenas es otra.

3
Suscribirse
Notificación
0 Comments
0
¡Aquí puedes dejar tus comentarios!x