From 79560566a105b8ef12f6fa485f29ef35125dffc9 Mon Sep 17 00:00:00 2001 From: binaryDiv Date: Wed, 22 May 2024 19:18:25 +0200 Subject: [PATCH] Firmware: Add support for rotary encoder --- ergogen/config.yaml | 1 - qmk_keyboards/binarydiv/eepypad/v1/info.json | 10 +++++++++- .../eepypad/v1/keymaps/default/keymap.c | 17 ++++++++++++++++- qmk_keyboards/binarydiv/eepypad/v1/rules.mk | 4 ++++ 4 files changed, 29 insertions(+), 3 deletions(-) diff --git a/ergogen/config.yaml b/ergogen/config.yaml index 0502dda..06d7584 100644 --- a/ergogen/config.yaml +++ b/ergogen/config.yaml @@ -178,7 +178,6 @@ pcbs: params: from: "{{colrow}}" to: "{{row_net}}" - # TODO: Check whether these pins are correct (should C really be GND?) A: P3 B: P4 C: GND diff --git a/qmk_keyboards/binarydiv/eepypad/v1/info.json b/qmk_keyboards/binarydiv/eepypad/v1/info.json index 440aa7a..95a3a29 100644 --- a/qmk_keyboards/binarydiv/eepypad/v1/info.json +++ b/qmk_keyboards/binarydiv/eepypad/v1/info.json @@ -13,7 +13,7 @@ "features": { "bootmagic": true, "command": false, - "console": false, + "console": true, "extrakey": true, "mousekey": true, "nkro": true, @@ -55,6 +55,14 @@ ] } }, + "encoder": { + "rotary": [ + { + "pin_a": "D0", + "pin_b": "D4" + } + ] + }, "rgb_matrix": { "driver": "ws2812", "default": { diff --git a/qmk_keyboards/binarydiv/eepypad/v1/keymaps/default/keymap.c b/qmk_keyboards/binarydiv/eepypad/v1/keymaps/default/keymap.c index 30d95c5..f150b80 100644 --- a/qmk_keyboards/binarydiv/eepypad/v1/keymaps/default/keymap.c +++ b/qmk_keyboards/binarydiv/eepypad/v1/keymaps/default/keymap.c @@ -28,10 +28,25 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // Keyboard control layer for entering bootloader and controlling the RGB light (hold 0,4) [1] = LAYOUT_ortho_5x5( - QK_BOOTLOADER, QK_REBOOT, _______, _______, QK_CLEAR_EEPROM, + QK_BOOTLOADER, QK_REBOOT, QK_DEBUG_TOGGLE, _______, QK_CLEAR_EEPROM, RGB_TOG, RGB_MODE_REVERSE, RGB_MODE_FORWARD, _______, _______, RGB_VAI, RGB_SAI, RGB_HUI, RGB_SPI, _______, RGB_VAD, RGB_SAD, RGB_HUD, RGB_SPD, _______, RGB_MODE_PLAIN, RGB_MODE_BREATHE, RGB_MODE_RAINBOW, RGB_MODE_SWIRL, _______ ), }; + +// Define mapping for rotary encoder +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + // Default layer: Emulate scroll wheel + [0] = { + ENCODER_CCW_CW(KC_MS_WH_UP, KC_MS_WH_DOWN) + }, + + // Keyboard control layer: Control RGB LED brightness + [1] = { + ENCODER_CCW_CW(RGB_VAD, RGB_VAI) + } +}; +#endif diff --git a/qmk_keyboards/binarydiv/eepypad/v1/rules.mk b/qmk_keyboards/binarydiv/eepypad/v1/rules.mk index 2f730fb..ec44091 100644 --- a/qmk_keyboards/binarydiv/eepypad/v1/rules.mk +++ b/qmk_keyboards/binarydiv/eepypad/v1/rules.mk @@ -1,2 +1,6 @@ +# Enable support for rotary encoder +ENCODER_ENABLE = yes +ENCODER_MAP_ENABLE = yes + # Add custom RGB LED effects RGB_MATRIX_CUSTOM_USER = yes