Backfeeding power though VUSB pin not working

I am working on a project with using a Sparkfun ESP32 Thing Plus (the old black SparkX version, SPX-18018). There are several devices that run off the ESP32’s 3.3V regulator, and others that run off of the 5V from the USB cable. However, the final product will be powered from 3 AA batteries (that measure about 4.7 volts when not loaded).

When the USB cable is plugged in, everything “just works”, and the VUSB pin and wires connected to it all measure ~5V above ground, and the 3V3 pin measures 3.3V.

However, something weird seems to be going on when I switch to the batteries. When the ESP32 module is unplugged from the socket and the perf board circuit only is being powered by the batteries, probes pushed into the sockets’ holes where the GND and VUSB pins are measure 4.7V as expected (the batteries backfeed through this pin). When the ESP32 module is plugged in to its socket the voltage suddenly drops to 1.2V and everything shuts down.

I checked the schematic of the ESP32 Thing Plus and the VUSB pin is literally a direct connection to the V+ pin of the USB port, so I am baffled as to how the batteries are not able to power the circuit, while the USB cable can. They are fresh batteries, and the only thing that turns on when power is first applied is just a few power indicator LEDs, so current draw isn’t the problem.

If anyone has any idea why this is happening, please let me know!!

I have tried this on my ESP32 Thing (not a Thing Plus) The power circuit is the same. it worked.
3 x AA battery gives me 4.78V, connect to the ESP32 Thing is became 4.55V.

Maybe there are other devices connected using 3v3 current? To much resistance in the battery wire connection ? Short circuit ? Not connecting to the right pins on the ESP32 ?

As alternative approach I added a diode between de battery + and the wire to the ESP32-Thing and connected to the BAT connection and GND. The voltage was now 3.65V and the board started. The ESP32 can handle 3.6V.

I probed everywhere there could possibly be a short circuit on the 3V3 net, and found none. And the battery wires were salvaged from a device that was running multiple amps of current through the wires, so the resistance is not an issue.

And as I said in the OP it works when powered over USB. So “not connecting the right pins” was never a concern because I have tested it and know that all the right pins are connected. And again, current is also known not to be the issue because the batteries can provide more current than the USB cable anyway. They are fresh batteries.

I would have used the VBAT pin, but since I needed the ~4.5V I didn’t want to connect that to a pin that expected a max of 4.2V and risk damaging the built-in MAX17048 on the ESP32 board. The 4.5V is for running a couple of motors, but again the motors don’t run until the ESP32 tells them to, so they aren’t drawing any current when the power is first applied!

it’s indeed still a bit of miracle… but something should be causing this behavior. Just trying to think along what it could be and trowing out some wild ideas.

I tested on a standalone ESP32. Not sure what else is connected for you. If something else is also connected, maybe try on a breadboard and stand alone.

1 Like

I tried using mate-to-female jumper wires to connect only the VUSB and GND pins from my perf board circuit to the ESP32 board, and the voltage still sagged below usable levels when running off the batteries. I swapped the batteries for some rechargeable NiMH cells and this time the power LED turned on but that was it - the ESP32 didn’t boot. Evidently something is drawing a lot of current and causing the voltage to sag quite a lot - I’m going to have to check the motor drivers connected to the VUSB again.