Powersave ohne externe Schaltung

Hab hier noch wenig Erfahrung.
Die meiste Power zieht doch eh das Devboard, oder?

Selbst mit Esp im Deep Sleep.

Die externen Komponenten haben ja Powersave Modi.

Fall hier einer Ahnung hat bitte melden :wink:

PS: benutze die Leitung am Reset PIN für den NFC Reader als Hardware Sleep. Die ist ja im Standard Projekt noch verbunden glaube ich

Der ESP32 selbst verbraucht im deep-sleep nur einige uA, da würde die Batterie Jahre halten. Stimmt, die externen Komponenten wie DAC und RFID Leser lassen sich schön schlafen legen. Hauptproblem ist das verwendete DevBoard. Hier sind nur wenige Boards auf stromsparenden Batteriebetrieb ausgelegt. Der Spannungsregler und der Serial-USB Chip sind hier die Stromfresser. Einen guten Überblick über stromsparende Boards findest Du hier.
Das ESP-32 Board soll ja nach Möglichkeit nicht abgeschaltet werden um auch im Ruhemodus Aktionen durchführen zu können.

Ich hatte den TTGO-T8 vorgeschlagen, alles fein mit SD Karte, Akuu-Ladung und vielen freien PINs. Bis ich festgestellt habe das das Board im Deep-Sleep 3,5mA zieht. Zuviel für Batteriebetrieb. Biologist hatte schon eine Platine entworfen bis er auf das gleiche Problem gestoßen ist. So ein Board ist dann nicht verwendbar für Batteriebetrieb.

Zu den Komponenten:

SD-Karte: Wenn die richtig mit SD.end(); vor dem Deep-Sleep beendet wird „soll“ sie nur einige 10uA ziehen. Das klappt aber nicht. Es gab einen Bugfix im ESP framework, trotzdem bekomme ich die SD Karte nicht auf vernünftige Werte.

NeoPixel: Selbst wenn man den Data-Ausgang mit pinMode(PIXEL_PIN, INPUT); auf Eingang umschaltet verbrauchen die Neopixel mehrere mA

RFID Leser: Sowohl RC522 als auch PN5180 lassen sich softwareseitig auf sehr stromsparend schalten.

DAC: Der schläft mit dem SD Pin schön stromsparend.

Dann sind da noch 10K Pullup Widerstände, die ziehen auch Strom!

Es hat hier noch keiner geschafft den Deep-Sleep Verbrauch soweit zu senken ohne die externen Komponenten (hier SD-Karte & Neopixel als größte Stromfresser) abzuschalten. Das ist der Grund für die externe Abschaltung mit MosFET!
Wäre natürlich cool daruf zu verzichten…

Ah danke für die Info, den Neopixel hatte ich gar nicht auf dem Schirm. Benutze keinen.

Für den TTGO gibt es diesen Threat:

Da kann man anscheinend noch basteln. Hab bei mir nur die Power LED entfernt.
Wie auch am NFC Reader.

Mi geht es auch mehr ums Akku sparen. Muss nicht wochenlang durchhalten. Habe dazu einen HW Powerschalter. Den benutze ich um am TTGO den Onboardschalter zu überbrücken. Der ist also auf OFF auf dem Board. Vorteil hier ist die Ladeelektronik lädt den Akku auch bei ausgeschaltetem Board.
Etwas blöd zum löten aber funktioniert gut.

Ich muss noch testen wie lange ich mit einer Ladung im Standby durchkomme…

Wieviel Strom ziehen die? Kann man die ohne weiteres z.b. auf 40k erhöhen und damit den strom senken?

https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/peripherals/sd_pullup_requirements.html

Bei SD_MMC könnte man versuchen völlig auf externe Pullup zu verzichten und diese vollständig softwareseitig über pinMode(xx, INPUT_PULLUP) zu machen. Ich weiß aber nicht wie zuverlässig die SD-Karte dann noch arbeitet.

War Käse, was ich geschrieben hatte gestern Abend. Da fließen natürlich nicht die ganze Zeit 0.33 mA. Sondern nur halt dann, wenn man die Taste drückt. Denn die GPIOs des ESP sind ja hochohmig. Habe den Beitrag daher gelöscht.
Eieiei… :joy:

Sorry wenn ich hier einen alten Thread aufwärme, aber die Thematik ist genau dieselbe.

Ich hab ja mein bekanntes Olimex-Board (ESP32-ADF) und bin auch gerade dabei, den Stromverbrauch zu senken.
Ich habe mit dem MCP23017 auch noch jede Menge Ports frei, und damit kann ich noch einiges schalten.

Aktuell bin ich bei etwa 10mA im Deep Sleep (EXT0) - ich müsste EXT1 mal testen ob das funktioniert. Ich wecke mit dem Interrupt Pin vom Port-Expander auf.

Es gibt einige Pull-Ups bzw. Spannungsteiler die auch auf einige mA kommen, aber nix weltbewegendes.

Bei 10mA im Deep-Sleep und einem Akku mit 2900mAh ergibt das immerhin eine Standby-Zeit von 290h, also ~12 Tagen. Finde ich für den Anfang ganz in Ordnung. :+1:

Auf welche Werte kommt ihr hier mit den Boards insgesamt unter Praxisbedingungen?

Ich müsste nochmal versuchen, das zu messen. Ich habe so ein kleines USB-Multimeter, das springt im Deepsleep bei der rev3 für den Lolin D32 pro mit Port-Expander zwischen 0 und 5 mA hin und her. Also irgendwas dazwischen.

Den Strom im Batteriebetrieb zu messen (eigentlich ist ja genau nur der interessant) hat beim letzten Mal nicht gescheit funktioniert. Das muss ich mal anders versuchen.

@tuniii hatte die Stromaufnahme zwischenzeitlich mal gemessen und kam auf 1,2 mA. Im „µC-Kosmos“ ist das für Deepsleep vergleichsweise viel, aber ich denke für unser Projekt hier ist das völlig in Ordnung, da hier die Anforderung (aus meiner Sicht) auch nicht ist, dass das mehrere Monate ununterbrochen im Akkubetrieb laufen muss.
Push-Button-Lösungen sind hier stromtechnisch natürlich überlegen, aber die Mosfet-Geschichte ist für mich dennoch ein schöner Mittelweg, da sich das sehr sehr einfach integrieren lässt. Vor allem jetzt mit INVERT_POWER, was ich am WE integriert/gemerged habe, braucht es ja nur noch einen Mosfet und zwei Widerstände (1k und 100k).
Mosfet THT: NDP6020P
Mosfet SMD: IRLML6401 oder 2244

Falls sich übrigens mal jmd. gefragt hat, warum ich Mosfets und nicht einfach schnöde PNP-Transistoren nehme:
a) Die brauchen auf der Basis die ganze Zeit Strom, während ein Mosfet nur umgeladen wird und es dann vernachlässigbar ist.
b) Auf der Strecke Kollektor-Emitter fallen üblicherweise 0,2 V ab, wenn der Transistor durchgesteuert ist. Bei 3.3 V haben wir nach unten aber nicht wirklich viel Luft und daher möche ich diesen Spannungsabfall gerne vermeiden. Das tue ich mich einem passenden Mosfet. Passend heißt: Vgs ist hinreichend niedrig, so dass der mit 3.3 V ordentlich durchsteuert und damit Rds niedrig ist.