summaryrefslogtreecommitdiff
path: root/keyboards/bastardkb/charybdis/4x6
diff options
context:
space:
mode:
authorDrashna Jaelre <drashna@live.com>2022-11-29 11:43:42 -0800
committerGitHub <noreply@github.com>2022-11-29 11:43:42 -0800
commit4a87af0e9af046d5fc00d930476920c0c34a57a7 (patch)
treecb2da20c670a49b9fcada84822a7bdb2bd144d60 /keyboards/bastardkb/charybdis/4x6
parent8a8000b4ec379448848f561f57bbe2c781376357 (diff)
[Keymap] Drashna updates for 0.19 (#19175)
* Fix up bastardkb boards since blackpill support is officially added. * Check for blackpill version, not elite c. * Add checks in chibiOS config since multiple ARM controllers supported. * Rework rules.mk for keymaps to better handle arm vs avr support * Start moving away from `matrix_*_*` functions. * `housekeeping_task_*` instead of `matrix_scan_*` * `keyboard_(pre|post)_init_*` instead of `matrix_init_*` * Add ℂℴmⅈℂ unicode input method. * Clean up unicode code to be more compact and flexible. * Remove/move Pro Micro LED commands to userspace and better filter them * Fixup OLED code * Use newer quantum keycode functions/preprocessors rather than manual bit manipulation * Make unicode mode render much more compact/simple. * Make qmk secrets more self contained * Remove custom implementation of split watchdog
Diffstat (limited to 'keyboards/bastardkb/charybdis/4x6')
-rw-r--r--keyboards/bastardkb/charybdis/4x6/keymaps/drashna/config.h108
-rw-r--r--keyboards/bastardkb/charybdis/4x6/keymaps/drashna/halconf.h26
-rw-r--r--keyboards/bastardkb/charybdis/4x6/keymaps/drashna/keymap.c26
-rw-r--r--keyboards/bastardkb/charybdis/4x6/keymaps/drashna/mcuconf.h25
-rw-r--r--keyboards/bastardkb/charybdis/4x6/keymaps/drashna/rules.mk90
5 files changed, 107 insertions, 168 deletions
diff --git a/keyboards/bastardkb/charybdis/4x6/keymaps/drashna/config.h b/keyboards/bastardkb/charybdis/4x6/keymaps/drashna/config.h
index e29ff644da..cb11ea2748 100644
--- a/keyboards/bastardkb/charybdis/4x6/keymaps/drashna/config.h
+++ b/keyboards/bastardkb/charybdis/4x6/keymaps/drashna/config.h
@@ -16,99 +16,49 @@
*/
#pragma once
-#undef PRODUCT
-#define PRODUCT "Charybdis (4x6) Blackpill"
+#if defined(KEYBOARD_bastardkb_charybdis_4x6_blackpill)
+# undef MATRIX_COL_PINS
+# define MATRIX_COL_PINS \
+ { B0, B1, B12, B3, B4, B5 }
-#undef MATRIX_COL_PINS
-#define MATRIX_COL_PINS \
- { B0, B1, B12, B3, B4, B5 }
-#undef MATRIX_COL_PINS_RIGHT
-#define MATRIX_COL_PINS_RIGHT \
- { B0, B1, B12, B3, B4, B5 }
+# define USB_VBUS_PIN B10
+# define DEBUG_LED_PIN C13
-#undef MATRIX_ROW_PINS
-#define MATRIX_ROW_PINS \
- { B15, A2, B8, A8, B9 }
-#undef MATRIX_ROW_PINS_RIGHT
-#define MATRIX_ROW_PINS_RIGHT \
- { B15, A2, B8, A8, B9 }
+# define AUDIO_PIN B7
+# define AUDIO_PWM_DRIVER PWMD4
+# define AUDIO_PWM_CHANNEL 2
+# define AUDIO_PWM_PAL_MODE 2
+# define AUDIO_INIT_DELAY
+# define AUDIO_ENABLE_TONE_MULTIPLEXING
+# define AUDIO_TONE_MULTIPLEXING_RATE_DEFAULT 10
+# define SERIAL_USART_SPEED (1 * 1024 * 1024)
-#define DIODE_DIRECTION ROW2COL
-#define SPLIT_HAND_PIN A3
-#undef MASTER_RIGHT
-#define USB_VBUS_PIN B10
+# undef POINTING_DEVICE_CS_PIN
+# define POINTING_DEVICE_CS_PIN A15 // b14
+# define PMW33XX_LIFTOFF_DISTANCE 0b1111
+#endif
-#undef RGB_DI_PIN
-#define RGB_DI_PIN A1
-#define WS2812_EXTERNAL_PULLUP
-#define WS2812_PWM_DRIVER PWMD2
-#define WS2812_PWM_CHANNEL 2
-#define WS2812_PWM_PAL_MODE 1
-#define WS2812_EXTERNAL_PULLUP
-#define WS2812_DMA_STREAM STM32_DMA1_STREAM1
-#define WS2812_DMA_CHANNEL 3
-#define WS2812_PWM_TARGET_PERIOD 800000
-
-#define DEBUG_LED_PIN C13
-
-#define AUDIO_PIN B7
-#define AUDIO_PWM_DRIVER PWMD4
-#define AUDIO_PWM_CHANNEL 2
-#define AUDIO_PWM_PAL_MODE 2
-#define AUDIO_INIT_DELAY
-#define AUDIO_ENABLE_TONE_MULTIPLEXING
-#define AUDIO_TONE_MULTIPLEXING_RATE_DEFAULT 10
-
-#undef SOFT_SERIAL_PIN
-// #define SERIAL_USART_FULL_DUPLEX // Enable full duplex operation mode.
-#define SERIAL_USART_TX_PIN A9
-// #define SERIAL_USART_RX_PIN A3
-// #define SERIAL_USART_DRIVER SD2
-// #define SERIAL_USART_TX_PAL_MODE 7 // Pin "alternate function", see the respective datasheet for the appropriate values for your MCU. default: 7
-// #define SERIAL_USART_RX_PAL_MODE 7 // Pin "alternate function", see the respective datasheet for the appropriate values for your MCU. default: 7
-// #define SERIAL_USART_TIMEOUT 100 // USART driver timeout. default 100
-// #define SERIAL_USART_SPEED 921600
-#define SERIAL_USART_SPEED (1.5 * 1024 * 1024)
-
-#define CRC8_USE_TABLE
-#define CRC8_OPTIMIZE_SPEED
-
-/* spi config for eeprom and pmw3360 sensor */
-#define SPI_DRIVER SPID1
-#define SPI_SCK_PIN A5
-#define SPI_SCK_PAL_MODE 5
-#define SPI_MOSI_PIN A7
-#define SPI_MOSI_PAL_MODE 5
-#define SPI_MISO_PIN A6
-#define SPI_MISO_PAL_MODE 5
-
-#define EXTERNAL_EEPROM_SPI_SLAVE_SELECT_PIN A4
-#define EXTERNAL_EEPROM_SPI_CLOCK_DIVISOR 64
-
-#undef PMW33XX_CS_PIN
-#define PMW33XX_CS_PIN A15 // b14
-#define PMW33XX_LIFTOFF_DISTANCE 0b1111
#undef ROTATIONAL_TRANSFORM_ANGLE
-#define ROTATIONAL_TRANSFORM_ANGLE -65
-
-#define CHARYBDIS_MINIMUM_DEFAULT_DPI 1200
-#define CHARYBDIS_DEFAULT_DPI_CONFIG_STEP 400
-#define CHARYBDIS_MINIMUM_SNIPING_DPI 200
-#define CHARYBDIS_SNIPING_DPI_CONFIG_STEP 100
+#define ROTATIONAL_TRANSFORM_ANGLE 25
+#define POINTING_DEVICE_ROTATION_270
/* RGB Matrix. */
-
#undef RGB_MATRIX_MAXIMUM_BRIGHTNESS
#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 150
+#define CHARYBDIS_MINIMUM_DEFAULT_DPI 1200
+#define CHARYBDIS_DEFAULT_DPI_CONFIG_STEP 400
+#define CHARYBDIS_MINIMUM_SNIPING_DPI 200
+#define CHARYBDIS_SNIPING_DPI_CONFIG_STEP 100
+
#define CHARYBDIS_CONFIG_SYNC
-#define BOOTMAGIC_LITE_ROW 0
+#define BOOTMAGIC_LITE_ROW 0
#define BOOTMAGIC_LITE_COLUMN 0
-#define BOOTMAGIC_LITE_ROW_RIGHT 5
+#define BOOTMAGIC_LITE_ROW_RIGHT 5
#define BOOTMAGIC_LITE_COLUMN_RIGHT 0
-#define BOOTMAGIC_LITE_EEPROM_ROW 1
+#define BOOTMAGIC_LITE_EEPROM_ROW 1
#define BOOTMAGIC_LITE_EEPROM_COLUMN 0
-#define BOOTMAGIC_LITE_EEPROM_ROW_RIGHT 1
+#define BOOTMAGIC_LITE_EEPROM_ROW_RIGHT 1
#define BOOTMAGIC_LITE_EEPROM_COLUMN_RIGHT 0
diff --git a/keyboards/bastardkb/charybdis/4x6/keymaps/drashna/halconf.h b/keyboards/bastardkb/charybdis/4x6/keymaps/drashna/halconf.h
deleted file mode 100644
index 8aad829e5c..0000000000
--- a/keyboards/bastardkb/charybdis/4x6/keymaps/drashna/halconf.h
+++ /dev/null
@@ -1,26 +0,0 @@
-/* Copyright 2020 Nick Brassel (tzarc)
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <https://www.gnu.org/licenses/>.
- */
-#pragma once
-
-#define HAL_USE_PWM TRUE
-#define HAL_USE_PAL TRUE
-#define HAL_USE_SERIAL TRUE
-// #define HAL_USE_I2C TRUE
-#define HAL_USE_SPI TRUE
-#define SPI_USE_WAIT TRUE
-#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD
-
-#include_next <halconf.h>
diff --git a/keyboards/bastardkb/charybdis/4x6/keymaps/drashna/keymap.c b/keyboards/bastardkb/charybdis/4x6/keymaps/drashna/keymap.c
index cc6dbc34e9..50a05e1b35 100644
--- a/keyboards/bastardkb/charybdis/4x6/keymaps/drashna/keymap.c
+++ b/keyboards/bastardkb/charybdis/4x6/keymaps/drashna/keymap.c
@@ -83,12 +83,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
SFT_T(KC_SPACE), ALT_T(KC_Q), _______
),
[_MOUSE] = LAYOUT_charybdis_4x6(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, KC_WH_U, DPI_RMOD,DPI_MOD, S_D_RMOD,S_D_MOD, _______,
+ _______, _______, _______, _______, _______, _______, _______, DPI_RMOD,DPI_MOD, S_D_RMOD,S_D_MOD, _______,
+ _______, _______, _______, _______, _______, _______, KC_WH_U, _______, _______, _______, _______, DRGSCRL,
_______, _______, _______, _______, _______, _______, KC_WH_D, KC_BTN1, KC_BTN3, KC_BTN2, KC_BTN6, SNIPING,
- _______, _______, _______, _______, _______, _______, KC_BTN7, KC_BTN4, KC_BTN5, KC_BTN8, DRGSCRL, _______,
- _______, SNIPING, SNIPING, _______, _______,
- _______, _______, _______
+ _______, _______, _______, _______, _______, _______, KC_BTN7, KC_BTN4, KC_BTN5, KC_BTN8, _______, _______,
+ _______, _______, _______, _______, _______,
+ _______, _______, _______
),
[_LOWER] = LAYOUT_charybdis_4x6_wrapper(
@@ -110,7 +110,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
),
[_ADJUST] = LAYOUT_charybdis_4x6_wrapper(
- QK_MAKE, KC_WIDE,KC_AUSSIE,KC_SCRIPT,KC_ZALGO,KC_SUPER, KC_NOMODE,KC_BLOCKS,KC_REGIONAL,TG_GAME,TG_DBLO, QK_BOOT,
+ QK_MAKE, KC_WIDE,KC_AUSSIE,KC_SCRIPT,KC_ZALGO,KC_SUPER, KC_NOMODE,KC_COMIC,KC_REGIONAL,TG_GAME,TG_DBLO, QK_BOOT,
VRSN, _________________ADJUST_L1_________________, _________________ADJUST_R1_________________, EE_CLR,
KEYLOCK, _________________ADJUST_L2_________________, _________________ADJUST_R2_________________, TG_MODS,
UC_NEXT, _________________ADJUST_L3_________________, _________________ADJUST_R3_________________, KC_MPLY,
@@ -121,8 +121,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// clang-format on
-void matrix_init_keymap(void) {
- setPinInputHigh(A0);
+void keyboard_post_init_keymap(void) {
#ifdef RGB_MATRIX_ENABLE
g_led_config.flags[53] = g_led_config.flags[54] = g_led_config.flags[55] =
g_led_config.flags[0] = g_led_config.flags[1] = g_led_config.flags[2] = g_led_config.flags[3] =
@@ -131,11 +130,17 @@ void matrix_init_keymap(void) {
#endif
}
-void matrix_scan_keymap(void) {
+#if defined(KEYBOARD_bastardkb_charybdis_4x6_blackpill)
+void keyboard_pre_init_keymap(void) {
+ setPinInputHigh(A0);
+}
+
+void housekeeping_task_keymap(void) {
if (!readPin(A0)) {
reset_keyboard();
}
}
+#endif
#ifdef USB_VBUS_PIN
bool usb_vbus_state(void) {
@@ -145,12 +150,13 @@ bool usb_vbus_state(void) {
}
#endif
+#if defined(KEYBOARD_bastardkb_charybdis_4x6_blackpill)
void matrix_output_unselect_delay(uint8_t line, bool key_pressed) {
for (int32_t i = 0; i < 40; i++) {
__asm__ volatile("nop" ::: "memory");
}
}
-
+#endif
#ifdef SWAP_HANDS_ENABLE
const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = {
diff --git a/keyboards/bastardkb/charybdis/4x6/keymaps/drashna/mcuconf.h b/keyboards/bastardkb/charybdis/4x6/keymaps/drashna/mcuconf.h
index 4f04811e54..3a23d5f370 100644
--- a/keyboards/bastardkb/charybdis/4x6/keymaps/drashna/mcuconf.h
+++ b/keyboards/bastardkb/charybdis/4x6/keymaps/drashna/mcuconf.h
@@ -18,23 +18,10 @@
#include_next "mcuconf.h"
-#undef STM32_PWM_USE_ADVANCED
-#define STM32_PWM_USE_ADVANCED TRUE
+#if defined(KEYBOARD_bastardkb_charybdis_4x6_blackpill)
+# undef STM32_PWM_USE_ADVANCED
+# define STM32_PWM_USE_ADVANCED TRUE
-#undef STM32_PWM_USE_TIM1
-#define STM32_PWM_USE_TIM1 TRUE
-
-#undef STM32_PWM_USE_TIM2
-#define STM32_PWM_USE_TIM2 TRUE
-
-#undef STM32_PWM_USE_TIM4
-#define STM32_PWM_USE_TIM4 TRUE
-
-#undef STM32_SPI_USE_SPI1
-#define STM32_SPI_USE_SPI1 TRUE
-
-#undef STM32_SERIAL_USE_USART1
-#define STM32_SERIAL_USE_USART1 TRUE
-
-#undef STM32_ST_USE_TIMER
-#define STM32_ST_USE_TIMER 5
+# undef STM32_PWM_USE_TIM4
+# define STM32_PWM_USE_TIM4 TRUE
+#endif
diff --git a/keyboards/bastardkb/charybdis/4x6/keymaps/drashna/rules.mk b/keyboards/bastardkb/charybdis/4x6/keymaps/drashna/rules.mk
index d655fbd5dc..12e9cecda0 100644
--- a/keyboards/bastardkb/charybdis/4x6/keymaps/drashna/rules.mk
+++ b/keyboards/bastardkb/charybdis/4x6/keymaps/drashna/rules.mk
@@ -1,34 +1,56 @@
-# MCU name
-MCU = STM32F411
-BOARD = BLACKPILL_STM32_F411
-
-# Bootloader selection
-BOOTLOADER := tinyuf2
-
-BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = yes # Mouse keys
-EXTRAKEY_ENABLE = yes # Audio control and System control
-CONSOLE_ENABLE = yes # Console for debug
-COMMAND_ENABLE = no # Commands for debug and configuration
-NKRO_ENABLE = yes # Enable N-Key Rollover
-RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-AUDIO_ENABLE = yes # Audio output
-AUDIO_SUPPORTED = yes # is set to no in kb, needs to be forcibly enabled
-
-KEYBOARD_SHARED_EP = yes
-MOUSE_SHARED_EP = yes
-
-EEPROM_DRIVER = spi
-WS2812_DRIVER = pwm
-SERIAL_DRIVER = usart
-AUDIO_DRIVER = pwm_hardware
-BACKLIGHT_DRIVER = pwm
-
-AUTOCORRECT_ENABLE = yes
-CAPS_WORD_ENABLE = yes
-SWAP_HANDS_ENABLE = yes
-TAP_DANCE_ENABLE = yes
-DEBOUNCE_TYPE = asym_eager_defer_pk
-WPM_ENABLE = yes
-LTO_ENABLE = no
-# OPT = 3
+CUSTOM_UNICODE_ENABLE = no
+CUSTOM_POINTING_DEVICE = no
+CUSTOM_SPLIT_TRANSPORT_SYNC = no
+
+ifeq ($(strip $(KEYBOARD)), bastardkb/charybdis/4x6/blackpill)
+ # MCU name
+ # Bootloader selection
+ BOOTLOADER := tinyuf2
+
+ AUDIO_ENABLE = yes # Audio output
+ AUDIO_SUPPORTED = yes # is set to no in kb, needs to be forcibly enabled
+ AUDIO_DRIVER = pwm_hardware
+
+ BACKLIGHT_DRIVER = pwm
+
+ OVERLOAD_FEATURES = yes
+endif
+
+ifeq ($(strip $(KEYBOARD)), bastardkb/charybdis/4x6/v2/stemcell)
+ OVERLOAD_FEATURES = yes
+endif
+ifeq ($(strip $(KEYBOARD)), bastardkb/charybdis/4x6/v2/splinky)
+ OVERLOAD_FEATURES = yes
+endif
+ifeq ($(strip $(MCU)), atmega32u4)
+ LTO_ENABLE = yes
+ BOOTLOADER = qmk-hid
+ BOOTLOADER_SIZE = 512
+endif
+
+ifeq ($(strip $(OVERLOAD_FEATURES)), yes)
+ BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
+ MOUSEKEY_ENABLE = yes # Mouse keys
+ EXTRAKEY_ENABLE = yes # Audio control and System control
+ CONSOLE_ENABLE = yes # Console for debug
+ COMMAND_ENABLE = no # Commands for debug and configuration
+ NKRO_ENABLE = yes # Enable N-Key Rollover
+ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
+
+ KEYBOARD_SHARED_EP = yes
+ MOUSE_SHARED_EP = yes
+
+ AUTOCORRECT_ENABLE = yes
+ CAPS_WORD_ENABLE = yes
+ SWAP_HANDS_ENABLE = yes
+ TAP_DANCE_ENABLE = yes
+ DEBOUNCE_TYPE = asym_eager_defer_pk
+ WPM_ENABLE = yes
+ LTO_ENABLE = no
+ # OPT = 3
+
+ CUSTOM_UNICODE_ENABLE = yes
+ CUSTOM_POINTING_DEVICE = yes
+ CUSTOM_SPLIT_TRANSPORT_SYNC = yes
+
+endif