Update time!
I wanted to drop back in here and put out some updated info on driving led’s with TD, over serial to teensy. I had a few pieces of mis information from before and there’s been a few updates on fastLED octows2811 librarys over the months that make things faster!
Current figures:
- TD 60 fps
- Serial over usb (for multiple teensys use a multi-tt hub)
- Teensy 3.1 running a fastLED/OCTOws2811 mixture (more on this below if you’re curious)
- 3,680 ws28xx leds per teensy 3.1 (460 per pin) also @ 60 fps
Dependancies: (also attached for conveniance)
Arduino Libraries:
[url]https://github.com/FastLED/FastLED/tree/FastLED3.1[/url] -attached-
[url]https://github.com/PaulStoffregen/OctoWS2811[/url] -attached-
[url]https://www.pjrc.com/teensy/teensyduino.html[/url] (addon for arduino IDE)
Arduino sketch:
-attached-
Touch Designer Barebones example
-attached-
Notes:
You can scale this solution by adding more teensys running the same code to the mix. I have not reached an upper limit but haven’t tested it too much yet, but I imagine at least 3 or 4 teensy’s total could be done with out dipping below 60 fps, perhaps more.
Eventually the USB host card will reach it’s max, and / or TD will choke on sending that much data out via serial, but i’ve found that with the modifications the dev’s helped put forward in this thread you will probably hit a hardware wall before a software wall !
For those integrating this into already complex / heavy networks, it may be wise to offload the communication part to another touch designer process and use a sharedMem chop or spout in/out to offload that work and keep speeds up!
A little info on why / how the led counts have increased with this solution:
The reason the octows2811 library works so damn fast is due to the r/g/b data being formatted in a special way that the teensy’s DMA engine can push out natively, so no bit banging, which means hardware can do it’s thing on 8 strips in parallel. However! The .setPixel() command used previously has been somewhat slow, so Daniel Garcia at fastLED has written some backend code that does that translation much faster using some of fastLED’s code.
more info:
[url]https://plus.google.com/communities/109127054924227823508/s/octows2811Demo[/url]
[url]https://github.com/FastLED/FastLED/wiki/Parallel-Output[/url]
I’ve been researching pixel controllers and various software / hardware configurations, and have not found anything like this before. Paul, Daniel, and everyone at Derivative have made this a painless and extremely elegant (and cost effective!) way of building / controlling custom led art, displays etc.
Thank you for that
Hope this helps some of you looking for a solution and missing bits and pieces of how to make it all work.
Lucas
OctoWS2811.zip (171 KB)
FastLED3_1.zip (250 KB)
ledPixelController_460.zip (832 Bytes)
ws2811-12-12b_DrivingSolution_BareBones.1.toe (5.74 KB)