Check the schematics! Yeah, it has built-in charger...
https://github.com/Xinyuan-LilyGO/TTGO-T-Display/blob/master/schematic/ESP32-TFT(6-26).pdfThe LDO has a quiescent current of just 55-80uA, that's at most 2mAh every day, even a really small 100mAh battery should last for weeks.
However the schematic has some features that are wasting power.
R32 (100K) will consume another 40uA, isn't really needed, can be removed.
R25 (10K) will waste about 300uA when turned on, doesn't need to be that low, should work fine with 220K.
Actually the esp32 needs to set IO14 high to work from batteries (PWR_EN pin), so it won't turn on unless it's connected from USB power first?
The main program starts, enables the output and then USB power can be removed.
Once it booted at leats once, it might go into sleep mode while keeping the pin high.
Anyways sleep still consumes some power, not optimal.
You could make a very simple hardware mod to make it switch on and off.
- Add a push button between R28 and GND, as in attached picture.
- Read a button in software and use it as power-off button switch, turning IO14 low when detecting a long press on this button.
- Enable IO14 in the initialization code, but add a delay of 500mS first, this will prevent any noise from turning on the board, so the user must press the button for at least 500mS to ensure power-on.