Hey everyone,
I’m designing a custom PCB using the ESP32-C3-MINI-1 N4 module, and I’ve hit a brick wall trying to get the native USB to enumerate. I’ve ruled out software and basic logic, so I’m trying to understand why my laptop cannot detect any programmable device connected to it at all.
The Setup:
MCU: ESP32-C3-MINI-1 N4
Series Termination Resistors: 27 Ohm
USB C Cable: Verified that it works with an Esp32 C3 Supermini
3.3V: Power Supply to Esp32 also Verified with Multimeter
The Boot Sequence: For my boot I need to configure these strapping pins (GPIO 2 High, GPIO 8 High, GPIO 9 Low, and Temporarily Grounding the Enable Pin to Reset)
I have short circuited GPIO 2 and 8 with power with jumpers and GPIO 9 is already connected to a switch that connects to Gnd. So I press the switch and then ground the enable pin with an open pad on the En trace.
Information from Terminal:
I have also looked at the Terminal to check the USB related logs to track down the problem and this is some stuff I have found with AI (don't know much about this myself).
1. Detection of CC and power sinking is working fine whenever I plug in the USB
2. Malformed Handshake: Only once when I plugged the USB after flipping the orientation it seemed to go farther into the process. Below is AI's description of the issue:
(The Malformed Handshake): Initially, when I plugged it into my Mac and pulsed EN, it threw an XHCI error in the kernel logs: AppleT8103USBXHCICommandRing::setAddress: completed with result code 4 followed by failed to create device (0xe00002bc). This told me the chip booted, turned on its internal 1.5k D+ pull-up, but the analog packets during the SET_ADDRESS phase were completely mangled. Notably, this only happened in one cable orientation.
I am using the Arduino IDE for detection but so far it has not detected anything at all as a programmable device on the port. All the potential problems I could think of I have worked through. Even removed my ESD diode on the data lines but that didn't make any difference. Any suggestions on this would be hugely helpful
Attaching the schematic and PCB below:
A few caveats: U12 is not soldered, so GPIO 2 is free to be connected to power directly. My stack up is as follows: Signal, Ground (complete uninterrupted), Power, Signal
All images you need are here: https://drive.google.com/drive/folders/ ... drive_link
Trouble Enumerating Custom ESP32 C3 PCB
-
aaryan2446
- Posts: 2
- Joined: Mon Jun 01, 2026 8:37 pm
Trouble Enumerating Custom ESP32 C3 PCB
- Attachments
-
- Screenshot 2026-06-02 at 2.19.21 AM.png (465.32 KiB) Viewed 91 times
-
- Screenshot 2026-06-02 at 2.19.15 AM.png (456.06 KiB) Viewed 91 times
-
- Screenshot 2026-06-02 at 2.19.05 AM.png (374.36 KiB) Viewed 91 times
Re: Trouble Enumerating Custom ESP32 C3 PCB
USB connection looks OK. You have a fairly complicated 3V3 setup, perhaps something there is wrong? (Could e.g. be browning out and recovering, you wouldn't see that on a multimeter). Can you try feeding external power into the 3v3 rail to check that?
-
aaryan2446
- Posts: 2
- Joined: Mon Jun 01, 2026 8:37 pm
Re: Trouble Enumerating Custom ESP32 C3 PCB
Hey, I just tried something different on another board I have soldered (same design) and it worked.
The first board I asked about had the 3V3 power supply from the design itself and GPIOs 2 and 8 are shorted to power.
The new board I tried worked when using external 3V3 and using pull ups on GPIOs 2 and 8.
But when I tried to power the first board externally (still without pullups to isolate the problem) it didn't work. Can a lack of pull ups on the strapping pins cause such a problem?
The first board I asked about had the 3V3 power supply from the design itself and GPIOs 2 and 8 are shorted to power.
The new board I tried worked when using external 3V3 and using pull ups on GPIOs 2 and 8.
But when I tried to power the first board externally (still without pullups to isolate the problem) it didn't work. Can a lack of pull ups on the strapping pins cause such a problem?
Who is online
Users browsing this forum: trendictionbot and 2 guests
