From 46be776a38ee706e35cf44044c71c68b1b7ab490 Mon Sep 17 00:00:00 2001 From: whowe Date: Mon, 11 Sep 2023 23:14:04 +0800 Subject: [PATCH] NKRO with Umiguri default keymap (always on) --- Production/Firmware/chu_pico.uf2 | Bin 81408 -> 79872 bytes firmware/src/board_defs.h | 1 + firmware/src/main.c | 16 +++++++++++++--- 3 files changed, 14 insertions(+), 3 deletions(-) diff --git a/Production/Firmware/chu_pico.uf2 b/Production/Firmware/chu_pico.uf2 index 8b9247c0175e4bd9b1ba57b433e467d3b073764e..304de68ef2ce70f82943a46d1cf61c27b02f28d5 100644 GIT binary patch literal 79872 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 diff --git a/firmware/src/board_defs.h b/firmware/src/board_defs.h index 9d7b853..256720f 100644 --- a/firmware/src/board_defs.h +++ b/firmware/src/board_defs.h @@ -20,6 +20,7 @@ #define RGB_PIN 2 #define RGB_ORDER GRB // or RGB +#define NKRO_KEYMAP "1aqz2swx3dec4frv5gtb6hyn7jum8ki90olp,." #else #endif diff --git a/firmware/src/main.c b/firmware/src/main.c index ce696c9..ee5683f 100644 --- a/firmware/src/main.c +++ b/firmware/src/main.c @@ -21,6 +21,7 @@ #include "tusb.h" #include "usb_descriptors.h" +#include "board_defs.h" #include "slider.h" #include "air.h" #include "rgb.h" @@ -117,12 +118,11 @@ static void gen_joy_report() } const uint8_t keycode_table[128][2] = { HID_ASCII_TO_KEYCODE }; - -const char keymap[33] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ123456"; +const char keymap[38 + 1] = NKRO_KEYMAP; // 32 keys, 6 air keys, 1 terminator static void gen_nkro_report() { for (int i = 0; i < 32; i++) { - uint8_t code = keycode_table[i + 'A'][1]; + uint8_t code = keycode_table[keymap[i]][1]; uint8_t byte = code / 8; uint8_t bit = code % 8; if (slider_touched(i)) { @@ -131,6 +131,16 @@ static void gen_nkro_report() hid_nkro.keymap[byte] &= ~(1 << bit); } } + for (int i = 0; i < 6; i++) { + uint8_t code = keycode_table[keymap[32 + i]][1]; + uint8_t byte = code / 8; + uint8_t bit = code % 8; + if (hid_joy.buttons & (1 << i)) { + hid_nkro.keymap[byte] |= (1 << bit); + } else { + hid_nkro.keymap[byte] &= ~(1 << bit); + } + } } static uint64_t last_hid_time = 0;