Teensy 3.2 + FastLED + WS2811_PORTD + Different lengths of LEDs

Status
Not open for further replies.

waltsatan

Member
Hi all,

I'm looking to control 5 separate WS2811 strips of different lengths with parallel output to maximize performance. Is this possible? Pins 2, 5, 6, 7, 8, 14, 20, 21 on a Teensy 3.2 correspond to PORTD and I'd like to connect a 24-pixel NeoPixel ring on pin 2, a 60-pixel NeoPixel Ring on pin 5, and then a few different lengths of strips on 6, 7, 8.

If I initialize FastLED with WS2811_PORTD, will it add them all sequentially into CRGB leds[] and I could manipulate them as such with a lookup table and offsets? Or if I initialize 5 separate instances of FastLED on just the pins I need, will it use the parallel output on those?

Thanks for any insight.

Alan
 
Hi Alan.
I'm looking to control 5 separate WS2811 strips of different lengths with parallel output to maximize performance. Is this possible?
Yes. The fastest possible way, if using fastLed, will be to include pauls Octows2811.h and #define LED_TYPE OCTOWS2811. There is a fastled wiki somewhere that tells you the exact gains to be had.
If I initialize FastLED with WS2811_PORTD, will it add them all sequentially into CRGB leds[] ...
I don't know how that works. Let me know if you find out.
and I could manipulate them as such with a lookup table and offsets?
You will have to do just that if you use fastled with octows2811 led type.
You need to think about the largest led strip that will be attached to one of your 8 channels, then define your CRGB array for 8 times that number.
You have to addLeds like this:
Code:
LEDS.addLeds<LED_TYPE,COLOR_ORDER>(leds, NUM_LEDS_PER_STRIP);
where NUM_LEDS_PER_STRIP needs to be the largest of the strips you intend to connect to any of the 8 channels.
The channel to pin mapping and other good stuff is here here but it uses the pins you want.
You will have to map your strips to the right offset in the CRGB array.
So if your uisng NUM_LEDS_PER_STRIP of 60 then the first led on the first strip will be be leds[0] and the first led on the second strip will be leds[60].

I think thats how this works.
Apologies and correct me if any of this is wrong.
Thanks.
 
Thanks, Gibbedy. I ordered some various LEDs today and will prototype next week. I'll report back with some results.

Alan
 
Status
Not open for further replies.
Back
Top