Hallo zusammen,
ich bin ein wenig verzweifelt bei meinen 2 boards. Dem NodeMCU und den
WemosD1. Nach nur wenigen Codezeilen erhalte ich immer den wdt reset.
Dabei kann ich den Code so minimalistisch halten wie möglich. Auch
andere Beiträge im Netz mit Watchdog füttern oder wdt disable helfen
nichts. Bekommt jemand eines der beiden Boards problemlos zum laufen?
Hier mein Code:
1
// the setup routine runs once when you press reset:
2
voidsetup(){
3
// initialize serial communication at 9600 bits per second:
4
Serial.begin(115200);
5
ESP.wdtDisable();
6
ESP.wdtEnable(WDTO_8S);
7
}
8
9
// the loop routine runs over and over again forever:
10
voidloop(){
11
12
Serial.println("Hello");
13
delay(500);// delay in between reads for stability
14
ESP.wdtFeed();
15
}
Die Ausgabe ist IMMER gleich:
1
Hello
2
Hello
3
4
etsJan82013,rstcause:4,bootmode:(3,6)
5
6
wdtreset
7
load0x4010f000,len1384,room16
8
tail8
9
chksum0x2d
10
csum0x2d
11
v09f0c112
12
~ld
13
14
Hello
15
Hello
16
Hello
17
Hello
18
19
etsJan82013,rstcause:4,bootmode:(3,6)
20
21
wdtreset
22
load0x4010f000,len1384,room16
23
tail8
24
chksum0x2d
25
csum0x2d
26
v09f0c112
27
~ld
28
29
Hello
30
Hello
31
Hello
32
Hello
33
34
usw.
die ESP Funktionen habe ich auch schonmal auskommentiert, aber das
Resultat war dasselbe. Die Augabe beim D1 unterscheidet sich nur darin
das Bootmode 3,7 drinsteht.
Habe lediglich das USB Kabel angeschlossen sonst nichts. Auch keine
extra Spannungsversorgung.
Benutze die Arduino IDE 1.6.7
Die esp8266 board lib ist die 2.3.0
Als Board habe NodeMCU0.9 und 1.0 bereits probiert (kein Unterschied
gemerkt)
Ich hoffe jemand kann mir helfen. Mit dem PretzelBoard hat bislang immer
alles geklappt, aber das ist zu teuer wenn man mehrere braucht.
mfg
apo
Hallo,
laß den ESP-Watchdog in Ruhe, der führt auf dem ESP ein ziemliches
Eigenleben. Abschalten geht ohnehin nicht, es gibt einen
Hardware-Watchdog, der nach rund 6s zuschlägt, wenn den ESP was nicht
gefällt.
Ich kann den Effekt hier auf einem NodeMCU nicht nachvollziehen, auch
mit
1
// the setup routine runs once when you press reset:
2
void setup() {
3
// initialize serial communication at 9600 bits per second:
4
Serial.begin(115200);
5
}
6
7
// the loop routine runs over and over again forever:
8
void loop() {
9
10
Serial.println("Hello");
11
delay(500); // delay in between reads for stability
12
}
läuft es stabil durch.
Hast Du irgendwas am NodeMCU angeschlossen außer USB?
Boardtyp bzw. Flashgröße richtig angegeben?
Nimm mal
#include <ESP8266WiFi.h>
in Deinen Sketch mit rein, auch wenn Du noch nichts mit dem WLAN machst.
Ich hatte da mal so einen komischen Effekt.
Gruß aus Berlin
Michael
Hi,
und danke für die Tipps. Den header hatte ich auch schonmal mit
eingebaut...selber Effekt. Den Node habe ich zufällig gerade durch
Ändern der esp boardversion von 2.3.0 auf 2.0.0 zum laufen gebracht.
Bislang funktioniert es. Vielleicht läufst du auch auf der 2.0.0 und
kannst es deshalb nicht nachstellen. Ich hoffe es lag nur an der
fehlerhaften lib... Ich teste jetzt mal den D1
Habe ebenfalls ständig ein Wdt Reset obwohl nur Usb-Kabel am NodeMCU
2.0.
Verwendet habe ich Arduino Ide 1.6.13 und neuste ESP Lib 2.3.0
Ist da irgendwo Bug drin?
Fetter Elko zwischen VCC und GND hilft bei mir (nodeMCU und nakte
ESP-0x) erstmalig, 10µF wird oft als ausreichend angesehen, war zwar
besser aber immer noch sporadische Resets. Vermutlich reichen 100µF, ich
habe gleich einen 330mF angeklemmt und seitdem ist Ruhe. Vorher ständig
sporadische Resets (alle paar Stunden wenn er eigentlich nix zu tun
hatte), lief heute mal einen Tag komplett durch und semmelt auch nicht
mehr bei Last weg.
Alles andere war bisher Voodo (pullup an RST (bei ESP01 vielleicht
sinnvoll), wdt-gefummel, andere Kabel/port,
reflashen/flash_erase,C/arduino anstatt lua/javascript,... ALLES
BULLSHIT)
Sorg für ordentliche Stromversorgung auch wenn das Ding scheinbar nur
rumidled, der scheint immer wieder mal Bursts zu haben wo er kurzfrisitg
viel Saft zieht.
Jetzt habe ich auch wieder das Problem mit den Resets und habe die
Ursache gefunden:
Sobald ich das Ding auf ein Breadboard stecke fängt es öfters an zu
reseten.
Reibt man das Breadboard (unten Plastikklebeband, nicht das mit Metall)
über den Tisch (kunststoffbeschichtet), resetet es sofort!
Ich hatte schon ein USB-Kabel, welches zu "dünn" war. Also einfach mal
ein anderes Kabel probieren.
Die Meldung: boot mode:(3,6) sagt doch, was ihm fehlt. Zu wenig Power.
Selbes Problem mit 2.3.0.
Sobald ich auf die Lib 2.0.0 runter gehe, läuft das Board (MCU v3).
Arduino 1.8.3 oder 1.6.9 spielt keine Rolle bei mir.
@pete:
>Die Meldung: boot mode:(3,6) sagt doch, was ihm fehlt. Zu wenig Power.
Woher weist du die Flags?
Ich kenne nur diese Tabelle:
http://www.esp8266.com/viewtopic.php?p=2096#p2112
Ich habe die gleiche Erfahrung gemacht.
Wenn das Nodemcu auf eine Breadboard steckt fängt der leidige WDT Reset
an
und spricht ständig an. Meine Vermutung: Die Kontaktbahnen im Breadboard
wirken wie Antennen und fangen Störung auf die zu dem WDT Reset führen.
Stefan schrieb:> Ich habe die gleiche Erfahrung gemacht.> Wenn das Nodemcu auf eine Breadboard steckt fängt der leidige WDT Reset> an> und spricht ständig an. Meine Vermutung: Die Kontaktbahnen im Breadboard> wirken wie Antennen und fangen Störung auf die zu dem WDT Reset führen.
Ohne Breadboard gibt es keine Problem und das Nodemcu arbeite sehr
stabil.
Erstmal zum Watchdog:
Es ist wichtig, das die Firmware genügend Rechenzeit ab bekommt, sonst
fällt das Modul aus. Alle eigenen Programmteile müssen spätestens nach
50ms (empfohlen werden 20ms) die Kontrolle an die Firmware abgeben,
indem entweder die loop() Funktion verlassen wird, oder delay(ms) oder
yield() aufgerufen wird. Man soll den Watchdog im eigenen Code ganz in
Ruhe lassen.
Zur Stromversorgung:
Direkt an VCC und GND sollte man einen Kondensator mit 100µF (manche
nehmen auch mehr) löten. Auf dem NodeMCU Board ist er bereits vorhanden.
Steckbretter und USB Kabel haben häufig zu hohe Übergangswiderstände,
deswegen besser ein Netzteil direkt ans Modul löten.
Ich benutze die ESP Erweiterung Version 2.3.0 mit Arduino 1.8.2 und das
läuft bei mir absolut stabil.
Weitere Tipps bezüglich Stabilität:
http://stefanfrings.de/esp8266/index.html#stabilityhttp://stefanfrings.de/esp8266/index.html#fallstricke
Da liegt meine Vermutung ja ziemlich richtig.
siehe http://stefanfrings.de/esp8266/index.html#stability
Wahrscheinlich sind es die Kontaktbahnen (Metall) des Breadboards für
die Störungen verantwortlich sind.
Wie gesagt Nodemcu vom Breadboard runter und die WDT Resets sind weg.
Stefan schrieb:> Wahrscheinlich sind es die Kontaktbahnen (Metall) des Breadboards für> die Störungen verantwortlich sind.> Wie gesagt Nodemcu vom Breadboard runter und die WDT Resets sind weg.
Ist für mich nicht schlüssig: Breadboard ist Hardware und Watchdog ist
Software. Du hast dein Problem nicht gelöst, es wird dich wieder
einholen, wenn du es am wenigsten brauchen kannst.
MfG Klaus
> Breadboard ist Hardware und Watchdog ist> Software. Du hast dein Problem nicht gelöst
Schlechte Stromversorgung löst Fehlfunktionen aus. Einen Softwarefehler
hatten wir bereits ausgeschlossen. Der Hardwarefehler wurde durch
Versuch bestätigt.
Der Fehler zeigt sich doch recht eindeutig.
Nodemcu über Usb Kabel am Rechner angeschlossen als Stromversorgung.
Ist das Nodemcu auf dem Breadboard alle paar Sekunden der WDT Reset.
Runter vom Breadboard, läuft das Ding Stundenlang ohne Fehler.
Hab das nochmal untersucht.
Ich glaube das die IO's (CLK, SD1, SD2 usw) für den Flashspeicher die
WDT's auslösen.
Hier wird was Falsches eingelesen weil Störungen durch die Kontaktbahnen
des Breadboards (Induktic, Kapazitiv) eingefangen werden. Die Frequenz
des CLK liegt hier bei 40 Mhz.
Das klingt plausibel. Knipse die Pins einfach ab, die kannst du ohnehin
nicht benutzen.
Und sage dann bitte Bescheid ob es geholfen hat. Das wäre nämlich ein
interessanter Punkt für meine Homepage.
Stefan U. schrieb:> Schlechte Stromversorgung löst Fehlfunktionen ausStefan schrieb:> Ich glaube das die IO's (CLK, SD1, SD2 usw) für den Flashspeicher die> WDT's auslösen.> Hier wird was Falsches eingelesen weil Störungen durch die Kontaktbahnen> des Breadboards (Induktic, Kapazitiv) eingefangen werden. Die Frequenz> des CLK liegt hier bei 40 Mhz.
Eine schlechte Stromversorgung wars also nicht, obwohl das immer als
erstes behauptet wird. Mein vermuteter Softwarefehler aber auch nicht.
MfG Klaus
Hallo zusammen,
das Nodemcu lief jetzt über Nacht ohne einen einzigen WDT.
Damit kann man zu 100% sagen das das Problem an den Störungen auf die
PIN's lag.
Wieder ein Erkenntnis mehr. Wenn man bedenkt wie oft das Thema in Foren
angesprochen wurde.
Danke für den goldenen Tipp von Stefan. Die Rechenzeit für die Firmware
war bei mir tatsächlich das Problem!
Konkret habe ich die Stepper Lib genutzt und wollte einfach ein paar
Umdrehungen machen und das dauert, da die lib blockiert, zu lange.
Schwubs hat der Watchdog zugebissen!
Einfach die Drehung aufgeteilt und dazwischen ein Delay, jetzt klappt
es!
Danke!
Michael W. schrieb:> Einfach die Drehung aufgeteilt und dazwischen ein Delay, jetzt klappt es!
Kommt der Motor dann nicht ins Stocken? Vielleicht wäre hier eine
Motorsteuerung besser, die Befehle wie "fahre mit Geschwindigkeit x an
Position y" autark umsetzen kann.