Hi everyone,
I’m working on an ESP32 project and have hit an odd issue after moving from a breadboard to a custom PCB. The circuit works relianly on the breadboard, but on the PCB the behavior is inconsistent. sometimes the ESP32 doesn’t boot at all, and other times it only starts after pressing reset a few times or reconnecting USB power.
I’ve checked the schematic and verified power and signal continuity, so I’m starting to suspect a layout-related problem. I’m not fully confident about my decoupling capacitor placement or whether the EN and BOOT pin pull-ups are correct. There could also be grounding or USB to UART noise issues that I’ve missed…has anyone experienced a similar works on breadboard but not on PCB issue with ESP32 boards? I’d appreciate any pointers on common layout or design mistakes to look for before ordering another revision. I’m happy to share schematics or PCB screenshots if that helps.
Hi Oliver
Welcome.
You have got trouble haven’t you.
That would be a big help. How was your PCB designed and what are the chances of mistakes in that bit. I don’t think there would be many as the system seems to work sometimes.
How are your soldering skills. From what you have said I would look carefully at this aspect. This is an unknown so far and you have not mentioned anything about soldering skills or experience. A photo (in focus please) of some or all of this would help.
If they are wrong I am afraid that is a worry. If you are not accurate in this area nothing will work. Surely a visual inspection by yourself could not be that difficult. A lot easier than doing it from here anyway as we can’t see the board. You have it.
Post up some screen shots and pics and we all can have a look.
Cheers Bob
I agree here with Bob. If the ESP32 is working fine as a breadboard circuit but is behaving inconsistently on the PCB, then it’s the PCB assembly that is the most likely cause.
I’ll have to echo Bob’s sentiment for a request to see photos of the board (so we can see soldering) and a circuit diagram (so that we understand what it’s doing). Once we have that, we can provide more detailed feedback.
Sounds like classic PCB layout issues. Double-check EN and BOOT pull-ups, keep decoupling caps as close to the ESP32 as possible, and watch ground loops or long traces near USB/UART lines. Sometimes, a small 100 nF cap on EN and proper trace routing fixes these boot problems
Probably best to share the schematics and PCB pics/gerbers if you can. If not, just the relevant “pieces” of the CPU and decoupling. Also, which ESP32 and what test software do you use?
I have found the ESP32 range to be pretty “robust” if the power, Boot and Enable are correct.
At this stage the schematic matches the breadboard, so the evidence is pushing me toward a layout-level power integrity or reset-timing issue rather than logic or pin mapping….
Regarding my soldering skills, I would say that I’ve double-checked the joints under a microscope and reflowed the critical pins to rule out any cold joints or bridges. I also gave the board a thorough clean with IPA to ensure no conductive flux residue is causing leakage on the bootstrap pins….
I’m now focusing on verifying the 3.3 V rail behavior during Wi-Fi current spikes, checking that the EN pin isn’t being released before the supply is fully settled, and confirming the bootstrap pull-ups mirror the reference design… The fact that it’s stable on the breadboard but flaky on the PCB strongly suggests PDN impedance or return-path differences rather than firmware. Thanks for the heads-up on the assembly side…
@Jane You’re spot on—assembly and pin states are usually the first suspects in a breadboard-to-PCB migration.
I’ve already done a visual inspection and reflowed the pins to ensure we don’t have any dry joints. I’ve also verified that all Bootstrap pins (GPIO 0, 2, etc.) are correctly tied to their logic levels and aren’t floating, which can be a common pitfall on custom layouts.
I’m currently digging into the Power Delivery Network (PDN) to see if the traces are too thin to handle the Wi-Fi current spikes, as that seems to be the most likely cause for the flakiness I’m seeing….
That’s a great catch, @Olivia310239 . maybe you’re right, the breadboard wires probably provided just enough parasitic inductance to buffer those spikes, which is now missing on the ‘cleaner’ PCB layout.
I’m also currently checking the ESR (Equivalent Series Resistance) of my decoupling capacitors. I suspect that while I have the right capacitance, their physical placement might be too far from the ESP32 VCC pins, leading to high-frequency noise that the 3.3V regulator can’t switch fast enough to suppress. (my friend said so).
I’ll also take your advice and probe the 3.3V rail with an oscilloscope right at the chip’s pins during a Wi-Fi scan. If I see a dip below 2.7V or 2.8V, I’ll know for sure it’s a brownout issue. I might try tack-welding a bulk electrolytic capacitor (say 100uF - 470uF) directly to the power pins as a temporary test to see if it stabilizes the board.
It’s ironic how the ‘imperfections’ of a breadboard—like the contact resistance and lead inductance, can accidentally act as a snubbing circuit for high-frequency noise, making a circuit seem more stable than it actually is…
I’m also going to check if adding a small series resistor (around 10-22 ohms) or a ferrite bead on the supply line (along with a larger bulk cap) helps dampen those oscillations, similar to how the ‘bad’ breadboard connections were doing it.
Thanks for the insight…it’s a great reminder that a ‘perfect’ PCB layout needs to account for the physics that a messy breadboard hides
Don’t see much of pics and schematics in this lot.
All the pins are critical.
The flux (if the correct flux) should not be conductive.
However it is a good idea to clean the job as this can reveal other nasties like a hairline crack or a fine solder bridge. If you etched your own board, and even a commercial board, you could have a fine copper remnant almost invisible to the eye present somewhere.
You said earlier the set up worked ok when you flexed a wire so I would be getting that microscope out again and looking for a track crack or something similar. If it works OK sometimes it would indicate the set up is BASICALLY correct and the problem possibly lies within the physical board itself as I outline above. Can be a real dog to find.
Cheers Bob
That all sounds spot-on. Probing the 3.3 V rail at the ESP32 pins during Wi-Fi activity is the right move, and temporarily adding bulk capacitance is a great way to confirm a brownout or transient issue. If that stabilizes things, tightening cap placement and grounding in the next revision should resolve it.
Hi Olivia 310239
Still haven’t sighted any schematic or PCB pics or any other pertinent details
I personally will reserve any further thoughts until I see something tangible.
Will only run blind and guessing for so long then give up.
I think there might be a bit of clutching at straws going on here. Sometimes throwing capacitors all over the place in the hope it will fix things causes more trouble than it fixes.
Cheers Bob
I didn’t share my schematic earlier because it was really rough and not representative of the final problem — I was more focused on troubleshooting than polishing the files for sharing.
After digging into it, I managed to solve the flakiness on my custom PCB. The issue turned out to be related to layout and power integrity, not the schematic itself.
Sometimes “polishing” can reveal an error if there is one. Easier to work with clean schematics I find as the project is close to final design. Trouble shooting with sketches and bits of paper scattered around can be a pain.
Cheers Bob
Just my opinion.