I’ve got a slightly annoying problem with one of my dev boards. The reset button does absolutely nothing.
These are the boards I got made by PCBWay — they did the PCBs and they came out really nice. I did the assembly myself. But somewhere along the way, something went wrong on one of them.
A Tale of Two Boards
I loaded both boards with a fast blink sketch to make the problem obvious. On the working board, hitting the reset button stops the flashing immediately — exactly what you’d expect. On the broken board? Nothing. The LED just keeps happily blinking away.
This is more than just a minor annoyance. To get an ESP32 into programming mode, you hold down the boot button and then press reset. Without a working reset button, I’m constantly having to unplug and re-plug the USB cable. Not ideal.
Checking the Schematic and PCB
First things first — let’s make sure the design is actually correct.
The schematic looks fine: the reset switch is connected to the EN (enable) pin through the standard RC circuit — a resistor and a capacitor. Nothing unusual there.
The PCB layout checks out too. Tracing the path from the reset switch down to ground, up through the RC network, and all the way to the EN pin — everything is routed correctly.
So the design isn’t the problem. Time to get the multimeter out.
Buzzing Out the Circuit
I started probing the connections on the board. The EN pin to the resistor — good. EN pin to the capacitor — good. The trace from the RC network to the switch — also good.
Then I put the probes across the switch itself and pressed the button.
Nothing. No continuity at all.
The boot button on the same board? Works perfectly. But the reset button is completely dead.
Under the Microscope
Time for a closer look. Under the microscope, the soldering on the ESP32’s EN pin looks fine — which the continuity test already confirmed. The RC components look good too.
The button itself? It looks solidly soldered. Visually, I couldn’t see any obvious problems. Comparing it with the boot button, the boot button’s joints were a bit shinier, but nothing that would explain a total failure.
It’s funny how boards look under the microscope — from a distance, this board looks perfectly clean, but zoom in and there’s all sorts of hairs and disgusting stuff.

Reflow and Test
With no obvious visual fault, I decided to reflow the solder joints on the reset button. Applied some flux, heated up each joint, and could feel solid connections on both sides of the switch.
Buzzed it out again. Still nothing. The button clicks mechanically, but there’s no electrical continuity when pressed.
At this point, it’s clear: the button itself is the problem.
The Fix: Just Add Alcohol
Looking more closely, the inside of the button seemed to be full of flux residue. On a whim, I soaked the board in IPA (isopropyl alcohol) to try and clean it out.
After a good soak, I probed the button again — and it worked perfectly. Every press gave clean, reliable continuity.
Plugging the board back in, the blink sketch was running. Hit the reset button and… the flashing stopped. Success!
Lesson Learned
The whole problem was flux residue inside the tactile switch, preventing the internal contacts from making a clean connection. The solder joints were fine, the traces were fine, the schematic was fine — it was just a dirty button.
A remarkably simple fix in the end. A bit of cleaning was all it needed.
The lesson? Use more alcohol — that’s the conclusion I’m taking from this…