Hope someone here can help me sanity-check something.
I’m using a Seeed XIAO ESP32-C3 with a small LiPo connected to the BAT+ / BAT- pads on the back of the board. I’m using the BAT pads because I also want to charge the LiPo from a wireless charging receiver connected to VUSB + GND.
My firmware can put the ESP32-C3 into deep sleep. I originally tried waking it with an A3144 Hall sensor connected to D1/GPIO3: (Tested with D2 and D3 too.)
A3144 VCC → 3V3
A3144 GND → GND
A3144 OUT → D1/GPIO3
external pull-up to 3V3
Signal levels looked good:
no magnet: about 3.3V on D1
magnet: about 0V on D1
With USB power, deep sleep + Hall wake works as expected.
But when powering from BAT+ / BAT-, the ESP32-C3 goes into deep sleep but will not wake from D1/GPIO3. I tested both with a small LiPo and with a lab power supply connected to BAT+ / BAT-. Same result.
Measured current:
awake with BLE: about 85mA
deep sleep: about 18µA
magnet near Hall sensor while asleep: about 22µA
So it really seems to be in deep sleep, but GPIO wake does not seem to work when powered from the BAT pads.
As a workaround, I connected the A3144 output to RST instead of D1, with a pull-up to 3V3. That works reliably: magnet pulls RST low, remove magnet, board reboots/wakes fine from BAT power.
Question:
Is this expected behavior on the XIAO ESP32-C3 when powered through BAT+ / BAT-? Is there something special about deep-sleep GPIO wake when running from the BAT pads, or am I missing a required configuration/hardware detail?