Blog
Puerto ESP32: encontrar el COM y el número de serie
Sin puerto, puerto equivocado, puerto desaparecido — el puerto serie es donde se tuercen la mayoría de los días con ESP32. Cómo encontrar el puerto COM, por qué el texto de error dice lo que dice y qué significa ‘ID’ en estas placas.
¿Could Not Open Port dev ttyUSB0 ESP32?
En Linux este error es casi siempre permisos o el nombre de dispositivo equivocado. Mira dmesg para el chip USB del cable, luego ls /dev/tty* — tu placa puede ser ttyACM0, no ttyUSB0. Arregla permisos con sudo usermod -aG dialout $USER, cierra sesión y vuelve a entrar, y la línea de ‘could not open port’ desaparece. Si nunca aparece, la base de conocimiento tiene la tabla de drivers como siguiente paso.
¿Cómo encontrar el puerto del ESP32?
Windows: Administrador de dispositivos → Puertos (COM y LPT), enchufa la placa y mira qué COM aparece. Linux: ls /dev/ttyUSB* /dev/ttyACM*. macOS: ls /dev/cu.usbserial-*. El puerto pertenece al chip USB-serie, no al ESP32 — las placas CH340 aparecen como ‘USB-SERIAL CH340’, las CP2102 como ‘Silicon Labs CP210x’.
¿Cómo leer el ID del ESP32?
El ‘ID’ práctico es la dirección MAC — única por chip, la imprime esptool.py chip_id, o en código con ESP.getEfuseMac(). El modelo y la revisión del chip salen de ESP.getChipModel(). La mayoría de devkits no llevan número de serie; la MAC es el ID que importa para MQTT, BLE y OTA.
¿Por qué desapareció mi puerto tras flashear?
El chip USB-serie se reinicia con la placa — esa parte es normal. Si nunca vuelve, el cable es solo de carga, el driver desapareció, o la placa está atrapada en un boot loop donde el puerto parpadea entrando y saliendo. Observa el Administrador de dispositivos durante el bucle; un COM que parpadea es la señal. Los resets persistentes pertenecen al FAQ de depuración.
¿El puerto existe, pero el Serial Monitor dice “Failed to Open”?
Algo más está ocupando el puerto — normalmente un segundo monitor o el propio IDE. Cierra todas las ventanas serie, desenchufa, vuelve a enchufar y reintenta. En Windows, el driver puede dejar bloqueos de puerto obsoletos tras un crash; reiniciar el PC los limpia. Tengo una nota en el escritorio que dice ‘cierra primero los otros monitores’.
¿Por qué veo dos puertos?
Las placas ESP32-S3 y C3 exponen dos interfaces USB: el CDC USB nativo y el puente UART — de ahí dos puertos COM. Elige el que coincida con la etiqueta de serigrafía de la placa, normalmente ‘UART’. El flasheo funciona en el puerto UART; el CDC sirve para sketches que usan USB nativo.
¿Cómo encuentro el puerto sin driver?
No puedes — el driver es el paso uno. En Windows, un dispositivo desconocido en el Administrador de dispositivos significa que falta el driver CH340 o CP2102; el nombre amigable ‘USB-SERIAL’ aparece solo tras instalar. Si nunca aparece ningún dispositivo, el cable no lleva datos; cámbialo antes de culpar a la placa. Este orden resuelve la mayoría de casos de ‘no hay puerto’.
¿Importa el número de puerto?
No — COM5 hoy, COM12 mañana; Windows asigna números libremente. La trampa son las herramientas que recuerdan el número viejo: tras reconectar, el Arduino IDE muestra un puerto nuevo y debes volver a seleccionarlo. Los monitores serie y PlatformIO autodetectan, que es por lo que rara vez topan con ‘port not found’. La misma regla en Linux: el número tras ttyUSB es arbitrario.
¿Puedo flashear sin saber el puerto?
Casi siempre sí. esptool.py prueba puertos comunes cuando omites -p, PlatformIO escanea automáticamente y OTA se salta el puerto por completo. Saber el puerto sigue importando para el monitor serie, así que los 30 segundos de encontrarlo nunca se desperdician. El FAQ de flasheo cubre las vías sin puerto en orden.
¿Y si nunca aparece ningún puerto?
Lista de comprobación, en orden: otro cable (con datos, no de carga), otro puerto USB — los del frontal son poco fiables — luego otra máquina, y otra vez el driver. Una placa con el chip USB muerto sigue funcionando alimentada: si el LED parpadea pero no aparece ningún puerto, el chip USB-serie es la baja. Eso le pasó a uno de mis módulos; la placa flasheó perfectamente con un adaptador USB-TTL de 4 $ después.
Los proyectos de este tema se ejecutan directamente en el simulador gratuito de sensbench: circuito preconectado, firmware incluido, sin cuenta y sin instalación.