From 327be9b68a0d19e1cec4982e1828596e7bcd91a6 Mon Sep 17 00:00:00 2001 From: Sadek Baroudi Date: Sat, 9 Sep 2023 02:14:18 -0700 Subject: [PATCH] added rgb matrix support for vulpes minora --- .../vulpes_minora/byomcu/fp_build.json | 6 +-- keyboards/fingerpunch/vulpes_minora/config.h | 48 ++++++++++++++++++- .../vulpes_minora/rp2040zero/fp_build.json | 6 +-- .../vulpes_minora/rp2040zero/rules.mk | 2 + .../fingerpunch/vulpes_minora/vulpes_minora.c | 47 ++++++++++++++++++ 5 files changed, 102 insertions(+), 7 deletions(-) diff --git a/keyboards/fingerpunch/vulpes_minora/byomcu/fp_build.json b/keyboards/fingerpunch/vulpes_minora/byomcu/fp_build.json index a72d65bbf4..961562b552 100644 --- a/keyboards/fingerpunch/vulpes_minora/byomcu/fp_build.json +++ b/keyboards/fingerpunch/vulpes_minora/byomcu/fp_build.json @@ -10,9 +10,9 @@ "user_input": "Do you have a trackball?" }, { - "type" : "single", - "name" : "RGBLIGHT_ENABLE", - "user_input": "Do you have leds for underglow?" + "type" : "one-of", + "names" : [ "RGBLIGHT_ENABLE", "RGB_MATRIX_ENABLE" ], + "user_input": "No RGB, RGB light, RGB matrix?" }, { "type" : "single", diff --git a/keyboards/fingerpunch/vulpes_minora/config.h b/keyboards/fingerpunch/vulpes_minora/config.h index 00c4407d4f..e90e5b8587 100644 --- a/keyboards/fingerpunch/vulpes_minora/config.h +++ b/keyboards/fingerpunch/vulpes_minora/config.h @@ -25,11 +25,12 @@ along with this program. If not, see . #define DIODE_DIRECTION COL2ROW // Got help from https://www.eisbahn.jp/yoichiro/2022/08/luankey_pico_qmk_firmware.html +#define MASTER_LEFT + #define SPLIT_TRANSPORT_MIRROR #define SPLIT_POINTING_ENABLE #define SPLIT_LAYER_STATE_ENABLE #define SPLIT_MODS_ENABLE -#define SPLIT_HAPTIC_ENABLE /* Set 0 if debouncing isn't needed */ #define DEBOUNCE 5 @@ -61,6 +62,51 @@ along with this program. If not, see . #define RGBLIGHT_EFFECT_TWINKLE #endif +#ifdef RGB_MATRIX_ENABLE + #define SPLIT_TRANSPORT_MIRROR + #define RGB_MATRIX_SPLIT { 6, 6 } + #define RGB_MATRIX_LED_COUNT 12 + #define RGB_MATRIX_STARTUP_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS + #define RGB_DISABLE_WHEN_USB_SUSPENDED + #define RGB_MATRIX_KEYPRESSES + #define RGB_MATRIX_FRAMEBUFFER_EFFECTS + #define RGB_MATRIX_KEYREACTIVE_ENABLED + #define ENABLE_RGB_MATRIX_ALPHAS_MODS + #define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN + #define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT + #define ENABLE_RGB_MATRIX_BREATHING + #define ENABLE_RGB_MATRIX_BAND_SAT + #define ENABLE_RGB_MATRIX_BAND_VAL + #define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT + #define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL + #define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT + #define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL + #define ENABLE_RGB_MATRIX_CYCLE_ALL + #define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT + #define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN + #define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON + #define ENABLE_RGB_MATRIX_DUAL_BEACON + #define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL + #define ENABLE_RGB_MATRIX_CYCLE_SPIRAL + #define ENABLE_RGB_MATRIX_RAINBOW_BEACON + #define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS + #define ENABLE_RGB_MATRIX_RAINDROPS + #define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS + #define ENABLE_RGB_MATRIX_DIGITAL_RAIN + #define ENABLE_RGB_MATRIX_SOLID_REACTIVE + #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE + #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE + #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE + #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS + #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS + #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS + #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS + #define ENABLE_RGB_MATRIX_SPLASH + #define ENABLE_RGB_MATRIX_MULTISPLASH + #define ENABLE_RGB_MATRIX_SOLID_SPLASH + #define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH +#endif + #ifdef HAPTIC_ENABLE #define FB_ERM_LRA 1 #define FB_BRAKEFACTOR 3 // For 1x:0, 2x:1, 3x:2, 4x:3, 6x:4, 8x:5, 16x:6, Disable Braking:7 diff --git a/keyboards/fingerpunch/vulpes_minora/rp2040zero/fp_build.json b/keyboards/fingerpunch/vulpes_minora/rp2040zero/fp_build.json index 5a307d15f3..1e5a4beb35 100644 --- a/keyboards/fingerpunch/vulpes_minora/rp2040zero/fp_build.json +++ b/keyboards/fingerpunch/vulpes_minora/rp2040zero/fp_build.json @@ -10,9 +10,9 @@ "user_input": "Do you have a trackball?" }, { - "type" : "single", - "name" : "RGBLIGHT_ENABLE", - "user_input": "Do you have leds for underglow?" + "type" : "one-of", + "names" : [ "RGBLIGHT_ENABLE", "RGB_MATRIX_ENABLE" ], + "user_input": "No RGB, RGB light, RGB matrix?" }, { "type" : "single", diff --git a/keyboards/fingerpunch/vulpes_minora/rp2040zero/rules.mk b/keyboards/fingerpunch/vulpes_minora/rp2040zero/rules.mk index 3d03aaf272..091c33e24e 100644 --- a/keyboards/fingerpunch/vulpes_minora/rp2040zero/rules.mk +++ b/keyboards/fingerpunch/vulpes_minora/rp2040zero/rules.mk @@ -17,6 +17,8 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality # Either do RGBLIGHT_ENABLE or RGB_MATRIX_ENABLE and RGB_MATRIX_DRIVER RGBLIGHT_ENABLE ?= no +RGB_MATRIX_ENABLE ?= no # not supported yet, but will add +RGB_MATRIX_DRIVER = WS2812 WS2812_DRIVER = vendor MIDI_ENABLE = no # MIDI support diff --git a/keyboards/fingerpunch/vulpes_minora/vulpes_minora.c b/keyboards/fingerpunch/vulpes_minora/vulpes_minora.c index a4d890c74c..58fe9a6cd1 100644 --- a/keyboards/fingerpunch/vulpes_minora/vulpes_minora.c +++ b/keyboards/fingerpunch/vulpes_minora/vulpes_minora.c @@ -14,3 +14,50 @@ * along with this program. If not, see . */ #include "vulpes_minora.h" + +#ifdef RGB_MATRIX_ENABLE + +#define NLD NO_LED + +// Layout +// 2 1 0 6 7 8 +// ┌────────────────────┐ ┌────────────────────┐ +// │ XX XX XX XX XX │ │ XX XX XX XX XX │ +// │────────────────────┤ ├────────────────────│ +// │ XX XX XX XX XX │ │ XX XX XX XX XX │ +// ├────────────────────┤ ├────────────────────┤ +// │ XX XX XX XX XX │ │ XX XX XX XX XX │ +// └─────────────┬──────┴─────┐ ┌─────┴──────┬─────────────┘ +// 3 │ XX XX XX │ │ XX XX XX │ 9 +// └────────────┘ └────────────┘ +// 4 5 11 10 +// + +led_config_t g_led_config = { { +//COL 00 01 02 03 04 ROW + { 2, 2, 1, 1, 0 },//00 + { 2, 2, 1, 1, 0 },//01 + { 3, 3, 4, 4, 5 },//02 + { NLD, NLD, 4, 5, 5 },//03 + { 8, 8, 7, 7, 6 },//04 + { 8, 8, 7, 7, 6 },//05 + { 9, 9, 10, 10, 11 },//06 + { NLD, NLD, 10, 11, 11 } //07 +}, { + // { 112, 32 } is the center + {90 , 0}, // 0 + {45 , 0}, // 1 + {0 , 0}, // 2 + {0 , 64}, // 3 + {45 , 64}, // 4 + {90 , 64}, // 5 + {134, 0}, // 6 + {179, 0}, // 7 + {224, 0}, // 8 + {224, 64}, // 9 + {179, 64}, // 10 + {134, 0} // 11 +}, { + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 +} }; +#endif