From 92810c965447a9507095609c6cde7db745d05fc0 Mon Sep 17 00:00:00 2001 From: quak Date: Wed, 7 May 2025 17:50:11 +0200 Subject: [PATCH] added led support for right half of the qua-ken --- zegonix/cycle7/keymaps/quaken/keymap.c | 2 -- zegonix/qua_ken/config.h | 42 ++++++++++++++++++++++--- zegonix/qua_ken/halconf.h | 1 + zegonix/qua_ken/keyboard.json | 1 + zegonix/qua_ken/keymaps/quaken/keymap.c | 2 +- zegonix/qua_ken/mcuconf.h | 13 ++++++++ zegonix/qua_ken/rules.mk | 4 ++- 7 files changed, 56 insertions(+), 9 deletions(-) diff --git a/zegonix/cycle7/keymaps/quaken/keymap.c b/zegonix/cycle7/keymaps/quaken/keymap.c index 31a2c56..2c431a7 100644 --- a/zegonix/cycle7/keymaps/quaken/keymap.c +++ b/zegonix/cycle7/keymaps/quaken/keymap.c @@ -18,8 +18,6 @@ enum layer_names { _NAV, _DIV, _MOUS, - - _CAPS, // for lighting layers only, do not assign keymap! }; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { diff --git a/zegonix/qua_ken/config.h b/zegonix/qua_ken/config.h index 2a8b3e7..fa4058a 100644 --- a/zegonix/qua_ken/config.h +++ b/zegonix/qua_ken/config.h @@ -22,9 +22,41 @@ /* split settings */ #define SPLIT_HAND_PIN_LOW_IS_LEFT #define SERIAL_USART_FULL_DUPLEX // Enable full duplex operation mode. -#define SERIAL_USART_TX_PIN C6 // USART TX pin -#define SERIAL_USART_RX_PIN C7 // USART RX pin -#define SERIAL_USART_DRIVER SD6 // Select UART Driver for interface 6 -#define SERIAL_USART_TX_PAL_MODE 8 // USART6 is Alternate Function 8 on C6/7 -#define SERIAL_USART_RX_PAL_MODE 8 +#define SERIAL_USART_TX_PIN C6 // USART TX pin +#define SERIAL_USART_RX_PIN C7 // USART RX pin +#define SERIAL_USART_DRIVER SD6 // Select UART Driver for interface 6 +#define SERIAL_USART_TX_PAL_MODE 8 // USART6 is Alternate Function 8 on C6/7 +#define SERIAL_USART_RX_PAL_MODE 8 + +/* indicator led settings */ +#define WS2812_DI_PIN A1 +#define RGBLIGHT_LED_COUNT 1 + +#define WS2812_TIMING 1250 +#define WS2812_T1H 640 +#define WS2812_T0H 320 +#define WS2812_TRST_US 200 +#define WS2812_BYTE_ORDER WS2812_BYTE_ORDER_GRB + +#define WS2812_PWM_DRIVER PWMD2 +#define WS2812_PWM_CHANNEL 2 +#define WS2812_PWM_PAL_MODE 1 +#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM1 +#define WS2812_PWM_DMA_CHANNEL 3 + +#ifdef WS2812_RGBW +#undef WS2812_RGBW +#endif + +#ifdef WS2812_EXTERNAL_PULLUP +#undef WS2812_EXTERNAL_PULLUP +#endif + +#ifdef WS2812_PWM_COMPLEMENTARY_OUTPUT +#undef WS2812_PWM_COMPLEMENTARY_OUTPUT +#endif + +// configuration of rgb light abstraction layer +#define RGBLIGHT_SLEEP +#define RGBLIGHT_LAYERS diff --git a/zegonix/qua_ken/halconf.h b/zegonix/qua_ken/halconf.h index dfddaac..0da3aeb 100644 --- a/zegonix/qua_ken/halconf.h +++ b/zegonix/qua_ken/halconf.h @@ -1,5 +1,6 @@ #pragma once #define HAL_USE_SERIAL TRUE +#define HAL_USE_PWM TRUE #include_next diff --git a/zegonix/qua_ken/keyboard.json b/zegonix/qua_ken/keyboard.json index 1a7f8a7..ee7f720 100644 --- a/zegonix/qua_ken/keyboard.json +++ b/zegonix/qua_ken/keyboard.json @@ -11,6 +11,7 @@ "nkro": true, "extrakey": true, "mousekey": true, + "rgblight": true }, "required": ["lto"], "usb": { diff --git a/zegonix/qua_ken/keymaps/quaken/keymap.c b/zegonix/qua_ken/keymaps/quaken/keymap.c index d9ccdda..922d404 100644 --- a/zegonix/qua_ken/keymaps/quaken/keymap.c +++ b/zegonix/qua_ken/keymaps/quaken/keymap.c @@ -100,6 +100,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), }; + /* Indicator LED Configuraton */ const rgblight_segment_t PROGMEM rgb_layer_BASE[] = RGBLIGHT_LAYER_SEGMENTS({0, 1, 27, 255, 70}); const rgblight_segment_t PROGMEM rgb_layer_GAME[] = RGBLIGHT_LAYER_SEGMENTS({0, 1, 197, 255, 70}); @@ -128,4 +129,3 @@ layer_state_t default_layer_state_set_user(layer_state_t state) { return state; } - diff --git a/zegonix/qua_ken/mcuconf.h b/zegonix/qua_ken/mcuconf.h index 0319066..3d465b8 100644 --- a/zegonix/qua_ken/mcuconf.h +++ b/zegonix/qua_ken/mcuconf.h @@ -2,5 +2,18 @@ #include_next +/* serial driver configuration */ #undef STM32_SERIAL_USE_USART6 #define STM32_SERIAL_USE_USART6 TRUE + +/* system configuration */ +#ifdef STM32_ST_USE_TIMER +#undef STM32_ST_USE_TIMER +#endif +#define STM32_ST_USE_TIMER 5 + +/* led driver configuration */ +#ifdef STM32_PWM_USE_TIM2 +#undef STM32_PWM_USE_TIM2 +#endif +#define STM32_PWM_USE_TIM2 TRUE diff --git a/zegonix/qua_ken/rules.mk b/zegonix/qua_ken/rules.mk index 0531ced..69ef312 100644 --- a/zegonix/qua_ken/rules.mk +++ b/zegonix/qua_ken/rules.mk @@ -1,3 +1,5 @@ ENCODER_ENABLE = yes -WS2812_DRIVER_REQUIRED = no + +WS2812_DRIVER_REQUIRED = yes +WS2812_DRIVER = pwm