ESP32 S3 Power Supply Issues

Hi folks! This is my first post. I'm a software engineer and I'm struggling with some power issues on a circuit I've designed and thought I'd reach out to some experts because I'm really stumped now.

I've got:

1 x ESP32 S3 WROOM (using both ESP-NOW WiFi and Bluetooth LE)
1 x Display module
1 x NFC module
1 x LoRa module
1x Audio Module MP3-TF-16P
1 x IR Receiver
1 x IR LED
2 x Switch (Buttons)

Although my schematic supports more modules like lights, rumble motor and serial interface, those listed above are the only ones connected at present.

The software is running Platform.io and Arduino framework.

All of this works just fine, including comms via ESP-NOW, app control via BLE etc until I try to playback audio. At low volumes audio playback works fine but if I ramp the volume up even to half the max, the audio module gives up, usually after a crackly attempt to play the audio, and often the ESP32 goes into a reboot cycle where as it boots, the audio clicks and then the ESP32 resets again, over and over.

I've also noticed that the circuit wont boot at all unless I provide 5.15V from the bench supply instead of the 5V the ESP32 is rated at. If I provide less than this, things light up but the ESP32 doesn't actually boot so things like the display never get to rendering anything, but the backlight is visible.

If I ramp up the voltage a bit to 5.40V the audio playback can play at higher volume without a crash. Increasing the volume further then crashes it all again. This all seems a bit weird to me because I thought that current would increase in line with volume rather than requiring more voltage for volume.

I'm running the circuit on both a breadboard and a double-sided copper PCB plate I CNC milled my circuit to. Both exhibit the same issue.

I've swapped out the ESP32 and the audio module as I have spares, but no difference.

Here's the schematic:

Here's the PCB:

I'm too new to circuit design, especially power-related topics and I know it's a mistake I've made or some poor design decision that's causing this, but I don't think I have the capability to figure this out by myself.

My ultimate goal is to be able to run this from a battery pack but for now, even the bench supply is not working :frowning:

If anyone has any ideas or advice or things I can try or clarify, please let me know!

Thanks everyone!!

Either power the esp32 via the USB connected to your computer or a 5V wall wart or, if portability is needed, a 10,000mAh 5V power bank. You are encountering brownout.
Where (pin or USB) you supply the power makes a difference, you might want to read the Arduino.cc Hardware datasheet for the MCU. Easiest is USB as it has a voltage regulator so you can use higher voltages if you make your own battery pacjk from something like Lithium 18650 cells (ONLY in series, so at least 4)

2 Likes

That indicates an overload regarding powering the audio device. Getting the audio a better 3.3 volt supply is the most likely medicin.
How is the ESP board powered? USB?

2 Likes

It's currently via a bench supply connected to the 5V pin of of the ESP32. The audio module takes 3.3 from the ESP32's 3v3 output pin.

I took your idea and tested it. If I connect the board via USB to a wall power supply I can play at max volume without a brownout occurring. The thing I don't understand about this is how is that different from the bench power supply on the 5V pin? The bench supply should also be able to supply the current no?

Powering it via USB from my laptop exhibits the same brownout issue as the bench power supply.

It depends on the capacity for current. Know that current limits jumps in very fast. Short but large current draw might trip them.

2 Likes

12-17V
For what?

1 Like

Would this be a good candidate for a capacitor? I want to keep the project cost to a minimum but I do have access to a bunch of components including capacitors so I could add one or more to test the stability?

I also tested the device via the wall power and added a measuring tool on the USB cable. The current averaged 360mA but jumped to 496mA for the length of the audio playback (a few seconds) when playing at full volume.

To handle that sort of spike, would a capacitor be a good idea?

Think of it as a highway - instead of adding an extra lane for more cars to pass, increasing the speed will also allow more cars to pass. Which means, higher voltage can be used to increase current.

1 Like

Which overloads the 3.3V regulator, which then triggers thermal shut down. It works again after it cools down. With continuing stress it will eventually fail.

4 Likes

This is the issue. The 3.3 V pin cannot source much current, and your sound module want more current than can be supplied. So voltage drops...

Edit: Lol... @oldcurmudgeon

2 Likes

A capacitor might help but that is just fixing a symptom, not the root cause.
Your bench supply should have a pot to control voltage and another or the same if a switch is available to change it for current control.
Maybe your laptop isn't capable, my Mac is more than capable to drive that load.
4 LiIon is max 14.4, but I think I was having a stroke. I found this in another thread

2 Likes

Yes, absolutely. A 100 - 470 microFarad electrolyt and some 100 nF ceramic (handles very short spikes) is very well worth testing!

1 Like

@coolbloke1324 Yes, but until he gets a 3.3V supply for the sound module nothing else is going to help.

1 Like

@Railroader Unless

then it won't help.

1 Like

Thank you everyone! I think I understand the mistake I've made in the circuit design now. I should not use the 3v3 pin on the ESP32 to power high-current devices like the audio module. I should take power directly from the power supply and convert it to 3v3, then supply that to the devices that need it so that the current spikes can be handled better.

Then, I should also consider applying capacitors to the power supply where these current-spike modules are connected to smooth the supply.

Am I correct in my understanding?

1 Like

This is something datasheets usually are good at telling you. So keep an eye out for bypass or decoupling and see what the manufacturer recommends. A typical example of this are voltage regulators, like you're talking about for the 3.3 V.

1 Like

Very close. The following needs to be slightly modified: it's not the spikes, the board is NOT a power supply. As a rule of thumb, nothing is powered from the board. You rarely need capacitors for most power supplies; they will have them already. If you are seeing (not in this case) some noise issues, for instance, with some motors and some sensitive sensors, then yes, as close to the motor as possible, add a ceramic 0.1uF capacitor.

I should take power directly from the power supply and convert it to 3v3, then supply that to the devices that need it so that the current spikes can be handled better.

1 Like

1 Like

Can I clarify? (sorry I realise these are likely numpty questions but I'm still learning):

the board is NOT a power supply

So is my assumption that bypassing the board and supplying 3v3 from the battery pack directly to the modules that have high current requirements is a better design?

Or did I miss your point?