From 6a1d3de75b0705549469608afad353605d479da8 Mon Sep 17 00:00:00 2001 From: Damian Schneider Date: Mon, 30 Dec 2024 12:58:38 +0100 Subject: [PATCH] Fix output glitches when playlist changes preset (#4442) same issue as with https://github.com/Aircoookie/WLED/pull/4386 waiting on bus to finish updating before file access fixes the glitches. this issue is only present on S2 and C3, not on ESP8266 or dual-core ESPs, the fix is only applied for these two. --- wled00/presets.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/wled00/presets.cpp b/wled00/presets.cpp index 04474113d..fb09d48a4 100644 --- a/wled00/presets.cpp +++ b/wled00/presets.cpp @@ -164,6 +164,11 @@ void handlePresets() DEBUG_PRINTF_P(PSTR("Applying preset: %u\n"), (unsigned)tmpPreset); + #if defined(ARDUINO_ARCH_ESP32S2) || defined(ARDUINO_ARCH_ESP32C3) + unsigned long start = millis(); + while (strip.isUpdating() && millis() - start < FRAMETIME_FIXED) yield(); // wait for strip to finish updating, accessing FS during sendout causes glitches + #endif + #ifdef ARDUINO_ARCH_ESP32 if (tmpPreset==255 && tmpRAMbuffer!=nullptr) { deserializeJson(*pDoc,tmpRAMbuffer);