Forum: Mikrocontroller und Digitale Elektronik ESP8266 Wemos D1 mini DeepSleep issue


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Martin L. (tempusertempuser)


Lesenswert?

Hello,

I have some issue with my Wemos D1 Mini going to deep sleep.

Here is my code
1
void setup() {
2
  Serial.begin(115200);
3
  delay(100);
4
    pinMode(LED_BUILTIN, OUTPUT);  // Initialize the LED pin as an output
5
6
   unsigned long startTime = millis();  // Record the start time
7
  while (millis() - startTime < 30000) {  // 30,000 milliseconds = 30 seconds
8
    Serial.println("Loop is running...");
9
    digitalWrite(LED_BUILTIN, LOW);   // Turn the LED on (LOW is the voltage level because the LED is active LOW)
10
  delay(1000);                      // Wait for 1 second
11
  digitalWrite(LED_BUILTIN, HIGH);  // Turn the LED off (HIGH voltage level turns it off)
12
  delay(1000);
13
    
14
  }
15
 digitalWrite(LED_BUILTIN, HIGH);
16
  
17
  Serial.print("Sleep");
18
 
19
20
  // Send data over WiFi or to the cloud here (e.g., MQTT or HTTP request)
21
22
  // Sleep for 1 hour (1 hour = 3600e6 microseconds)
23
  ESP.deepSleep(10e6);
24
}
25
26
void loop() {
27
  // Will not run in deep sleep mode
28
}

I connected D0 with RST with a wire but there is no wake up of the board

here is the output on serial
1
{$$��|�l�|�d�c|����s�c�b��gg�$og���cx��dsl{d8�o��l��bg�|�l��c��gn�l��d`�gd`'{���gcl {ۓ'bd`�b��d{�`�g�Loop is running...
2
Loop is running...
3
Loop is running...
4
Loop is running...
5
Loop is running...
6
Loop is running...
7
Loop is running...
8
Loop is running...
9
Loop is running...
10
Loop is running...
11
Loop is running...
12
Loop is running...
13
Loop is running...
14
Loop is running...
15
Loop is running...
16
Sleep{dd��|�l�|�l�c|����s�c�c��og�doo���cx��dsd{$


Whe is my code fault? or iss the wemos d1 minir faulty?

von Sherlock 🕵🏽‍♂️ (rubbel-die-katz)


Lesenswert?

Try a delay after deepSleep:

> ESP.deepSleep(10e6);
> delay(100);

This is a workaround for a known bug in some firmware revisions.

If that does not help, check/replace the flash memory chip. Fake "D1 
mini" boards (not from Wemos) are often equipped with cheaper 
components. One of them might be a wrong flash chip (e.g. CT 580A-UGLI 
is known to be incompatible to the deep sleep mode).

: Bearbeitet durch User
von Alexander (alecxs)


Lesenswert?

Sherlock 🕵🏽‍♂️ schrieb:
> Try a delay after deepSleep

Ist das so ein urban myth? was soll ein delay bewirken das nie 
angesprungen wird?

von Alexander (alecxs)


Lesenswert?


von Sherlock 🕵🏽‍♂️ (rubbel-die-katz)


Lesenswert?

Alexander schrieb:
> Ist das so ein urban myth? was soll ein delay bewirken das nie
> angesprungen wird?

Wie gesagt ist das Workaround. Problem war (soweit ich mich erinnere), 
dass der Chip ohne das Delay manchmal nicht in den DeepSleep Modus geht. 
Es gab dazu mal ein Statement von Espressif, das ich leider nicht wieder 
finden konnte.

https://www.esp8266.com/viewtopic.php?p=58665#p58665
https://forum.arduino.cc/t/esp-8266-deep-sleep-reset-problem/975963
https://werner.rothschopf.net/microcontroller/202311_esp8266_deepsleep_en.htm
https://forum.arduino.cc/t/esp-deep-sleep-mode-on-wemos-d1-not-wake-up/1213624/5
https://www.esp8266.com/viewtopic.php?p=84925

: Bearbeitet durch User
von Alexander (alecxs)


Lesenswert?

Gelesen hab ich es schon oft, ich glaube bei Stefan zuerst.. aber ich 
glaube nicht dran!

von Sherlock 🕵🏽‍♂️ (rubbel-die-katz)


Lesenswert?

Alexander schrieb:
> Gelesen hab ich es schon oft ... aber ich glaube nicht dran!

Die eine Zeile Code kann nicht schaden, sie ist den Versuch wert.

: Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.