El ESP32 clásico a fondo: pines, ADC, DAC y cuándo merece la pena

El chip, los módulos WROOM y WROVER, el pinout de 38 pines, el ADC que miente, el DAC, touch, los pines que no debes tocar y cuándo elegirlo hoy.

También disponible en: EN, ES

Serie Introducción al ESP32 Parte 2 Ver la serie →
Ilustración del ESP32 clásico y sus periféricos

Cuando la gente dice «ESP32», casi siempre se refiere a este: el de 2016, dos núcleos y 38 pines. Sigue siendo el que más tutoriales tiene, el más barato con Bluetooth clásico y, aunque ya hay opciones más modernas, sigue teniendo mucho sentido en 2026.

Pero tiene una serie de rincones —pines que no se pueden usar, un ADC que no es tan bonito como promete el marketing— que conviene conocer antes de soldar nada. He perdido más de una tarde por no saberlos, así que vamos a ahorrártelas.

El chip: no todos los «ESP32» son el mismo

Dentro del módulo hay un chip concreto, y no todos son iguales:

ChipQué tiene de especial
ESP32-D0WDQ6El original, 2 núcleos, QFN 6×6 mm
ESP32-D0WDIgual pero en encapsulado 5×5 mm
ESP32-D0WD-V3La revisión actual, la que montan los módulos nuevos
ESP32-D0WDR2Con 2 MB de PSRAM dentro del propio chip
ESP32-S0WDUn solo núcleo (rara de ver)

Para lo que nos importa aquí: 2 núcleos Xtensa LX6 a 240 MHz, 520 KB de SRAM y 448 KB de ROM. Ese es el «ESP32 clásico».

Los módulos: WROOM, WROVER y compañía

El chip desnudo no se suelda a mano. Va dentro de un módulo con la flash, el cristal y la antena. Los que vas a encontrar:

  • ESP32-WROOM-32E — el estándar. 4 MB de flash, antena en la propia PCB. Deja libres GPIO16 y GPIO17.
  • ESP32-WROVER-E — igual, pero con 8 MB de PSRAM extra. Ojo: la PSRAM se come GPIO16 y GPIO17, así que si usas esos pines, no puedes usar WROVER.
  • ESP32-WROOM-32UE / WROVER-IE — sin antena de PCB, con conector U.FL para poner una antena externa. La solución cuando el ESP32 va dentro de una caja metálica.
Módulo ESP32-WROOM-32 con su apantallamiento metálico
El ESP32-WROOM-32: chip, flash y antena dentro de una sola pieza. Foto: Ubahnverleih (CC0).

Dato de 2026: para diseños nuevos, Espressif recomienda la serie E (ESP32-WROOM-32E / WROVER-E). Los módulos antiguos sin la «E» están marcados como not recommended for new designs.

Y en la cara de atrás se ve dónde está cada cosa:

Cara trasera del módulo ESP32-WROOM-32
Por detrás: el chip ESP32 a la izquierda y la memoria flash a la derecha. Foto: Ubahnverleih (CC0).

La placa que vas a comprar

El módulo se monta en una placa de desarrollo (devkit) que le añade USB, regulador y dos botones: EN (reset) y BOOT (para flashear). La de siempre es la ESP32-DevKitC.

Placa ESP32-DevKitC
ESP32-DevKitC: el módulo, el puerto micro-USB, el regulador y los dos botones. Foto: Ubahnverleih (CC0).

Un aviso que vale dinero: estas placas no llevan USB nativo. El puerto es un chip puente (CP2102 o CH340) que habla con el ESP32 por UART. Si tienes problemas para flashear, casi siempre es el driver de ese chip, no el ESP32.

Especificaciones, sin adornos

CosaValor
Núcleos2 × Xtensa LX6 @ hasta 240 MHz
SRAM520 KB
Wi-Fi802.11 b/g/n (2,4 GHz)
Bluetooth4.2 clásico (BR/EDR) + BLE
GPIOs34 en total, ~25 usables
ADC18 canales de 12 bits (ADC1 + ADC2)
DAC2 canales de 8 bits
Touch10 pines capacitivos
Periféricos3×UART, 2×I2C, SPI, 2×I2S, CAN (TWAI), SD/MMC, PWM, RMT

Lo de Bluetooth clásico es exclusivo del clásico: ni el S2, ni el C3, ni el S3 lo tienen. Si tu proyecto habla con un altavoz o un mando antiguo por Bluetooth «de toda la vida», este es tu chip.

El pinout de 38 pines

Pinout completo del ESP32 DevKitC de 38 pines
Pinout del ESP32 (DevKitC, 38 pines). Fuente: Wikimedia Commons, CC BY-SA 4.0.

Si vienes de Arduino, aquí hay un cambio de mentalidad: no todos los pines sirven para todo. Hay pines de solo entrada, pines que definen cómo arranca el chip y pines que están literalmente ocupados por dentro. Vamos por partes.

Los pines que sí molan

El DAC (GPIO25 y GPIO26)

El clásico lleva dos salidas analógicas de verdad (8 bits). El C3, por ejemplo, no tiene ninguna. Puedes sacar una tensión real, generar una onda o hacer un sintetizador mediocre pero divertido.

Touch: 10 pines que detectan tu dedo

Sin sensor extra, el chip mide la capacidad de GPIO0, 2, 4, 12, 13, 14, 15, 27, 32 y 33. Perfecto para botones sin partes móviles. (Este periférico desapareció en el S2 y el S3, así que si lo necesitas, tienes que volver al clásico.)

ADC1: el que funciona con Wi-Fi

GPIO32 a GPIO39 son el ADC1. Son los únicos que puedes usar mientras el Wi-Fi está encendido. Grábate esto, porque es la causa número uno de «mi sensor da valores aleatorios».

Y algunos extras poco conocidos

  • Sensor Hall interno, sin usar ningún pin.
  • Sensor de temperatura interno (poco preciso, pero existe).
  • CAN (TWAI) por hardware, sin módulo externo.

Los pines que te van a arruinar el día

GPIO6 a GPIO11: la flash

Están conectados a la memoria flash. No los uses, nunca. Si los tocas, el ESP32 deja de arrancar y parece muerto. No está muerto: vuelve a flashear y respira.

Los pines de arranque (strapping)

Al encenderse, el chip mira estos pines para decidir cómo arrancar:

PinQué hace si está mal
GPIO0A LOW entra en modo flash; como salida puede impedir el arranque
GPIO2Debe estar LOW o flotante al arrancar
GPIO12Si está HIGH al arrancar, adiós (tiene que ver con la tensión de flash)
GPIO15Debe estar HIGH; si no, se silencia el log de arranque

Regla práctica: no pongas nada crítico en esos pines y, si lo haces, revisa el estado al arrancar.

GPIO34 a GPIO39: solo entrada

No tienen pull-up ni pull-down internos y no se pueden usar como salida. Son perfectos para un sensor que solo hay que leer, pero si intentas encender un LED con ellos, no funciona y te pasarás un rato pensando que el LED está roto.

El ADC miente (y cómo domarlo)

Este es el detalle que más frustra a la gente. El ADC del ESP32 tiene 12 bits, pero:

  • No es lineal. Cerca de 0 V y cerca de los 3,3 V se desvía bastante.
  • Tiene offset. Con la atenuación de 11 dB, arriba del rango se satura antes de lo que dice el datasheet.
  • Necesita calibración. ESP-IDF incluye una API de calibración por eFuse. Úsala.
  • ADC2 no funciona con Wi-Fi activo. Repetimos: usa ADC1.

Si necesitas medidas decentes y estables, un ADS1115 externo por I2C te ahorrará muchos quebraderos de cabeza.

PSRAM: cuándo la necesitas

La PSRAM es memoria extra (típicamente 8 MB en el WROVER). La necesitas si vas a guardar buffers grandes: imágenes, audio, JSONs enormes o buffers de red.

Si tu proyecto son sensores y un par de LEDs, no la necesitas y el WROOM es más barato. Y recuerda el peaje: la PSRAM ocupa GPIO16 y GPIO17.

¿Cuándo elegir el clásico (y cuándo no)?

Sí, elige el clásico si…

  • Necesitas Bluetooth clásico (no solo BLE).
  • Quieres DAC, touch o CAN sin añadir nada.
  • Necesitas muchos GPIOs y que GPIO16/17 estén libres.
  • Sigues un tutorial que asume el clásico y no quieres pelearte con pines distintos.

Mejor otra cosa si…

  • Quieres lo más barato y moderno: un C3 hace casi lo mismo por menos.
  • Necesitas USB nativo (HID, JTAG): S2, S3, C3 o C6.
  • Necesitas cámara, audio o IA: ESP32-S3.
  • Quieres Matter/Thread/Zigbee: C6 o H2.

Herramientas actuales (2026)

Si vas a programarlo, estas son las versiones vivas a día de hoy:

HerramientaVersión actual
ESP-IDF6.1
Arduino core3.3.11 (sobre ESP-IDF 5.5.5)
PlatformIO (platform-espressif32)7.1.3
MicroPython1.29
esp-hal (Rust)1.2.0

Errores típicos con el clásico

  1. Intentar usar GPIO6–11 «porque están libres en el dibujo».
  2. Poner un LED en GPIO34–39 y no entender por qué no enciende.
  3. Leer un potenciómetro por ADC2 y flipar con los valores al encender el Wi-Fi.
  4. Usar GPIO12 como salida y que la placa arranque cuando le da la gana.
  5. Comprar un WROVER para usar GPIO16/17 y descubrir que están ocupados.
  6. Culpar al código cuando el problema es el driver CH340.

Resumen

  • El ESP32 clásico son 2 núcleos LX6, 520 KB de SRAM, Wi-Fi 4 y Bluetooth clásico + BLE.
  • Los módulos que verás: WROOM-32E (sin PSRAM) y WROVER-E (con PSRAM, pero se come GPIO16/17).
  • Tiene cosas únicas: DAC, touch, CAN y Bluetooth clásico.
  • Cuidado con GPIO6–11, los pines de strapping (0, 2, 12, 15) y los GPIO34–39 (solo entrada).
  • El ADC2 no funciona con Wi-Fi; usa ADC1 y, si necesitas precisión, un ADS1115.

Siguiente paso: si quieres algo más pequeño, barato y con USB nativo, en la Parte 3 le toca el turno al ESP32-S2. Y si todavía no tienes placa, empieza por la Parte 1: qué es el ESP32 y su familia.

Créditos de las imágenes

Fotografías de Wikimedia Commons:

  • Módulo ESP32-WROOM-32 (frontal y trasera) y ESP32-DevKitC — Ubahnverleih (CC0)
  • Pinout del ESP32 DevKitC — Vishnu Maiea (CC BY-SA 4.0)

Entradas relacionadas

↑↓ navegar ↵ abrir Esc cerrar