@Daniel_Garcia I just spent a lot of time trying parallel output on ESP8266.
So, it almost works.
First issue is FastLED.clear(); only clears the first panel, not the other ones.
Second issue, is probably a wiring issue, but basically I randomly see garbage on
all 3 panels, but I swear, as soon as I put my phone on top to take a picture, it stops. It seems to be that sending 3 data lines to panels that are cross connected for power and ground may cause them more likely to pick up RF noise and create garbage.
@Yves_BAZIN and @Patrick_Aversenq this maybe what you were discussing too in the other thread. I am using a 40A 5V power supply to the panels and the ESP8266 is powered by my laptop USB power but I also tried powering it from a USB pack to remove noise from my laptop just in case. Somehow if I reconnect the data line of the 3 panels together and serialize everything, the garbage issues go away.
I’ll attach a few pictures to illustrate.
First one shows a counter running (purple on line #3) with no issues or glitches when all the panels are serialized.
Second picture shows how the counter gets corrupted once I hit the 2nd panel (they are 32x8) because clear does not clear, so stuff gets printed on top of one another.
Third picture shows the random corruption I’m currently fighting and that does not seem to be a bug in the library but an electrical problem since I’m virtually certain that my body position over the panels and wires actually makes the problem worse, or go away. Interestingly the corruption is either random garbage or sometimes the color components of a font are offset, like ‘32’ in the picture.
Daniel, is it easy to fix clear()? Otherwise I’ll admit that getting 3X the refresh rate is nice 
Code to see what I’m doing:
-
I have disabled my independent strip code for now to simplify debugging (I need to update a 48 led strip + 768 pixel matrix which is now wired as 3x 32x8 panels)
temporary test of parallel output. · marcmerlin/NeoMatrix-FastLED-IR@5de5ca0 · GitHub
-
I am using FastLED.clear() to make sure I’m clearing everything
temporary test of parallel output. · marcmerlin/NeoMatrix-FastLED-IR@5de5ca0 · GitHub
Note again that clear does work, but it only clears the first panel, not the 2nd or 3rd
-
I’m running a panel refresh in a loop at different speeds (second or 1ms) and the only thing that changes is the purple counter on line 3
temporary test of parallel output. · marcmerlin/NeoMatrix-FastLED-IR@5de5ca0 · GitHub
For #2 - just memset your led data to 0 - clear currently doesn’t work for the blocked controllers.
@Daniel_Garcia gotcha, thanks for the heads up, and just wanted to make sure it was known.
So, if anyone else finds this, the simple workaround for clear not working in parallel output, is
memset(matrixleds, 0, sizeof(matrixleds))
I’ve confirmed that works.
@Yves_BAZIN asked whether I had turned off interrupts.
I sure didn’t, I use interrupts for IR 
But if it can run 768 LEDS with interrupts on on a single line, I don’t see why interrupts would be a problems with 3x 256.
That said, #define FASTLED_ALLOW_INTERRUPTS 0 fixes it, so thanks for the suggestion Yves.
@Daniel_Garcia by any chance, maybe the code that detects interrupts and restarts a line, does not work with parallel output on ESP8266?
I’ve tried tweaking WAIT_TIME and it makes no difference in parallel output mode (while it works in serialized output).
So, is it fair to say that for now parallel output and interrupt retries are incompatible on ESP8266?
I think it’s fair to say that the esp9266 parallel output is mostly untested/untweaked And so there’s a myriad of potential problems with it.
@Daniel_Garcia well, I tested it for you now 
Are you the lucky by default maintainer, or is it someone else?
@Daniel_Garcia yes, I read that and I totally understand. As per my other message, if you give me access to the wiki and/or the issues list, I’m happy to at least help improve some docs and clean up some issues.
Well, I think I found a way to get rid of those pesky ESP8266 interrupts in the middle of show():
#ifdef ESP8266
// Disable watchdog interrupt so that it does not trigger in the middle of
// updates. and break timing of pixels, causing random corruption on interval
// WDT fires if setup() takes more than 1 sec · Issue #34 · esp8266/Arduino · GitHub
ESP.wdtDisable();
#endif
matrix->show();
#ifdef ESP8266
ESP.wdtEnable(1000);
#endif
Now, I still get corruption when I receive an IR code due to that interrupt code, but it’s more manageable, and separately from finding a workaround in FastLED parallel output, I was really keen on finding a way to disable uncontrolled interrupts from the chip’s background tasks.
@Yves_BAZIN I agree with you that interrupts should still be usable with parallel output. They currently are not because it’s a different code path that doesn’t have the same smarts / parameter than the regular output routine for serialized output.
I’ve already been able to tell that class ClocklessController : public CPixelLEDController<RGB_ORDER>'s WAIT_TIME in ./platforms/esp/8266/clockless_esp8266.h isn’t being used for parallel output. I’m now reading the code further to see where parallel output is being run and whether I somehow fix it to make it work with interrupts too.
@Yves_BAZIN sorry you were also saying that disabling interrupts also allows receiving IR when not displaying. This is totally correct, except that I’m running animations that are pretty much changing the display all the time. In turn, the IR commands pretty much never get in and most often get interrupted/broken by a frame starting to display while the IR was being received.
So, I can’t be disabling interrupts in my case. I have it all working with interrupts enabled, I just need to see if I can tweak the parallel output to still work with interrupts re-enabled in between pixel updates.
@Yves_BAZIN @Daniel_Garcia ok, it took me a while until I was able to run the required greps and find the location, but I finally found where the timing fix needed to fix interrupts with parallel output on ESP8266, was in clockless_block_esp8266.h . I now have IR interrupts running while my panel is updating and everything works great.
Thanks both for the help.
Here is a fix: https://github.com/FastLED/FastLED/pull/596
@Marc_MERLIN great job. I will test that on the esp32.