diff --git a/Production/firmware/mai_pico.uf2 b/Production/firmware/mai_pico.uf2 index bd0fdd5..3ef5b1b 100644 Binary files a/Production/firmware/mai_pico.uf2 and b/Production/firmware/mai_pico.uf2 differ diff --git a/firmware/src/main.c b/firmware/src/main.c index 140fc76..65c329c 100644 --- a/firmware/src/main.c +++ b/firmware/src/main.c @@ -37,12 +37,15 @@ #include "io.h" #include "hid.h" -static void run_lights() +static void button_lights_clear() { - if (io_is_active() || aime_is_active()) { - return; + for (int i = 0; i < 8; i++) { + rgb_set_button(i, 0, 0); } +} +static void button_lights_rainbow() +{ static uint16_t loop = 0; loop++; uint16_t buttons = button_read(); @@ -58,6 +61,20 @@ static void run_lights() } } +static void run_lights() +{ + static bool was_rainbow = true; + bool go_rainbow = !io_is_active() && !aime_is_active(); + + if (go_rainbow) { + button_lights_rainbow(); + } else if (was_rainbow) { + button_lights_clear(); + } + + was_rainbow = go_rainbow; +} + const int aime_intf = 3; static void cdc_aime_putc(uint8_t byte)