Fix: ESP32-C3 SuperMini COM port keeps connecting and disconnecting
Windows plays the USB connect/disconnect sound in a loop. The C3 is boot-looping or browning out. Enter download mode, fix power and erase flash.
Community draft — report a mistake
What you see
Windows: USB connect sound → disconnect sound, every 1–2 seconds
Arduino IDE → Tools → Port: COM12 appears, vanishes, appears again
Serial Monitor:
ESP-ROM:esp32c3-api1-20210207
Build:Feb 7 2021
rst:0xf (RTC_SW_SYS_RST),boot:0xc (SPI_FAST_FLASH_BOOT)
...
(port closes)Windows: USB connect sound → disconnect sound, every 1–2 seconds Arduino IDE → Tools → Port: COM12 appears, vanishes, appears again Serial Monitor: ESP-ROM:esp32c3-api1-20210207 Build:Feb 7 2021 rst:0xf (RTC_SW_SYS_RST),boot:0xc (SPI_FAST_FLASH_BOOT) ... (port closes)
When a native-USB board reboots, Windows sees it unplugged and plugged in again. A C3 SuperMini stuck in a boot loop, or browning out as Wi-Fi starts, therefore turns into an endless chain of USB sounds and a COM port that never holds still long enough to upload.
Holding BOOT while plugging in stops the loop because your sketch never starts. Upload something simple, then fix whatever was rebooting the board.
Quick fix — try in order
- 1
Hold BOOT, plug in, release
The ROM bootloader keeps USB alive and doesn't run your sketch, so the port stays put. Upload a plain Blink from here.
- 2
Erase all flash once
Tools → Erase All Flash Before Sketch Upload → Enabled, upload, then turn it off. A corrupt sketch or old partition table can cause an endless reboot.
- 3
Fix the sketch that reboots
Calling deep sleep immediately in setup(), a crash in setup() or ESP.restart() in a loop all drop USB each time. Add a 5-second delay at the start of setup() while debugging so you have time to upload.
- 4
Don't use GPIO18/GPIO19
Those are the USB D−/D+ pins on the C3. Setting them as outputs, or wiring a sensor there, kills the USB connection.
- 5
Power it properly
The SuperMini's tiny regulator struggles when Wi-Fi starts. Use a good cable and a rear PC port; don't power servos or LED strips from its 3V3/5V pins.
Why it happens
Why does the port come and go?
On native-USB chips the USB connection lives inside the chip. Every reset or brownout disconnects it, and every boot reconnects it — so a boot loop sounds like constant plugging and unplugging.
Wi-Fi brownout on the SuperMini
Many SuperMini boards drop below 3 V for an instant when Wi-Fi transmits at full power. WiFi.setTxPower(WIFI_POWER_8_5dBm); after WiFi.begin() is a well-known workaround that also helps range on these boards.
Board-specific notes
ESP32-C3 SuperMini: BOOT is GPIO9. Never wire anything that holds GPIO9 low at power-up, or the board always starts in download mode. See the C3 SuperMini page.
XIAO ESP32C3: Same behaviour and same fix; the BOOT button is labelled B.
Did this fix it?
Thanks — that helps us keep this page right.