Page 1 of 1

WROOM-ESP32 Custom PCB Troubles

Posted: Thu Apr 02, 2020 3:03 am
by Civlac
Hey guys,

I'm using a custom designed PCB for a project, but it seems I'm nearly killing every ESP32 module that is placed on there. The behaviour is extremely sporadic, but I'll do my best to explain everything in detail.

Here is my schematic and PCB on Altium's online viewer. I can provide the files if needed for troubleshooting.

My circuit is far from complex, and I've successfully built it on a breadboard using components matched as closely as possible to my final design. I've taken the module that I used on the breadboard for days, and watched it die on the PCB within 30 minutes.

Issues that I'm facing:
  • I can't seem to hold my enable pin high. I'm using the recommended 10kΩ resistor, but I've seen 2.7V dropped across it. I even tried a 100Ω resistor, and still witnessed the enable pin hold 'low' at times. Sometimes, my program will run for upwards of 20 mins before resetting, other times it's stuck in a bootloop.
  • The Rx and Tx pins 'burn out'. This has been my biggest issue; if I can't upload code to the device, it's useless. On multiple modules, the Rx and/or Tx pins are held at a steady 0.3-0.5V.

Many of my tests have been a simple serial monitor programs, so no power-intensive tasks are being executed. Though, for one task, the ESP hosted a webserver which I could toggle a pin high/low over WiFi. This worked perfectly for days on a breadboard, as stated earlier, but then failed once on a PCB. The ESP's Tx pin was 'stuck' at 0.3V, and was no longer communicating over serial. Even with the 'dead' pin, the module appeared to continue working correctly, since it was still connecting to WiFi, and I was still able to toggle the pin.


I am absolutely baffled with these issues.
If anyone has any questions, feel free to ask, and I'll try to respond quickly with as much detail as possible.

Re: WROOM-ESP32 Custom PCB Troubles

Posted: Thu Apr 02, 2020 5:23 am
by username
The first thing that jumps out at me is the trace path from H1 pin 1 (GND) to the GND pin of the regulator.
The only way i can see for the main GND to get to the regulators GND pin is this tiny sliver of a path which I have circled.
IMHO you going to need much more trace with for the GND to the regulator. I would try soldering a wire from H1 PIn 1, directly to the regulators gnd pin to see if that helps.

Also, C4's GND path is terrible. As a bypass filter cap, its GND path is no where near the regulator. The path has to wrap down go all the way to the right of the board, then back left to H1 pin 1. You want that caps GND as close to the GND pin of the regulator.

Annotation 2020-04-02 001534.jpg
Annotation 2020-04-02 001534.jpg (107.95 KiB) Viewed 10108 times

Re: WROOM-ESP32 Custom PCB Troubles

Posted: Thu Apr 02, 2020 6:37 am
by Civlac
Hmm yeah you have a good point, my ground situation could be better. Though, when watching it with an oscilloscope at the 3V3 pin on the ESP, there is no fluctuation whatsoever, sits at a steady 3.3V. Another factor is that I don't have brownout issues, even during wireless transmission. I'd be willing to add ground wires next time I populate a board, but I'd like to find a different possible solution to try as well.

Re: WROOM-ESP32 Custom PCB Troubles

Posted: Thu Apr 02, 2020 6:51 am
by username
Im glad you have a scope, that is very helpful. Maybe someone else can catch what might be the issue.

Re: WROOM-ESP32 Custom PCB Troubles

Posted: Thu Apr 02, 2020 7:42 am
by ESP_Sprite
I assume from your story that this is a systematic problem, so you built multiple PCBs and they all failed? Hmm, that's a complicated issue... Only thing I can come up with is that perhaps the grounds of your serial port connection and the ESP32 are at a different potential, and there is current going from one ground to another, but that's it.

Re: WROOM-ESP32 Custom PCB Troubles

Posted: Thu Apr 02, 2020 8:20 am
by boarchuz
Are you using a 3v3 programmer?
Do the LDO outputs need to be externally connected?

Re: WROOM-ESP32 Custom PCB Troubles

Posted: Thu Apr 02, 2020 3:32 pm
by Civlac
Yes, I am using a 3V3 programmer, but I have never connected my 3V3 lines, even on my working breadboard version.
I have only ever connected my Rx, Tx, and GND lines to the programmer, and I've always been careful to connect the ground first to avoid chance of ESD damage.

I started out by using an arduino board with the atmel chip removed. I modified the FT232RL to use 3V3 logic (verified on the oscilloscope). Fearing that was the source of my issues, I switched to an Adafruit USB to serial converter which also hosts a FT232RL (again, verifying it operates at 3V3).

Re: WROOM-ESP32 Custom PCB Troubles

Posted: Thu Apr 02, 2020 6:49 pm
by Civlac
username wrote:
Thu Apr 02, 2020 5:23 am
I would try soldering a wire from H1 PIn 1
I added ground wires from the regulator to various parts of the PCB, even to the ESP itself; unfortunately it had no effect on the system.

Re: WROOM-ESP32 Custom PCB Troubles

Posted: Tue Apr 07, 2020 6:15 am
by Civlac
Well, unfortunate this thread lost interest. I just abandoned the PCB, and soldered components directly to the module like a savage. Either way, it works now. A shame the PCB mysteriously kills ESPs.