iot.gripe

ESP32-C3 pinout: pines, cuáles usar y evitar (Super Mini)

2 de noviembre de 2026 · 7 min de lectura · Steven Carvajal · Tutoriales

Código de este artículo en GitHub →

Contenido del artículo

El ESP32-C3 tiene solo 22 GPIO (GPIO0 a GPIO21) y varios de ellos están ocupados por la memoria flash, el USB o el arranque. En una placa pequeña como la Super Mini salen a los bordes unos 13, así que elegir bien cada pin importa más que en un ESP32 clásico. Un pin mal elegido da síntomas confusos: la placa no arranca al encenderla sola, el LED parpadea sin que lo pidas o una lectura analógica falla cuando conectas el Wi-Fi.

Esta guía usa como referencia la ESP32-C3 Super Mini (la placa más barata y común) y menciona la ESP32-C3-DevKitM-1 cuando difiere. El chip es el mismo, pero el orden y los rótulos cambian entre fabricantes: compáralo con el esquema de tu placa. Para ver todas las especificaciones, está la ficha del ESP32-C3.

ESP32-C3 pinout: diagrama de pines de la placa Super Mini con las funciones de cada GPIO

Resumen rápido

GrupoGPIOQué hacer
Seguros para uso general0, 1, 3, 4, 5, 6, 7, 10Úsalos con calma; revisa los matices de abajo
Arranque (strapping)2, 8, 9Cuida su nivel al encender
USB integrado18 (D−), 19 (D+)No los uses si cargas programas por USB
Consola serie (UART0)21 (TX), 20 (RX)Déjalos libres para depurar
Memoria flash12 a 17No salen a la placa: son de la flash

Los pines de arranque: 2, 8 y 9

Al encender, el chip lee el nivel de estos tres pines y decide cómo iniciar:

  • GPIO9: a nivel bajo entra en modo de descarga. Es el botón BOOT de la Super Mini.
  • GPIO8 y GPIO2: junto con GPIO9 definen el modo de arranque y si se muestra el registro de arranque por el puerto serie.

Puedes usarlos como GPIO normales después del arranque. El problema aparece si algo externo los fuerza a un nivel equivocado en el momento del encendido: un módulo que mantenga GPIO9 a nivel bajo hace que la placa entre en modo de descarga y "no haga nada". Es la causa típica de "funciona con el USB conectado al ordenador, pero no con la fuente".

Regla práctica: si te sobran pines, deja libres GPIO2, GPIO8 y GPIO9. Si necesitas I2C con los pines por defecto (8 y 9), que sus resistencias pull-up vayan a 3,3 V: así ambos arrancan en alto, que es el estado normal.

El LED de la Super Mini está en GPIO8

El LED azul de la placa suele estar en GPIO8 y se enciende con nivel bajo (LOW enciende, HIGH apaga). Tiene dos consecuencias:

  • Si usas GPIO8 como SDA de I2C, el LED parpadeará con la comunicación. No es un fallo, pero conviene saberlo.
  • Si conectas algo a GPIO8, el LED se comporta de forma extraña. Cuenta ese pin como ocupado.
const int LED = 8;   // Super Mini: nivel bajo = encendido

void setup() {
  pinMode(LED, OUTPUT);
}

void loop() {
  digitalWrite(LED, LOW);    // enciende
  delay(500);
  digitalWrite(LED, HIGH);   // apaga
  delay(500);
}

Ese comportamiento de nivel invertido es el que se usa en el sensor PIR con ESP32-C3 y en el bombillo inteligente con interruptor.

USB integrado: GPIO18 y GPIO19

El ESP32-C3 trae un controlador USB Serial/JTAG dentro del chip. Sus señales usan GPIO18 (D−) y GPIO19 (D+). En la Super Mini van al conector USB-C y no salen a los bordes, así que no tendrás que decidir nada. En la DevKitM-1 sí salen a los conectores: si los usas como entrada o salida, pierdes la carga de programas y el puerto serie por USB hasta reiniciar con otro código.

Si ves que el ESP32 no aparece en el puerto USB justo después de usar GPIO18 o GPIO19, esa es la causa más probable.

En el Arduino IDE, para ver el Monitor Serie por el USB integrado activa USB CDC On Boot: Enabled en el menú de la placa. Sin esa opción, Serial.println() no se ve en muchas Super Mini.

Los pines de la memoria flash: 12 a 17

Los GPIO12 a GPIO17 conectan la memoria flash y no están disponibles. En la Super Mini ni siquiera salen a la placa. Por eso, de los 22 GPIO del chip, a los bordes llegan unos 13: GPIO0 a GPIO10, más GPIO20 y GPIO21.

ADC1 frente a ADC2

El ESP32-C3 tiene dos convertidores analógicos con 6 canales en total:

  • ADC1: GPIO0 a GPIO4.
  • ADC2: solo GPIO5.

El Wi-Fi comparte hardware con ADC2. Con el Wi-Fi activo, una lectura en GPIO5 puede fallar o devolver un error. Si tu proyecto usa Wi-Fi y lee un sensor analógico, conéctalo a un pin de ADC1: GPIO0, GPIO1, GPIO3 o GPIO4 (GPIO2 es de arranque).

const int PIN_SENSOR = 3;   // ADC1_3: seguro con Wi-Fi activo

void setup() {
  Serial.begin(115200);
  analogReadResolution(12);      // 0 a 4095
}

void loop() {
  int mv = analogReadMilliVolts(PIN_SENSOR);   // aplica la calibración de fábrica
  Serial.println(mv);
  delay(500);
}

Las lecturas del ADC no son perfectamente lineales. Si necesitas precisión, usa analogReadMilliVolts() en lugar de analogRead().

Pines por defecto de I2C, SPI y UART

Casi cualquier periférico puede asignarse a cualquier GPIO libre gracias a la matriz de pines del chip, así que los "pines por defecto" son solo una convención del núcleo de Arduino. En la variante habitual de ESP32-C3 son:

BusSeñalGPIO
I2CSDA / SCL8 / 9
SPISS / MOSI / MISO / SCK7 / 6 / 5 / 4
UART0TX / RX21 / 20

Estos valores vienen del archivo pins_arduino.h de la variante y pueden cambiar entre versiones del núcleo o entre placas. Para no depender de ellos, fíjalos tú:

#include <Wire.h>

void setup() {
  Wire.begin(8, 9);   // SDA, SCL explícitos
}

Si prefieres no tocar los pines de arranque, mueve el I2C a otros dos GPIO libres, por ejemplo Wire.begin(0, 1).

Despertar del sueño profundo

Si el proyecto va con batería, solo GPIO0 a GPIO5 pueden despertar al chip del sueño profundo. Reserva uno de ellos para el botón o el sensor de movimiento que debe despertar la placa. El resto del ahorro de energía está en ESP32 con batería: deep sleep.

Límites eléctricos

  • Los GPIO trabajan a 3,3 V. No conectes señales de 5 V directamente: usa un divisor de tensión o un conversor de nivel.
  • Por cada pin no pidas más de unos 20 mA. Para relés, motores o tiras LED, usa un transistor, un MOSFET o un módulo con optoacoplador, y alimenta la carga aparte. Más detalle en cómo alimentar un ESP32.
  • Une siempre las tierras (GND) de todos los dispositivos que se comunican.

Lista de pines seguros

Para un proyecto con Wi-Fi en una Super Mini:

  • Entradas analógicas: GPIO0, GPIO1, GPIO3 y GPIO4 (ADC1).
  • Salidas digitales y relés: GPIO0, GPIO1, GPIO3, GPIO4, GPIO6, GPIO7 y GPIO10.
  • I2C: GPIO8 y GPIO9 si usas pull-up a 3,3 V, o cualquier pareja de pines libres.
  • SPI: GPIO4 a GPIO7.
  • Despertar de sueño profundo: GPIO0 a GPIO5.

Y cuando algo falle sin razón aparente, revisa en este orden: pines de arranque, GPIO18 y GPIO19 (USB), ADC2 con Wi-Fi, y la opción USB CDC On Boot del Arduino IDE.

Preguntas frecuentes

¿Cuántos pines puedo usar realmente en una Super Mini?

A los bordes llegan unos 13 GPIO. Si reservas los de arranque (2, 8 y 9) y la consola serie (20 y 21), quedan unos 8 para uso cómodo: GPIO0, 1, 3, 4, 5, 6, 7 y 10.

¿Puedo usar GPIO18 y GPIO19 como pines normales?

Sí, pero pierdes el USB integrado. En la Super Mini ni siquiera salen a la placa. En la DevKitM-1 mantén a mano un convertidor USB-serie en GPIO20 y GPIO21 por si necesitas volver a cargar un programa.

¿Por qué mi sensor analógico deja de funcionar al conectarme al Wi-Fi?

Probablemente está en GPIO5, el único pin de ADC2. Muévelo a GPIO0, 1, 3 o 4.

¿En qué se diferencian los pines del ESP32-C3 y del ESP32-S3?

El S3 tiene 45 GPIO, 20 canales analógicos y USB nativo en GPIO19 y GPIO20; el C3 tiene 22 GPIO y 6 canales analógicos. Los pines del S3 están en esta otra guía, y para elegir entre ambos, en ESP32-S3 vs ESP32-C3. Si dudas entre el C3 y el C6, mira ESP32-C6 vs ESP32-C3. Y si tu placa es un ESP32 clásico, la guía es pinout del ESP32 DevKit.

ESP32-C3 Super Mini

Compara el orden de pines con el diagrama antes de conectar nada: cambia entre fabricantes.

Enlace de afiliado: si compras, el sitio recibe una comisión sin costo extra para ti.

Steven Carvajal

Escrito por

Steven Carvajal

Ingeniero de software y arquitecto de soluciones en Cali, Colombia. Explico en español cómo diseñar, desplegar y operar proyectos con ESP32, AWS y Java, con ejemplos que puedes probar.

LinkedInGitHubdev.to

Placas de este artículo

Sigue leyendo

Guía completa de esp32 y firmware: Qué es el ESP32: modelos, usos y cómo elegir el tuyo