ESP32-S3
⚡ Lo esencial en 60 segundos
- cpu — dual-core Xtensa LX7 @ up to 240 MHz with added vector instructions for NN/signal-processing acceleration (ESP-DSP, ESP-NN, ESP-WHO, ESP-Skainet) (
- memory — 512 KB internal SRAM, 384 KB (or 448 KB) ROM, 16 KB low-power SRAM; external flash up to 16 MB incl. high-speed octal SPI flash; PSRAM up to 8 MB octal, with configurable data/instruction cache ( datasheet
- connectivity — Wi-Fi 802.11 b/g/n 2.4 GHz (40 MHz bandwidth) + Bluetooth 5 (LE) with Coded PHY long range and 2 Mbps PHY; no Bluetooth Classic (
- usb — native USB-OTG (GPIO19/20) plus a USB-Serial/JTAG peripheral — one chip, two USB personalities (datasheet URL above).
- gpio — 45 programmable GPIOs; SPI, I2S (audio AEC support), I2C, LEDC PWM, RMT, ADC, UART, SD/MMC host, TWAI (CAN), 14 capacitive-touch GPIOs, ultra-low-power (ULP) FSM coprocessor ( - ADC: two 12-bit SAR units; ADC1 channels on GPIO1–GPIO10 (datasheet URL above). No DAC (unlike ESP32/S2) — use PWM/I2S for analog out.
- logic_level — 3.3 v
- En esta placa : 9 tutoriales · 10 código
El ESP32-S3 es un microcontrolador de alto rendimiento desarrollado por Espressif Systems, presentado a finales de 2020 y disponible en producción masiva desde 2021 y 2022. En la actualidad, este componente se posiciona como la recomendación predeterminada para nuevos diseños basados en la familia ESP32, destacando especialmente por su enfoque en la inteligencia artificial y las interfaces hombre-máquina. Su arquitectura está construida alrededor de un sistema en chip que integra dos núcleos de procesador Xtensa LX7, capaces de operar a una frecuencia máxima de 240 MHz. Una característica distintiva de estos núcleos es la inclusión de instrucciones vectoriales específicas, diseñadas para acelerar el procesamiento de señales y las operaciones propias de las redes neuronales. Esto permite ejecutar bibliotecas optimizadas como ESP-NN y ESP-DSP, facilitando tareas complejas como la detección facial en tiempo real mediante ESP-WHO o el reconocimiento de voz offline con ESP-Skainet, todo ello directamente en el dispositivo sin necesidad de depender constantemente de la nube.
En cuanto a la memoria, el ESP32-S3 dispone de 512 KB de RAM interna y una memoria ROM de 384 KB o 448 KB, además de 16 KB de SRAM de bajo consumo. Para el almacenamiento externo, soporta memoria flash de hasta 16 MB y memoria PSRAM de hasta 8 MB, ambas utilizando interfaces SPI de ocho líneas (octales) que permiten velocidades de transferencia de datos muy superiores a las interfaces tradicionales de cuatro líneas. Esta configuración de memoria es crucial para aplicaciones que requieren gestionar grandes volúmenes de datos, como gráficos avanzados o modelos de inteligencia artificial complejos. La conectividad inalámbrica es otro de sus pilares fundamentales, ofreciendo compatibilidad con Wi-Fi 802.11 b/g/n en la banda de 2.4 GHz y Bluetooth 5.0 de baja energía (BLE). Es importante notar que, a diferencia de versiones anteriores, el ESP32-S3 no incluye Bluetooth clásico, pero su implementación de BLE 5.0 ofrece ventajas significativas, como el soporte para el PHY codificado de largo alcance y una velocidad de datos de 2 Mbps, lo que mejora tanto la estabilidad como la eficiencia energética en comunicaciones inalámbricas.
La versatilidad de las interfaces de entrada y salida es notable, con 45 pines GPIO programables que admiten diversos protocolos como SPI, I2C, I2S para audio, UART y SD/MMC. Una particularidad técnica relevante es la ausencia de un convertidor digital-analógico (DAC) integrado, a diferencia de sus predecesores ESP32 y S2. Por lo tanto, si una aplicación requiere una salida de voltaje analógico continuo, el desarrollador debe utilizar técnicas alternativas como la modulación por ancho de pulso (PWM) o la salida de audio I2S filtrada. Los niveles lógicos de trabajo son de 3.3 voltios y los pines no son tolerantes a 5 voltios, lo que exige precaución en el diseño de circuitos de interfaz. Además, el chip incorpora 14 pines de toque capacitivo y un coprocesador de estado finito de ultra bajo consumo (ULP), que permite mantener funciones básicas activas mientras el núcleo principal duerme, logrando consumos en el rango de los microamperios durante el modo de sueño profundo.
El manejo de la energía y la seguridad son aspectos críticos en este microcontrolador. El ESP32-S3 incluye un periférico llamado World Controller, que permite crear dos entornos de ejecución completamente aislados, mejorando la seguridad del sistema mediante la separación de privilegios. También soporta cifrado de memoria flash AES-XTS y arranque seguro basado en RSA. Para el desarrollo, el ecosistema es amplio y robusto, siendo el SDK oficial ESP-IDF la herramienta principal, aunque también hay soporte completo para el núcleo de Arduino, MicroPython, CircuitPython y Rust. La programación y depuración se simplifican gracias a la presencia de un puerto USB nativo con dos personalidades: USB-OTG para comunicación de datos y USB-Serial/JTAG para depuración y consola, eliminando la necesidad de chips conversores externos en muchas placas de desarrollo.
No obstante, el uso del ESP32-S3 presenta ciertos desafíos técnicos que los desarrolladores deben conocer. Los pines GPIO0, GPIO3, GPIO45 y GPIO46 son pines de configuración (strapping pins) que determinan el modo de arranque del chip; si estos pines están conectados a cargas o estados incorrectos durante el reinicio, la placa puede parecer inoperante o entrar en bucles de arranque. Asimismo, los pines GPIO44 y GPIO43 están asignados por defecto a la comunicación serie UART0, por lo que reutilizarlos como GPIO genéricos puede romper la consola de depuración. En las variantes de módulo que utilizan PSRAM octal (como las versiones N8R8 o N16R8), los pines GPIO35 y GPIO36 quedan reservados para la memoria, reduciendo el número de pines disponibles para el usuario. Finalmente, aunque el rendimiento es excelente, el uso simultáneo de Wi-Fi y la lectura del segundo conversor analógico-digital (ADC2) no es posible, una limitación común en esta familia de chips que requiere planificación en el diseño de sensores.



Esquema de pines (pinout)


| Attr | Especificaciones | verificado |
|---|---|---|
cpu | dual-core Xtensa LX7 @ up to 240 MHz with added vector instructions for NN/signal-processing acceleration (ESP-DSP, ESP-NN, ESP-WHO, ESP-Skainet) ( | ✔ |
memory | 512 KB internal SRAM, 384 KB (or 448 KB) ROM, 16 KB low-power SRAM; external flash up to 16 MB incl. high-speed octal SPI flash; PSRAM up to 8 MB octal, with configurable data/instruction cache ( datasheet | ✔ |
connectivity | Wi-Fi 802.11 b/g/n 2.4 GHz (40 MHz bandwidth) + Bluetooth 5 (LE) with Coded PHY long range and 2 Mbps PHY; no Bluetooth Classic ( | ✔ |
usb | native USB-OTG (GPIO19/20) plus a USB-Serial/JTAG peripheral — one chip, two USB personalities (datasheet URL above). | ? sin verificar |
gpio | 45 programmable GPIOs; SPI, I2S (audio AEC support), I2C, LEDC PWM, RMT, ADC, UART, SD/MMC host, TWAI (CAN), 14 capacitive-touch GPIOs, ultra-low-power (ULP) FSM coprocessor ( - ADC: two 12-bit SAR units; ADC1 channels on GPIO1–GPIO10 (datasheet URL above). No DAC (unlike ESP32/S2) — use PWM/I2S for analog out. | ✔ |
logic_level | 3.3 v | ? sin verificar |
power | multiple low-power modes driven by the ULP core; deep sleep in the ~µA class (datasheet power tables). > | ? sin verificar |
temperature | commercial/industrial grades; module datasheets list up to 65 °C ambient for WROOM variants, extended grades exist. > | ? sin verificar |
- Fabricante: Espressif Systems (Shanghai); >
- Variantes (sufijos de chip/módulo): combinaciones de flash/PSRAM N2R2, N4R2, N8R2, N8R8, N16R8 (PSRAM octal), N8 (solo flash), versiones de módulo U.FL (-1U); también ESP32-S3-PICO-1 SiP con USB OTG y PSRAM interna (
- Módulos: ESP32-S3-WROOM-1/-1U/-2 (
- Placas comunes: ESP32-S3-DevKitC-1, ESP32-S3-Box-3, Seeed XIAO ESP32S3, Adafruit Feather/QT Py ESP32-S3, LILYGO T-Display-S3, M5Stack StackS3.
+ Puntos fuertes
- Aceleración de IA: instrucciones vectoriales Xtensa + ESP-NN/ESP-DSP; ejecuta ESP-WHO (detección facial) y ESP-Skainet (voz sin conexión) en el propio dispositivo (
- Flash/PSRAM SPI octal (N16R8: 16 MB de flash + 8 MB de PSRAM) con caché — margen para modelos grandes/gráficos (
- BLE 5: Coded PHY de largo alcance + PHY de 2 Mbps (
- Periférico World Controller para ejecución de confianza / separación de privilegios (
- Doble USB (OTG + Serial/JTAG), soporte de LCD MIPI-DSI/RGB en algunos paquetes, interfaz de cámara (DVP) → el chip de referencia para pantallas inteligentes (URL de la datasheet arriba).
− Puntos débiles
- Pines de strapping GPIO0/GPIO3/GPIO45/GPIO46: GPIO3 (selección JTAG), GPIO45 (VDD_SPI) y GPIO46 (arranque) deciden el comportamiento de arranque; cargarlos = síntomas de «placa muerta» (datasheet §Strapping Pins:
- GPIO44/43 son los valores por defecto de RX/TX de UART0 — reutilizarlos como GPIO rompe la consola; GPIO19/20 son los únicos pines USB (URL de la datasheet arriba).
- La PSRAM octal secuestra GPIO35/36 (y GPIO37 en algunas configuraciones): en los módulos N8R8/N16R8 esos pines los consume la PSRAM — las placas los pierden en silencio (datasheet del módulo:
- Sin DAC: el código de salida analógica portado desde ESP32/S2 debe migrar a PWM o I2S (URL de la datasheet arriba).
- Conmutación USB-Serial/JTAG vs USB-OTG: las apps TinyUSB reclaman GPIO19/20; si la app se cuelga antes de la inicialización USB puedes perder el puerto nativo y necesitar UART0 o el modo de descarga ROM (docs USB de ESP-IDF:
- ADC2 bloqueado mientras Wi-Fi está activo (para toda la familia) (
- GPIO0 no debe estar pilotado durante el reset (modo de arranque) y en muchas placas es también el botón BOOT — un clásico bucle de arranque autoinfligido (URL de la datasheet arriba).
- La contención PSRAM + Wi-Fi es más suave que en S2, pero el ajuste de la invalidación de caché importa para cargas de IA intensivas en PSRAM (guía PSRAM de ESP-IDF:
- Retour d'expérience expert expert — expert-microcontroleur
- Après plusieurs mois d'utilisation des modules ESP32-S3-WROOM-1 et des kits DevKitC-1, je confirme que la puissance de calcul est réelle. Les instructions vectorielles Xtensa LX7 changent la donne pour l'IA embarquée, surtout avec ESP-NN. La connectivité BLE 5 et le Wi-Fi sont stables. Attention to… — expert-microcontroleur
- Salut expert, merci pour le retour. Je bute justement sur ton point concernant l'absence de DAC. J'essaie de porter un vieux projet de générateur audio qui tournait sur un ESP32 classique. Sans DAC, je dois passer par du PWM ou I2S ? Le filtre passe-bas sur le PWM devient vite pénible à calibrer po… — maker-bidule
- Pour compléter sur le DAC, oui, il faut migrer vers I2S ou utiliser la bibliothèque LEDC pour du PWM filtré, mais la qualité audio est moindre. J'ai aussi rencontré le souci des broches USB. Si ton firmware plante avant l'initialisation des GPIO19/20, tu perds le port USB natif. J'ai dû rétablir l'… — codeur_nuit
Opiniones y proyectos de la comunidad
- ESP32-S3 Synthesizer Project with AI-Assisted Code forum.arduino.cc
- Project with ESP32-S3-Touch-LCD-4B forum.arduino.cc
- ESP32-S3 DevkitC-1 has two USB ports labeled USB and UART arduino.stackexchange.com
- ESP32-S3-MINI issues electronics.stackexchange.com
- ESP-WHO
- Seeed XIAO ESP32S3 getting started
- ESPHome on ESP32-S3
- esp32-s3_datasheet_en.pdf datasheet
- esp32-s3-wroom-1_wroom-1u_datasheet_en.pdf datasheet
- Pines de strapping GPIO0/GPIO3/GPIO45/GPIO46: GPIO3 (selección JTAG), GPIO45 (VDD_SPI) y GPIO46 (arranque) deciden el comportamiento de arranque; cargarlos = síntomas de «placa muerta» (datasheet §Strapping Pins:
- GPIO44/43 son los valores por defecto de RX/TX de UART0 — reutilizarlos como GPIO rompe la consola; GPIO19/20 son los únicos pines USB (URL de la datasheet arriba).
- La PSRAM octal secuestra GPIO35/36 (y GPIO37 en algunas configuraciones): en los módulos N8R8/N16R8 esos pines los consume la PSRAM — las placas los pierden en silencio (datasheet del módulo:
- Sin DAC: el código de salida analógica portado desde ESP32/S2 debe migrar a PWM o I2S (URL de la datasheet arriba).
- Conmutación USB-Serial/JTAG vs USB-OTG: las apps TinyUSB reclaman GPIO19/20; si la app se cuelga antes de la inicialización USB puedes perder el puerto nativo y necesitar UART0 o el modo de descarga ROM (docs USB de ESP-IDF:
- ADC2 bloqueado mientras Wi-Fi está activo (para toda la familia) (
- GPIO0 no debe estar pilotado durante el reset (modo de arranque) y en muchas placas es también el botón BOOT — un clásico bucle de arranque autoinfligido (URL de la datasheet arriba).
- La contención PSRAM + Wi-Fi es más suave que en S2, pero el ajuste de la invalidación de caché importa para cargas de IA intensivas en PSRAM (guía PSRAM de ESP-IDF:
- Faire clignoter la LED RGB native sur GPIO48 debutant Schéma : IMG-esp32-s3-debutant-1-esp32-s3-rgb-gpio48-blink.svg — Carte ESP32-S3 (DevKitC-1 v1.1, XIAO ou T-Display) avec un pixel adressable WS2812 câblé sur GPIO48, broche signalée, câble USB vers l'ordinateur.
- Lire le bouton BOOT sur GPIO0 sans se piéger debutant Schéma : IMG-esp32-s3-debutant-2-esp32-s3-bouton-boot-gpio0.svg — Bouton BOOT d'une carte ESP32-S3 relié à GPIO0 avec pull-up interne, un second bouton externe sur GPIO1, câble USB vers l'ordinateur.
- Console série sur l'USB natif (CDC) du S3 debutant Schéma : IMG-esp32-s3-debutant-3-esp32-s3-console-usb-cdc.svg — Carte ESP32-S3 reliée par un seul câble USB à l'ordinateur, le moniteur série affichant des messages, la mention USB CDC On Boot Enabled visible dans le menu Outils.
- Bandeau NeoPixel piloté par le périphérique RMT intermediaire Schéma : IMG-esp32-s3-intermediaire-1-esp32-s3-neopixel-rmt.svg — Bandeau de 8 pixels WS2812 alimenté en 5 V via le bus USB, données reliées à GPIO48 par une résistance de 330 ohm, masse commune avec la carte ESP32-S3.
- Service batterie BLE 5 avec notification intermediaire Schéma : IMG-esp32-s3-intermediaire-2-esp32-s3-ble5-service-batterie.svg — Carte ESP32-S3 émettant des ondes BLE vers un smartphone affichant le niveau de batterie, avec la mention Bluetooth 5 LE, Coded PHY et 2 Mbps.
- Caméra OV2640 : capture et serveur MJPEG intermediaire Schéma : IMG-esp32-s3-intermediaire-3-esp32-s3-camera-ov2640.svg — Module caméra DVP OV2640 connecté au bus parallèle d'une carte ESP32-S3 (type DevKitC-1 avec connecteur caméra ou XIAO avec extension), flux vidéo affiché dans un navigateur via Wi-Fi.
- Clavier USB HID via l'USB-OTG natif (TinyUSB) avance Schéma : IMG-esp32-s3-avance-1-esp32-s3-usb-otg-hid-clavier.svg — ESP32-S3 connecté par GPIO19/GPIO20 (USB-OTG) à un ordinateur et se faisant reconnaître comme clavier USB, avec un bouton physique sur GPIO1 déclenchant une frappe.
- Inference IA accélérée par les instructions vectorielles avance Schéma : IMG-esp32-s3-avance-2-esp32-s3-inference-ia-vectorielle.svg — Puce ESP32-S3 avec son double cœur LX7 et ses extensions vectorielles, un petit réseau de neurones en couches traversant la puce, chronomètre symbolisant le gain ESP-NN face à une puce sans vectoriel.
- Dompter le double USB : Serial/JTAG et OTG de front avance Schéma : IMG-esp32-s3-avance-3-esp32-s3-dual-usb-jtag-cdc.svg — Carte ESP32-S3 avec deux connecteurs USB : l'un relié au périphérique USB-Serial/JTAG, l'autre au contrôleur OTG GPIO19/GPIO20, l'IDE affichant console série et débogage GDB simultanés.
Biblioteca de código — ejemplos escritos para esta placa
clignotante.inoArduinobouton-led.inoArduinorespiration.inoArduinodht22.inoArduinooled-i2c.inoArduinoserveur-web.inoArduinoble-compteur.inoArduinoservo.inoArduinosommeil-profond.inoArduinomesures.pyMicroPython
Ejemplos y repositorios encontrados en línea
- espressif/esp-who github.com
- espressif/esp-idf github.com
- espressif/arduino-esp32 github.com