These are chat archives for Makuna/NeoPixelBus

15th
Aug 2015
probonopd
@probonopd
Aug 15 2015 11:07
have you seen, this guy is using the i2s interface to drive neopixels https://github.com/cnlohr/esp8266ws2812i2s
sticilface
@sticilface
Aug 15 2015 17:01
I think i came across it, but did not go any further with it
Michael Miller
@Makuna
Aug 15 2015 17:53
The only issue with it is that consumes the hardware feature and you can only have one per device, on some chips, the flash requires them but the 12e only uses two of the four for flash reading/writing so they are free to use with no problems.
sticilface
@sticilface
Aug 15 2015 18:38

I've been searching using dr google... but can't find any specific chip docs... got another pointer for me? i'm using the staging version, and your changes are there. I've been playing with inturrupts for the neopixelbus lib using

#ifdef ESP8266 
    xt_rsil(5); 
#else
    noInterrupts(); // Need 100% focus on instruction timing 
#endif

it doesn't seem to affect the pixels, they are working well. I'm not going to count my chickens yet but things seem a lot more stable....... one esp has been running my animation for 5hrs... which is a record i think.

I've also put the refresh down to 5ms from 30, and increased the total pixels to 400! with running animations it puts the heap down to 6K, but its running just fine!
no lmac.c ......
Michael Miller
@Makuna
Aug 15 2015 21:55
Remember to save the state from the xt rsil and set it back using the other method xt wsr, keep at it! IF THIS WORKS SOLIDLY, we should raise this finding to consider changing interrupt noInterrupt to use this as iggr already switched a few specific locations to do this.
Search for espresif not esp8266. Igrr pointed me to the very latest, I will have to different out the link as I copied before it would disappear.
sticilface
@sticilface
Aug 15 2015 22:11
I thought about using the other method, but just copied how nointurrupts() is written in the Arduino.h.... I've just changed it over and will see how it goes! seeing as it is pretty random... it will take me a while to come to and conclusion!

in the Arduino.h is has this

uint32_t savedPS = xt_rsil(1); // this routine will allow level 2 and above

does the saved ps have to be uint32_t? for 0 - 15

Michael Miller
@Makuna
Aug 15 2015 23:13
Yes it does, it might include other state of the ps register.