I’ve found the nrfdev branch of FastLED on Github. Is this usable with the RFDuino which uses the nRF51822 chip? If it is, are there any things to take into account? I’m aware that this is not supported, just was wondering if I could mess and play around with it a bit.
Not as of last week when I took an experimental poke at it. It’s coming though (https://plus.google.com/102282558639672545743/posts/SmbG1v8JDpe), so sit tight.
No, that branch was a first checkin - I just finished a contract job that was based on the nrf51822 but not the rfduino, and there’s a lot more code changes that were needed that haven’t been checked in yet (plus I still need to support anything rfduino specific as well as add in support for hardware spi)
(Also - the code required a lot more work beyond that first checkin to actually work)
Ok, good to know. I’ll wait on the official release then, I’m available for beta testing if you need. How does the nrf51822 (I think cortex m0) compare in terms of speed with the m4 (Teensy)? I know the Teensy has DMA, what is the advantage of that? Does this make the Teensy able to write ports in parallel?
M0 based chips are typically slower than M4 based systems, also there’s a bunch of higher math opcodes that aren’t available on it. Also, the nrf51822 is only a 16Mhz chip (vs. the 24-96Mhz you can run the m4 in the teensy 3/3.1 at). Finally, I believe the NRF51822 has less ram than either the teensy 3 or 3.1 (and on the rfduino that’s going to be made even lower because some portion of that ram is going to be blocked off by the NRF’s bluetooth soft devices)
DMA allows for transferring of data in the background while the CPU is doing other things - there isn’t anything in FastLED yet that takes care of it, mostly because I haven’t decided on the best way(s) to present that to the user yet.
DMA and writing parallel output are actually orthogonal to each other. In fact, in an odd way, the mechanics of DMA on the teensy 3/3.1 sort of require writing out in parallel (otherwise you’re wasting a whole bunch of ram). The parallel output that I have running her for locus/other projects, however, is not DMA based. (Mostly because DMA based systems don’t provide any mechanism that we can use to interleave in the brightness/dithering/colorcorrection work).