mtongnz / ESP8266_ArtNetNode_v2

ESP8266 based WiFi ArtNet to DMX, RDM and LED Pixels
GNU General Public License v3.0
615 stars 157 forks source link

WDT Resets #41

Open mtongnz opened 7 years ago

mtongnz commented 7 years ago

There seems to be an issue with the watch dog timer causing resets about 10 minutes into operation. I haven't been able to track it down and it takes ages to fault find when I've gotta wait for it to happen.

If you are watching in DMX Workshop, you'll see this show up in the status field when the device resets. The output will also freeze for about 10 seconds.

Anyone experiencing these, please post your settings and the counter from status in DMX Workshop so I can see if there is a pattern.

p-sodmann commented 7 years ago

Does it happen always or only using leds?

ammuller commented 7 years ago

Could you please try my code, I don't get WDT resets. The lights stop working after a while, a reset from the web interface fixes it. https://github.com/ammuller/ESP8266_ArtNetNode_v2

ElToberino commented 6 years ago

I'm using your really great software with Ws2812b Pixels on Port A and Port B. (about 900 pixels in total)

After a certain time (about 20-30 Minutes) my Pixels freeze. Wifi connection is still there, I can load the web interface. I found out, that the only way to get back to normal mode is powercycling to times or rebooting via web interface two times. It's interesting that powercycling or rebooting only one time doesn't help.

I also noticed that the period of time until freeze is in hotspot mode much shorter than in Wifi-Mode.

Hope, this experiences will help solving the problem. I like your software very much and would appreciate any solution of this problem.

OT - Perhaps this can help someone: I made the following workaround for running a show without annoying hang-up. I use a script on my computer which opens the browser, calls the web interface and presses reboot (one time) every twenty minutes (that means before stalling occurs). The reboot breaks are very short and much better than a complete hang-up. I tested this for many hours and all worked fine. Btw: The easiest way to create a script is using a macro recorder like "Pulover's Macro Creator" e.g.

rsototec commented 6 years ago

Hi, I have the same issue. I am using the Adafruit HUZZAH ESP8266 Breakout. Thanks for your attention.

De: ElToberino [mailto:notifications@github.com] Enviado el: domingo, 03 de diciembre de 2017 01:01 p.m. Para: mtongnz/ESP8266_ArtNetNode_v2 ESP8266_ArtNetNode_v2@noreply.github.com CC: Subscribed subscribed@noreply.github.com Asunto: Re: [mtongnz/ESP8266_ArtNetNode_v2] WDT Resets (#41)

I'm using your really great software with Ws2812b Pixels on Port A and Port B. (about 900 pixels in total)

After a certain time (about 20-30 Minutes) my Pixels freeze. Wifi connection is still there, I can load the web interface. I found out, that the only way to get back to normal mode is powercycling to times or resetting via web interface two times. It's interesting that powercycling or resetting only one time doesn't help.

I also noticed that the period of time until freeze is in hotspot mode much shorter than in Wifi-Mode.

Hope, this experiences will help solving the problem. I like your software very much and would appreciate any solition of this problem.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHubhttps://github.com/mtongnz/ESP8266_ArtNetNode_v2/issues/41#issuecomment-348805785, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AdWfz3MXQX7fJwgxWJjIb0bgbHsdL0hAks5s8vAIgaJpZM4MOCp6.

dddaniele commented 6 years ago

Hi bro, this solutions fix the problem for me (firmware 1.2) test 4 times for 4hour every time: In ESP8266_ArtNetNode_DMX.ino:

bombcheck commented 6 years ago

Damn, overlook the most obvious thing. Read about the watchdog-features some hours ago, but then forgot about it. Seems to be logical that we have to feed the watchdog here. :) Will give this a try tomorrow.

bombcheck commented 6 years ago

OK, adding the delay(15) after webServer.handleClient() causes some timing issues: The last quarter of my matrix (22x22 / 484 pixel) is not updating correctly anymore. Trying only with ESP.wdtFeed() now: Runs smooth and stable so far. Lets see how long... :)

dddaniele commented 6 years ago

I already tried only with ESP.wdtFeed() only but wdt reset comes back. I also tried a delay 10 and the problem persists. Setting instead ESP.wdtFeed() and delay(15) i have not encountered problems with my par LEDs and moving heads.

Try to comment those lines on espDMX.cpp (in the library folder) (this cause stobo function and wdt reset issues)

// Output full universe (512 channels) once every x seconds //if (millis() > dmx->full_uni_time + DMX_FULL_UNI_TIMING) { // dmx->full_uni_time = millis(); // dmx->state = DMX_FULL_UNI;

//  // Status LED
//  if (dmx->ledPin != DMX_NO_LED) {
//    if (dmx->led_timer++ >= 2) {
//      analogWrite(dmx->ledPin, dmx->ledIntensity);
//      dmx->led_timer = 0;
//    }else
//      analogWrite(dmx->ledPin, 0);
//  }
//} else
bombcheck commented 6 years ago

espDMX.cpp? Did not find this file in the libraries. And can not find the mentioned lines anywhere in the project.

bombcheck commented 6 years ago

Adding a delay of 15 ruins timing at the end of my strip. Reducing the value and trying some other modifications. But the issue seems to persist. It just lasts longer then before prior to crash...

dddaniele commented 6 years ago

i'm running SP8266_ArtNetNode_DMX firmware 1.2

bombcheck commented 6 years ago

Ahhhh I see. But here we are discussing the "new" v2 firmware which has these issues too. :)

delay (5) seems to work for me: No updating issues. Keeps reseting sometimes, but I catch the reset reason and doing a ESP.restart if the watchdog or an exeption occured.

bombcheck commented 6 years ago

It keeps crashing from time to time. Sometimes after minutes, sometimes after hours. I THINK it may be from some bad packets received or something and not from the WDT...

ElToberino commented 6 years ago

Does the WDT/freeze issue also occur with the old version ArtNetNode v1.2.0? I just want to set up a simple node, without pixel support, RDM etc. So v1.2.0 would be perfect for me, if there wasn't this problem.

PixelLights commented 6 years ago

Has anyone found a solution? I noticed that the esp resets every 15 minutes and freeze the pixels after some time

scamiv commented 6 years ago

Have you given my fork a try? It should fix some/most of the existing problems. The current git version runs stable for a few hours in most cases, however there's still the issue of heap fragmentation. I will make another push soon which switches the lib over to umm_malloc to counter this.

idtres commented 6 years ago

@scamiv I will check out your fork. Can you summarize what are the main changes, and for how long did you run the node without any reset/frozen outputs?

jamesgbahr commented 6 years ago

scamiv.. does this fix the LED freeze and rebooting issues?

codehackr commented 6 years ago

i tried scamiv fork of this code in my case it only last 15 mins and hard freezes requiring a power cycle to get it up and running again.

jamesgbahr commented 6 years ago

I have done extensive research on this issue and tested code many many different ways and setups. Its 100% the wifi services getting slammed with data.. the wifi lifetime timer does not renew when data is being sent. If i stop data send the timer renews

parechiotto commented 5 years ago

Hi all! I don't know if the bug was resolved from someone. I've try to add thi solution: https://community.blynk.cc/t/solved-esp8266-nodemc... And for me it seems work!

So I add in setup() ESP.wdtDisable(); ESP.wdtEnable(WDTO_8S);

and in and in loop()

ESP.wdtFeed();

I'm building with NodeMCU esp8266 esp-12e

ElToberino commented 5 years ago

Sounds good; I'll give it a try and will report.

Your link is not working. I guess you meant this: https://community.blynk.cc/t/solved-esp8266-nodemcu-v1-0-and-wdt-resets/7047

dddaniele commented 5 years ago

Hi all! I don't know if the bug was resolved from someone. I've try to add thi solution: https://community.blynk.cc/t/solved-esp8266-nodemc... And for me it seems work!

So I add in setup() ESP.wdtDisable(); ESP.wdtEnable(WDTO_8S);

and in and in loop()

ESP.wdtFeed();

I'm building with NodeMCU esp8266 esp-12e

Not work for me

ElToberino commented 5 years ago

Here it doesn't work, too. Tested it with pixels on port A. Function is worse than it was before, without these changes.

Edit: If someone is interested in an alternative software: I tested "Esppixelstick" (http://forkineye.com/espixelstick/) by forkineye. It can handle four universes. It's only the half of mtongnz' number of univereses - but it runs stable. I'm really satisfied with it!

I like mtongnz' nodes very much; I'm using v1, which run's absolutely stable, for my DMX projects - it's great. But v2 is too unstable for my purposes.

For my large pixel matrix I switched to a wired controller designed by Ulrich Radig. (for example: https://www.ulrichradig.de/home/index.php/dmx/art-net-pixel-con-neu). I found out that wireless can cause problems with special effects (scrolling text ,e.g.).

krupaw2 commented 5 years ago

How much I got tired of this program, I'm a beginner and I thought I was doing something wrong. Meanwhile, after installing the "Esppixelstick" all problems have disappeared - I highly recommend.

Furbean commented 4 years ago

Hi Matthew,

The issue is not a software glitch, i've discovered your project today. I use a esp8266 (WeMos D1 R1) with 300 leds W2812s, i have a 20 ampere power supply for the 5 volts. After 10 mn, the esp8266 seems to freeze and between 3 and 10 mn, lights start again the animation.

Since i've connected the esp8266 also on my powered usb port on my pc, i don't have any problems. It works very well even with a lot of effect in Jinx!.

We must add a capacitor to protect cpu i think, i will check this week.

Thanks for you great work !!

Igor1976-light commented 4 years ago

Hi Furbean,

do this, paste into setup ()

ESP.wdtDisable(); ESP.wdtEnable(WDTO_8S);

and in loop()

ESP.wdtFeed ();

and the problem should be resolved. At least it works for me.

And a 1000µF / 16V capacitor comes between ground and + in the power supply of the LEDs