I’m curious if some of you may have experience in this matter of interoperability.
I’m going to try integrating the APA102 ( dotstar ) LEDs into a project that has an existing device on the SPI bus. I was attempting to use neopixels, however as the device on the SPI bus ( an NRF24L01 wireless module ) uses interrupts in it’s codebase neopixels don’t work.
Will I be able to use the dotstars and communicate with the wireless module at the same time?
I have successfully used another SPI based chipset with NRF24l01’s. The LPD8806 are similar to Dotstars, in the fact that they don’t have a specific timing structure. You can interrupt them all you want.
@Jon_Burroughs , was just watching your video using the nRf module
I’m going to attempt to build a night light that tracks temperature/light levels + charging state of any connected devices with the http://www.mysensors.org/ framework.
Building a custom board that wraps around an apple charger brick as well:
@Patrick_Forringer That video is using Neopixels everywhere and I was still able to get functioning radio communication with very little noticeable delay from unit to unit. Are you using this library or designing your own for the project?
APA102s are incredibly tolerant about timing, and you should be totally fine. (A sharp and welcome contrast to WS2811/WS2812 Neopixels!)
I mean seriously-- if I can drive APA102s with an Apple //e ( http://blog.kriegsman.org/2015/02/16/fastled-for-the-apple-ii/ , https://plus.google.com/post/z13icdxaorbqyrjzq04chdaqfq2ngbywcic ), a few interrupts here and there won’t be a problem.
Or you can turn interrupts off around the neopixel stuff? The wireless communication should tolerate stuff like that? (Dropped packets etc)
Or schedule the wireless stuff around the Neopixels?
FastLED automatically turns interrupts off on AVR chips when needed, and back on afterwards. The problem is that the Neopixels are so slow that interrupts are turned off for so long that it really trends to screw with pretty much any kind of interrupt-based communication at all.
We sort of all take it as axiomatic at this point that you can’t have these three things all at once: an AVR microcontroller, WS2811/WS2812 Neopixel leds, and normally-functioning interrupt handlers.
Moving to APA102 is one popular solution. Another is having a separate microcontroller handle the interrupt code, and have it communicate with the LED MCU via a non-interrupt-based (serial?) connection.