These are chat archives for Makuna/NeoPixelBus

1st
Jun 2015
sticilface
@sticilface
Jun 01 2015 07:44
I've also got a feeling that it is due to running other libs, and having a web server etc going. What I'm going to do is when i get a build that does it badly, i'll branch it and then specifically remove libraries and see if i can find anything that is causing it!
sticilface
@sticilface
Jun 01 2015 21:28

I'm now beginning to think that this is a more complex problem that doesn't directly involve your lib. I've made several commits using sourcetree some that blink others that don't. the ones that blink do so every min or so, every time a web page is loaded, every time a MQTT msg is received... the ones that don't blink, don't blink to web pages, MQTT msgs and are totally stable... so what the hell is causing it...

well.. the differences between these versions is sweat fa... some none relevant code, a function that it small... even just some debug info to the serial... it is ENTIRELY reproducible... revert back to the flashing commit, compile and it flashes... go back to the one that doesn't, recompile and it flashes.

What do you recommend doing next? I can provide some binaries if you want to try? My code is not easily transplantable as I have a couple of custom libs..

Michael Miller
@Makuna
Jun 01 2015 22:56
If you happen upon a minimal example that demonstrates the problem that you could send me that would help.
You may need to review the libraries you are using for "an assumption" that could be made on the Arduino but can't for esp8266. Its rare, but any ISRs MUST call noInterrupts() at the top and interrupts() at the bottom. Unlike Arduino, the esp8266 has "levels" of priority for interrupts, so an ISR "maybe" interrupted by another ISR with an esp8266, unless that include the noInterrupts/interrupts methods in the ISR.