I have a setup with LED modules are daisy chained but in an every

I have a setup with LED modules are daisy chained but in an every other one configuration. Can you use the Multiple strips one array setup but using the same strip more than once. Something like this:

NUM_LEDS_PER_STRIP = 8;

FastLED.addLeds<NEOPIXEL, 10>(leds, 0, NUM_LEDS_PER_STRIP);

FastLED.addLeds<NEOPIXEL, 11>(leds, NUM_LEDS_PER_STRIP, NUM_LEDS_PER_STRIP);

FastLED.addLeds<NEOPIXEL, 10>(leds, 2 * NUM_LEDS_PER_STRIP, NUM_LEDS_PER_STRIP);

FastLED.addLeds<NEOPIXEL, 11>(leds, 3 * NUM_LEDS_PER_STRIP, NUM_LEDS_PER_STRIP);

FastLED.addLeds<NEOPIXEL, 10>(leds, 4 * NUM_LEDS_PER_STRIP, NUM_LEDS_PER_STRIP);

FastLED.addLeds<NEOPIXEL, 11>(leds, 5 * NUM_LEDS_PER_STRIP, NUM_LEDS_PER_STRIP);

etc…etc.

Will this work?

No, it won’t. Each pin is addressed linearly, in one shot - you can’t stagger them like this.

Darn. Well that pretty much means I’m stuck using the stock Neo-Pixel Library for doing what I need to do. I was hoping to use your library.

Why is that? The Neopixel library is going to have the same issue - though it just hides the led arrays behind the scenes on you forcing you to do the math up front to bounce back and forth between the two sets of lines.

You can’t stagger/reuse the pin definitions. However, you can quite easily stagger your data/arrays:

Let’s say you’re doing an 8 by 8 array - with 4 lines of 8 on pin 10 interleaved with 4 lines of 8 on pin 11 - you could do something like this:

#include<FastLED.h>

CRGB raw_leds1[4][8];
CRGB raw_leds2[4][8];
CRGB *leds[8] = { raw_leds1[0], raw_leds2[0], raw_leds1[1],raw_leds2[1],raw_leds1[2],raw_leds2[2],raw_leds1[3],raw_leds2[3] };

void setup() {
LEDS.addLeds<NEOPIXEL,10>((CRGB*)raw_leds1, 48);
LEDS.addLeds<NEOPIXEL,11>((CRGB
)raw_leds2, 4*8);
}

void loop() {
for(int x = 0; x < 8; x++) {
for(int y = 0; y < 8; y++) {
leds[x][y] = CRGB::White;
LEDS.show();
leds[x][y] = CRGB::Black;
delay(30);
}
}
}

now you can treat leds like a two dimensional array - but it will use the interleaved data.

Took me a bit of time to get my head around what you are doing but I understand it now.

In my application I actually have 4 lines and the number of 8 pixel groups on each bus isn’t all the same but I should be able adapt this. The solution that I had working using the standard library was in a way similar to this. I had an array of classes that stored the pixel numbers and bus that were in each group.

I’m designing this to downlight stone pillars along a fence. The current system uses analog RGB lighting and was wired so that you could display 2 colors at the same time but on every other pillar. Trying to convert that to an addressable system now creates some unique challenges as you can see.

Well so far so good. I was able to put together a couple modules on breadboards with them chained the way I will need to connect them and everything is working perfectly. Thanks for all your help.