ESP 8266 DeepSleep

Hallo allerseits,:waving_hand:

ich arbeite gerade zum Einstieg in Wlan-fähige MCUs an einer Wetterstation.

Für einen praktikablen Nutzen, soll sich mein Wemos D1 Mini Pro (ESP8266) (AZDelivery) hauptsächlich im DeepSleep befinden und alle 30 Minuten aufwachen, um Messungen durchzuführen.

Allerdings musste ich feststellen, dass mein Wemos aus dem Dornröschenschlaf nicht mehr erwachen will. Ich teste das ganze mit nachfolgendem einfachen Code.

Mein Sketch:

#include <ESP8266WiFi.h> // optional, aber oft eh eingebunden

// the setup function runs once when you press reset or power the board
void setup() {
  Serial.begin(9600);
  delay(1000);

  pinMode(LED_BUILTIN, OUTPUT);  // initialize digital pin LED_BUILTIN as an output.
  delay(100);

  digitalWrite(LED_BUILTIN, LOW);   // turn the LED on by making the voltage LOW
  
  Serial.println("Ich bin wach...");
  delay(10000);

  Serial.println("Gehe schlafen...");
  digitalWrite(LED_BUILTIN, HIGH);   
  delay(100);


  ESP.deepSleep(10e6); //Gehe in DeepSleep für 10 Sekunden (10.000.000 µs)
  delay(100);
}

// the loop function runs over and over again forever
void loop() {
  // wird nie erreicht
}

Serielle Ausgabe:
———————————————————————————————————————————
Ich bin wach...
Gehe schlafen...

ets Jan 8 2013,rst cause:2, boot mode:(3,6)

———————————————————————————————————————————

Folgende Punkte habe ich berücksichtigt:

  • Upload ohne Lötbrücke zwischen RST und D0
  • Nach Upload Lötbrücke direkt eingesetzt
  • Auch mit Lötbrücke und one neuen Upload getestet
  • Habe überprüft, ob der Wemos auch im DeepSleep noch eine Stromversorgung hat

Bei zwei baugleichen MCUs erhalte ich das gleiche Ergebnis. Das schließt zwar einen Hardwarefehler nicht aus, aber macht diesen eher unwahrscheinlich.

Es gibt bereits einige Beiträge zu diesem Thema, aber diese sind entweder für andere Microcontroller oder umgehen das Problem irgendwie. Daher frage ich ganz konkret für den Wemos D1 Mini Pro (ESP-8266EX CP2104): Weiß jemand weiter? Liegt es am Hersteller?

Mit viel Glück und guter Hilfe lässt es sich vielleicht ja beheben. Falls nicht, könnte mir jemand einen anderen Microcontroller (gerne auch nur anderer Hersteller) empfehlen, bei dem die Erfolgschancen höher sind :wink:

Vielen Dank vorab!

Beste Grüße

Alex

Soweit mir bekannt, hast du exakt 2 Möglichkeiten!

  1. Du ersetzt den Flash Chip unter dem Deckel durch ein Markenprodukt.
  2. Du lötest einen Widerstand, 10k, zwischen 3.3V und SDD0(GPIO7)

Nicht direkt zu Deinem Problem, aber Dir ist bekannt, dass nur der Prozessor schläft und der Rest (z.B. CP2104 und LED) weiterhin munter Energie verbrauchen?

Schau Dir mal diese Threads an: SensEgg 3, SensEgg 433 und andere SensEgg-Threads nebenan.

Gruß Tommy

PS: Bei AZ-... würde ich auch mehrere defekte MC nicht ausschließen

Siehe:
https://electropeak.com/learn/wp-content/uploads/2023/05/esp8266-module-pinout-768x480.jpg

Aus: https://electropeak.com/learn/esp8266-pinout-reference-how-to-use-esp8266-gpio-pins/

Das ist kein AZ Problem, das geht tiefer, betrifft alle Händler, welche Wemos Minis anbieten.
Auch das Modul mit der Blechkappe aus einer bestimmten Serie.
Oder siehe: Wemos D1 mini Pro DeepSleep Fail - #41 by lev4k

Es betrifft nicht alle Wemos D1 mini.

Es betrifft viele Wenos D1 mini pro als Asiatischer Nachbau. Es betrifft auch nur die „pro“ Versionen. Die Nachbauten der pro Version haben fast immer den falschen/billigeren Flash-Chip verbaut.

Das habe ich auch nicht gesagt.

Es betrifft auch nur die „pro “ Versionen.

Das ist meines Wissens nach nicht richtig.
Der D1 Im UNO Layout ist auch betroffen.

Vielen Dank für die schnellen Rückmeldungen!

Schade dass bei den “vermeintlichen” Pros falsche oder schlechtere Komponenten verbaut sind.

@combie Dein Verweis auf das andere Form war überaus hilfreich!

Die Lösung ist tatsächlich, den 3V3 Pin und den SDD0 des Flash Memory Chips mit einem 10kOhm Widerstand zu verbinden.

In meinem Fall handelt es sich um den BoyaMicro 24Q128ES und dessen Pin 2 (siehe Bild).

Der Rest (RST → D0) bleibt natürlich gleich.

Ich habe folgenden Stromverbrauch gemessen:
Normalbetrieb: 16,6 mA

DeepSleep: 0,13 mA

Tatsächlich erscheint mir das etwas niedrig. Was haltet ihr davon?

Ob das auch langfristig eine gute Lösung ist wird sich zeigen…

Ok, das weiß ich nicht. Ich weiß nur das die D1 mini * Nachbauten keine Probleme bereiten.
Dafür aber fast alle D1 mini Pro * Nachbauten

  • Beispiellinks

Der ESP8266ex selber braucht nur 0,02mA im DeepSleep
Den Rest verbraucht dein Spannungsregler und dein USB-UART Wandler.
Im Normalbetrieb braucht ein ESP8266 an die 80mA. Deine 16,6mA erscheinen mir etwas wenig.