Unter dem Strich ist das ein konzeptionelles Problem. Die Sandwich-Bauweise hat den Vorteil, dass man das Develboard universell nutzen kann, hat jedoch den Nachteil, dass auf dem Develboard wenig Platz ist. Insofern ist dort halt ein Linearregler verbaut und kein Schaltregler. So ein Linearregler kann Spannungsüberschüsse in Wärme verheizen und somit z. B. aus 4 V eben 3,3 V machen, aber wenn zu wenig Spannung ankommt, dann bleibt die so (oder wird sogar noch geringer). Unterschreitet das Ganze eine gewisse Spannung, dann fängt ESPuino an, alle paar Minuten zu blinken via Neopixel. Bei welcher Schwelle das ist, ist über das Webinterface einstellbar. Wird der Akku dann weiter entladen, dann ist die Spannung irgendwann so niedrig, dass der ESP32 anfängt „komischen Kram“ zu machen. Ich kenne das so, dass entweder alle LEDs dann rot leuchten (wie du es beschreibst) oder aber jede zweite LED orange. Oft kriegt man das wieder damit eingefangen, dass man das Netzteil dranhängt. Dann startet der ESPuino wieder und wird geladen. Es kann allerdings auch passieren, dass man den Reset-Button drücken muss.
Abhilfen:
a) Nicht so weit entladen.
b) Wir haben mit SHUTDOWN_ON_BRAT_CRITICAL eine Direktive dafür, die man über s_warningCriticalVoltage parametrieren kann. Das führt zur sofortigen Abschaltung des ESPuino, wenn die eingestellte Spannung unterschritten wurde. Das muss einem aber halt klar sein, dass der ESPuino dann einfach ausgeht und keine Warnung schickt. 3V oder 2,9V wäre da ne gute Grenze.
c) Zur Not auf die neue Complete wechseln. Sie hat einen Schaltregler mit Buck/Boost-Topologie, der auch aus kleineren Spannungen eine größere Zielspannung bereitstellen kann. Damit der Akku nicht tiefentladen wird, sind per Hardware Spannungswächter eingebaut.