summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJack Sangdahl <jack@pngu.org>2025-08-10 11:39:12 +0200
committerGitHub <noreply@github.com>2025-08-10 11:39:12 +0200
commit2695344241eabc8da3101a0c2cfecf1f0381226e (patch)
treec52520740708f6ff89f4577782a8103b8235b45a
parent00ca3628267ae85d3eb2ec19a364913c1fca434d (diff)
Refactor `bastardkb/charybdis/3x6` (#25493)
* Refactor bastardkb/charybdis/3x6 - Update keyboard aliases accordingly - Migrate various configuration to data-driven - Use short SPDX license headers - Remove configuration that trends towards user-specific (CRC Table) - Migrate common configuration upwards - Migrate keymap to JSON - Remove likely unneeded v1 revision per #23810 - Remove revisions splinky_2, splinky_3, and stemcell where a converter should be used - Rename v2/elitec -> elitec. Specifically named elitec, as this board requires pin compatibility with an Elite-C (bottom 5 pins) * Correct keyboard name in keymap * Replace unecessarily removed split hand pin configuration * Revert "Replace unecessarily removed split hand pin configuration" This reverts commit 737cb635fa8de29bdf0f4ae54cf51b7a4715c7f3. After second thought, it is not necessary to configure this by default, as any user who wishes to set handedness by pin and is using an Elite-C pin compatible development board will need to manually set the pin anyway, which likely means referencing the readme.md file, which also contains the necessary SPLIT_HAND_PIN_LOW_IS_LEFT configuration.
-rw-r--r--data/mappings/keyboard_aliases.hjson12
-rw-r--r--keyboards/bastardkb/charybdis/3x6/3x6.c91
-rw-r--r--keyboards/bastardkb/charybdis/3x6/blackpill/config.h33
-rw-r--r--keyboards/bastardkb/charybdis/3x6/blackpill/halconf.h21
-rw-r--r--keyboards/bastardkb/charybdis/3x6/blackpill/keyboard.json43
-rw-r--r--keyboards/bastardkb/charybdis/3x6/blackpill/mcuconf.h28
-rw-r--r--keyboards/bastardkb/charybdis/3x6/blackpill/readme.md3
-rw-r--r--keyboards/bastardkb/charybdis/3x6/blackpill/rules.mk6
-rw-r--r--keyboards/bastardkb/charybdis/3x6/config.h22
-rw-r--r--keyboards/bastardkb/charybdis/3x6/elitec/config.h5
-rw-r--r--keyboards/bastardkb/charybdis/3x6/elitec/keyboard.json19
-rw-r--r--keyboards/bastardkb/charybdis/3x6/info.json68
-rw-r--r--keyboards/bastardkb/charybdis/3x6/keymaps/default/keymap.c66
-rw-r--r--keyboards/bastardkb/charybdis/3x6/keymaps/default/keymap.json25
-rw-r--r--keyboards/bastardkb/charybdis/3x6/keymaps/default/readme.md7
-rw-r--r--keyboards/bastardkb/charybdis/3x6/readme.md15
-rw-r--r--keyboards/bastardkb/charybdis/3x6/rules.mk1
-rw-r--r--keyboards/bastardkb/charybdis/3x6/v1/elitec/config.h24
-rw-r--r--keyboards/bastardkb/charybdis/3x6/v1/elitec/keyboard.json41
-rw-r--r--keyboards/bastardkb/charybdis/3x6/v1/elitec/rules.mk4
-rw-r--r--keyboards/bastardkb/charybdis/3x6/v2/elitec/config.h24
-rw-r--r--keyboards/bastardkb/charybdis/3x6/v2/elitec/keyboard.json35
-rw-r--r--keyboards/bastardkb/charybdis/3x6/v2/elitec/rules.mk4
-rw-r--r--keyboards/bastardkb/charybdis/3x6/v2/splinky_2/config.h38
-rw-r--r--keyboards/bastardkb/charybdis/3x6/v2/splinky_2/keyboard.json33
-rw-r--r--keyboards/bastardkb/charybdis/3x6/v2/splinky_2/mcuconf.h23
-rw-r--r--keyboards/bastardkb/charybdis/3x6/v2/splinky_2/readme.md5
-rw-r--r--keyboards/bastardkb/charybdis/3x6/v2/splinky_2/rules.mk5
-rw-r--r--keyboards/bastardkb/charybdis/3x6/v2/splinky_3/config.h38
-rw-r--r--keyboards/bastardkb/charybdis/3x6/v2/splinky_3/keyboard.json33
-rw-r--r--keyboards/bastardkb/charybdis/3x6/v2/splinky_3/mcuconf.h23
-rw-r--r--keyboards/bastardkb/charybdis/3x6/v2/splinky_3/readme.md5
-rw-r--r--keyboards/bastardkb/charybdis/3x6/v2/splinky_3/rules.mk5
-rw-r--r--keyboards/bastardkb/charybdis/3x6/v2/stemcell/config.h52
-rw-r--r--keyboards/bastardkb/charybdis/3x6/v2/stemcell/halconf.h24
-rw-r--r--keyboards/bastardkb/charybdis/3x6/v2/stemcell/keyboard.json38
-rw-r--r--keyboards/bastardkb/charybdis/3x6/v2/stemcell/mcuconf.h32
-rw-r--r--keyboards/bastardkb/charybdis/3x6/v2/stemcell/rules.mk6
38 files changed, 141 insertions, 816 deletions
diff --git a/data/mappings/keyboard_aliases.hjson b/data/mappings/keyboard_aliases.hjson
index 73339a2c56..6b1a330bfb 100644
--- a/data/mappings/keyboard_aliases.hjson
+++ b/data/mappings/keyboard_aliases.hjson
@@ -80,6 +80,18 @@
80 "bastardkb/charybdis/3x5/v2/stemcell": { 80 "bastardkb/charybdis/3x5/v2/stemcell": {
81 "target": "bastardkb/charybdis/3x5/elitec" 81 "target": "bastardkb/charybdis/3x5/elitec"
82 }, 82 },
83 "bastardkb/charybdis/3x6/v2/elitec": {
84 "target": "bastardkb/charybdis/3x6/elitec"
85 },
86 "bastardkb/charybdis/3x6/v2/splinky_2": {
87 "target": "bastardkb/charybdis/3x6/elitec"
88 },
89 "bastardkb/charybdis/3x6/v2/splinky_3": {
90 "target": "bastardkb/charybdis/3x6/elitec"
91 },
92 "bastardkb/charybdis/3x6/v2/stemcell": {
93 "target": "bastardkb/charybdis/3x6/elitec"
94 },
83 "bastardkb/dilemma/3x5_2/splinky": { 95 "bastardkb/dilemma/3x5_2/splinky": {
84 "target": "bastardkb/dilemma/3x5_2/promicro" 96 "target": "bastardkb/dilemma/3x5_2/promicro"
85 }, 97 },
diff --git a/keyboards/bastardkb/charybdis/3x6/3x6.c b/keyboards/bastardkb/charybdis/3x6/3x6.c
deleted file mode 100644
index d2c0a39815..0000000000
--- a/keyboards/bastardkb/charybdis/3x6/3x6.c
+++ /dev/null
@@ -1,91 +0,0 @@
1/*
2 * Copyright 2022 Charly Delay <charly@codesink.dev> (@0xcharly)
3 *
4 * This program is free software: you can redistribute it and/or modify
5 * it under the terms of the GNU General Publicw License as published by
6 * the Free Software Foundation, either version 2 of the License, or
7 * (at your option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License
15 * along with this program. If not, see <http://www.gnu.org/licenses/>.
16 */
17
18#include "charybdis.h"
19
20// clang-format off
21#ifdef RGB_MATRIX_ENABLE
22/**
23 * \brief LEDs index.
24 *
25 # 0,0 14 28 42 56 70 84 98 126 140 154 168 182 196 210 224,0
26 # 0,0 15 30 45 60 75 90 105 119 134 149 164 179 194 209 224,0
27 * ╭────────────────────────╮ ╭────────────────────────╮
28 * 0 5 6 11 12 15 36 33 32 27 26 21
29 * ├────────────────────────┤ ├────────────────────────┤
30 * 1 4 7 10 13 16 37 34 31 28 25 22
31 * ├────────────────────────┤ ├────────────────────────┤
32 * 2 3 8 9 14 17 38 35 30 29 24 23
33 * ╰────────────────────────╯ ╰────────────────────────╯
34 * 18 19 20 39 40 XX
35 * ╰────────────╯ ╰────────────╯
36 *
37 * Note: the LED config simulates 42 LEDs instead of the actual 41 to prevent
38 * confusion when testing LEDs during assembly when handedness is not set
39 * correctly. Those fake LEDs are bound to the physical top-left corner.
40 */
41led_config_t g_led_config = { {
42 /* Key Matrix to LED index. */
43 // Left split.
44 { 0, 5, 6, 11, 12, 15 }, // Top row
45 { 1, 4, 7, 10, 13, 16 }, // Middle row
46 { 2, 3, 8, 9, 14, 17 }, // Bottom row
47 { NO_LED, 20, NO_LED, 18, 19, NO_LED }, // Thumb cluster
48 // Right split.
49 { 21, 26, 27, 32, 33, 36 }, // Top row
50 { 22, 25, 28, 31, 34, 37 }, // Middle row
51 { 23, 24, 29, 30, 35, 38 }, // Bottom row
52 { NO_LED, 41, NO_LED, 39, 40, NO_LED }, // Thumb cluster
53}, {
54 /* LED index to physical position. */
55 // Left split.
56 /* index=0 */ { 0, 0 }, { 0, 21 }, { 0, 42 }, // col 1 (left most)
57 /* index=3 */ { 15, 42 }, { 15, 21 }, { 15, 0 }, // col 2
58 /* index=6 */ { 30, 0 }, { 30, 21 }, { 30, 42 },
59 /* index=9 */ { 45, 42 }, { 45, 21 }, { 45, 0 },
60 /* index=12 */ { 60, 0 }, { 60, 21 }, { 60, 42 },
61 /* index=15 */ { 75, 0 }, { 75, 21 }, { 75, 42 },
62 /* index=18 */ { 75, 64 }, { 90, 64 }, { 105, 64 }, // Thumb cluster
63 // Right split.
64 /* index=21 */ { 224, 0 }, { 224, 21 }, { 224, 42 }, // col 12 (right most)
65 /* index=24 */ { 209, 42 }, { 209, 21 }, { 209, 0 }, // col 10
66 /* index=27 */ { 194, 0 }, { 194, 21 }, { 194, 42 },
67 /* index=30 */ { 179, 42 }, { 179, 21 }, { 179, 0 },
68 /* index=33 */ { 164, 0 }, { 164, 21 }, { 164, 42 },
69 /* index=36 */ { 149, 0 }, { 149, 21 }, { 149, 42 },
70 /* index=39 */ { 119, 64 }, { 134, 64 }, { 0, 0 }, // Thumb cluster
71}, {
72 /* LED index to flag. */
73 // Left split.
74 /* index=0 */ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, // col 1
75 /* index=3 */ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, // col 2
76 /* index=6 */ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT,
77 /* index=9 */ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT,
78 /* index=12 */ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT,
79 /* index=15 */ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT,
80 /* index=18 */ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, // Thumb cluster
81 // Right split.
82 /* index=21 */ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, // col 10
83 /* index=24 */ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, // col 9
84 /* index=27 */ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT,
85 /* index=30 */ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT,
86 /* index=33 */ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT,
87 /* index=36 */ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT,
88 /* index=39 */ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, // Thumb cluster
89} };
90#endif
91// clang-format on
diff --git a/keyboards/bastardkb/charybdis/3x6/blackpill/config.h b/keyboards/bastardkb/charybdis/3x6/blackpill/config.h
index e1365a109d..bb870669c8 100644
--- a/keyboards/bastardkb/charybdis/3x6/blackpill/config.h
+++ b/keyboards/bastardkb/charybdis/3x6/blackpill/config.h
@@ -1,26 +1,7 @@
1/* 1// Copyright 2022 Charly Delay <charly@codesink.dev> (@0xcharly)
2 * Copyright 2022 Charly Delay <charly@codesink.dev> (@0xcharly) 2// SPDX-License-Identifier: GPL-2.0-or-later
3 *
4 * This program is free software: you can redistribute it and/or modify
5 * it under the terms of the GNU General Publicw License as published by
6 * the Free Software Foundation, either version 2 of the License, or
7 * (at your option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License
15 * along with this program. If not, see <http://www.gnu.org/licenses/>.
16 */
17
18#pragma once 3#pragma once
19 4
20/* Handedness. */
21#define SPLIT_HAND_PIN A3 // High -> left, Low -> right.
22
23/* RGB settings. */
24#define WS2812_PWM_DRIVER PWMD2 5#define WS2812_PWM_DRIVER PWMD2
25#define WS2812_PWM_CHANNEL 2 6#define WS2812_PWM_CHANNEL 2
26#define WS2812_PWM_PAL_MODE 1 7#define WS2812_PWM_PAL_MODE 1
@@ -28,14 +9,6 @@
28#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM1 9#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM1
29#define WS2812_PWM_DMA_CHANNEL 3 10#define WS2812_PWM_DMA_CHANNEL 3
30 11
31/* Serial configuration for split keyboard. */
32#define SERIAL_USART_TX_PIN A9
33
34/* CRC. */
35#define CRC8_USE_TABLE
36#define CRC8_OPTIMIZE_SPEED
37
38/* SPI config for EEPROM and pmw3360 sensor. */
39#define SPI_DRIVER SPID1 12#define SPI_DRIVER SPID1
40#define SPI_SCK_PIN A5 13#define SPI_SCK_PIN A5
41#define SPI_SCK_PAL_MODE 5 14#define SPI_SCK_PAL_MODE 5
@@ -44,9 +17,7 @@
44#define SPI_MISO_PIN A6 17#define SPI_MISO_PIN A6
45#define SPI_MISO_PAL_MODE 5 18#define SPI_MISO_PAL_MODE 5
46 19
47/* EEPROM config. */
48#define EXTERNAL_EEPROM_SPI_SLAVE_SELECT_PIN A4 20#define EXTERNAL_EEPROM_SPI_SLAVE_SELECT_PIN A4
49 21
50/* PMW3360 settings. */
51#define POINTING_DEVICE_CS_PIN B14 22#define POINTING_DEVICE_CS_PIN B14
52#define PMW33XX_CS_DIVISOR 64 23#define PMW33XX_CS_DIVISOR 64
diff --git a/keyboards/bastardkb/charybdis/3x6/blackpill/halconf.h b/keyboards/bastardkb/charybdis/3x6/blackpill/halconf.h
index 5c5dff98d4..545fc20cb3 100644
--- a/keyboards/bastardkb/charybdis/3x6/blackpill/halconf.h
+++ b/keyboards/bastardkb/charybdis/3x6/blackpill/halconf.h
@@ -1,21 +1,6 @@
1/** 1// Copyright 2020 Nick Brassel (tzarc)
2 * Copyright 2020 Nick Brassel (tzarc) 2// Copyright 2022 Charly Delay <charly@codesink.dev> (@0xcharly)
3 * Copyright 2022 Charly Delay <charly@codesink.dev> (@0xcharly) 3// SPDX-License-Identifier: GPL-2.0-or-later
4 *
5 * This program is free software: you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation, either version 2 of the License, or
8 * (at your option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License
16 * along with this program. If not, see <http://www.gnu.org/licenses/>.
17 */
18
19#pragma once 4#pragma once
20 5
21#define HAL_USE_PWM TRUE 6#define HAL_USE_PWM TRUE
diff --git a/keyboards/bastardkb/charybdis/3x6/blackpill/keyboard.json b/keyboards/bastardkb/charybdis/3x6/blackpill/keyboard.json
index ecefbbeb99..df77023bd6 100644
--- a/keyboards/bastardkb/charybdis/3x6/blackpill/keyboard.json
+++ b/keyboards/bastardkb/charybdis/3x6/blackpill/keyboard.json
@@ -1,38 +1,23 @@
1{ 1{
2 "keyboard_name": "Charybdis Mini (3x6) Blackpill", 2 "development_board": "blackpill_f411",
3 "usb": {
4 "device_version": "1.0.0",
5 "shared_endpoint": {
6 "keyboard": true
7 }
8 },
9 "features": {
10 "bootmagic": true,
11 "mousekey": true,
12 "extrakey": true,
13 "rgb_matrix": true,
14 "pointing_device": true
15 },
16 "eeprom": { 3 "eeprom": {
17 "driver": "spi" 4 "driver": "spi"
18 }, 5 },
19 "split": {
20 "enabled": true
21 },
22 "rgb_matrix": {
23 "driver": "ws2812"
24 },
25 "ws2812": {
26 "pin": "A1",
27 "driver": "pwm"
28 },
29 "build": {
30 "debounce_type": "asym_eager_defer_pk"
31 },
32 "matrix_pins": { 6 "matrix_pins": {
33 "cols": ["B0", "B1", "B10", "B3", "B4", "B5"], 7 "cols": ["B0", "B1", "B10", "B3", "B4", "B5"],
34 "rows": ["A2", "B8", "A8", "B9"] 8 "rows": ["A2", "B8", "A8", "B9"]
35 }, 9 },
36 "diode_direction": "ROW2COL", 10 "split": {
37 "development_board": "blackpill_f411" 11 "handedness": {
12 "pin": "A3"
13 },
14 "serial": {
15 "driver": "usart",
16 "pin": "A9"
17 }
18 },
19 "ws2812": {
20 "driver": "pwm",
21 "pin": "A1"
22 }
38} 23}
diff --git a/keyboards/bastardkb/charybdis/3x6/blackpill/mcuconf.h b/keyboards/bastardkb/charybdis/3x6/blackpill/mcuconf.h
index e4cde4880b..ca63a57218 100644
--- a/keyboards/bastardkb/charybdis/3x6/blackpill/mcuconf.h
+++ b/keyboards/bastardkb/charybdis/3x6/blackpill/mcuconf.h
@@ -1,22 +1,7 @@
1/* 1// Copyright 2020 Nick Brassel (tzarc)
2 * Copyright 2020 Nick Brassel (tzarc) 2// Copyright 2021 Stefan Kerkmann (@KarlK90)
3 * Copyright 2021 Stefan Kerkmann (@KarlK90) 3// Copyright 2022 Charly Delay <charly@codesink.dev> (@0xcharly)
4 * Copyright 2022 Charly Delay <charly@codesink.dev> (@0xcharly) 4// SPDX-License-Identifier: GPL-2.0-or-later
5 *
6 * This program is free software: you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation, either version 2 of the License, or
9 * (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program. If not, see <http://www.gnu.org/licenses/>.
18 */
19
20#pragma once 5#pragma once
21 6
22#include_next <mcuconf.h> 7#include_next <mcuconf.h>
@@ -30,11 +15,6 @@
30#undef STM32_SPI_USE_SPI1 15#undef STM32_SPI_USE_SPI1
31#define STM32_SPI_USE_SPI1 TRUE 16#define STM32_SPI_USE_SPI1 TRUE
32 17
33#undef STM32_SPI_SPI1_RX_DMA_STREAM
34#define STM32_SPI_SPI1_RX_DMA_STREAM STM32_DMA_STREAM_ID(2, 0)
35#undef STM32_SPI_SPI1_TX_DMA_STREAM
36#define STM32_SPI_SPI1_TX_DMA_STREAM STM32_DMA_STREAM_ID(2, 3)
37
38#undef STM32_SERIAL_USE_USART1 18#undef STM32_SERIAL_USE_USART1
39#define STM32_SERIAL_USE_USART1 TRUE 19#define STM32_SERIAL_USE_USART1 TRUE
40 20
diff --git a/keyboards/bastardkb/charybdis/3x6/blackpill/readme.md b/keyboards/bastardkb/charybdis/3x6/blackpill/readme.md
deleted file mode 100644
index 6a9907c2ae..0000000000
--- a/keyboards/bastardkb/charybdis/3x6/blackpill/readme.md
+++ /dev/null
@@ -1,3 +0,0 @@
1# Charybdis Mini (3x6) BlackPill
2
3An ergonomic keyboard with integrated trackball, with BlackPill (STM32F411) mod.
diff --git a/keyboards/bastardkb/charybdis/3x6/blackpill/rules.mk b/keyboards/bastardkb/charybdis/3x6/blackpill/rules.mk
deleted file mode 100644
index 4373b9c33d..0000000000
--- a/keyboards/bastardkb/charybdis/3x6/blackpill/rules.mk
+++ /dev/null
@@ -1,6 +0,0 @@
1AUDIO_SUPPORTED = no # Audio is not supported
2
3POINTING_DEVICE_DRIVER = pmw3360
4MOUSE_SHARED_EP = no # Unify multiple HID interfaces into a single Endpoint
5
6SERIAL_DRIVER = usart
diff --git a/keyboards/bastardkb/charybdis/3x6/config.h b/keyboards/bastardkb/charybdis/3x6/config.h
deleted file mode 100644
index 1c952759a7..0000000000
--- a/keyboards/bastardkb/charybdis/3x6/config.h
+++ /dev/null
@@ -1,22 +0,0 @@
1/*
2 * Copyright 2021 Quentin LEBASTARD <qlebastard@gmail.com>
3 * Copyright 2021 Charly Delay <charly@codesink.dev> (@0xcharly)
4 *
5 * This program is free software: you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation, either version 2 of the License, or
8 * (at your option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License
16 * along with this program. If not, see <http://www.gnu.org/licenses/>.
17 */
18
19#pragma once
20
21/* Trackball angle adjustment. */
22#define ROTATIONAL_TRANSFORM_ANGLE -25
diff --git a/keyboards/bastardkb/charybdis/3x6/elitec/config.h b/keyboards/bastardkb/charybdis/3x6/elitec/config.h
new file mode 100644
index 0000000000..411ddaf6b9
--- /dev/null
+++ b/keyboards/bastardkb/charybdis/3x6/elitec/config.h
@@ -0,0 +1,5 @@
1// Copyright 2022 Charly Delay <charly@codesink.dev> (@0xcharly)
2// SPDX-License-Identifier: GPL-2.0-or-later
3#pragma once
4
5#define POINTING_DEVICE_CS_PIN F0
diff --git a/keyboards/bastardkb/charybdis/3x6/elitec/keyboard.json b/keyboards/bastardkb/charybdis/3x6/elitec/keyboard.json
new file mode 100644
index 0000000000..e736d9df98
--- /dev/null
+++ b/keyboards/bastardkb/charybdis/3x6/elitec/keyboard.json
@@ -0,0 +1,19 @@
1{
2 "build": {
3 "lto": true
4 },
5 "development_board": "elite_c",
6 "matrix_pins": {
7 "cols": ["F6", "F5", "B6", "D7", "E6", "B4"],
8 "rows": ["F7", "C6", "D4", "B5"]
9 },
10 "pin_compatible": "elite_c",
11 "split": {
12 "serial": {
13 "pin": "D2"
14 }
15 },
16 "ws2812": {
17 "pin": "D3"
18 }
19}
diff --git a/keyboards/bastardkb/charybdis/3x6/info.json b/keyboards/bastardkb/charybdis/3x6/info.json
index 3597e72534..5d1ba362f7 100644
--- a/keyboards/bastardkb/charybdis/3x6/info.json
+++ b/keyboards/bastardkb/charybdis/3x6/info.json
@@ -1,13 +1,64 @@
1{ 1{
2 "url": "https://bastardkb.com", 2 "keyboard_name": "Charybdis Mini (3x6)",
3 "usb": { 3 "diode_direction": "ROW2COL",
4 "pid": "0x1834" 4 "features": {
5 "bootmagic": true,
6 "extrakey": true,
7 "mousekey": false,
8 "pointing_device": true,
9 "rgb_matrix": true
5 }, 10 },
6 "rgb_matrix": { 11 "rgb_matrix": {
12 "driver": "ws2812",
13 "layout": [
14 {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4},
15 {"matrix": [1, 0], "x": 0, "y": 21, "flags": 4},
16 {"matrix": [2, 0], "x": 0, "y": 42, "flags": 4},
17 {"matrix": [2, 1], "x": 15, "y": 42, "flags": 4},
18 {"matrix": [1, 1], "x": 15, "y": 21, "flags": 4},
19 {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4},
20 {"matrix": [0, 2], "x": 30, "y": 0, "flags": 4},
21 {"matrix": [1, 2], "x": 30, "y": 21, "flags": 4},
22 {"matrix": [2, 2], "x": 30, "y": 42, "flags": 4},
23 {"matrix": [2, 3], "x": 45, "y": 42, "flags": 4},
24 {"matrix": [1, 3], "x": 45, "y": 21, "flags": 4},
25 {"matrix": [0, 3], "x": 45, "y": 0, "flags": 4},
26 {"matrix": [0, 4], "x": 60, "y": 0, "flags": 4},
27 {"matrix": [1, 4], "x": 60, "y": 21, "flags": 4},
28 {"matrix": [2, 4], "x": 60, "y": 42, "flags": 4},
29 {"matrix": [0, 5], "x": 75, "y": 0, "flags": 4},
30 {"matrix": [1, 5], "x": 75, "y": 21, "flags": 4},
31 {"matrix": [2, 5], "x": 75, "y": 42, "flags": 4},
32 {"matrix": [3, 3], "x": 75, "y": 64, "flags": 4},
33 {"matrix": [3, 4], "x": 90, "y": 64, "flags": 4},
34 {"matrix": [3, 1], "x": 105, "y": 64, "flags": 4},
35 {"matrix": [4, 0], "x": 224, "y": 0, "flags": 4},
36 {"matrix": [5, 0], "x": 224, "y": 21, "flags": 4},
37 {"matrix": [6, 0], "x": 224, "y": 42, "flags": 4},
38 {"matrix": [6, 1], "x": 209, "y": 42, "flags": 4},
39 {"matrix": [5, 1], "x": 209, "y": 21, "flags": 4},
40 {"matrix": [4, 1], "x": 209, "y": 0, "flags": 4},
41 {"matrix": [4, 2], "x": 194, "y": 0, "flags": 4},
42 {"matrix": [5, 2], "x": 194, "y": 21, "flags": 4},
43 {"matrix": [6, 2], "x": 194, "y": 42, "flags": 4},
44 {"matrix": [6, 3], "x": 179, "y": 42, "flags": 4},
45 {"matrix": [5, 3], "x": 179, "y": 21, "flags": 4},
46 {"matrix": [4, 3], "x": 179, "y": 0, "flags": 4},
47 {"matrix": [4, 4], "x": 164, "y": 0, "flags": 4},
48 {"matrix": [5, 4], "x": 164, "y": 21, "flags": 4},
49 {"matrix": [6, 4], "x": 164, "y": 42, "flags": 4},
50 {"matrix": [4, 5], "x": 149, "y": 0, "flags": 4},
51 {"matrix": [5, 5], "x": 149, "y": 21, "flags": 4},
52 {"matrix": [6, 5], "x": 149, "y": 42, "flags": 4},
53 {"matrix": [7, 3], "x": 119, "y": 64, "flags": 4},
54 {"matrix": [7, 4], "x": 134, "y": 64, "flags": 4},
55 {"matrix": [7, 1], "x": 149, "y": 64, "flags": 4}
56 ],
7 "split_count": [21, 21] 57 "split_count": [21, 21]
8 }, 58 },
9 "layout_aliases": { 59 "usb": {
10 "LAYOUT_charybdis_3x6": "LAYOUT" 60 "device_version": "2.0.0",
61 "pid": "0x1834"
11 }, 62 },
12 "layouts": { 63 "layouts": {
13 "LAYOUT": { 64 "LAYOUT": {
@@ -18,46 +69,39 @@
18 {"label": "L03", "matrix": [0, 3], "x": 3, "y": 0}, 69 {"label": "L03", "matrix": [0, 3], "x": 3, "y": 0},
19 {"label": "L04", "matrix": [0, 4], "x": 4, "y": 0}, 70 {"label": "L04", "matrix": [0, 4], "x": 4, "y": 0},
20 {"label": "L05", "matrix": [0, 5], "x": 5, "y": 0}, 71 {"label": "L05", "matrix": [0, 5], "x": 5, "y": 0},
21
22 {"label": "R00", "matrix": [4, 5], "x": 11, "y": 0}, 72 {"label": "R00", "matrix": [4, 5], "x": 11, "y": 0},
23 {"label": "R01", "matrix": [4, 4], "x": 12, "y": 0}, 73 {"label": "R01", "matrix": [4, 4], "x": 12, "y": 0},
24 {"label": "R02", "matrix": [4, 3], "x": 13, "y": 0}, 74 {"label": "R02", "matrix": [4, 3], "x": 13, "y": 0},
25 {"label": "R03", "matrix": [4, 2], "x": 14, "y": 0}, 75 {"label": "R03", "matrix": [4, 2], "x": 14, "y": 0},
26 {"label": "R04", "matrix": [4, 1], "x": 15, "y": 0}, 76 {"label": "R04", "matrix": [4, 1], "x": 15, "y": 0},
27 {"label": "R05", "matrix": [4, 0], "x": 16, "y": 0}, 77 {"label": "R05", "matrix": [4, 0], "x": 16, "y": 0},
28
29 {"label": "L10", "matrix": [1, 0], "x": 0, "y": 1}, 78 {"label": "L10", "matrix": [1, 0], "x": 0, "y": 1},
30 {"label": "L11", "matrix": [1, 1], "x": 1, "y": 1}, 79 {"label": "L11", "matrix": [1, 1], "x": 1, "y": 1},
31 {"label": "L12", "matrix": [1, 2], "x": 2, "y": 1}, 80 {"label": "L12", "matrix": [1, 2], "x": 2, "y": 1},
32 {"label": "L13", "matrix": [1, 3], "x": 3, "y": 1}, 81 {"label": "L13", "matrix": [1, 3], "x": 3, "y": 1},
33 {"label": "L14", "matrix": [1, 4], "x": 4, "y": 1}, 82 {"label": "L14", "matrix": [1, 4], "x": 4, "y": 1},
34 {"label": "L15", "matrix": [1, 5], "x": 5, "y": 1}, 83 {"label": "L15", "matrix": [1, 5], "x": 5, "y": 1},
35
36 {"label": "R10", "matrix": [5, 5], "x": 11, "y": 1}, 84 {"label": "R10", "matrix": [5, 5], "x": 11, "y": 1},
37 {"label": "R11", "matrix": [5, 4], "x": 12, "y": 1}, 85 {"label": "R11", "matrix": [5, 4], "x": 12, "y": 1},
38 {"label": "R12", "matrix": [5, 3], "x": 13, "y": 1}, 86 {"label": "R12", "matrix": [5, 3], "x": 13, "y": 1},
39 {"label": "R13", "matrix": [5, 2], "x": 14, "y": 1}, 87 {"label": "R13", "matrix": [5, 2], "x": 14, "y": 1},
40 {"label": "R14", "matrix": [5, 1], "x": 15, "y": 1}, 88 {"label": "R14", "matrix": [5, 1], "x": 15, "y": 1},
41 {"label": "R15", "matrix": [5, 0], "x": 16, "y": 1}, 89 {"label": "R15", "matrix": [5, 0], "x": 16, "y": 1},
42
43 {"label": "L20", "matrix": [2, 0], "x": 0, "y": 2}, 90 {"label": "L20", "matrix": [2, 0], "x": 0, "y": 2},
44 {"label": "L21", "matrix": [2, 1], "x": 1, "y": 2}, 91 {"label": "L21", "matrix": [2, 1], "x": 1, "y": 2},
45 {"label": "L22", "matrix": [2, 2], "x": 2, "y": 2}, 92 {"label": "L22", "matrix": [2, 2], "x": 2, "y": 2},
46 {"label": "L23", "matrix": [2, 3], "x": 3, "y": 2}, 93 {"label": "L23", "matrix": [2, 3], "x": 3, "y": 2},
47 {"label": "L24", "matrix": [2, 4], "x": 4, "y": 2}, 94 {"label": "L24", "matrix": [2, 4], "x": 4, "y": 2},
48 {"label": "L25", "matrix": [2, 5], "x": 5, "y": 2}, 95 {"label": "L25", "matrix": [2, 5], "x": 5, "y": 2},
49
50 {"label": "R20", "matrix": [6, 5], "x": 11, "y": 2}, 96 {"label": "R20", "matrix": [6, 5], "x": 11, "y": 2},
51 {"label": "R21", "matrix": [6, 4], "x": 12, "y": 2}, 97 {"label": "R21", "matrix": [6, 4], "x": 12, "y": 2},
52 {"label": "R22", "matrix": [6, 3], "x": 13, "y": 2}, 98 {"label": "R22", "matrix": [6, 3], "x": 13, "y": 2},
53 {"label": "R23", "matrix": [6, 2], "x": 14, "y": 2}, 99 {"label": "R23", "matrix": [6, 2], "x": 14, "y": 2},
54 {"label": "R24", "matrix": [6, 1], "x": 15, "y": 2}, 100 {"label": "R24", "matrix": [6, 1], "x": 15, "y": 2},
55 {"label": "R25", "matrix": [6, 0], "x": 16, "y": 2}, 101 {"label": "R25", "matrix": [6, 0], "x": 16, "y": 2},
56
57 {"label": "L33", "matrix": [3, 3], "x": 5, "y": 3}, 102 {"label": "L33", "matrix": [3, 3], "x": 5, "y": 3},
58 {"label": "L34", "matrix": [3, 4], "x": 6, "y": 3}, 103 {"label": "L34", "matrix": [3, 4], "x": 6, "y": 3},
59 {"label": "L31", "matrix": [3, 1], "x": 7, "y": 3}, 104 {"label": "L31", "matrix": [3, 1], "x": 7, "y": 3},
60
61 {"label": "R31", "matrix": [7, 1], "x": 9, "y": 3}, 105 {"label": "R31", "matrix": [7, 1], "x": 9, "y": 3},
62 {"label": "R33", "matrix": [7, 3], "x": 10, "y": 3} 106 {"label": "R33", "matrix": [7, 3], "x": 10, "y": 3}
63 ] 107 ]
diff --git a/keyboards/bastardkb/charybdis/3x6/keymaps/default/keymap.c b/keyboards/bastardkb/charybdis/3x6/keymaps/default/keymap.c
deleted file mode 100644
index ba8028104e..0000000000
--- a/keyboards/bastardkb/charybdis/3x6/keymaps/default/keymap.c
+++ /dev/null
@@ -1,66 +0,0 @@
1/**
2 * Copyright 2022 Charly Delay <charly@codesink.dev> (@0xcharly)
3 *
4 * This program is free software: you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation, either version 2 of the License, or
7 * (at your option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License
15 * along with this program. If not, see <http://www.gnu.org/licenses/>.
16 */
17#include QMK_KEYBOARD_H
18
19enum charybdis_keymap_layers {
20 LAYER_BASE = 0,
21 LAYER_LOWER,
22 LAYER_RAISE,
23};
24
25#define LOWER MO(LAYER_LOWER)
26#define RAISE MO(LAYER_RAISE)
27
28// clang-format off
29const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
30 [LAYER_BASE] = LAYOUT(
31 // ╭──────────────────────────────────────────────────────╮ ╭──────────────────────────────────────────────────────╮
32 KC_LGUI, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_RGUI,
33 // ├──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────┤
34 KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_RCTL,
35 // ├──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────┤
36 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
37 // ╰──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────╯
38 KC_BSPC, KC_SPC, LOWER, RAISE, KC_ENT
39 // ╰───────────────────────────╯ ╰──────────────────╯
40 ),
41
42 [LAYER_LOWER] = LAYOUT(
43 // ╭──────────────────────────────────────────────────────╮ ╭──────────────────────────────────────────────────────╮
44 XXXXXXX, RM_TOGG, KC_MNXT, KC_MPLY, KC_MPRV, XXXXXXX, KC_LBRC, KC_7, KC_8, KC_9, KC_RBRC, XXXXXXX,
45 // ├──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────┤
46 XXXXXXX, KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, XXXXXXX, KC_PPLS, KC_4, KC_5, KC_6, KC_PMNS, XXXXXXX,
47 // ├──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────┤
48 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, EE_CLR, QK_BOOT, KC_PAST, KC_1, KC_2, KC_3, KC_PSLS, XXXXXXX,
49 // ╰──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────╯
50 XXXXXXX, XXXXXXX, _______, XXXXXXX, _______
51 // ╰───────────────────────────╯ ╰──────────────────╯
52 ),
53
54 [LAYER_RAISE] = LAYOUT(
55 // ╭──────────────────────────────────────────────────────╮ ╭──────────────────────────────────────────────────────╮
56 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_VOLU, KC_MUTE, KC_VOLD, XXXXXXX, XXXXXXX,
57 // ├──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────┤
58 XXXXXXX, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, XXXXXXX, XXXXXXX, KC_RSFT, KC_RCTL, KC_RALT, KC_RGUI, XXXXXXX,
59 // ├──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────┤
60 XXXXXXX, KC_HOME, KC_PGUP, KC_PGDN, KC_END, XXXXXXX, QK_BOOT, EE_CLR, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
61 // ╰──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────╯
62 _______, _______, XXXXXXX, _______, XXXXXXX
63 // ╰───────────────────────────╯ ╰──────────────────╯
64 ),
65};
66// clang-format on
diff --git a/keyboards/bastardkb/charybdis/3x6/keymaps/default/keymap.json b/keyboards/bastardkb/charybdis/3x6/keymaps/default/keymap.json
new file mode 100644
index 0000000000..e87fe18f34
--- /dev/null
+++ b/keyboards/bastardkb/charybdis/3x6/keymaps/default/keymap.json
@@ -0,0 +1,25 @@
1{
2 "keyboard": "bastardkb/charybdis/3x6/elitec",
3 "keymap": "default",
4 "layout": "LAYOUT",
5 "layers": [
6 [
7 "KC_TAB", "KC_Q", "KC_W", "KC_E", "KC_R", "KC_T", "KC_Y", "KC_U", "KC_I", "KC_O", "KC_P", "KC_BSPC",
8 "KC_LCTL", "KC_A", "KC_S", "KC_D", "KC_F", "KC_G", "KC_H", "KC_J", "KC_K", "KC_L", "KC_SCLN", "KC_QUOT",
9 "KC_LSFT", "KC_Z", "KC_X", "KC_C", "KC_V", "KC_B", "KC_N", "KC_M", "KC_COMM", "KC_DOT", "KC_SLSH", "KC_ESC",
10 "KC_LGUI", "MO(1)", "KC_SPC", "KC_ENT", "MO(2)"
11 ],
12 [
13 "_______", "KC_1", "KC_2", "KC_3", "KC_4", "KC_5", "KC_6", "KC_7", "KC_8", "KC_9", "KC_0", "_______",
14 "_______", "KC_EXLM", "KC_AT", "KC_HASH", "KC_DLR", "KC_PERC", "KC_CIRC", "KC_AMPR", "KC_ASTR", "KC_LPRN", "KC_RPRN", "_______",
15 "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______",
16 "_______", "_______", "_______", "_______", "_______"
17 ],
18 [
19 "QK_BOOT", "_______", "_______", "_______", "_______", "_______", "RM_VALU", "RM_HUEU", "RM_SATU", "RM_NEXT", "RM_TOGG", "_______",
20 "EE_CLR", "_______", "_______", "_______", "_______", "_______", "RM_VALD", "RM_HUED", "RM_SATD", "RM_PREV", "_______", "_______",
21 "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______",
22 "_______", "_______", "_______", "_______", "_______"
23 ]
24 ]
25}
diff --git a/keyboards/bastardkb/charybdis/3x6/keymaps/default/readme.md b/keyboards/bastardkb/charybdis/3x6/keymaps/default/readme.md
deleted file mode 100644
index 8b407f68a2..0000000000
--- a/keyboards/bastardkb/charybdis/3x6/keymaps/default/readme.md
+++ /dev/null
@@ -1,7 +0,0 @@
1# Charybdis Mini (3x6) default keymap
2
3> :bulb: Have a look at the [`via` keymap](../via) for a more feature-rich layout.
4
5The Charydbis Mini (3x6) default keymap is inspired from the original [Dactyl Manuform](../../../../../handwired/dactyl_manuform) default keymap.
6
7This layout supports RGB matrix. However, due to space constraints on the MCU, only a limited number of effect can be enabled at once. Look at the `config.h` file and enable your favorite effect.
diff --git a/keyboards/bastardkb/charybdis/3x6/readme.md b/keyboards/bastardkb/charybdis/3x6/readme.md
deleted file mode 100644
index c6385ed8f1..0000000000
--- a/keyboards/bastardkb/charybdis/3x6/readme.md
+++ /dev/null
@@ -1,15 +0,0 @@
1# Charybdis Nano (3x6)
2
3An ergonomic keyboard with integrated trackball.
4
5The Charybdis is available in 4x6, 3x6 and 3x5 form factor at [bastardkb.com](https://bastardkb.com).
6
7## Keymaps
8
9### [`default`](keymaps/default)
10
11A simple QWERTY layout with 4 layers.
12
13### [`via`](keymaps/via)
14
15A [Miryoku-inspired](https://github.com/manna-harbour/miryoku), feature-rich, keymap with VIA support.
diff --git a/keyboards/bastardkb/charybdis/3x6/rules.mk b/keyboards/bastardkb/charybdis/3x6/rules.mk
new file mode 100644
index 0000000000..fab9162dc6
--- /dev/null
+++ b/keyboards/bastardkb/charybdis/3x6/rules.mk
@@ -0,0 +1 @@
POINTING_DEVICE_DRIVER = pmw3360
diff --git a/keyboards/bastardkb/charybdis/3x6/v1/elitec/config.h b/keyboards/bastardkb/charybdis/3x6/v1/elitec/config.h
deleted file mode 100644
index f5c54c58ae..0000000000
--- a/keyboards/bastardkb/charybdis/3x6/v1/elitec/config.h
+++ /dev/null
@@ -1,24 +0,0 @@
1/*
2 * Copyright 2022 Charly Delay <charly@codesink.dev> (@0xcharly)
3 *
4 * This program is free software: you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation, either version 2 of the License, or
7 * (at your option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License
15 * along with this program. If not, see <http://www.gnu.org/licenses/>.
16 */
17
18#pragma once
19
20/* Handedness. */
21#define MASTER_RIGHT
22
23/* PMW3360 settings. */
24#define POINTING_DEVICE_CS_PIN B0
diff --git a/keyboards/bastardkb/charybdis/3x6/v1/elitec/keyboard.json b/keyboards/bastardkb/charybdis/3x6/v1/elitec/keyboard.json
deleted file mode 100644
index cef4eab72f..0000000000
--- a/keyboards/bastardkb/charybdis/3x6/v1/elitec/keyboard.json
+++ /dev/null
@@ -1,41 +0,0 @@
1{
2 "keyboard_name": "Charybdis Mini (3x6) Elite-C",
3 "usb": {
4 "device_version": "1.0.0"
5 },
6 "features": {
7 "bootmagic": true,
8 "mousekey": false,
9 "extrakey": true,
10 "rgb_matrix": true,
11 "pointing_device": true
12 },
13 "build": {
14 "lto": true
15 },
16 "ws2812": {
17 "pin": "D3"
18 },
19 "rgb_matrix": {
20 "driver": "ws2812"
21 },
22 "matrix_pins": {
23 "cols": ["D5", "C7", "F0", "D7", "E6", "B4"],
24 "rows": ["B7", "C6", "D4", "B5"]
25 },
26 "diode_direction": "ROW2COL",
27 "split": {
28 "enabled": true,
29 "serial": {
30 "pin": "D2"
31 },
32 "matrix_pins": {
33 "right": {
34 "cols": ["F1", "C7", "B7", "D7", "E6", "B4"],
35 "rows": ["F0", "C6", "D4", "B5"]
36 }
37 }
38 },
39 "processor": "atmega32u4",
40 "bootloader": "atmel-dfu"
41}
diff --git a/keyboards/bastardkb/charybdis/3x6/v1/elitec/rules.mk b/keyboards/bastardkb/charybdis/3x6/v1/elitec/rules.mk
deleted file mode 100644
index 17dae28bd1..0000000000
--- a/keyboards/bastardkb/charybdis/3x6/v1/elitec/rules.mk
+++ /dev/null
@@ -1,4 +0,0 @@
1AUDIO_SUPPORTED = no # Audio is not supported
2
3POINTING_DEVICE_DRIVER = pmw3360
4MOUSE_SHARED_EP = no # Unify multiple HID interfaces into a single Endpoint
diff --git a/keyboards/bastardkb/charybdis/3x6/v2/elitec/config.h b/keyboards/bastardkb/charybdis/3x6/v2/elitec/config.h
deleted file mode 100644
index 3b91322247..0000000000
--- a/keyboards/bastardkb/charybdis/3x6/v2/elitec/config.h
+++ /dev/null
@@ -1,24 +0,0 @@
1/*
2 * Copyright 2022 Charly Delay <charly@codesink.dev> (@0xcharly)
3 *
4 * This program is free software: you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation, either version 2 of the License, or
7 * (at your option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License
15 * along with this program. If not, see <http://www.gnu.org/licenses/>.
16 */
17
18#pragma once
19
20/* Handedness. */
21#define MASTER_RIGHT
22
23/* PMW3360 settings. */
24#define POINTING_DEVICE_CS_PIN F0
diff --git a/keyboards/bastardkb/charybdis/3x6/v2/elitec/keyboard.json b/keyboards/bastardkb/charybdis/3x6/v2/elitec/keyboard.json
deleted file mode 100644
index fdfd2c38f9..0000000000
--- a/keyboards/bastardkb/charybdis/3x6/v2/elitec/keyboard.json
+++ /dev/null
@@ -1,35 +0,0 @@
1{
2 "keyboard_name": "Charybdis Mini (3x6) Elite-C",
3 "usb": {
4 "device_version": "2.0.0"
5 },
6 "features": {
7 "bootmagic": true,
8 "mousekey": false,
9 "extrakey": true,
10 "rgb_matrix": true,
11 "pointing_device": true
12 },
13 "build": {
14 "lto": true
15 },
16 "ws2812": {
17 "pin": "D3"
18 },
19 "rgb_matrix": {
20 "driver": "ws2812"
21 },
22 "matrix_pins": {
23 "cols": ["F6", "F5", "B6", "D7", "E6", "B4"],
24 "rows": ["F7", "C6", "D4", "B5"]
25 },
26 "diode_direction": "ROW2COL",
27 "split": {
28 "enabled": true,
29 "serial": {
30 "pin": "D2"
31 }
32 },
33 "processor": "atmega32u4",
34 "bootloader": "atmel-dfu"
35}
diff --git a/keyboards/bastardkb/charybdis/3x6/v2/elitec/rules.mk b/keyboards/bastardkb/charybdis/3x6/v2/elitec/rules.mk
deleted file mode 100644
index 17dae28bd1..0000000000
--- a/keyboards/bastardkb/charybdis/3x6/v2/elitec/rules.mk
+++ /dev/null
@@ -1,4 +0,0 @@
1AUDIO_SUPPORTED = no # Audio is not supported
2
3POINTING_DEVICE_DRIVER = pmw3360
4MOUSE_SHARED_EP = no # Unify multiple HID interfaces into a single Endpoint
diff --git a/keyboards/bastardkb/charybdis/3x6/v2/splinky_2/config.h b/keyboards/bastardkb/charybdis/3x6/v2/splinky_2/config.h
deleted file mode 100644
index e6e2a4f216..0000000000
--- a/keyboards/bastardkb/charybdis/3x6/v2/splinky_2/config.h
+++ /dev/null
@@ -1,38 +0,0 @@
1/*
2 * Copyright 2022 Charly Delay <charly@codesink.dev> (@0xcharly)
3 *
4 * This program is free software: you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation, either version 2 of the License, or
7 * (at your option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License
15 * along with this program. If not, see <http://www.gnu.org/licenses/>.
16 */
17
18#pragma once
19
20/* Handedness. */
21#define MASTER_RIGHT
22
23// To use the handedness pin, resistors need to be installed on the adapter PCB.
24// If so, uncomment the following code, and undefine MASTER_RIGHT above.
25// #define SPLIT_HAND_PIN GP13
26// #define SPLIT_HAND_PIN_LOW_IS_LEFT // High -> right, Low -> left.
27
28/* SPI & PMW3360 settings. */
29#define SPI_DRIVER SPID0
30#define SPI_SCK_PIN GP18
31#define SPI_MISO_PIN GP20
32#define SPI_MOSI_PIN GP19
33#define POINTING_DEVICE_CS_PIN GP14
34
35/* Reset. */
36#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET
37#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_LED GP17
38#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 1000U
diff --git a/keyboards/bastardkb/charybdis/3x6/v2/splinky_2/keyboard.json b/keyboards/bastardkb/charybdis/3x6/v2/splinky_2/keyboard.json
deleted file mode 100644
index 650bf46481..0000000000
--- a/keyboards/bastardkb/charybdis/3x6/v2/splinky_2/keyboard.json
+++ /dev/null
@@ -1,33 +0,0 @@
1{
2 "keyboard_name": "Charybdis Mini (3x6) Splinky",
3 "usb": {
4 "device_version": "2.0.0"
5 },
6 "features": {
7 "bootmagic": true,
8 "mousekey": false,
9 "extrakey": true,
10 "rgb_matrix": true,
11 "pointing_device": true
12 },
13 "rgb_matrix": {
14 "driver": "ws2812"
15 },
16 "matrix_pins": {
17 "cols": ["GP27", "GP28", "GP15", "GP6", "GP7", "GP8"],
18 "rows": ["GP26", "GP5", "GP4", "GP9"]
19 },
20 "diode_direction": "ROW2COL",
21 "split": {
22 "enabled": true,
23 "serial": {
24 "pin": "GP1"
25 }
26 },
27 "ws2812": {
28 "pin": "GP0",
29 "driver": "vendor"
30 },
31 "processor": "RP2040",
32 "bootloader": "rp2040"
33}
diff --git a/keyboards/bastardkb/charybdis/3x6/v2/splinky_2/mcuconf.h b/keyboards/bastardkb/charybdis/3x6/v2/splinky_2/mcuconf.h
deleted file mode 100644
index 6aaf31428c..0000000000
--- a/keyboards/bastardkb/charybdis/3x6/v2/splinky_2/mcuconf.h
+++ /dev/null
@@ -1,23 +0,0 @@
1/*
2 * Copyright 2022 Charly Delay <charly@codesink.dev> (@0xcharly)
3 *
4 * This program is free software: you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation, either version 2 of the License, or
7 * (at your option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License
15 * along with this program. If not, see <http://www.gnu.org/licenses/>.
16 */
17
18#pragma once
19
20#include_next <mcuconf.h>
21
22#undef RP_SPI_USE_SPI0
23#define RP_SPI_USE_SPI0 TRUE
diff --git a/keyboards/bastardkb/charybdis/3x6/v2/splinky_2/readme.md b/keyboards/bastardkb/charybdis/3x6/v2/splinky_2/readme.md
deleted file mode 100644
index 662eb5825c..0000000000
--- a/keyboards/bastardkb/charybdis/3x6/v2/splinky_2/readme.md
+++ /dev/null
@@ -1,5 +0,0 @@
1# Splinky controller
2
3The splinky is a Pro-Micro/Elite-C replacement with USB-C and RP2040.
4
5See [plut0nium/0xB2](https://github.com/plut0nium/0xB2/#releases) to figure out the right version for you (v2 or v3).
diff --git a/keyboards/bastardkb/charybdis/3x6/v2/splinky_2/rules.mk b/keyboards/bastardkb/charybdis/3x6/v2/splinky_2/rules.mk
deleted file mode 100644
index db29cb6789..0000000000
--- a/keyboards/bastardkb/charybdis/3x6/v2/splinky_2/rules.mk
+++ /dev/null
@@ -1,5 +0,0 @@
1AUDIO_SUPPORTED = no # Audio is not supported
2
3POINTING_DEVICE_DRIVER = pmw3360
4
5SERIAL_DRIVER = vendor
diff --git a/keyboards/bastardkb/charybdis/3x6/v2/splinky_3/config.h b/keyboards/bastardkb/charybdis/3x6/v2/splinky_3/config.h
deleted file mode 100644
index ee7745d41e..0000000000
--- a/keyboards/bastardkb/charybdis/3x6/v2/splinky_3/config.h
+++ /dev/null
@@ -1,38 +0,0 @@
1/*
2 * Copyright 2022 Charly Delay <charly@codesink.dev> (@0xcharly)
3 *
4 * This program is free software: you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation, either version 2 of the License, or
7 * (at your option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License
15 * along with this program. If not, see <http://www.gnu.org/licenses/>.
16 */
17
18#pragma once
19
20/* Handedness. */
21#define MASTER_RIGHT
22
23// To use the handedness pin, resistors need to be installed on the adapter PCB.
24// If so, uncomment the following code, and undefine MASTER_RIGHT above.
25// #define SPLIT_HAND_PIN GP15
26// #define SPLIT_HAND_PIN_LOW_IS_LEFT // High -> right, Low -> left.
27
28/* SPI & PMW3360 settings. */
29#define SPI_DRIVER SPID0
30#define SPI_SCK_PIN GP22
31#define SPI_MISO_PIN GP20
32#define SPI_MOSI_PIN GP23
33#define POINTING_DEVICE_CS_PIN GP16
34
35/* Reset. */
36#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET
37#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_LED GP17
38#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 1000U
diff --git a/keyboards/bastardkb/charybdis/3x6/v2/splinky_3/keyboard.json b/keyboards/bastardkb/charybdis/3x6/v2/splinky_3/keyboard.json
deleted file mode 100644
index b2a4890f56..0000000000
--- a/keyboards/bastardkb/charybdis/3x6/v2/splinky_3/keyboard.json
+++ /dev/null
@@ -1,33 +0,0 @@
1{
2 "keyboard_name": "Charybdis Mini (3x6) Splinky",
3 "usb": {
4 "device_version": "2.0.0"
5 },
6 "features": {
7 "bootmagic": true,
8 "mousekey": false,
9 "extrakey": true,
10 "rgb_matrix": true,
11 "pointing_device": true
12 },
13 "rgb_matrix": {
14 "driver": "ws2812"
15 },
16 "matrix_pins": {
17 "cols": ["GP27", "GP28", "GP21", "GP6", "GP7", "GP8"],
18 "rows": ["GP26", "GP5", "GP4", "GP9"]
19 },
20 "diode_direction": "ROW2COL",
21 "split": {
22 "enabled": true,
23 "serial": {
24 "pin": "GP1"
25 }
26 },
27 "ws2812": {
28 "pin": "GP0",
29 "driver": "vendor"
30 },
31 "processor": "RP2040",
32 "bootloader": "rp2040"
33}
diff --git a/keyboards/bastardkb/charybdis/3x6/v2/splinky_3/mcuconf.h b/keyboards/bastardkb/charybdis/3x6/v2/splinky_3/mcuconf.h
deleted file mode 100644
index 6aaf31428c..0000000000
--- a/keyboards/bastardkb/charybdis/3x6/v2/splinky_3/mcuconf.h
+++ /dev/null
@@ -1,23 +0,0 @@
1/*
2 * Copyright 2022 Charly Delay <charly@codesink.dev> (@0xcharly)
3 *
4 * This program is free software: you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation, either version 2 of the License, or
7 * (at your option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License
15 * along with this program. If not, see <http://www.gnu.org/licenses/>.
16 */
17
18#pragma once
19
20#include_next <mcuconf.h>
21
22#undef RP_SPI_USE_SPI0
23#define RP_SPI_USE_SPI0 TRUE
diff --git a/keyboards/bastardkb/charybdis/3x6/v2/splinky_3/readme.md b/keyboards/bastardkb/charybdis/3x6/v2/splinky_3/readme.md
deleted file mode 100644
index 662eb5825c..0000000000
--- a/keyboards/bastardkb/charybdis/3x6/v2/splinky_3/readme.md
+++ /dev/null
@@ -1,5 +0,0 @@
1# Splinky controller
2
3The splinky is a Pro-Micro/Elite-C replacement with USB-C and RP2040.
4
5See [plut0nium/0xB2](https://github.com/plut0nium/0xB2/#releases) to figure out the right version for you (v2 or v3).
diff --git a/keyboards/bastardkb/charybdis/3x6/v2/splinky_3/rules.mk b/keyboards/bastardkb/charybdis/3x6/v2/splinky_3/rules.mk
deleted file mode 100644
index db29cb6789..0000000000
--- a/keyboards/bastardkb/charybdis/3x6/v2/splinky_3/rules.mk
+++ /dev/null
@@ -1,5 +0,0 @@
1AUDIO_SUPPORTED = no # Audio is not supported
2
3POINTING_DEVICE_DRIVER = pmw3360
4
5SERIAL_DRIVER = vendor
diff --git a/keyboards/bastardkb/charybdis/3x6/v2/stemcell/config.h b/keyboards/bastardkb/charybdis/3x6/v2/stemcell/config.h
deleted file mode 100644
index 3efb323302..0000000000
--- a/keyboards/bastardkb/charybdis/3x6/v2/stemcell/config.h
+++ /dev/null
@@ -1,52 +0,0 @@
1/*
2 * Copyright 2022 Charly Delay <charly@codesink.dev> (@0xcharly)
3 *
4 * This program is free software: you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation, either version 2 of the License, or
7 * (at your option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License
15 * along with this program. If not, see <http://www.gnu.org/licenses/>.
16 */
17
18#pragma once
19
20/* Handedness. */
21#define MASTER_RIGHT
22
23// To use the handedness pin, resistors need to be installed on the adapter PCB.
24// If so, uncomment the following code, and undefine MASTER_RIGHT above.
25// #define A0 PAL_LINE(GPIOA, 0)
26// #define SPLIT_HAND_PIN A0
27// #define SPLIT_HAND_PIN_LOW_IS_LEFT // High -> right, Low -> left.
28
29/* RGB settings. */
30#define WS2812_PWM_DRIVER PWMD2
31#define WS2812_PWM_CHANNEL 4
32#define WS2812_PWM_PAL_MODE 1
33#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM7
34#define WS2812_PWM_DMA_CHANNEL 3
35
36/* CRC. */
37#define CRC8_USE_TABLE
38#define CRC8_OPTIMIZE_SPEED
39
40/* SPI config for pmw3360 sensor. */
41#define SPI_DRIVER SPID1
42#define SPI_SCK_PIN A5
43#define SPI_SCK_PAL_MODE 5
44#define SPI_MOSI_PIN A7
45#define SPI_MOSI_PAL_MODE 5
46#define SPI_MISO_PIN A6
47#define SPI_MISO_PAL_MODE 5
48
49/* PMW3360 settings. */
50#define POINTING_DEVICE_CS_PIN A1
51#define PMW3360_CS_MODE 3
52#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
deleted file mode 100644
index 8141e0cf4b..0000000000
--- a/keyboards/bastardkb/charybdis/3x6/v2/stemcell/halconf.h
+++ /dev/null
@@ -1,24 +0,0 @@
1/*
2 * Copyright 2022 Charly Delay <charly@codesink.dev> (@0xcharly)
3 *
4 * This program is free software: you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation, either version 2 of the License, or
7 * (at your option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License
15 * along with this program. If not, see <http://www.gnu.org/licenses/>.
16 */
17
18#pragma once
19
20#define HAL_USE_PWM TRUE
21#define HAL_USE_SERIAL TRUE
22#define HAL_USE_SPI TRUE
23
24#include_next <halconf.h>
diff --git a/keyboards/bastardkb/charybdis/3x6/v2/stemcell/keyboard.json b/keyboards/bastardkb/charybdis/3x6/v2/stemcell/keyboard.json
deleted file mode 100644
index a405395438..0000000000
--- a/keyboards/bastardkb/charybdis/3x6/v2/stemcell/keyboard.json
+++ /dev/null
@@ -1,38 +0,0 @@
1{
2 "keyboard_name": "Charybdis Mini (3x6) STeMCell",
3 "usb": {
4 "device_version": "2.0.0",
5 "shared_endpoint": {
6 "keyboard": true
7 }
8 },
9 "features": {
10 "bootmagic": true,
11 "mousekey": true,
12 "extrakey": true,
13 "rgb_matrix": true,
14 "pointing_device": true
15 },
16 "rgb_matrix": {
17 "driver": "ws2812"
18 },
19 "ws2812": {
20 "pin": "A2",
21 "driver": "pwm"
22 },
23 "build": {
24 "debounce_type": "asym_eager_defer_pk"
25 },
26 "matrix_pins": {
27 "cols": ["B1", "B2", "A4", "B4", "B5", "B8"],
28 "rows": ["B0", "B3", "A15", "B9"]
29 },
30 "diode_direction": "ROW2COL",
31 "split": {
32 "enabled": true,
33 "serial": {
34 "pin": "A3"
35 }
36 },
37 "development_board": "stemcell"
38}
diff --git a/keyboards/bastardkb/charybdis/3x6/v2/stemcell/mcuconf.h b/keyboards/bastardkb/charybdis/3x6/v2/stemcell/mcuconf.h
deleted file mode 100644
index 1a3c4433db..0000000000
--- a/keyboards/bastardkb/charybdis/3x6/v2/stemcell/mcuconf.h
+++ /dev/null
@@ -1,32 +0,0 @@
1/*
2 * Copyright 2022 Charly Delay <charly@codesink.dev> (@0xcharly)
3 *
4 * This program is free software: you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation, either version 2 of the License, or
7 * (at your option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License
15 * along with this program. If not, see <http://www.gnu.org/licenses/>.
16 */
17
18#pragma once
19
20#include_next <mcuconf.h>
21
22#undef STM32_SPI_USE_SPI1
23#define STM32_SPI_USE_SPI1 TRUE
24
25#undef STM32_SERIAL_USE_USART1
26#define STM32_SERIAL_USE_USART1 FALSE
27
28#undef STM32_PWM_USE_TIM2
29#define STM32_PWM_USE_TIM2 TRUE
30
31#undef STM32_ST_USE_TIMER
32#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
deleted file mode 100644
index 4373b9c33d..0000000000
--- a/keyboards/bastardkb/charybdis/3x6/v2/stemcell/rules.mk
+++ /dev/null
@@ -1,6 +0,0 @@
1AUDIO_SUPPORTED = no # Audio is not supported
2
3POINTING_DEVICE_DRIVER = pmw3360
4MOUSE_SHARED_EP = no # Unify multiple HID interfaces into a single Endpoint
5
6SERIAL_DRIVER = usart