SMDByte LAB · Recuperación USB del ESP32-C3
SMDBYTE LAB · SOLUCIONES · NIVEL INICIAL
¿Tu ESP32-C3 no aparece por USB?
Recupera el puerto, configura Arduino IDE y comprueba la comunicación con una prueba sencilla. Empieza por lo básico antes de dar tu placa por perdida.
ESP32-C3 · USB nativo · BOOT / RST
Primero: ¿qué significa «no lo reconoce»?
Que el LED se encienda solo confirma alimentación. Para programar necesitas que el computador detecte un dispositivo USB y que el IDE pueda abrir su puerto.
No aparece ningún dispositivo
Empieza por cable, puerto USB y modo de descarga. Cambiar el baud rate no arregla un cable sin datos.
Aparece, pero no sube o no imprime
Revisa el puerto seleccionado, el perfil de placa y la salida Serial. Son problemas distintos.
01 · Prepara una prueba simple
- Usa un cable USB de datos comprobado y un puerto directo del computador.
- Desconecta primero el USB; retira sensores, pantalla y cables de los GPIO. Luego conecta solo la placa por USB.
- Cierra otros monitores serie y aplicaciones que puedan ocupar el puerto.
- Confirma que tu placa es ESP32-C3. Esta guía se centra en SuperMini con USB nativo. Si lleva un puente CH340 o CP210x, revisa la alternativa al final.
Necesitas: placa, cable de datos, computador y Arduino IDE. No hace falta montar un circuito.
RECUPERACIÓN USB
02 · El orden de los botones sí importa
Con la placa conectada al computador, identifica los botones por sus etiquetas. RESET puede aparecer como RST o EN; su posición cambia entre placas.
-
1
Mantén BOOT
Presiona BOOT y no lo sueltes todavía.
-
2
Pulsa y suelta RST
Da un toque a RST mientras sigues manteniendo BOOT.
-
3
Suelta BOOT
Ahora libera BOOT y espera a que aparezca el puerto USB.
Resultado esperado: la placa entra en modo de descarga para recibir un programa. Este procedimiento por sí solo no borra el programa guardado.
Vuelve a seleccionar el puerto en Arduino IDE. Puede cambiar después de reiniciar. Si tu placa no tiene RST, desconecta USB, mantén BOOT, conecta USB y luego suelta BOOT.
03 · Configura Arduino IDE para tu C3
Instala el paquete esp32 de Espressif Systems desde el gestor de placas. Estos nombres corresponden al menú Herramientas; las opciones visibles dependen de la placa y versión del paquete.
| Opción | Qué seleccionar |
|---|---|
| Placa | El perfil exacto de tu placa. Si no existe para tu SuperMini, usa ESP32C3 Dev Module, nunca ESP32 Dev Module ni ESP32S3. |
| Puerto | El que aparece al conectar o recuperar esta placa. No copies un número COM de otra guía. |
| USB CDC On Boot |
Enabled para usar Serial por USB nativo con el programa de esta guía. |
| Upload Speed | Si la carga por UART falla a velocidad alta, prueba 115200. En USB nativo no es una solución para un dispositivo que no aparece. |
| Flash Size / Partition Scheme | Deben corresponder a la memoria real. Selecciona 4 MB solo si tu variante está confirmada como 4 MB. Mantén una partición compatible. |
| Otros ajustes | Conserva los del perfil de placa salvo indicación del fabricante. No copies ajustes de PSRAM ni USB DFU de una ESP32-S3. |
| Monitor serie |
115200 baudios, igual que Serial.begin(115200) en el programa. Este ajuste es distinto de Upload Speed. |
USB CDC On Boot configura el programa que vas a cargar. Activarlo en el IDE, sin cargar el programa, no cambia lo que ya está ejecutando la placa.
04 · Carga un programa mínimo
Guarda primero tu proyecto anterior: al subir esta prueba se reemplaza el sketch de la placa. No necesitas bibliotecas adicionales ni conocer el pin del LED.
#include <Arduino.h>
void setup() {
Serial.begin(115200);
delay(1500);
}
void loop() {
static unsigned long contador = 0;
Serial.print("SMDBYTE LAB | ESP32-C3 USB OK | ");
Serial.println(contador++);
delay(1000);
}
Para utilizar el programa, copia el código de arriba en un nuevo sketch de Arduino IDE y guárdalo como smdbyte_c3_usb_test.ino.
Abre el archivo en Arduino IDE y acepta crear la carpeta del mismo nombre si lo solicita.
- Entra en modo de descarga y selecciona su puerto.
- Verifica los ajustes anteriores y pulsa Subir.
- Cuando termine correctamente, pulsa y suelta RST sin mantener BOOT.
- Revisa de nuevo el puerto y abre el Monitor serie.
Prueba superada: ves «SMDBYTE LAB | ESP32-C3 USB OK» con un contador que aumenta cada segundo.
Esto comprueba carga y salida serie; no diagnostica todos los GPIO, Wi-Fi ni el estado completo del hardware. El ejemplo no ha sido probado físicamente en tu placa.
05 · Si todavía falla, sigue el síntoma
No aparece ni en el sistema operativo
Prueba otro cable de datos, otro puerto directo y otro computador. Repite BOOT → toque RST → soltar BOOT con la placa sin periféricos. En Windows revisa el Administrador de dispositivos; en macOS, Información del Sistema → USB; en Linux, la detección USB y los puertos del sistema.
Si sigue sin enumerar, puede existir un problema de conector, alimentación o hardware. No concluyas que está quemada solo porque el IDE no la muestra.
El sistema la detecta, pero Arduino IDE no muestra el puerto
Reconecta la placa, vuelve a abrir el selector de puerto y reinicia el IDE si no actualiza la lista. En Linux verifica permisos del puerto según tu distribución. Si aparece un dispositivo desconocido o un error de controlador, identifica primero la interfaz USB; no instales controladores al azar.
Se queda en «Connecting…» o aparece «Failed to connect»
Cierra monitores serie externos, confirma el puerto actual y repite la secuencia manual. Comprueba que el perfil sea ESP32-C3 y que no haya periféricos interfiriendo con el arranque. Para conexión por puente UART, prueba una menor velocidad de carga.
Sube correctamente, pero el Monitor serie está vacío
Reinicia sin BOOT, vuelve a seleccionar el puerto y revisa USB CDC On Boot = Enabled para USB nativo. Vuelve a compilar y cargar si cambiaste ese ajuste. Usa el programa mínimo: imprime repetidamente y no espera indefinidamente a que abras el monitor.
El puerto desaparece al ejecutar mi programa
Un sketch puede desactivar el USB, reutilizar sus señales o entrar en reposo. En ESP32-C3, el USB nativo usa GPIO18 (D−) y GPIO19 (D+). Evita usarlos como GPIO mientras dependes de ese USB. Recupera con BOOT/RST, carga la prueba y revisa tu código antes de volver al proyecto.
Mi ESP32-C3 tiene CH340, CP210x o un conector UART
Esa conexión usa un puente USB-serie externo. El controlador debe corresponder al chip real y provenir de su fabricante. Para ver Serial por UART0, normalmente se usa USB CDC On Boot = Disabled. Sigue la documentación de esa placa: los ajustes de USB nativo de esta guía no se aplican directamente.