Well I've looks in many places for info about my issue but found nothing

Well I’ve looks in many places for info about my issue but found nothing like what I’m wanting to do. I’ve looked through documents and all the FastLED examples, including the “Multiple” ones and there’s some that are close, but not really.

I’m using Win7/64 + Arduino 1.6.5 + FastLED 3.1.0

I have multiple strings of APA102’s but lets just say 2, THIS string of 42 and THAT string of 77 LEDs. I have each on a separate set of pins. I’m starting on an Arduino Mega2560 but I’m also using a Teensy 3.2. On the Teensy I’m using THIS string on SPI1 @ pins 11&13 and THAT string on SPI2 @ pins 7&14. I’m using an external level shifter (74HCTxx part) to make 5v outputs to the APA102’s. It all works fine if I have a single long strip on a single SPI. I’ve driven a 300 LED (5m) strip with this setup & power with no problems. A behavior of the APA102’s is that they are static; they retain their last programmed state (color and intensity) if they are held dormant (no SCK). So in a compute intensive application why waste the time to update everything if that’s not needed. I just want to update selected strings.

I have code running (in single long strip mode) but I’d like to be able to “show” each strip whenever I like. If I do the “.addLeds” with separate pairs of pins, that’s fine but “.show” will rerun|output both strips at every call and I only want to update each when I choose. For example:

If( thisFlag ) { FastLED.show(THIS); }
If( thatFlag ) { FastLED.show(THAT); }

Where “THIS” or “THAT” could be the led arrays (address), like:

thisLEDarray[42] = {CRGB::Red, CRGB::Aqua… until 42 entries }
thatLEDarray[77] = {CRGB::Blue, CRGB::Teal… until 77entries }

Or, “THIS” or “THAT” could be the the data pins from the “.addLeds” statement, or anything to identify each string. Or there could be more parameters, like:

If( thisFlag ) { FastLED.show(thisLEDarray,11,13,42); }

providing the array address, pins and length.

So it seems that as of now (in 3.1.0) the “.addLeds” is telling the library about ALL of the LEDs and the “.show” subroutine (with no parameters) updates ALL of the LEDs on ALL pins or strips, whether you want them updated or not. I simply am looking for a way to do multiple strings independently on separate pins.

Any advice or ways to do this ? Thanks !

Hi, to my knowledge, what you are requesting is not implemented as of now. FastLED constructs a chain of Controller Objects which then all use their own show() functions to render the LEDs on each pin.

May I ask why you even want that? It seems to me it would be quite complicated to even know if something has changed before you send out the data. If it is not complicated in your case, then I beleive your code is so easy that its not going to be required to save the time in the first place.

But maybe you could ellaborate - do you actually have any timing issues?

If you really want it anyway, you would need to write your own show() function overloading the existing one, with a new parameter, giving the number of the strip (not the pin, but just number in terms of 1st one you added, 2nd one you added, etc.) - then you get the one you want with using

CLEDController *pCur = CLEDController::head();

and then call
pCur = pCur->next() if you dont want the first one but the second one and call it again if you want the third one, etc.

and then use the show function of the controller object directly.

@Daryl_Spitfire In this thread @Daniel_Garcia shared something that sounds like what you want to do, being able to show individual strips. I have not tried it so don’t know if this is still valid or the best way. @JP_Roy , did you try it?

https://plus.google.com/106626345342202981932/posts/6fXQmA1ry5o

Hi @marmil ,
I guess you mean the part about creating my own controllers directly, I tried briefly but had no success… so short answer is no.

So, the short answer is no. Thanks Marc & JP for that. I’ve been a EE for 40+ years, now retired. I’ve designed and written for a myriad of CPU’s, MCU’s, DSP’s and FPGAs at one time or another, albeit more hardware than software. For my current project I was just looking for a “ready-made tool”, my SOP before going off on my own; that just seems prudent. I’m not into deciphering much (existing code) as mostly it is by necessity (for publication) too general. I just got FastLED a few days ago because it looked pretty close (but as I see now, no cigar).
I think it is poor engineering to leave too little CPU burden head room for the future and so the Teensy 3.2 seems appropriate for my current project. Capable as it may be I still must use prudent design. I am interfacing to a machine with some specific interface timing and command-response sequence timing requirements. I did similar for decades on a myriad of systems so I am very familiar with any complexities involved.
I’m also not interested in modifying existing code by overloading calls to contort or coerce a few dozen lines of code into new behaviors, largely just to make that process work. I’m sure that new code will be more efficient and to the point.
But thanks for your responses.