From 1c862c5b94113e85d2cd78c6a1b74f4050e3f351 Mon Sep 17 00:00:00 2001 From: XiNGRZ Date: Sat, 13 Aug 2022 16:49:13 +0800 Subject: [PATCH] fix(underglow): Fix racing that led strip get updated again after off The timer was not being stopped before updating all LEDs to `#000000`. In boards without a EXT_POWER, this will cause the LEDs being turned on immediately after they get turned off. Signed-off-by: XiNGRZ --- app/src/rgb_underglow.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/src/rgb_underglow.c b/app/src/rgb_underglow.c index 25d4466e..56a171fc 100644 --- a/app/src/rgb_underglow.c +++ b/app/src/rgb_underglow.c @@ -332,15 +332,15 @@ int zmk_rgb_underglow_off() { } #endif + k_timer_stop(&underglow_tick); + state.on = false; + for (int i = 0; i < STRIP_NUM_PIXELS; i++) { pixels[i] = (struct led_rgb){r : 0, g : 0, b : 0}; } led_strip_update_rgb(led_strip, pixels, STRIP_NUM_PIXELS); - k_timer_stop(&underglow_tick); - state.on = false; - return zmk_rgb_underglow_save_state(); }