> ## Documentation Index
> Fetch the complete documentation index at: https://docs.kode.diy/llms.txt
> Use this file to discover all available pages before exploring further.

# ESP32-S3

> Conoce el microprocesador que le da vida al Kode Dot y su control de estados.

# Características

El **ESP32-S3** es uno de los mejores microprocesadores de **Espressif** que incorpora un **doble núcleo XTensa LX7,** capaces de correr hasta **240MHz**. Además, integra conectividad de **2.4GHz** con soporte **WiFi** y **Bluetooth LE**.

En la siguiente imagen se puede ver el **diagrama funcional del ESP32-S3** con todos los periféricos que incorpora:

<Frame caption="Diagrama funcional del ESP32-S3">
  <img width="600" src="https://mintcdn.com/kodediy/XTX2YJaXd-8SFLrS/images/kode-dot/esp32s3/funtionalblock.png?fit=max&auto=format&n=XTX2YJaXd-8SFLrS&q=85&s=e07ab48d920398fb569eefb526dfce1b" data-path="images/kode-dot/esp32s3/funtionalblock.png" />
</Frame>

Además de su potencia y versatilidad, lo hemos integrado en el Kode Dot ampliando sus capacidades con **32MB de flash** y **8MB de PSRAM.** Así, hace honor a su estatus de ser el **mejor dispositivo maker del mercado** y ejecutar programas mucho más grandes y complejos.

| Característica | Descripción                              |
| -------------- | ---------------------------------------- |
| Flash          | Memoria externa de **32MB por Octalbus** |
| PSRAM          | Memoria interna de **8MB por Octalbus**  |

## Antena

Dentro del Kode Dot hemos incorporado una antena de **2.4GHz** en la PCB. Con esta antena vas a poder usar el **WiFi** y el **Bluetooth LE** del ESP32-S3, además de **ESP-NOW** y otros protocolos de comunicación que funcionen en esta banda de frecuencia.

## Programación

**Programar el Kode Dot se hace como cualquier otra placa basada en el ESP32-S3.** Conectalo diréctamente a tu ordenador mediante el cable USB-C y empieza a subir tus códigos.

<Note>En el apartado [Aplicaciones](/es/kodeOS/apps) se explica en detalle cómo subir código y crear aplicaciones.</Note>

Internamente, las **lineas de datos del USB-C** están conectadas a los pines **GPIO19 y GPIO20** para usar el periférico interno de **USB-Serial**.

Con el USB-C, también tienes la opción de usar el periférico **USB Serial/JTAG** interno que incorpora el ESP32-S3 para **flashear y debuggear el Kode Dot.**

Para los más avanzados, se pueden usar los pines **GPIO39, GPIO40, GPIO41 y GPIO42** del **conector superior del Kode Dot** para debuggear un programa usando una **interfaz externa de JTAG.**

## Control de estados

El control de los estados de **BOOT** y **RESET** del ESP32-S3 se realiza mediante unas sencillas combinaciones con los **botones del Kode Dot.**

### RESET

Para resetear el Kode Dot, se debe pulsar el **botón izquierdo del pad** a la vez que se pulsa el **botón de abajo.** Esto es útil para estos casos:

* Cuando se ha **flasheado** un programa y el Kode Dot se queda **bloqueado.**
* Para **salir de una aplicación** y volver al menú principal.

### BOOT

Para que el Kode Dot entre en modo BOOT, mientras se mantiene el **botón de arriba,** se debe resetear el Kode Dot siguiendo la combinación del RESET.

<Info>Es probable que no tengas que usar este proceso ya que si el código que subes al Kode Dot bloquea o hace reiniciar al ESP32-S3, el Kode Dot volverá al menú principal automáticamente.</Info>

## Ejemplo de código

Con este código puedes obtener la **dirección MAC** de las diferentes interfaces del ESP32-S3.

```cpp esp32s3_info.ino lines icon="microchip" theme={null}
/**
 * Muestra información del microcontrolador ESP32-S3 por el puerto serie.
 * Incluye modelo, revisión, número de núcleos y Chip ID.
 * Imprime los datos cada 3 segundos.
 */
/* ───────── KODE | docs.kode.diy ───────── */

void setup() {
  Serial.begin(115200); /* Inicia la comunicación serie a 115200 baudios */
}

void loop() {
  /* Imprime modelo y revisión del chip ESP32 */
  Serial.printf("ESP32 Chip model = %s Rev %d\n", ESP.getChipModel(), ESP.getChipRevision());
  
  /* Imprime la cantidad de núcleos del chip */
  Serial.printf("This chip has %d cores\n", ESP.getChipCores());
  
  /* Imprime el identificador único del chip */
  Serial.print("Chip ID: "); 
  Serial.println(ESP.getEfuseMac()); 

  /* Espera 3 segundos antes de repetir */
  delay(3000); 
}
```

## Descarga de ejemplos

Puedes probar los códigos de ejemplo mediante el IDE de Arduino o el IDE de ESP-IDF o descargar los códigos en nuestro drive:

[Ejemplos del ESP32-S3](https://drive.google.com/drive/folders/11FnC9pj8qADzXAlg8xAT0knNWh9bgYV6)
