Go Down

Topic: ESP32 stops working for no apparent reason in field (Read 956 times) previous topic - next topic

Kalyan92

Hi,

I am using ESP32 Wroom in a product. After a month of operation the devices stops working. We find that the device does not boot. If I try to flash ESP32, I am getting the error following. The devices were purchased from a reputed online vendor.


esptool.py v2.3.1
Connecting........_____....._____....._____....._____....._____....._____....._____....._____....._____....._____
A fatal error occurred: Failed to connect to ESP32: Timed out waiting for packet header


I am flashing from Command prompt with following command.
C:\Project\SLC>"C:\Project\SLC"\esptool.exe --chip esp32 --port com27 --baud 921600 --before default_reset --after hard_reset write_flash -z --flash_mode dio --flash_freq 80m --flash_size detect 0xe000 "C:\Project\SLC"\boot_app0.bin 0x1000 "C:\Project\SLC"\bootloader_qio_80m.bin 0x10000 "C:\Project\SLC"\controller.ino.bin 0x8000 "C:\Project\SLC"\controller.ino.partitions.bin

Replacing ESP32 fixes the problem. I believe its a reliability issue with ESP32, has anybody faced such reliability issues with ESP32 Wroom?

WattsThat

Quote
Replacing ESP32 fixes the problem. I believe its a reliability issue with ESP32
Yeah, sure, whatever. Real world experience would have you looking first at your hardware design for the cause, not the commercial product. You are responsible for the power supply and power supplies account for more than half of the problems when implementing a product. The chances the problem is something you did wrong is probably on the order of 99%.

After you've exhausted all the possible common errors and have confirmed it's not your design causing the problem, then you can discuss issues with the commercial part.

If you want a serious discussion, post your design (schematics and code) and photos of the product for review. Until you do that, all you're asking for is validation of your ill-advised  assumption which will not help solve the problem.
Vacuum tube guy in a solid state world

DrAzzy

Hardware failure occurring in the field after some period of successful operation points to a problem with the hardware design - spikes on the powersupply most likely, leading to the ESP32 being damaged.
ATTinyCore for x4/x5/x61/x7/x8/x41/1634/828/x313 megaTinyCore for the megaavr ATtinies - Board Manager:
http://drazzy.com/package_drazzy.com_index.json
ATtiny breakouts, mosfets, awesome prototyping board in my store http://tindie.com/stores/DrAzzy

Kalyan92

I am using LM2596 voltage regulator. It converts to 3.3v output for any input.

Idahowalker

I am using LM2596 voltage regulator. It converts to 3.3v output for any input.
Frankly, you should be supply 5V to the ESP and let the ESP's 3.3V regulator do its thing.

Kalyan92

I am using ESP32 Wroom. It required only 3.3v

Kalyan92

#6
Jun 24, 2019, 11:35 am Last Edit: Jun 24, 2019, 11:42 am by Kalyan92
Please find below schematic and PCB images.

WattsThat

Have you ever measured the ripple of your 3v3 supply under all load conditions? I see a small aluminum electrolytic cap where you should have a tantalum or an electrolytic selected for low ESR. Your supply could be loosing regulation or have very high ripple or worse, both.

Also, given that the LM2596 is a older design 3 amp regulator, L1 at 68uh might be too high of an inductance and you may well be operating below the minimum required load.

Your LM2596 pc layout has a very high impedance path in the ground connection (pin 3) by way of excessive thermal isolation provided. Those three tiny width traces to connecting the body to the ground plane are waaay too small.
Vacuum tube guy in a solid state world

DrAzzy

WattsThat pointed out many issues with the buck converter design.

And you don't have a big enough input cap before the regulator. In fact I see basically no capacitors across the 12v rail. Add like a 100uF one near the buck converter, I'd say.

Noise on capacitorless input rail. combined with a poor design of the Buck converter as noted above is a recipe for poor power regulation, including potentially spikes that could damage the ESP32.

ATTinyCore for x4/x5/x61/x7/x8/x41/1634/828/x313 megaTinyCore for the megaavr ATtinies - Board Manager:
http://drazzy.com/package_drazzy.com_index.json
ATtiny breakouts, mosfets, awesome prototyping board in my store http://tindie.com/stores/DrAzzy

Kalyan92

Have you ever measured the ripple of your 3v3 supply under all load conditions?
I will measure the ripple on the faulty units and get back.

I see a small aluminum electrolytic cap where you should have a tantalum or an electrolytic selected for low ESR. Your supply could be loosing regulation or have very high ripple or worse, both.
The reason why a small cap was used on the 3V3 line is that switching regulators dont  like higher caps, what do you think is the minimum cap value needed, given that usually ESP32 needs ~100mA when wifi is off and jumps to about ~350mA when wifi is on.

Also, given that the LM2596 is a older design 3 amp regulator, L1 at 68uh might be too high of an inductance and you may well be operating below the minimum required load.
The current consumption is variable and L1 depends on it, so, a value on the higher side was chosen, what do you think is a better value of L1? BTW, which are newer/better regulators?

Your LM2596 pc layout has a very high impedance path in the ground connection (pin 3) by way of excessive thermal isolation provided. Those three tiny width traces to connecting the body to the ground plane are waaay too small.
LM2596 was not found to get hot so the thermal pad was not found necessary.
The ground connection is via pin 5 which has a sufficient width for low impedance with ground plane.

Kalyan92

And you don't have a big enough input cap before the regulator. In fact I see basically no capacitors across the 12v rail. Add like a 100uF one near the buck converter, I'd say.

Noise on capacitorless input rail. combined with a poor design of the Buck converter as noted above is a recipe for poor power regulation, including potentially spikes that could damage the ESP32.


The 12V is an SMPS which internally has 1000uF and maybe some ceramics too, so no other cap was put on this board.

DrAzzy

Well, sure, but are there wires between the power supply and that board?
ATTinyCore for x4/x5/x61/x7/x8/x41/1634/828/x313 megaTinyCore for the megaavr ATtinies - Board Manager:
http://drazzy.com/package_drazzy.com_index.json
ATtiny breakouts, mosfets, awesome prototyping board in my store http://tindie.com/stores/DrAzzy

WattsThat

Quote
The ground connection is via pin 5 which has a sufficient width for low impedance with ground plane.
What datasheet are you reading? Pin 5 is the on/off pin, pin 3 is ground.

http://www.ti.com/lit/ds/symlink/lm2596.pdf
Vacuum tube guy in a solid state world

Kalyan92

What datasheet are you reading? Pin 5 is the on/off pin, pin 3 is ground.
Thanks for pointing out, WattsThat. The ground pins routes to ground plane is problematic.

Kalyan92

Quote
Have you ever measured the ripple of your 3v3 supply under all load conditions?
Most of the time at 3.3v ripple is 50mv, sometimes it goes up to 220mv.

Go Up