В
ядре 3.0.0 была усилена оптимизация, и многие функции стали по умолчанию размещаться во
Flash, а не в
IRAM (внутренней RAM, критичной для временных операций).
- Библиотеки для адресных лент (включая FastLED и NeoPixel) требуют строгого временного контроля (точные задержки в микросекундах).
- Если код, отвечающий за передачу данных (например, show()), попадает в Flash, прерывания (например, Wi-Fi) могут нарушать тайминги, и лента работает некорректно.
Решение в FastLED:
Раньше в FastLED для ESP8266 использовалась ассемблерная реализация (точные тайминги), но в новых версиях ядра она могла перестать работать из-за изменений в компиляторе или размещении кода.