Forum: Mikrocontroller und Digitale Elektronik NodeMcu Board ständig wdt Reset


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 Alex (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hi,
weiss jemand wodurch dieser Reset ständig beim NodeMcu Board ausgelöst 
wird? Und was bedeutet boot mode:(3,6) ?


wdt reset
load 0x4010f000, len 1384, room 16
tail 8
chksum 0x2d
csum 0x2d
v40106d8c
~ld

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

wdt reset
load 0x4010f000, len 1384, room 16
tail 8
chksum 0x2d
csum 0x2d
v40106d8c
~ld

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

wdt reset
load 0x4010f000, len 1384, room 16
tail 8
chksum 0x2d
csum 0x2d
v40106d8c
~ld

von Pete K. (pete77)


Bewertung
0 lesenswert
nicht lesenswert
Zu schwaches Netzteil oder zu dünnes Kabel?

von Alex (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Habe ich gerade ausprobiert, auch bei ganz kurzem dickeren Kabel kommt 
das gleiche:


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

wdt reset
load 0x4010f000, len 1384, room 16
tail 8
chksum 0x2d
csum 0x2d
v40106d8c
~ld
ÿ


Exception (0):
epc1=0x402079bf epc2=èÂÿ
 ets Jan  8 2013,rst cause:4, boot mode:(3,6)

wdt reset
load 0x4010f000, len 1384, room 16
tail 8
chksum 0x2d
csum 0x2d
v40106d8c
~ld

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

wdt reset
load 0x4010f000, len 1384, room 16
tail 8
chksum 0x2d
csum 0x2d
v40106d8c
~ld

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

wdt reset
load 0x4010f000, len 1384, room 16
tail 8
chksum 0x2d
csum 0x2d
v40106d8c
~ld

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

wdt reset
load 0x4010f000, len 1384, room 16
tail 8
chksum 0x2d
csum 0x2d
v40106d8c
~ld

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

wdt reset
load 0x4010f000, len 1384, room 16
tail 8
chksum 0x2d
csum 0x2d
v40106d8c
~ld

von Michael U. (amiga)


Bewertung
0 lesenswert
nicht lesenswert
Hallo,

mit welcher Firmware drauf? NodeLUA oder eigene Software?
Wenn eigene: welche?

Gruß aus Berlin
Michael

von Alex (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Ich denke es war bei der Lieferung NodeLUA drauf.
Es ist dieses Modul: http://amzn.to/2g1LKD2

Da ich aber mit der Arduino IDE programmiere, wird die ja überschrieben.

von Pete K. (pete77)


Bewertung
0 lesenswert
nicht lesenswert
Vielleicht hilft dieser Link:
https://github.com/esp8266/Arduino/issues/1013

Siehe Kommentar von h4rm0n1c

von Alex (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Danke für Link, wenn ich es richtig interpretiere ist es wohl der 
Watchdog Reset. Aber warum der ausgeführt wird bleibt unklar. Ich habe 
ein ganz einfaches Arduino Beispiel verwendet, der Fehler tritt auch bei 
fast allen Beispielen auf.

von Pete K. (pete77)


Bewertung
0 lesenswert
nicht lesenswert
Was für ein Netzteil benutzt Du?

von Alex (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hab ihn am PC, sonst würde ich ja Log nicht sehen!
Hab ihm aber auch schon an Powerback gehabt, scheinbar das gleiche

von Εrnst B. (ernst)


Bewertung
0 lesenswert
nicht lesenswert
Alex schrieb:
> Ich habe
> ein ganz einfaches Arduino Beispiel verwendet, der Fehler tritt auch bei
> fast allen Beispielen auf.

Das ist das Problem bei den ganz einfachen Beispielen: Die verbraten 
alle Rechenzeit, und lassen keine für die Wlan-Verwalung übrig, bis der 
Watchdog zuschlägt.

Mach in deine loop() und in alle anderen Schleifen, die länger als ein 
paar ms laufen können, ein "yield()" oder "delay(x)" rein.

: Bearbeitet durch User
von Alex (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Eigentlich ist da keine langsame Schleife, hier mal der Code:
1
#include <ESP8266WiFi.h>
2
3
const char* ssid = "mein-ssid";
4
const char* password = "mein-password";
5
6
// Create an instance of the server
7
// specify the port to listen on as an argument
8
WiFiServer server(80);
9
10
void setup() {
11
  Serial.begin(115200);
12
  delay(10);
13
14
  // prepare GPIO2
15
  pinMode(2, OUTPUT);
16
  digitalWrite(2, 0);
17
  
18
  // Connect to WiFi network
19
  Serial.println();
20
  Serial.println();
21
  Serial.print("Connecting to ");
22
  Serial.println(ssid);
23
  
24
  WiFi.begin(ssid, password);
25
  
26
  while (WiFi.status() != WL_CONNECTED) {
27
    delay(500);
28
    Serial.print(".");
29
  }
30
  Serial.println("");
31
  Serial.println("WiFi connected");
32
  
33
  // Start the server
34
  server.begin();
35
  Serial.println("Server started");
36
37
  // Print the IP address
38
  Serial.println(WiFi.localIP());
39
}
40
41
void loop() {
42
  // Check if a client has connected
43
  WiFiClient client = server.available();
44
  if (!client) {
45
    return;
46
  }
47
  
48
  // Wait until the client sends some data
49
  Serial.println("new client");
50
  while(!client.available()){
51
    delay(1);
52
  }
53
  
54
  // Read the first line of the request
55
  String req = client.readStringUntil('\r');
56
  Serial.println(req);
57
  client.flush();
58
  
59
  // Match the request
60
  int val;
61
  if (req.indexOf("/gpio/0") != -1)
62
    val = 0;
63
  else if (req.indexOf("/gpio/1") != -1)
64
    val = 1;
65
  else {
66
    Serial.println("invalid request");
67
    client.stop();
68
    return;
69
  }
70
71
  // Set GPIO2 according to the request
72
  digitalWrite(2, val);
73
  
74
  client.flush();
75
76
  // Prepare the response
77
  String s = "HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\n<!DOCTYPE HTML>\r\n<html>\r\nGPIO is now ";
78
  s += (val)?"high":"low";
79
  s += "</html>\n";
80
81
  // Send the response to the client
82
  client.print(s);
83
  delay(1);
84
  Serial.println("Client disonnected");
85
86
  // The client will actually be disconnected 
87
  // when the function returns and 'client' object is detroyed
88
}

von Jan L. (ranzcopter)


Bewertung
0 lesenswert
nicht lesenswert
Alex schrieb:
> Eigentlich ist da keine langsame Schleife, hier mal der Code:

Schleife kann ja auch "ganz schnell" sein, und trotzdem lange genug 
blockieren; vielleicht reicht schon der Anfang:
1
void loop() {
2
  // Check if a client has connected
3
  WiFiClient client = server.available();
4
  if (!client) {
5
    return;
6
  }

das Ding kann theoretisch unendlich lange loopen...

von Alex (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Auch wenn ich an dieser und anderen Stellen yield(); einfüge, keine 
Besserung!
1
void loop() {
2
  yield();
3
  // Check if a client has connected
4
  WiFiClient client = server.available();
5
  if (!client) {
6
    yield();
7
    return;
8
  }

von Alex (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Ich glaub es liegt an der Arduino Lib ESP8266. Ich hatte immer die 
aktuelle (2.3.0) genommen. Wenn ich die Vorgängerversion nehmen 2.2.0 
läuft alles perfekt, kein RESET mehr!
Da scheint wohl noch ein Bug drin zu sein, komisch das dies noch keiner 
bemerkt hat.

von Michael U. (amiga)


Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe Deinen Sketch gerade mal auf ein NodeMCU geflasht, nur meinen 
WLAN-Daten eingetragen.
Meldet sich ohne Probleme und schaltet den GPIO wie gewünscht.
Naja, ob er wirklich schaltet habe ich nicht geprüft, die Meldung im 
Bowser kommt jedenfalls.

IDE hier noch die 1.6.9 und ESP 2.3.0

Ich hatte mir auch schonmal einen ESP8266 so "zerlegt", daß er gesponnen 
hat.
Flashen mit der NodeLUA-Firmware oder Löschen des kompletten Flash oder 
neu schreiben passender Init-Daten hat ihn dann irgendwie wiederbelebt.

Kannst ja mal einen leeren Sketch flashen, ob er da auch crasht.

Gruß aus Berlin
Michael

von Alex (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Wenn es bei dir gleich die verbindung aufbaut dann ist das ok, das macht 
es bei mir garnicht erst.

Das heißt unter der Lib. 2.2.0 geht es ja bestens. Ich habe jetzt Lib 
mal wieder von 2.2 auf 2.3 geupdatet, dann geht es wieder nicht.
Also bei mir hat es definitiv mit der Lib zu tun.
Ein ganz einfache LED Blinkschleife gingt mit der 2.3.0 auch noch, aber 
alle Dinge mit WiFi scheinbar nicht.

Komisch das es bei dir geht!

von Alex (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Das Problem scheint schon mal bei jemanden aufgetreten zu sein:
Beitrag "Node MCU und WeMos D1 immer wdt reset"

von Alex (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Das Problem scheint schon mal bei jemanden aufgetreten zu sein,
hie rin dem Thread: Beitrag "Node MCU und WeMos D1 immer wdt reset"

von Michael U. (amiga)


Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Alex schrieb:
> Das heißt unter der Lib. 2.2.0 geht es ja bestens. Ich habe jetzt Lib
> mal wieder von 2.2 auf 2.3 geupdatet, dann geht es wieder nicht.
> Also bei mir hat es definitiv mit der Lib zu tun.
> Ein ganz einfache LED Blinkschleife gingt mit der 2.3.0 auch noch, aber
> alle Dinge mit WiFi scheinbar nicht.

Änderungen im SDK, die nette Effekte bei irgendwelchen Funktionen 
erzeugten, die vorher noch gingen, gab es immer wieder mal...

Update hat bei mir bei den ESP-Sachen öfter mal nicht reibungslos 
geklappt.
Zwischen stable und stagung zu wecheln ging ohne deinstallieren immer 
schief.
Ich deinstalliere seitdem immer die alte Version, starte die IDE neu und 
installiere dann die neue.

Vieleicht etste ich mal mit er neuen IDE, bisher fehlte mir der Grund 
zum updaten.

Gruß aus Berlin
Michael

von Jan L. (ranzcopter)


Bewertung
0 lesenswert
nicht lesenswert
Michael U. schrieb:
> Update hat bei mir bei den ESP-Sachen öfter mal nicht reibungslos
> geklappt.
> Zwischen stable und stagung zu wecheln ging ohne deinstallieren immer
> schief.
> Ich deinstalliere seitdem immer die alte Version, starte die IDE neu und
> installiere dann die neue.

ACK; ich musste auch mal händisch im Appdata\Arduino15 Verz. aufräumen, 
damit der ESP-Kram wieder tat. Allerdings hatte ich nie solche subtilen 
Fehler, eher was beim Linken...

von Luigi A. (spok)


Bewertung
0 lesenswert
nicht lesenswert
Hatte das selbe Phänomen, hab erstmal gedacht es liegt an defekter 
ESP8266 Lieferung. Nach dem dritten Modul habe dann die Einstellungen 
angepasst: Flashsize von 4M auf 1M(64KSPIFFS) runter. Danach neu 
geflasht und alle Module liefen.

von Luigi A. (spok)


Bewertung
0 lesenswert
nicht lesenswert
.. muss meinen letzten Beitrag revidieren. Es lag bei mir an der 
Versorgungsspannung. Die Zuleitungen zum Breadboard waren wackelig 
dadurch gab es instabilitäten und einen schlechten Übergangswiderstand. 
Neu gesteckt und 100uF Elko an die Versorgungsspannung haben das Problem 
erst behoben.

von Stefan ⛄ F. (stefanus)


Bewertung
0 lesenswert
nicht lesenswert
Schau Dir meine Hinweise an: http://stefanfrings.de/esp8266/index.html

Das Breadboards nicht zur Stromversorgung dieser Module geeignet sind, 
und die Sache mit dem 100µF Kondensator habe ich dort beides deutlich 
aufgeschrieben.

Du findest dort auch einen Tip, wie man die Größe des Flash prüfen kann 
und welche Pins du entfernen solltest, damit das Breadbord die Funktion 
des Flash Speichers nicht stört.

: Bearbeitet durch User

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.