I am still attempting to get the FastLED matrix code running properly on a

I am still attempting to get the FastLED matrix code running properly on a Wemos D1 chip. I used the #define FASTLED_ALLOW_INTERRUPTS 0 tick to fix the flickering towards the end of the strip. However, I’ve now got some jitter that isn’t present when I run the code on an Arduino Mega. Any idea what could be causing this?

I’m not an ESP8266 expert, but my understanding is that doing any timing critical code on it is doomed for failure if you just use the regular arduino methods since all of it can be interrupted for the chip to run its more time critical things like wifi and other watchdogs.
There is however a library that uses I2S to do neopixels, and that one is 100% correct in timing since it uses DMA.
See http://marc.merlins.org/perso/arduino/post_2017-04-03_Arduino-328P-Uno-Teensy3_1-ESP8266-ESP32-IR-and-Neopixels.html#ESP

See also https://github.com/marcmerlin/Neopixel-IR and https://github.com/JoDaNl/esp8266_ws2812_i2s/

I use a lot of Wemos D1 Mini ESP8266 boards, and am always able to use a combination of these settings to eliminate flicker:

// before #include <FastLED.h>
#define FASTLED_ALLOW_INTERRUPTS 0
#define FASTLED_INTERRUPT_RETRY_COUNT 0

// in setup
WiFi.setSleepMode(WIFI_NONE_SLEEP);

Mentioned here:

and here:

You may also need a level shifter, if you haven’t tried that already.

I will try the retry count setting – I’m not using Wifi now, so any reason to think that sleep mode setting will make a difference?

@Mike_Clifford even if you are not using wifi, Wifi is still taking interrupts and stopping your arduino thread like I mentioned. Turning wifi off should help.

Awesome, will try the combo of those.

@Marc_MERLIN RE WIFI laways running, true, this can be resolved by inserting a yield(); into code that is running without delay