From d7e3062e7773c0137ca04586f9f09fa092b3c92a Mon Sep 17 00:00:00 2001 From: whowechina Date: Sat, 15 Mar 2025 16:18:51 +0800 Subject: [PATCH] Fix velocity sensitive light --- Production/Firmware/nos_pico.uf2 | Bin 0 -> 100352 bytes firmware/src/main.c | 7 +++++-- 2 files changed, 5 insertions(+), 2 deletions(-) create mode 100644 Production/Firmware/nos_pico.uf2 diff --git a/Production/Firmware/nos_pico.uf2 b/Production/Firmware/nos_pico.uf2 new file mode 100644 index 0000000000000000000000000000000000000000..8d6b8261297ab706e5390219bcd3c570b1ce5b10 GIT binary patch literal 100352 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 b+yVLmAti5sIuTO(Px;>e&F7UIp!okkic3hz literal 0 HcmV?d00001 diff --git a/firmware/src/main.c b/firmware/src/main.c index d7fed99..6030cd7 100644 --- a/firmware/src/main.c +++ b/firmware/src/main.c @@ -40,12 +40,15 @@ static void run_lights() for (int i = 0; i < hammer_keynum(); i++) { if (hammer_pressed(i)) { - light_set_key(i, rgb32_from_hsv(0, 0, hammer_velocity(i)), false); + uint16_t vel = hammer_velocity(i); + if (vel > 254) { + vel = 254; + } + light_set_key(i, rgb32_from_hsv(0, 0, vel + 1), false); } else { light_set_key(i, 0, false); } } - } static mutex_t core1_io_lock;