One of the ESP32's in my weather station does the deep sleep thingie when the battery is too low. The ESP32 detects low bat volts, less then 9 volts and puts itself to deep sleep upon detecting 9 volts or less. Before the ESP32 goes to sleep the ULP is started up, that's the 2nd processor on a ESP32. The ULP will now start up and does the volts detect things. The ULP keeps the main CPU and all the peripherals shut down till volts rise above 10.