ESP32-S31
(espressif.com)- El ESP32-S31 es un microcontrolador RISC-V de 32 bits y doble núcleo que funciona hasta 320MHz, orientado a aplicaciones avanzadas de IoT que requieren conectividad multiprotocolo y una HMI rica
- La conectividad incluye 2.4GHz Wi‑Fi 6, Thread y Zigbee basados en IEEE 802.15.4, Bluetooth 5.4 LE y Bluetooth Classic, junto con Ethernet MAC de 1000Mbps
- El sistema y la memoria incluyen 60 GPIO, MMU, 6.86 CoreMark/MHz, 512KB de SRAM, conexión DDR PSRAM de 8 bits a 250MHz, acceso simultáneo a flash y PSRAM, e interfaz SPI dedicada compatible con Octal SPI de alta velocidad
- La HMI y el audio combinan cámara DVP, LCD paralelo RGB/I8080/MOTO6800, códec JPEG, PPA, 2D-DMA, hasta 14 canales táctiles y sincronización por hardware de audio Bluetooth con LE Audio basado en LC3 e I2S dual
- La seguridad y el software ofrecen TRNG, PUF basado en RAM, secure boot, cifrado de flash y PSRAM, aceleradores AES/RSA/ECDSA/ECC, TEE/APM, y estará integrado con ESP-IDF, ESP-Matter, ESP-BLE-AUDIO, ESP-GMF y ESP Private Agents
Resumen general
- El ESP32-S31 es un microcontrolador RISC-V de 32 bits y doble núcleo de alto rendimiento, que opera hasta 320MHz y apunta a aplicaciones avanzadas de IoT que requieren conectividad multiprotocolo integral y una interfaz hombre-máquina rica
- A través de 60 GPIO, ofrece flexibilidad para diseños complejos que integran múltiples protocolos inalámbricos, diversas interfaces de pantalla y una amplia gama de periféricos
- Está orientado a cargas de trabajo de edge AI y machine learning, apto para inferencia de redes neuronales, procesamiento avanzado de señales, visión por computadora y aplicaciones de audio inteligente dentro de la eficiencia de una plataforma embebida
Conectividad y rendimiento de procesamiento
- Wi‑Fi 6 de 2.4GHz (802.11ax) busca mejorar la eficiencia de transmisión y reducir el consumo energético, por lo que es una opción adecuada para dispositivos alimentados por batería y siempre conectados
- IEEE 802.15.4 habilita los protocolos Thread y Zigbee, mientras que Bluetooth 5.4 LE soporta LE Audio, Direction Finding y Bluetooth Mesh 1.1
- Bluetooth Classic (BR/EDR) se encarga de la compatibilidad con dispositivos de audio heredados y aplicaciones HMI de baja latencia, mientras que Ethernet MAC de 1000Mbps proporciona una conexión cableada estable y de alto ancho de banda
- El sistema usa una arquitectura RISC-V de 32 bits y doble núcleo con soporte para MMU, y ofrece un rendimiento de 6.86 CoreMark/MHz junto con 60 GPIO
- Uno de los núcleos incorpora una ruta de datos de 128 bits e instrucciones SIMD para acelerar el procesamiento paralelo
- La memoria está compuesta por 512KB de SRAM, conexión DDR PSRAM de 8 bits a 250MHz, acceso simultáneo a flash y PSRAM, y expansión de memoria externa mediante una interfaz SPI dedicada compatible con modo Octal SPI de alta velocidad
HMI y audio
- La entrada de cámara usa una interfaz DVP de 8 a 16 bits, y las pantallas LCD son compatibles con RGB paralelo de 8 a 24 bits, I8080 y MOTO6800
- Soporta conversión entre RGB565, YUV422, YUV420 y YUV411, y mejora la eficiencia del procesamiento de imágenes y la actualización de pantallas con aceleradores por hardware JPEG, PPA y 2D-DMA
- Ofrece hasta 14 canales de detección táctil capacitiva, por lo que resulta adecuado para pantallas inteligentes, videoporteros, paneles multimedia y aplicaciones integradas de tacto, imagen y audio
- Bluetooth 5.4 LE Audio admite streaming de alta calidad y bajo consumo basado en el códec LC3 y audio multistream
- Bluetooth Classic se encarga de la compatibilidad con audífonos, bocinas y sistemas automotrices, mientras que los controladores I2S duales ofrecen sincronización de audio Bluetooth a nivel de hardware para lograr temporización precisa y baja latencia
Seguridad
- Las funciones de seguridad basadas en hardware están dirigidas a aplicaciones con requisitos industriales estrictos
- Integra TRNG y funciones PUF basadas en RAM para proporcionar una base para la generación de claves y la seguridad del dispositivo
- Soporta secure boot, cifrado de flash y PSRAM, y aceleradores criptográficos AES-128/256, RSA, ECDSA y ECC
- El periférico de firma digital basado en ECDSA protege las claves privadas frente al acceso desde software, y TEE y APM permiten aislamiento de software para despliegues seguros de múltiples aplicaciones
Software y recursos del producto
- El ESP32-S31 contará con soporte a través del framework open source de desarrollo IoT de Espressif ESP-IDF, ESP-Matter para dispositivos Matter, ESP-BLE-AUDIO y ESP-GMF para aplicaciones multimedia
- También apunta a permitir la creación de dispositivos cliente capaces de ejecutar o interactuar con agentes de IA mediante integración directa con la plataforma ESP Private Agents y con LLM generales
- Entre los recursos del producto se enumeran el SoC ESP32-S31, el módulo ESP32-S31-WROOM-3 y los kits de desarrollo ESP32-S31-Korvo-1 y ESP32-S31-Function-Coreboard-1
1 comentarios
Comentarios de Hacker News
A Espressif realmente le está yendo muy bien, hasta el punto de meter instrucciones SIMD en la CPU
En sistemas embebidos, tener un núcleo RISC-V es algo importante. Ahora ya no se trata de descargar un toolchain y un SDK propietarios medio rotos para compilar para un SoC, sino de algo mucho más cercano a una sola línea:
rustup target add riscv32imac-unknown-none-elfPara empezar con desarrollo embebido moderno en Rust, vale la pena ver https://kerkour.com/introduction-to-embedded-development-wit... y https://kerkour.com/rust-esp32-pentest
Los módulos CAN-FD y Motor PWM son bienvenidos, pero en ninguna parte aparece el tiempo de conversión del ADC. En control de motores se necesita un tiempo de conversión menor a 1µs, y después de posponerlo unos 15 años, el año pasado por fin pasamos de punto fijo a punto flotante
imacen el nombre del objetivo de arquitecturaSería genial algo que combinara impresión 3D, abastecimiento automático de componentes, escritura de software a medida, quizá hasta un brazo robótico, y donde solo tengas que meter piezas como en un buzón dentro de una cajita bonita sobre el escritorio. PROFIT
Ojalá no le llamaran ESP32 a todo. El salto de ESP8266 y ESP8285 a ESP32 tenía sentido, pero ahora ya hay más de 10 variantes con funciones y arquitecturas distintas
Es parecido a como en cada hilo sobre Raspberry Pi Pico (RP2030/RP2350) siempre aparece alguien que lo confunde con la versión de computadora de placa única
Cuando escucho ESP32, todavía pienso primero en el ESP32 Classic, normalmente el WROOM-32E
No es que haya más de 10 “versiones” con distintas funciones. Hablar de versiones da mucho la idea de que algo va evolucionando con el tiempo y luego lo arruinan agregando o quitando módulos
En realidad, hay 4 o 5 líneas de producto que comparten el mismo SDK, la misma filosofía de diseño, la misma estructura de precios, la misma cadena de suministro y los mismos canales de soporte. Para los equipos de ingeniería que diseñan productos, cada una de esas líneas importa muchísimo. No es solo algo para gente que aprende por hobby, aunque también creo que el soporte para ese público es bastante bueno
Dentro de esas líneas sí hay versiones reales. Por ejemplo, hoy las líneas principales son S, C, H y P, y el ESP32-S2 ya no se recomienda para diseños nuevos; deberías usar el ESP32-S3
Al final, el criterio para entenderlo es: “¿puedo poner en una PCB un chip que se llame ESP32 y programarlo con el mismo SDK?”
Lo mismo aplica a la serie de microcontroladores RP2XXX. Si alguien confunde un microcontrolador con una computadora de placa única, quizá ese no sea su tema
Y en un sentido más amplio, cuando uno se topa con estas cosas aprende más rápido si no parte de la idea de “yo ya entendí y los demás están equivocados”. Es mejor mantener la mente abierta y hacer muchas preguntas; vivimos una época dorada para los autodidactas, pero eso solo les sirve a quienes conservan durante mucho tiempo una curiosidad humilde
Estoy haciendo proyectos de arte LED como hobby con WLED, y WLED está construido únicamente sobre la plataforma ESP32. Es realmente divertido, y me sigue sorprendiendo el rendimiento de estas plaquitas y la comunidad de código abierto
Mi plataforma de control favorita es la línea QuinLED. Tiene distribución de energía, reguladores de voltaje, pistas gruesas de cobre, resistencias configurables para la línea de datos y soporte para hardware auxiliar inteligente, y aun así cuesta solo entre 30 y 50 dólares por controlador. quinled.info
<https://kno.wled.ge/> es la página de WLED, y personalmente me parece una de las URLs más ingeniosas de todos los tiempos
En el datasheet veo un periférico BitScrambler, y en términos de flexibilidad se ve muy parecido al PIO del Raspberry Pi Pico
Las especificaciones se ven bien, y habrá que ver cuánto tarda en salir en mi formato preferido de Espressif, el módulo WROOM, o en una placa de desarrollo pequeña. También me da curiosidad el precio, aunque hasta ahora ha sido impresionante cómo, por un precio similar, cada generación ofrece muchísimo más.
Si te interesan un núcleo RISC-V relativamente rápido y SIMD, también vale la pena mirar el P4, que ya se consigue. Tiene un reloj un poco más rápido, pero no tiene inalámbrico: https://products.espressif.com/#/product-comparison?names=ES...
También hay trabajos interesantes que aprovechan funciones DSP y procesamiento de imagen integrado para manejar muchos datos de píxeles, y parece que el S31 podría comportarse de forma similar: https://www.reddit.com/r/WLED/comments/1ry2jd7/wledmmp4_with...
Discusión anterior de cuando se anunció hace dos meses: https://news.ycombinator.com/item?id=47561678
Está bien que hayan vuelto a incluir Wi-Fi y Ethernet cableado en la misma pieza.
Pero se perdió el soporte MIPI que sí estaba en la línea P4 de doble núcleo RISC-V.
Estos dispositivos pequeños son realmente fascinantes. Tengo un side project que algún día quiero arrancar: poner 32 SoC, o menos SoC con más núcleos, conectarlos a un hub Ethernet mediante pistas en el PCB, y dejar uno o más puertos de red ascendentes para poder enlazar varias placas.
La idea es que cada núcleo encienda un LED rojo en el frente de la placa a través de un soporte LED de 90 grados.
Me gustaría agrupar 16 de esas placas para hacer un pequeño cubo Connection Machine.
Solo que no tengo muy claro para qué usaría un clúster de 512 servidores muy débiles. Probablemente sería para aprender a manejar una cantidad irracional de nodos.
El objetivo principal sería averiguar cómo programar esto manteniendo un equilibrio entre facilidad de uso y rendimiento.
También me gusta la idea de algo como una unión de PSRAM: que todos los núcleos tengan una PSRAM cada uno, pero que puedan intercambiar la propiedad con sus vecinos.
También me preguntaba qué pasaría en el espectro inalámbrico si se hiciera con ESP32. Serían 512 dispositivos gritándose entre sí en un espacio pequeño.
Da gusto ver una mayor adopción de RISC-V en toda la línea ESP32. Las piezas viejas basadas en Xtensa estaban bien, pero con RISC-V las herramientas, el soporte de compiladores y el ecosistema a largo plazo deberían quedar más ordenados.
Toco un poco de música, así que me interesa la salida de audio.
Me pregunto cómo está hoy en día el audio Bluetooth en microcontroladores. ¿Se puede lograr baja latencia y salida de buena calidad?
Si de verdad quieres reducir la latencia usando inalámbrico en hardware como este, una opción es usar otro ESP32 para enviar un bitstream directamente entre ambos.
Hace algunos años intenté armar un entorno portátil de composición en DAW como hobby con una laptop Windows de gama alta. La latencia real del audio BT desde la laptop hacia audífonos o earbuds ya era inutilizable, y por separado la latencia de entrada de un controlador MIDI BT también era inutilizable. Juntas, la latencia total era ridícula.
En ese momento el problema era bien conocido y muy lamentado. Algunos blogs técnicos, incluyendo blogs de MSFT, decían que había problemas en todas las capas de la pila —drivers, firmware, silicio, etc.— y que se estaba trabajando en arreglar ese caos de punta a punta.
La única solución realmente utilizable para Windows que veía mencionada en línea era usar ciertos dispositivos inalámbricos que no eran Bluetooth. Tener que conectar un dongle USB dedicado a la laptop y además elegir entre un dispositivo específico o un dongle receptor que soporte todos los dispositivos era menos atractivo que simplemente usar cable.
Desde entonces he vuelto a revisar más o menos una vez al año, pero todavía no he visto reportes de avances significativos, y cada vez hay menos discusión sobre trabajos en curso. Es muy decepcionante. Tampoco parece que la calidad del audio BT haya mejorado mucho.
Si quieres evitar la degradación de calidad de audio, tienes que elegir dispositivos específicos que soporten códecs BT propietarios o cambiarte a hardware inalámbrico con dongle no-BT. Sí se habla de mejorar la calidad de audio, pero no se ve una señal clara de que el estándar de audio BT vaya a exigir una mejor calidad mínima por defecto.
Si alguien tiene información sobre mejoras en la latencia predeterminada, la calidad o la entrada/salida de dispositivos BT estándar en configuraciones de Windows, de verdad me interesaría escucharlo.