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/v2/stemcell | |
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/v2/stemcell')
5 files changed, 163 insertions, 0 deletions
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 |