From 9ab9f6808f7798a345b6a311e97ed9e43c99b61f Mon Sep 17 00:00:00 2001 From: Damian Schneider Date: Mon, 30 Dec 2024 11:05:11 +0100 Subject: [PATCH 1/2] Fix output glitches when playlist changes preset --- wled00/presets.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/wled00/presets.cpp b/wled00/presets.cpp index 04474113d1..fb09d48a4b 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); From d61b16fd9cd66a1337e5aba97fd22014527dc039 Mon Sep 17 00:00:00 2001 From: Damian Schneider Date: Mon, 6 Jan 2025 22:16:58 +0100 Subject: [PATCH 2/2] update: glitches also happen on S3 --- wled00/presets.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wled00/presets.cpp b/wled00/presets.cpp index fb09d48a4b..1abcb52b93 100644 --- a/wled00/presets.cpp +++ b/wled00/presets.cpp @@ -164,7 +164,7 @@ void handlePresets() DEBUG_PRINTF_P(PSTR("Applying preset: %u\n"), (unsigned)tmpPreset); - #if defined(ARDUINO_ARCH_ESP32S2) || defined(ARDUINO_ARCH_ESP32C3) + #if defined(ARDUINO_ARCH_ESP32S3) || 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