Forum: Mikrocontroller und Digitale Elektronik AZ-Delivery D1 mini ESP8266 geht nicht zuverlässig in Deepsleep


von Manuel F. (manuel_f)


Lesenswert?

Ich habe auf einen AZ-Delivery D1 mini ESP8266 die Firmware Tosmata 
geflasht und für MQTT konfiguriert.
Es liest einen Temperatursensor aus, sendet die Temperatur über MQTT und 
geht für 5 Minuten in Deepsleep.
Hardwareaufbau:
Versorgung mit einer 18650 LiIon Zelle mit LDO auf 3,3V.
Auf 3,3V habe ich auch noch einen 22uF Tantal gehängt.
Grundsätzlich funktioniert es.
Allerdings einmal 5 Tage, dann wieder nur 3 Tage.
Mittlerweile habe ich auch den USB-Seriell-Converter IC runtergelötet, 
weil der im Deepsleep einen relativ hohen Stromverbrauch verursacht 
hatte.
Also am Stromverbrauch liegt es definitiv nicht mehr.
Immer wenn es nicht mehr geht, hat der Akku nur mehr knapp über 2V.
Bei der letzten funktionierenden Datenübertragung werden aber noch >3,3V 
gemessen.
Für mich schaut das so aus, wie wenn er sich aufhängt bzw. nicht mehr in 
den Deepsleep geht und dann den Akku leer saugt.
Aber wie kann ich das verhindern?
Gibt es so etwas wie einen Watchdog, der aber dann im Deepsleep nicht 
auslöst?

von Stefan F. (Gast)


Lesenswert?

Irgendwie häufen sich diese Anfragen in letzter Zeit.

Das Wemos D1 Mini Board wurde mal so weit verbessert, dass es im 
Deep-Sleep nur noch etwa 300 µA aufnimmt.

Möglicherweise ist das Board von AzDelivery mit einem anderen 
Spannungsregler bestückt, der mehr Ruhestrom aufnimmt. Da nützt es dir 
dann auch nichts, das Board von extern zu versorgen.

> Für mich schaut das so aus, wie wenn er sich aufhängt
> bzw. nicht mehr in den Deepsleep geht und dann den Akku leer saugt.

Das kann auch durchaus der Fall sein.

Ist denn dein LDO überhaupt genug belastbar? 500 mA sollte er liefern 
können. Wenn nicht, dann provoziert man damit Abstürze.

> Aber wie kann ich das verhindern?

Stabile Stromversorgung ist am allerwichtigsten.

> Gibt es so etwas wie einen Watchdog, der aber dann im Deepsleep
> nicht auslöst?

Ja, der ist standardmäßig auch aktiv. Aber wenn der Chip hängt, dann 
versagt der Watchdog leider manchmal.

von Manuel F. (manuel_f)


Lesenswert?

Stefan ⛄ F. schrieb:
> Das Wemos D1 Mini Board wurde mal so weit verbessert, dass es im
> Deep-Sleep nur noch etwa 300 µA aufnimmt.
>
> Möglicherweise ist das Board von AzDelivery mit einem anderen
> Spannungsregler bestückt, der mehr Ruhestrom aufnimmt. Da nützt es dir
> dann auch nichts, das Board von extern zu versorgen.

Original bin ich im Deepsleep auf 1,7mA gekommen, wenn man nicht über 
USB sondern direkt auf den 3,3V Pins versorgt.
Nachdem ich den USB-Seriell-Converter IC entfernt habe, bin ich jetzt 
auf 200uA im Deepsleep.

>Ist denn dein LDO überhaupt genug belastbar? 500 mA sollte er liefern
können. Wenn nicht, dann provoziert man damit Abstürze.

LDO habe ich den TC1262-3.3VDB genommen. Also ein 500mA Regler.

> Stabile Stromversorgung ist am allerwichtigsten.
Zusammen mit dem 22uF Tantal sollte die Spannung stabil genug sein.

Ein 2. Modul, welches aber nur alle 60 Minuten die Werte überträgt, 
läuft seit 2 Wochen durch.
Irgendwie habe ich keine Idee, wie ich das Problem näher eingrenzen 
kann.

von Stefan F. (Gast)


Lesenswert?

Manuel F. schrieb:
> Als LDO habe ich den TC1262-3.3VDB genommen. Also ein 500mA Regler.

Manuel F. schrieb:
> Versorgung mit einer 18650 LiIon Zelle mit LDO auf 3,3V.

Der hat bei 500 mA bis zu 650 mV Drop-Out. Der Akku muss also 4 Volt 
haben, damit das stabil funktioniert. Nimm lieber einen 3,0 Volt Regler, 
wenn kein anderer Grund dagegen spricht.

Manuel F. schrieb:
> Zusammen mit dem 22uF Tantal sollte die Spannung stabil genug sein.

Ich empfehle 100 oder 200 µF. Mit 10 µF lief das ESP-12 Modul bei mir 
nicht stabil.

Manuel F. schrieb:
> Irgendwie habe ich keine Idee, wie ich das Problem näher eingrenzen
> kann.

Überprüfe die Stromversorgung mit einem Oszilloskop an einem fast leeren 
Akku (3,6V).

von Manuel F. (manuel_f)


Lesenswert?

Ich habe mir das jetzt mit Oszi, Labornetzteil und einem 3V leeren Akku 
angeschaut.
Ab 3,2V bleiben sämtliche Spannungseinbrüche über 3,0V und sollten somit 
kein Problem sein.
Mit dem 3V Akku bricht die Spannung auf 2,8V ein. Aber selbst da läuft 
es seit über einer Stunde fehlerfrei obwohl ich die Deepsleep Zeit auf 
1min verkürzt habe.
Ob das wirklich an der Versorgung liegt?
Ich werde mal als Gegentest einen LiFePo4 auf 3,5V aufladen und direkt 
ohne LDO anhängen.
Vorher lasse ich es aber noch länger mit den 3,2V laufen.

von Olaf (Gast)


Lesenswert?

> Ich empfehle 100 oder 200 µF. Mit 10 µF lief das ESP-12 Modul bei mir
> nicht stabil.

Also ich empfehle ja eher Oszi und Gehirn einzuschalten. Wofuer hat man
das schicke Teil denn? Ansonsten den Kondensator am Ausgang nicht 
unnoetig gross machen weil es gerade Aufgabe des Reglers ist die 
Spannung richtig zu regeln. Es ist eher sinnvoll am Eingang des Reglers 
einen groesseren Kondensator zu haben weil das dem Regler bei einer leer 
werdenden Batterie mit groesserem Innenwiderstand mehr Headroom bei 
impulsfoermiger Last bietet.

> Ich habe mir das jetzt mit Oszi, Labornetzteil und einem 3V leeren Akku
> angeschaut.

Ah..Gehirn geht schon. :-) Dreh mal an deinem Labornetzeil den 
Maximalstrom langsam runter bis du siehst wie deine Schaltung Probleme 
bekommt weil der kurze Sendepuls die Spannung zusammenbrechen laesst. 
Und dann machst du mal einen Elko vor deinem Regler und schaust mal wie 
weit du damit runter kommst.

Der naechste Punkt, miss bitte mal direkt an deinem ESP-Baustein. Also 
z.B an einem Stuetzkondensator auf der Platine. Und schau mal ob die 
Spannung dort auch stabil sind. Ein Strom von 500mA ist ja nicht ohne. 
Wenn da deine Verkabelung zu duenn ist oder ein Pfostenstecker etwas 
viel Uebergangswiderstand hat dann summierst sich da auch etwas 
Spannungsabfall. Eventuell kann es dann sinnvoll sein direkt auf deinem 
Modul noch eine Kapazitaet aufzuloeten wenn du dort ein Problem 
nachweisen kannst.

> Ob das wirklich an der Versorgung liegt?

Du hast doch ein Oszi, also nutze es! Und verwende nach moeglichkeit 
kein Pigtail sondern die Massefeder.

Olaf

von Stefan F. (Gast)


Lesenswert?

Manuel F. schrieb:
> Ab 3,2V bleiben sämtliche Spannungseinbrüche über 3,0V und sollten somit
> kein Problem sein.

Das kenne ich anders. Der ESP8266 reagiert empfindlich auf schnelle 
Schwankungen in seiner Stromversorgung. Er funktioniert ab 2,8V aber 
dass heißt nicht, dass die Einbrüche so weit gehen dürfen.

Mit 3,3V und 300mV Einbrüchen läuft er definitiv nicht mehr stabil, das 
weiß ich aus durchgeführten Testreihen. 100mV scheint hingegen noch zu 
gehen.

Manuel F. schrieb:
> Ob das wirklich an der Versorgung liegt?

Erfahrungsgemäß lagen gefühlt 95% aller Instabilitäten an mangelhafter 
Stromversorgung. Mit der Korrektur der Stromversorgung endet hier fast 
jeder entsprechende Thread. Insofern halte ich es für eine gute Idee, da 
anzusetzen wenn man keinen gezielteren Plan hat.

von Stefan F. (Gast)


Lesenswert?

Olaf schrieb:
> Also ich empfehle ja eher Oszi und Gehirn einzuschalten. Wofuer hat man
> das schicke Teil denn?

Da bin ich voll bei dir. Ich hatte den Elko empfohlen weil ich dachte 
dass der TO kein Oszilloskop hat. Dachte er hätte es sonst benutzt und 
davon berichtet.

Die Idee hinter dem Kondensator ist, dass Spannungsregler nicht 
unendlich schnell nachregeln können. Gerade LDO sind davon tendenziell 
mehr betroffen, als normale Spannungsregler. Die Stromaufnahme des 
ESP8266 ist aber extrem sprunghaft. Der Kondensator soll die Trägheit 
des Spannungsreglers ausgleichen.

Du hast absolut Recht, dass zu viel Kapazität sich wiederum negativ auf 
die Funktion des Spannungsreglers auswirken kann.

Das bewährte NodeMCU Board hat übrigens 100 µF. Das Wemos D1 Mini hat 
für den bestückten LDO manchmal zu wenig, das ist hier im Forum schon 
einige male aufgefallen. Problem: Es gibt viele Varianten von dem Board 
und die auch noch mit unterschiedlichen Spannugsreglern bestückt.

Ich habe allerdings zur Kenntnis genommen, dass der TO einen externen 
Spannungsregler benutzt. Wie viel Kapazität der braucht, um den ESP8266 
zu bedienen, weiß ich nicht.

Olaf schrieb:
> Dreh mal an deinem Labornetzeil den
> Maximalstrom langsam runter bis du siehst wie deine Schaltung Probleme
> bekommt weil der kurze Sendepuls die Spannung zusammenbrechen laesst.

Bei mir würde das nichts nützen, denn mein Labornetzteil hat 440 µF an 
den Ausgangsklemmen.

Olaf schrieb:
> Eventuell kann es dann sinnvoll sein direkt auf deinem
> Modul noch eine Kapazitaet aufzuloeten wenn du dort ein Problem
> nachweisen kannst.

Ja, auf jede Fall direkt ans ESP Modul (der Teil mit dem Blech-Deckel). 
Nur da tut er, was er soll.

von Manuel F. (manuel_f)


Lesenswert?

Danke erstmal für den ganzen Input.
Die Versuche mit dem Labornetzteil habe ich nach 2 Stunden abgebrochen.
Da ist das Problem nicht aufgetreten obwohl die Spannung wirklich schon 
nicht mehr schön aussieht. (200mV Spannungseinbruch)
Strombegrenzung beim Labornetzteil zurück drehen, hat in dem Fall nichts 
geändert, weil am Ausgang vom Labornetzteil ziemlich große Elkos verbaut 
sind (nach der Strombegrenzung).
Mit Akkuversorgung habe ich auch nochmal gemessen.
Da sind die Spannungseinbrüche bei unter 20mV.
(beide Messungen mit Massefeder)

Der 22uF ist natürlich direkt am Modul aufgelötet.
Zuvor hatte ich es ohne den 22uF in Verwendung. Da ist es auch immer 3-5 
Tage gelaufen.

Ich werde jetzt mal jeden Tag die Akkuspannung messen und schauen, ob es 
bei den Ausfällen einen Zusammenhang gibt.
Ev. gibt es mit dem LDO bei einer bestimmten Spannung einen komischen 
Effekt.
Im 2. Schritt werde ich es dann mit dem LiFePo4 ohne LDO versuchen.

von Manuel F. (manuel_f)


Lesenswert?

Ich glaube, dass ich heute Nacht zufällig auf das Problem gestoßen bin.
Bei mir wird in der Nacht das WLAN ausgeschaltet.
Offensichtlich geht der D1 Mini dann nicht mehr in den Deepsleep.
Ev. sucht er ständig nach der Verbindung?
Kann man das irgendwie verhindern?

Beitrag #6925626 wurde von einem Moderator gelöscht.
von Manuel F. (manuel_f)


Lesenswert?

Ich habe das jetzt nochmal getestet.
Es ist wirklich so. Sobald ich WLAN ausschalte, geht der ESP8266 nicht 
mehr in Deepsleep.
Kann man das irgendwie einstellen, dass er es nur 1x versucht oder so?

von Joachim B. (jar)


Lesenswert?

Manuel F. schrieb:
> Ich habe das jetzt nochmal getestet.
> Es ist wirklich so. Sobald ich WLAN ausschalte, geht der ESP8266 nicht
> mehr in Deepsleep.
> Kann man das irgendwie einstellen, dass er es nur 1x versucht oder so?

mir war so das idR ein loop läuft

Also prüfe ob die Verbindung noch steht while connected
sonst mache ein disconnect denn woher soll der esp wissen das der Router 
weg ist?

Für Versuche 1x lasse ein Counter (Variable) mitlaufen!

von Peter D. (peda)


Lesenswert?

Manuel F. schrieb:
> weil am Ausgang vom Labornetzteil ziemlich große Elkos verbaut
> sind

Gute Labornetzteile haben möglichst <=1µF am Ausgang, damit bei 
Kurzschlüssen die Kondensatorladung keinen großen Schaden anrichtet.

von Manuel F. (manuel_f)


Lesenswert?

Peter D. schrieb:
> Gute Labornetzteile haben möglichst <=1µF am Ausgang, damit bei
> Kurzschlüssen die Kondensatorladung keinen großen Schaden anrichtet.

Ja ich weiß.
Da bin ich aber erst nach dem Kauf drauf gekommen, dass das ziemlich 
suboptimal ist.
Wobei ich mir das eh hauptsächlich zum Akku laden gekauft habe und dafür 
funktioniert es gut.
Ich werde aber bald ein neues Netzteil kaufen.

von Äxl (Gast)


Lesenswert?

https://www.instagram.com/p/CMZTnBOlrc6AFkYk65g3PaRvPjOfx4cQBawtzI0/?utm_medium=copy_link

Ich hab bei den GSM-Moduln immer so einen Kondensator parallel zur 
Versorgung geschaltet. Vllt auch mal hier son Ding probieren? GSM zog 
immer so 2A ca. in auch kurzen Impulsen. Sieht das hier ähnlich aus?

von Äxl (Gast)


Angehängte Dateien:

Lesenswert?

Der Link ging nich wirklich. Hier nochmal als Screenshot

von Manuel F. (manuel_f)


Lesenswert?

Joachim B. schrieb:
> mir war so das idR ein loop läuft
>
> Also prüfe ob die Verbindung noch steht while connected
> sonst mache ein disconnect denn woher soll der esp wissen das der Router
> weg ist?
>
> Für Versuche 1x lasse ein Counter (Variable) mitlaufen!

Ja das wird sicher so sein.
Die Frage ist aber, wie man das umgehen kann.
Dieses Ding wird ja oft für diesen Einsatzzweck verwendet 
(Batteriebetrieb, Sensorwerte mit einem bestimmten Intervall übertragen, 
dazwischen Deepsleep)
Das kann ja nicht Sinn der Sache sein, dass immer wenn das WLAN ausfällt 
oder abgeschaltet wird, die Akkus leer gesaugt werden.

von Äxl (Gast)


Angehängte Dateien:

Lesenswert?

Nochmal in "scharf" ;)
30.000uF 5.5V

(Sry, wegen dem Foto)

von Joachim B. (jar)


Lesenswert?

Manuel F. schrieb:
> Die Frage ist aber, wie man das umgehen kann.
> Das kann ja nicht Sinn der Sache sein, dass immer wenn das WLAN ausfällt
> oder abgeschaltet wird, die Akkus leer gesaugt werden.

alles reine Software, lasse ihn schlafen, wenn er aufwacht erst mal ein 
Ping absetzen, dann weiss er ob er Daten absenden kann. Sollte er keinen 
connect haben, Versuche zählen, bei zu vielen Versuchen disconnect & 
wieder in den sleep

Beitrag #6926056 wurde vom Autor gelöscht.
von Stefan F. (Gast)


Lesenswert?

Manuel F. schrieb:
> Es ist wirklich so. Sobald ich WLAN ausschalte, geht der ESP8266 nicht
> mehr in Deepsleep. Ev. sucht er ständig nach der Verbindung?

Würde mich nicht wundern. Viele Programmbeispiele beginnen mit einer 
Endlosschleife bis die Verbindung zum AP aufgebaut ist.

Es gibt einen relevanten Bug report:
https://github.com/arendst/Tasmota/issues/7213

von Manuel F. (manuel_f)


Lesenswert?

Joachim B. schrieb:
> alles reine Software

Genau das ist das Problem :-)
Ich komme aus der Hardware Welt.
Deshalb habe ich auf den D1 Mini die Tosmata Firmware geflasht und den 
Temperatursensor konfiguriert.
Dann habe ich noch das Intervall auf 5min gestellt und Mqtt 
konfiguriert.
Jetzt werden die Sensordaten alle 5min übertragen und dazwischen geht er 
in den Deepsleep.
Also soweit alles super, bis auf das Problem wenn kein WLAN da ist.
Ich wüsste jetzt auch gar nicht, wie und wo man da Programmcode einfügen 
könnte.

von Manuel F. (manuel_f)


Lesenswert?

Stefan ⛄ F. schrieb:
> Es gibt einen relevanten Bug report:
> https://github.com/arendst/Tasmota/issues/7213

Das dürfte bei mir nicht mehr relevant sein, weil es auch mit der 
aktuellsten Firmware auftritt.

von Joachim B. (jar)


Lesenswert?

Manuel F. schrieb:
> Ich wüsste jetzt auch gar nicht, wie und wo man da Programmcode einfügen
> könnte.

arduino ide installieren, esp und proggen lernen
so fing doch jeder mal an, auch manchmal Kinder und Jugendliche.
OK ich war beim Arduino und ESP schon älter aber habe von klein auf 
angefangen mit 12 den Logikus, mit 23 den PET2001.
Jede Reise beginnt mit dem ersten Schritt und heute gibts Internet falls 
Fragen auftauchen.

: Bearbeitet durch User
von Manuel F. (manuel_f)


Lesenswert?

Es ist ja nicht so, dass ich in diese Richtung noch nichts getan habe.
Ich habe über 10 Arduino Nano im Einsatz.
Aber Tasmota kann man dann nicht mehr verwenden?
Ich habe es halt extrem praktisch gefunden, dass man sich in ein paar 
Minuten alles zusammen konfiguriert und dann läuft es schon.
Auch das mit dem Webserver ist extrem praktisch.
Mit der Arduino IDE müsste ich es wieder über USB flashen? Das ist schon 
wieder problematisch, weil ich den USB-Seriell Converter wegen dem 
Stromverbrauch im Deepsleep auslöten musste.

: Bearbeitet durch User
von Andreas S. (Gast)


Lesenswert?

Ich selbst kenne Tasmota nicht, entsprechend der Homepage soll aber
das Flashen über WLAN möglich sein.
Zur Not temporär einen USB Adapter zum flashen direkt anschließen
und danach wieder entfernen.
Für die Arduino Gemeinde gibt es auch einige Beispiele - eventuell
lohnt es sich hier einzuarbeiten.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Wie war das denn mit dieser Brücke von einem GPIO nach Reset? Ich 
fummele mich gerade in den ESP8266 Wroom-02 ein, weils die billig bei 
Pollin gibt, und da wird öfter mal von dieser Brücke für Sleep Modes 
geredet.

von Manuel F. (manuel_f)


Lesenswert?

Ich habe mich da an diese Anleitung gehalten:
https://tasmota.github.io/docs/DeepSleep/

von Stefan F. (Gast)


Lesenswert?

Folgende Beschaltung wird empfohlen, damit er zuverlässig aufwacht: 
http://stefanfrings.de/esp8266/index.html#deepsleep

Das Wroom 02 Modul enthält (anders als ESP-12) am Reset Pin keine 
Bauteile.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Stefan ⛄ F. schrieb:
> Folgende Beschaltung wird empfohlen, damit er zuverlässig aufwacht:
> http://stefanfrings.de/esp8266/index.html#deepsleep

Das meinte ich.

Stefan ⛄ F. schrieb:
> Das Wroom 02 Modul enthält (anders als ESP-12) am Reset Pin keine
> Bauteile.

Wollte mich auch nicht einmischen bzw. dazwischenfunken. Für meine 
Anwendung (WLAN Voltmeter für E-Auto) ist deep sleep eh nicht sinnvoll.

: Bearbeitet durch User
von Joachim B. (jar)


Lesenswert?

Matthias S. schrieb:
> Wie war das denn mit dieser Brücke von einem GPIO nach Reset?

es gibt Zusatzschaltungen mit 10µF aus DTR? die an dem GPIO wackeln der 
nach GND muss um das Programmieren auszulösen.

Müsste mal nach Schaltbilder gegoogelt werden, 10µF EN ESP sind 
Suchworte!
Andere nutzen aus RxTx DTR? 2 Transistoren über Kreuz

unbequem mit Taster oder Schalter
https://www.ebay.de/itm/173657302076

Ich habe mich damit zu wenig beschäftigt, ausser das es Automatk Module 
für ESP8266-01(s) gibt viel angenehmer als die mit dem Schalter.

Diese Automatik Module sollte man auch gut adaptieren können, die 
Abwesenheit von GPIO 0 Brücke, Taster oder Schalter  lässt auf Automatik 
Betrieb hoffen
https://www.ebay.de/itm/402152440110

https://www.studiopieters.nl/esp8266-auto-program-reset/

von Stefan F. (Gast)


Lesenswert?

Joachim B. schrieb:
> es gibt Zusatzschaltungen mit 10µF aus DTR ...

Joachim, ich glaube du verwechselt die Frage nach dem Deep-Sleep mit dem 
Flash-Upload.

von Joachim B. (jar)


Lesenswert?

Stefan ⛄ F. schrieb:
> Joachim, ich glaube du verwechselt die Frage nach dem Deep-Sleep mit dem
> Flash-Upload.

du hast offensichtlich wieder mal nicht verstanden das die auch 
programmiert werden müssen und

Andreas S. schrieb:
> Zur Not temporär einen USB Adapter zum flashen direkt anschließen
> und danach wieder entfernen.

man will es auch bequem haben ohne Brücke nach GPIO 0

nichts nervt mehr als ein schlechter würgfloh

von Manuel F. (manuel_f)


Lesenswert?

Auch wenn es hier mittlerweile um ganz andere Themen geht.

Falls auch mal jemand das Problem hat:
Tasmota holt sich über NTP die richtige Zeit. Ohne WLAN geht das 
natürlich nicht und es gibt dann auch keine Funktion.
Als Lösung könnte man einen externen RTC verwenden.
https://tasmota.github.io/docs/DS3231/

Das muss ich aber erst testen, wie sich das auf den Stromverbrauch 
auswirkt.

von Manuel F. (manuel_f)


Lesenswert?

Das mit dem RTC hat auch nicht funktioniert. Er hat dann zwar die 
richtige Zeit, aber möchte dann trotzdem die Daten senden, was ohne WLAN 
natürlich nicht geht.
Langer Deepsleep über Nacht funktioniert auch nicht. Da dürfte es einen 
Bug geben.
Mit Easyesp geht das aber. Da gibt es sogar eine Option, dass es wieder 
in den Deepsleep geht, wenn keine Verbindung aufgebaut werden kann.

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.