Had a slightly annoying issue: one ESP32 dev board’s reset button did nothing while the LED kept happily blinking. Schematic and PCB layout were fine, EN net buzzed out, but there was no continuity across the reset switch. Reflowing didn’t help; under the microscope the joints looked good. The culprit? The tactile switch was gunked up with flux. A soak in IPA brought it back to life—continuity restored, reset works, programming mode good. Moral of the story: sometimes it’s not the design—just clean it. Use more alcohol.
So I’ve got a slightly annoying problem with one of my dev boards.
So this is the dev boards that I got made by PCBWay,
so they did the PCBs and they came out really nice.
And I did the assembly. Now obviously something’s gone wrong somewhere.
I got these boards running a very fast blink sketch. So hopefully you can see
it’s a flashing LED here and a flashing LED here. It’s more visible here because it’s a green LED.
Should use green LEDs on both the boards. But if I hit the reset button then the flashing stops
on this board. So this reset button is working nicely. If I do the same on this board,
absolutely nothing happens. The flashing light continues. So I can’t actually reset this board.
It’s a bit annoying because sometimes you’d have to go into programming mode
by holding down the boot button and then pushing reset. Obviously I can’t do this.
So I’m constantly having to unplug and re-plug in this board. This one works fine.
So we can hold down boot, get a reset. Now we’re in a programming mode and until we hit reset
it will stay like that. Just board is great. This one not so good. So I do want to check
the schematics and the PCB layout. Make sure it’s not some fluke that this is working.
So let’s jump over to the laptop and have a look at the schematics.
So here’s the schematic and here’s the bit of interesting stuff.
Absolutely nothing wrong with this. We have the switch, we have the RC circuits,
resistor and a capacitor connected to the EN pin which is over here. So that looks fine.
Let’s jump into the PCB. Make sure that’s correct.
So here’s our PCB. So here’s our reset switch down here. So it pulls down to ground.
There’s the EN pin there. If we trace this up, go under a wire,
come across to here and we come to here and then here. So that looks fine as well.
So here’s the capacitor, that’s the resistor and then this trace carries on all the way up
to the EN pin. So absolutely nothing wrong there with either the schematic or the PCB layout.
So let’s try buzzing out this path. It should be fairly simple to buzz out.
Okay so EN pin, so that’s ground 3.3 and this should be the EN pin and then that should go
to the end of the resistor. So that’s working fine and then it should also go to the end of the
capacitor and that works fine. It should go to the switch. Well that seems to work fine as well
and I’m going to do this. So we go to the other end of the switch and then push the button.
That’s where you need multiple hands. Well that’s interesting. This button doesn’t seem to be
doing anything. We should be hearing beeps. Let’s just double check that. So either side of the button
and push it. Yeah we’re not getting any continuity across the button.
Well that’s the bit annoying. Let’s check out our boot button. It definitely works. Let’s check
that. It does actually, yeah. So if we can get the frames on there and then push that works.
Oh on this one, absolutely nothing. Okay I hope you could see that. It’s quite fiddly work but
let’s have a look under the microscope. Let’s see if we can work out what earth’s going on.
So we’re under the microscope. So let’s just check the soldering of everything. So this is the
ESP32 pins. So ground, 3v3 and this is the enable pin and to my eye we focus this.
That looks pretty well soldered. So not a problem there which the buzzing did confirm. If we go to
here then we can see the RC divider. So our capacitor and our resistor, they both seem
completely fine and then down here we have the button. Now it’s hard to see but looking at this
I cannot really see any problems. It does look to be pretty solidly soldered. So quite intriguing.
Let’s check the other button, see how it compares. I mean it’s a bit more shiny but
nothing obvious that would make this button not work. So the only thing I can really think is to
reflow the joints and then see if we have any joy. So let’s give that a go. So we’ll just square
a bit of flux down here. I mean that looks disgusting. Everything seems to look quite horrible when
you’re really zoomed in. To me looking from a distance this board looks completely clean
but then you stick it under the microscope and there’s all sorts of nasty heavy things
on your PCB. So let’s see if I can get in here and just reflow these joints.
Now I can actually feel on the solder joint and I can feel the switch connector. So it’s
definitely should be soldered on. Let’s just do the other side just for completeness as well.
There. Give it some flux.
And that’s pretty soldered as well. I can feel I can feel the connector.
No problem. So I’ll just give this a go. Let’s buzz it out. It’s definitely clicking.
So let’s get the multimeter.
No. Well that’s interesting. It is the actual button that’s dead.
This button.
I don’t know. There we go.
We had it and then we don’t have it. The button does seem to be quite full of flux. I want to
do if that’s causing a problem. What I might do is I might soak this in IPA and see if we can
ressurect it. Otherwise we’ll just remove the button and replace it with a new one. But I’m
going to try a bit of IPA soaking. I think we may have fixed it. It’s still covered in IPA.
But if we come in and probe it and then we push the button. Absolutely no problem at all.
So I think it was just that our button got filled up with flux and then it wasn’t making a good
contact. So let’s plug this board in and see if it really does work. So here we are. We have our
flashing LED reset button. Let’s see if we push the reset button. Does the flashing stop? It does.
Well that was a remarkably simple fix. A bit of cleaning. That’s all it needed. It’s right as
well. So valuable learning for me. Use more alcohol. That’s the conclusion I’m taking from this.