Hello all, im a new user and im looking for some guidance.

Hello all, im a new user and im looking for some guidance. Im trying to control multiple segments of a single ws2812 strip independently from each other but at the same time. As an example, i want to have a chase function going from leds 0 to 40 but also have another chase function from 41 to 80. I dont think the for( function works as the second segment waits until the first segment has completed an entire cycle before it moves to the next led. is there another function that will allow both to be run at the same time?

The key to what you want to do is to update all pixel data in BOTH sections BEFORE calling FastLED.show()

Things like a for loop or the use of delay() for one or both of the section patterns will probably break the display from working correctly. You might need to use counters and/or individual timers. The use of EVERY_N_MILLISECONDS() can be very useful.

You can operate directly on the leds array, or sometimes it’s more convenient to operate on a temporary array or arrays and then copy the pixel data to the leds array that gets displayed, THEN call show().

Here’s an example of one way:

This one has two separate things going on at the same time and has an example of using EVERY_N to control the timing of something.

In the fastled lib but also the adafruit neopixel the pixel setting and display is asynchronous. The set pixel commands do only set pixel colours in memory, the subsequent showcommand running off this memory(3 bytes per pixel) blocks the Arduino completely. However, nothing runs in parallel. The code Blocks interrupts, even reading the IR remote during that time. But their is a work around. Don’t start a led show while the ir is busy decoding.
It takes about 5ms per 144 led strip to update it. Setting up several pins for separate led chains is not.worth the hassle. Just daisy Chain them. Even 5m of 60 pixel per meter are loaded in less than 1/100 of s second. You can’t do anything on the Arduino during loading anyway… the fastlib is fast but eats up a lot of memory with it extravagant colour manipulation functions. The adafruit library is much slimmer and fast enough.
If you want to operate them anyways in parallel do it in hardware multiplexing the data pin to one strip at a time.
Operating several led objects is not doable under the fastliby without touching the code and the fancy but in most cases overkill color manipulation code. With the quite extravagant use of c++ templates in fastlib this will uselessly duplicate a lot of code eating up your flash and sram.

If your chains are anywhere near to each other daisychain them. If not give them an Arduino each and let. them synchronize. E.g through Bluetooth in a serial hardware port.
Daisychaning them wll refresh the 1 mhz signal at every pixel. You don’t want to run an unrefreshed 1 mhz signal for much more than a meter.

Persist: neopixels are fun, I even impressed my daughter. And 17 year old ladies are really ti inputs.