diff options
author | Charly Delay <0xcharly@users.noreply.github.com> | 2022-11-15 17:51:44 +0900 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-11-15 08:51:44 +0000 |
commit | 30b2dbe369b3a61d1d6681b0a689dbcdd41fc221 (patch) | |
tree | cddf4e7318c2b06d33d4b3750d2e4eb15f1d2333 /keyboards/bastardkb/charybdis/3x6 | |
parent | ee7426e7b19c25ddfc53d0b50db68a457d8f992b (diff) |
Bastard Keyboards: upstream recent changes (#18903)
* bastardkb: cleanup blackpill configuration
Fixes #17
* bastardkb: fix splinky configuration
The pinout of the splinky changed between the last beta batch, and the
production one. This commit updates the keyboard definition to support
the new pinout by default, while offering backward compatibility.
Define `SPLINKY_BETA_PINOUT` to build the firmware with pre-production
pinout.
Fixes #15
* bastardkb: add support for STeMCell
* Update scylla/tbkmini/skeletyl outdated readmes
* bastardkb/dilemma: enable circular scroll
* bastardkb/dilemma: add initial version of the `via` keymap
* bastardkb/dilemma/assembled: add new keyboard
Fixes #20
* bastardkb/dilemma: remove elite-c
* Initial support for the Dilemma 3x5+3 Assembled RGB
* Address code review comments
* Address more comments
* Address review comments
* Address more nits
* bastardkb: split splinky-based keyboards to distinguish between Splinky v2 and v3 pinout
Diffstat (limited to 'keyboards/bastardkb/charybdis/3x6')
16 files changed, 234 insertions, 9 deletions
diff --git a/keyboards/bastardkb/charybdis/3x6/blackpill/config.h b/keyboards/bastardkb/charybdis/3x6/blackpill/config.h index 1b90a3076b..93d897a4fe 100644 --- a/keyboards/bastardkb/charybdis/3x6/blackpill/config.h +++ b/keyboards/bastardkb/charybdis/3x6/blackpill/config.h @@ -56,5 +56,5 @@ #define EXTERNAL_EEPROM_SPI_SLAVE_SELECT_PIN A4 /* PMW3360 settings. */ -#define PMW33XX_CS_PIN B14 +#define POINTING_DEVICE_CS_PIN B14 #define PMW33XX_CS_DIVISOR 64 diff --git a/keyboards/bastardkb/charybdis/3x6/blackpill/halconf.h b/keyboards/bastardkb/charybdis/3x6/blackpill/halconf.h index 42d7499907..78885b6870 100644 --- a/keyboards/bastardkb/charybdis/3x6/blackpill/halconf.h +++ b/keyboards/bastardkb/charybdis/3x6/blackpill/halconf.h @@ -1,4 +1,5 @@ -/* +/** + * Copyright 2020 Nick Brassel (tzarc) * Copyright 2022 Charly Delay <charly@codesink.dev> (@0xcharly) * * This program is free software: you can redistribute it and/or modify diff --git a/keyboards/bastardkb/charybdis/3x6/blackpill/mcuconf.h b/keyboards/bastardkb/charybdis/3x6/blackpill/mcuconf.h index 26645d8c1a..7adcb837de 100644 --- a/keyboards/bastardkb/charybdis/3x6/blackpill/mcuconf.h +++ b/keyboards/bastardkb/charybdis/3x6/blackpill/mcuconf.h @@ -1,4 +1,6 @@ /* + * Copyright 2020 Nick Brassel (tzarc) + * Copyright 2021 Stefan Kerkmann (@KarlK90) * Copyright 2022 Charly Delay <charly@codesink.dev> (@0xcharly) * * This program is free software: you can redistribute it and/or modify diff --git a/keyboards/bastardkb/charybdis/3x6/v1/elitec/config.h b/keyboards/bastardkb/charybdis/3x6/v1/elitec/config.h index 05746cf17e..fa1a1c01f7 100644 --- a/keyboards/bastardkb/charybdis/3x6/v1/elitec/config.h +++ b/keyboards/bastardkb/charybdis/3x6/v1/elitec/config.h @@ -38,4 +38,4 @@ #define RGB_DI_PIN D3 /* PMW3360 settings. */ -#define PMW33XX_CS_PIN B0 +#define POINTING_DEVICE_CS_PIN B0 diff --git a/keyboards/bastardkb/charybdis/3x6/v2/elitec/config.h b/keyboards/bastardkb/charybdis/3x6/v2/elitec/config.h index edd167446b..e9d45e6796 100644 --- a/keyboards/bastardkb/charybdis/3x6/v2/elitec/config.h +++ b/keyboards/bastardkb/charybdis/3x6/v2/elitec/config.h @@ -33,4 +33,4 @@ #define RGB_DI_PIN D3 /* PMW3360 settings. */ -#define PMW33XX_CS_PIN F0 +#define POINTING_DEVICE_CS_PIN F0 diff --git a/keyboards/bastardkb/charybdis/3x6/v2/splinky/config.h b/keyboards/bastardkb/charybdis/3x6/v2/splinky/config.h index 9c4ced817a..e68bf722e4 100644 --- a/keyboards/bastardkb/charybdis/3x6/v2/splinky/config.h +++ b/keyboards/bastardkb/charybdis/3x6/v2/splinky/config.h @@ -20,8 +20,6 @@ /* Key matrix configuration. */ #define MATRIX_ROW_PINS \ { GP26, GP5, GP4, GP9 } -#define MATRIX_COL_PINS \ - { GP27, GP28, GP15, GP6, GP7, GP8 } /* Handedness. */ #define MASTER_RIGHT @@ -39,10 +37,7 @@ /* SPI & PMW3360 settings. */ #define SPI_DRIVER SPID0 -#define SPI_SCK_PIN GP18 -#define SPI_MOSI_PIN GP19 #define SPI_MISO_PIN GP20 -#define PMW33XX_CS_PIN GP14 /* Reset. */ #define RP2040_BOOTLOADER_DOUBLE_TAP_RESET diff --git a/keyboards/bastardkb/charybdis/3x6/v2/splinky/readme.md b/keyboards/bastardkb/charybdis/3x6/v2/splinky/readme.md new file mode 100644 index 0000000000..22df77bbaa --- /dev/null +++ b/keyboards/bastardkb/charybdis/3x6/v2/splinky/readme.md @@ -0,0 +1,6 @@ +# Splinky controller + +The splinky is a Pro-Micro/Elite-C replacement with USB-C and RP2040. + +See https://github.com/plut0nium/0xB2/#releases to figure out the right version +for you (v2 and v3) supported. diff --git a/keyboards/bastardkb/charybdis/3x6/v2/splinky/v2/config.h b/keyboards/bastardkb/charybdis/3x6/v2/splinky/v2/config.h new file mode 100644 index 0000000000..7b7d94b320 --- /dev/null +++ b/keyboards/bastardkb/charybdis/3x6/v2/splinky/v2/config.h @@ -0,0 +1,27 @@ +/* + * Copyright 2022 Charly Delay <charly@codesink.dev> (@0xcharly) + * + * 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 2 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 <http://www.gnu.org/licenses/>. + */ + +#pragma once + +/* Key matrix configuration. */ +#define MATRIX_COL_PINS \ + { GP27, GP28, GP15, GP6, GP7, GP8 } + +/* SPI & PMW3360 settings. */ +#define SPI_SCK_PIN GP18 +#define SPI_MOSI_PIN GP19 +#define POINTING_DEVICE_CS_PIN GP14 diff --git a/keyboards/bastardkb/charybdis/3x6/v2/splinky/v2/rules.mk b/keyboards/bastardkb/charybdis/3x6/v2/splinky/v2/rules.mk new file mode 100644 index 0000000000..c9c50319db --- /dev/null +++ b/keyboards/bastardkb/charybdis/3x6/v2/splinky/v2/rules.mk @@ -0,0 +1,2 @@ +# Intentionally blank so that QMK detects this folder as a valid keyboard +# parameter. diff --git a/keyboards/bastardkb/charybdis/3x6/v2/splinky/v3/config.h b/keyboards/bastardkb/charybdis/3x6/v2/splinky/v3/config.h new file mode 100644 index 0000000000..0e9f2257f0 --- /dev/null +++ b/keyboards/bastardkb/charybdis/3x6/v2/splinky/v3/config.h @@ -0,0 +1,27 @@ +/* + * Copyright 2022 Charly Delay <charly@codesink.dev> (@0xcharly) + * + * 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 2 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 <http://www.gnu.org/licenses/>. + */ + +#pragma once + +/* Key matrix configuration. */ +#define MATRIX_COL_PINS \ + { GP27, GP28, GP21, GP6, GP7, GP8 } + +/* SPI & PMW3360 settings. */ +#define SPI_SCK_PIN GP22 +#define SPI_MOSI_PIN GP23 +#define POINTING_DEVICE_CS_PIN GP16 diff --git a/keyboards/bastardkb/charybdis/3x6/v2/splinky/v3/rules.mk b/keyboards/bastardkb/charybdis/3x6/v2/splinky/v3/rules.mk new file mode 100644 index 0000000000..c9c50319db --- /dev/null +++ b/keyboards/bastardkb/charybdis/3x6/v2/splinky/v3/rules.mk @@ -0,0 +1,2 @@ +# Intentionally blank so that QMK detects this folder as a valid keyboard +# parameter. diff --git a/keyboards/bastardkb/charybdis/3x6/v2/stemcell/config.h b/keyboards/bastardkb/charybdis/3x6/v2/stemcell/config.h new file mode 100644 index 0000000000..81c7e737a7 --- /dev/null +++ b/keyboards/bastardkb/charybdis/3x6/v2/stemcell/config.h @@ -0,0 +1,63 @@ +/* + * Copyright 2022 Charly Delay <charly@codesink.dev> (@0xcharly) + * + * 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 2 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 <http://www.gnu.org/licenses/>. + */ + +#pragma once + +/* Key matrix configuration. */ +#define MATRIX_ROW_PINS \ + { F7, C6, D4, B5 } +#define MATRIX_COL_PINS \ + { F6, F5, B6, D7, E6, B4 } + +/* Handedness. */ +#define MASTER_RIGHT + +// To use the handedness pin, resistors need to be installed on the adapter PCB. +// If so, uncomment the following code, and undefine MASTER_RIGHT above. +// #define A0 PAL_LINE(GPIOA, 0) +// #define SPLIT_HAND_PIN A0 +// #define SPLIT_HAND_PIN_LOW_IS_LEFT // High -> right, Low -> left. + +/* serial.c configuration (for split keyboard). */ +#define SOFT_SERIAL_PIN D2 + +/* RGB settings. */ +#define RGB_DI_PIN D3 +#define WS2812_PWM_DRIVER PWMD2 +#define WS2812_PWM_CHANNEL 4 +#define WS2812_PWM_PAL_MODE 1 +#define WS2812_DMA_STREAM STM32_DMA1_STREAM7 +#define WS2812_DMA_CHANNEL 3 + +/* CRC. */ +#define CRC8_USE_TABLE +#define CRC8_OPTIMIZE_SPEED + +/* SPI config for pmw3360 sensor. */ +#define SPI_DRIVER SPID1 +#define SPI_SCK_PIN B1 +#define SPI_SCK_PAL_MODE 5 +#define SPI_MOSI_PIN B2 +#define SPI_MOSI_PAL_MODE 5 +#define SPI_MISO_PIN B3 +#define SPI_MISO_PAL_MODE 5 + +/* PMW3360 settings. */ +#define A1 PAL_LINE(GPIOA, 1) +#define POINTING_DEVICE_CS_PIN A1 +#define PMW3360_CS_MODE 3 +#define PMW3360_CS_DIVISOR 64 diff --git a/keyboards/bastardkb/charybdis/3x6/v2/stemcell/halconf.h b/keyboards/bastardkb/charybdis/3x6/v2/stemcell/halconf.h new file mode 100644 index 0000000000..8141e0cf4b --- /dev/null +++ b/keyboards/bastardkb/charybdis/3x6/v2/stemcell/halconf.h @@ -0,0 +1,24 @@ +/* + * Copyright 2022 Charly Delay <charly@codesink.dev> (@0xcharly) + * + * 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 2 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 <http://www.gnu.org/licenses/>. + */ + +#pragma once + +#define HAL_USE_PWM TRUE +#define HAL_USE_SERIAL TRUE +#define HAL_USE_SPI TRUE + +#include_next <halconf.h> diff --git a/keyboards/bastardkb/charybdis/3x6/v2/stemcell/info.json b/keyboards/bastardkb/charybdis/3x6/v2/stemcell/info.json new file mode 100644 index 0000000000..516eb7dde3 --- /dev/null +++ b/keyboards/bastardkb/charybdis/3x6/v2/stemcell/info.json @@ -0,0 +1,6 @@ +{ + "keyboard_name": "Charybdis Mini (3x6) STeMCell", + "usb": { + "device_version": "2.0.0" + } +} diff --git a/keyboards/bastardkb/charybdis/3x6/v2/stemcell/mcuconf.h b/keyboards/bastardkb/charybdis/3x6/v2/stemcell/mcuconf.h new file mode 100644 index 0000000000..1a3c4433db --- /dev/null +++ b/keyboards/bastardkb/charybdis/3x6/v2/stemcell/mcuconf.h @@ -0,0 +1,32 @@ +/* + * Copyright 2022 Charly Delay <charly@codesink.dev> (@0xcharly) + * + * 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 2 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 <http://www.gnu.org/licenses/>. + */ + +#pragma once + +#include_next <mcuconf.h> + +#undef STM32_SPI_USE_SPI1 +#define STM32_SPI_USE_SPI1 TRUE + +#undef STM32_SERIAL_USE_USART1 +#define STM32_SERIAL_USE_USART1 FALSE + +#undef STM32_PWM_USE_TIM2 +#define STM32_PWM_USE_TIM2 TRUE + +#undef STM32_ST_USE_TIMER +#define STM32_ST_USE_TIMER 5 diff --git a/keyboards/bastardkb/charybdis/3x6/v2/stemcell/rules.mk b/keyboards/bastardkb/charybdis/3x6/v2/stemcell/rules.mk new file mode 100644 index 0000000000..94cd8a0deb --- /dev/null +++ b/keyboards/bastardkb/charybdis/3x6/v2/stemcell/rules.mk @@ -0,0 +1,38 @@ +# MCU name +MCU = STM32F411 + +# Bootloader selection +BOOTLOADER = stm32-dfu +CONVERT_TO = stemcell + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +NKRO_ENABLE = no # Enable N-Key Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output + +AUDIO_SUPPORTED = no # Audio is not supported +RGB_MATRIX_SUPPORTED = yes # RGB matrix is supported and enabled by default +RGBLIGHT_SUPPORTED = yes # RGB underglow is supported, but not enabled by default +RGB_MATRIX_ENABLE = yes # Enable keyboard RGB matrix functionality +RGB_MATRIX_DRIVER = WS2812 + +SPLIT_KEYBOARD = yes +LAYOUTS = split_3x6_3 + +POINTING_DEVICE_ENABLE = yes # Enable trackball +POINTING_DEVICE_DRIVER = pmw3360 +MOUSE_SHARED_EP = no # Unify multiple HID interfaces into a single Endpoint +KEYBOARD_SHARED_EP = yes + +SERIAL_DRIVER = usart +WS2812_DRIVER = pwm + +DEBOUNCE_TYPE = asym_eager_defer_pk |