Hi everyone! I have a Teensy 3.2 and OctoWS2811,

Hi everyone!

I have a Teensy 3.2 and OctoWS2811, and am looking to drive around 700+ LEDs with these and FastLED.

All the documentation and examples I can see, and the FastLED API itself, only seem to support exactly 8 strips that are all the same length.

Using an OctoWS2811, Is it possible to have:

  1. each strip a different length?
  2. fewer than 8 strips?

If so, what is the best way to achieve this? Ideally I’d like to use a technique similar to the “One array, many strips” described here:

I appreciate the parallel output requires a byte to be written at a time though, which I guess is the reason for the 8xN requirement. If I create a virtual 8xN grid that my ragged array of strips maps into, and the non-existent LEDs are always set to black, would that work?

Failing that, does using parallel output but without the OctoWS2811 help in any way (I’m guessing not)?

Hi Chris, I am only guessing here that the answer is yes to both your questions.

With strips of different lengths, you would have to use the longest one to set the MAX_LEDS_PER_PIN variable in the following statement:

LEDS.addLeds<OCTOWS2811, RGB>(leds, MAX_LEDS_PER_PIN);

Your leds array would need to be defined with size equal to the longest strip length X the number of strips (any number from 2 to 8… I guess 1 would be a silly case here…) such as:

CRGB leds[MAX_LEDS_PER_PIN * NUM_STRIPS];

This is a bit wasteful of memory but Teensy has plenty and It has the benefit of being able to use the parallel output that is almost necessary for so many LEDs.

Thanks @JP_Roy , that sounds about in line with what I was hoping. I guess I should set up a prototype circuit to test it for myself just to be sure.

I take it there’s no problem if I (accidentally) send a non-zero colour to an LED in the array that doesn’t exist in reality?

HI @Chris_Miller1 , you really only need to be careful with setting valid data to existing pixels. You should not care about data in your array that is ultimately going to be pushed into another dimension… :wink:

I hadn’t seen that mentioned anywhere before and wasn’t sure if it mattered or not. Good to know, thanks!