Hi all,
I received a 5-unit PCBA order from Seeed Fusion using the XIAO ESP32-C6 and none of the boards enumerate over USB. Looking for help diagnosing before I go further.
Symptoms
- No device appears in Windows Device Manager (including hidden devices) or macOS System Report under any conditions
- Espressif’s esptool-js WebUSB tool shows nothing in the device picker — no enumeration even bypassing OS drivers entirely
- Red charging indicator light behaves correctly on all boards (turns on at plug-in, off after 30s with no battery)
- 3.28V measured on the 3.3V rail
What I’ve tried
- BOOT held + RESET tap on all boards — no change
- Two different computers (Windows and Mac)
- Verified cable and setup with an older XIAO ESP32-C6 prototype, which connects and enumerates normally on both machines
- All 5 boards behave identically
What I know
- The boards were fully assembled by Seeed Fusion — I did no soldering myself
- The USB-C port and D+/D- lines are internal to the XIAO module, so my PCB design shouldn’t affect USB enumeration directly
- I do have an LED on GPIO9 (BOOT pin) through a 330Ω resistor to GND — wondering if this could be relevant, though a locked bootloader state should still enumerate
Has anyone seen this before with Fusion-assembled XIAO boards? Could the modules have shipped blank or with something that prevents USB peripheral initialization entirely?
Thanks,
Isaac
I don’t think pulling the boot pin low for the LED is a good idea. Rather pull the led high and use an Active Low implementation…
To check, just remove your 330Ω resistor.
Hi, just clipped the resistor and still can’t get it to connect.
Good thinking on the active low implementation. I’ll switch over to that on the next rev… if I can figure out the connection issue!
Once you have removed the resistor, you will still need to do the Boot low and press Reset. Or hold Boot low when plugging in USB.
Then flash code and all should be OK after that.
I did try that, sadly.
I’m thinking my next step tomorrow will be to make a UART bridge with a working Xiao to bypass the USB.
1 Like
Sorry to hear that. 
XIAO ESP32-C6 allows boot from D6/D7 (TXD/RXD) so that may be a good option for you.
Apart from that, without seeing the schematic, or PCB design, it’s quite difficult to determine the fault.
Hi there,
So I ran it through the LLM and as others are pointing out,
The Primary Culprit: The Boot Pin (GPIO9) LED Circuit
Isaac mentions that he has an LED on GPIO9 (the BOOT pin) running through a 330Ω resistor to GND.
On the ESP32-C6, GPIO9 is a critical strapping pin. During power-up or a reset cycle, the internal chip reads the physical voltage level on this pin to determine its boot mode:
- High (Pull-up): Normal Boot (runs the internal flash program / initializes USB).
- Low (Pull-down): ROM Serial Bootloader Mode (waits for flashing).
By wiring an LED and a 330Ω resistor directly from GPIO9 to Ground, he has inadvertently created a strong external pull-down. Every single time the board powers on, the chip is forced into bootloader mode before it can initialize its internal USB peripheral stack.
While a typical ESP32 in bootloader mode should still show a generic COM port, a strong hardware pull-down on a custom PCBA can sometimes trap the USB PHY (physical layer) in a reset loop or prevent the internal ROM code from properly enumerating the Native USB CDC ACM device on Windows/Mac.
THIS is WHY 
How to Fix / Test It
As the forum user grobasoz correctly pointed out, he needs to change how that LED is driven:
- The Quick Test: Desolder or clip the 330Ω resistor on one of the boards to break the connection to ground. If the board immediately enumerates over USB upon the next plugin, the strapping pin conflict is 100% the issue.
- The Permanent Redesign: He should redesign the hardware to use an Active Low configuration. Connect the LED’s anode to the 3.3V rail, and connect the cathode through the resistor to GPIO9. This ensures the pin is pulled High at boot time, allowing the board to start normally. Alternatively, he should move the LED status indicator to a non-strapping GPIO altogether.
Just throwing it out there…

HTH
GL
PJ 
Turns out I mirrored the bottom SMD pins when making the footprint, so EN was getting pulled to ground. I was able to drill out a via and am able to boot and flash now.
Learning experience! I’m just happy this run of boards works.
Thank you for the help.
1 Like
Thanks for the update! Glad you found the problem 