Power Path Management
Hi everyone,
Just a newbie. I’m designing a small battery-powered ESP32 HID device/keychain. I’m currently prototyping with an ESP32-C3, but I plan to move to an ESP32-S3 because I want USB HID through the ESP32’s native USB.
My question is about power-path management / load sharing.
The device will have:
- 1-cell LiPo battery
- charging circuit, possibly TP4056 for now
- ESP32-S3
- buttons/joystick and other small peripherals
- one USB-C port only
What I want:
- The same USB-C port should charge the battery
- The same USB-C port should also connect to a laptop for USB HID
- The device should be usable while plugged in
- The battery should not backfeed into the laptop/USB port
- USB power and battery power should not fight each other
- Charging should still work safely while the ESP32 is running
My concern:
If the battery has power and I plug the ESP32-S3 USB port into my laptop for USB HID, could the battery or charger circuit backfeed into USB and damage something? I know a basic TP4056 module is usually just for charging and does not provide true load sharing or power-path management.
How should I design the schematic so I only need one USB-C port for both charging and USB HID?
Should the USB-C VBUS go to both:
- the battery charger input, and
- the ESP32-S3 USB VBUS sensing/power path?
Do I need:
- a dedicated LiPo charger with power-path/load-sharing?
- ideal diodes / Schottky diodes?
- a power mux?
- a boost converter to 5V, or should I regulate the LiPo directly to 3.3V?
- USB VBUS protection to prevent battery backfeed?
I’m trying to understand the proper block diagram before making the KiCad schematic.
A rough target behavior would be:
- USB plugged in: system runs from USB, battery charges
- USB unplugged: system runs from battery
- no backfeeding from battery to USB
- ESP32-S3 USB D+/D- still connects to laptop for HID
What is the recommended beginner-safe schematic approach for this? How about the battery over charging management?