Răsfoiți Sursa

Refactor `bastardkb/charybdis/3x5` (#25488)

* Refactor bastardkb/charybdis/3x5

- 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 #23638
- 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)

* Aliases
Jack Sangdahl 1 an în urmă
părinte
comite
56ad3a5f43
43 a modificat fișierele cu 201 adăugiri și 943 ștergeri
  1. 12 0
      data/mappings/keyboard_aliases.hjson
  2. 0 87
      keyboards/bastardkb/charybdis/3x5/3x5.c
  3. 4 33
      keyboards/bastardkb/charybdis/3x5/blackpill/config.h
  4. 3 18
      keyboards/bastardkb/charybdis/3x5/blackpill/halconf.h
  5. 14 29
      keyboards/bastardkb/charybdis/3x5/blackpill/keyboard.json
  6. 4 24
      keyboards/bastardkb/charybdis/3x5/blackpill/mcuconf.h
  7. 0 3
      keyboards/bastardkb/charybdis/3x5/blackpill/readme.md
  8. 0 5
      keyboards/bastardkb/charybdis/3x5/blackpill/rules.mk
  9. 0 22
      keyboards/bastardkb/charybdis/3x5/config.h
  10. 5 0
      keyboards/bastardkb/charybdis/3x5/elitec/config.h
  11. 19 0
      keyboards/bastardkb/charybdis/3x5/elitec/keyboard.json
  12. 50 14
      keyboards/bastardkb/charybdis/3x5/info.json
  13. 0 71
      keyboards/bastardkb/charybdis/3x5/keymaps/default/keymap.c
  14. 26 0
      keyboards/bastardkb/charybdis/3x5/keymaps/default/keymap.json
  15. 0 7
      keyboards/bastardkb/charybdis/3x5/keymaps/default/readme.md
  16. 0 15
      keyboards/bastardkb/charybdis/3x5/readme.md
  17. 1 0
      keyboards/bastardkb/charybdis/3x5/rules.mk
  18. 0 25
      keyboards/bastardkb/charybdis/3x5/v1/elitec/config.h
  19. 0 41
      keyboards/bastardkb/charybdis/3x5/v1/elitec/keyboard.json
  20. 0 4
      keyboards/bastardkb/charybdis/3x5/v1/elitec/rules.mk
  21. 0 24
      keyboards/bastardkb/charybdis/3x5/v2/elitec/config.h
  22. 0 35
      keyboards/bastardkb/charybdis/3x5/v2/elitec/keyboard.json
  23. 0 4
      keyboards/bastardkb/charybdis/3x5/v2/elitec/rules.mk
  24. 0 38
      keyboards/bastardkb/charybdis/3x5/v2/splinky_2/config.h
  25. 0 33
      keyboards/bastardkb/charybdis/3x5/v2/splinky_2/keyboard.json
  26. 0 23
      keyboards/bastardkb/charybdis/3x5/v2/splinky_2/mcuconf.h
  27. 0 5
      keyboards/bastardkb/charybdis/3x5/v2/splinky_2/readme.md
  28. 0 5
      keyboards/bastardkb/charybdis/3x5/v2/splinky_2/rules.mk
  29. 0 38
      keyboards/bastardkb/charybdis/3x5/v2/splinky_3/config.h
  30. 0 33
      keyboards/bastardkb/charybdis/3x5/v2/splinky_3/keyboard.json
  31. 0 23
      keyboards/bastardkb/charybdis/3x5/v2/splinky_3/mcuconf.h
  32. 0 5
      keyboards/bastardkb/charybdis/3x5/v2/splinky_3/readme.md
  33. 0 5
      keyboards/bastardkb/charybdis/3x5/v2/splinky_3/rules.mk
  34. 0 52
      keyboards/bastardkb/charybdis/3x5/v2/stemcell/config.h
  35. 0 24
      keyboards/bastardkb/charybdis/3x5/v2/stemcell/halconf.h
  36. 0 38
      keyboards/bastardkb/charybdis/3x5/v2/stemcell/keyboard.json
  37. 0 32
      keyboards/bastardkb/charybdis/3x5/v2/stemcell/mcuconf.h
  38. 0 6
      keyboards/bastardkb/charybdis/3x5/v2/stemcell/rules.mk
  39. 4 19
      keyboards/bastardkb/charybdis/charybdis.c
  40. 3 18
      keyboards/bastardkb/charybdis/charybdis.h
  41. 5 63
      keyboards/bastardkb/charybdis/config.h
  42. 46 2
      keyboards/bastardkb/charybdis/info.json
  43. 5 20
      keyboards/bastardkb/charybdis/post_config.h

+ 12 - 0
data/mappings/keyboard_aliases.hjson

@@ -68,6 +68,18 @@
     "bakeneko80": {
         "target": "kkatano/bakeneko80"
     },
+    "bastardkb/charybdis/3x5/v2/elitec": {
+        "target": "bastardkb/charybdis/3x5/elitec"
+    },
+    "bastardkb/charybdis/3x5/v2/splinky_2": {
+        "target": "bastardkb/charybdis/3x5/elitec"
+    },
+    "bastardkb/charybdis/3x5/v2/splinky_3": {
+        "target": "bastardkb/charybdis/3x5/elitec"
+    },
+    "bastardkb/charybdis/3x5/v2/stemcell": {
+        "target": "bastardkb/charybdis/3x5/elitec"
+    },
     "bastardkb/dilemma/3x5_2/splinky": {
         "target": "bastardkb/dilemma/3x5_2/promicro"
     },

+ 0 - 87
keyboards/bastardkb/charybdis/3x5/3x5.c

@@ -1,87 +0,0 @@
-/*
- * Copyright 2020 Christopher Courtney <drashna@live.com> (@drashna)
- * Copyright 2021 Quentin LEBASTARD <qlebastard@gmail.com>
- * Copyright 2021 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 Publicw 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/>.
- */
-
-#include "charybdis.h"
-
-// clang-format off
-#ifdef RGB_MATRIX_ENABLE
-/**
- * \brief LEDs index.
- *
- * ╭────────────────────╮                 ╭────────────────────╮
- *    2   3   8   9  12                     30  27  26  21  20
- * ├────────────────────┤                 ├────────────────────┤
- *    1   4   7  10  13                     31  28  25  22  19
- * ├────────────────────┤                 ├────────────────────┤
- *    0   5   6  11  14                     32  29  24  23  18
- * ╰────────────────────╯                 ╰────────────────────╯
- *                   15  16  17     33  34  XX
- *                 ╰────────────╯ ╰────────────╯
- *
- * Note: the LED config simulates 36 LEDs instead of the actual 35 to prevent
- * confusion when testing LEDs during assembly when handedness is not set
- * correctly.  Those fake LEDs are bound to the physical top-left corner.
- */
-led_config_t g_led_config = { {
-    /* Key Matrix to LED index. */
-    // Left split.
-    {      2,      3,      8,      9,     12 }, // Top row
-    {      1,      4,      7,     10,     13 }, // Middle row
-    {      0,      5,      6,     11,     14 }, // Bottom row
-    {     17, NO_LED,     15,     16, NO_LED }, // Thumb cluster
-    // Right split.
-    {     20,     21,     26,     27,     30 }, // Top row
-    {     19,     22,     25,     28,     31 }, // Middle row
-    {     18,     23,     24,     29,     32 }, // Bottom row
-    {     33, NO_LED,     34, NO_LED, NO_LED }, // Thumb cluster
-}, {
-    /* LED index to physical position. */
-    // Left split.
-    /* index=0  */ {   0,  42 }, {   0,  21 }, {   0,   0 }, // col 1 (left most)
-    /* index=3  */ {  18,   0 }, {  18,  21 }, {  18,  42 }, // col 2
-    /* index=6  */ {  36,  42 }, {  36,  21 }, {  36,   0 },
-    /* index=9  */ {  54,   0 }, {  54,  21 }, {  54,  42 },
-    /* index=12 */ {  72,   0 }, {  72,  21 }, {  72,  42 },
-    /* index=15 */ {  72,  64 }, {  90,  64 }, { 108,  64 }, // Thumb cluster
-    // Right split.
-    /* index=18 */ { 224,  42 }, { 224,  21 }, { 224,   0 }, // col 10 (right most)
-    /* index=21 */ { 206,   0 }, { 206,  21 }, { 206,  42 }, // col 9
-    /* index=24 */ { 188,  42 }, { 188,  21 }, { 188,   0 },
-    /* index=27 */ { 170,   0 }, { 170,  21 }, { 170,  42 },
-    /* index=30 */ { 152,   0 }, { 152,  21 }, { 152,  42 },
-    /* index=33 */ { 134,  64 }, { 152,  64 }, {   0,   0 },
-}, {
-    /* LED index to flag. */
-    // Left split.
-    /* index=0  */ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, // col 1
-    /* index=3  */ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, // col 2
-    /* index=6  */ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT,
-    /* index=9  */ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT,
-    /* index=12 */ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT,
-    /* index=15 */ LED_FLAG_MODIFIER, LED_FLAG_MODIFIER, LED_FLAG_MODIFIER, // Thumb cluster
-    // Right split.
-    /* index=18 */ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, // col 10
-    /* index=21 */ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, // col 9
-    /* index=24 */ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT,
-    /* index=27 */ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT,
-    /* index=30 */ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT,
-    /* index=33 */ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, // Thumb cluster
-} };
-#endif
-// clang-format on

+ 4 - 33
keyboards/bastardkb/charybdis/3x5/blackpill/config.h

@@ -1,28 +1,9 @@
-/*
- * Copyright 2020 Christopher Courtney <drashna@live.com> (@drashna)
- * Copyright 2021 Stefan Kerkmann (@KarlK90)
- * Copyright 2021 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 Publicw 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/>.
- */
-
+// Copyright 2020 Christopher Courtney <drashna@live.com> (@drashna)
+// Copyright 2021 Stefan Kerkmann (@KarlK90)
+// Copyright 2021 Charly Delay <charly@codesink.dev> (@0xcharly)
+// SPDX-License-Identifier: GPL-2.0-or-later
 #pragma once
 
-/* Handedness. */
-#define SPLIT_HAND_PIN A3 // High -> left, Low -> right.
-
-/* RGB settings. */
 #define WS2812_PWM_DRIVER PWMD2
 #define WS2812_PWM_CHANNEL 2
 #define WS2812_PWM_PAL_MODE 1
@@ -30,14 +11,6 @@
 #define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM1
 #define WS2812_PWM_DMA_CHANNEL 3
 
-/* Serial configuration for split keyboard. */
-#define SERIAL_USART_TX_PIN A9
-
-/* CRC. */
-#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
@@ -46,9 +19,7 @@
 #define SPI_MISO_PIN A6
 #define SPI_MISO_PAL_MODE 5
 
-/* EEPROM config. */
 #define EXTERNAL_EEPROM_SPI_SLAVE_SELECT_PIN A4
 
-/* PMW3360 settings. */
 #define POINTING_DEVICE_CS_PIN B14
 #define PMW33XX_CS_DIVISOR 64

+ 3 - 18
keyboards/bastardkb/charybdis/3x5/blackpill/halconf.h

@@ -1,21 +1,6 @@
-/**
- * Copyright 2020 Nick Brassel (tzarc)
- * Copyright 2021 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/>.
- */
-
+// Copyright 2020 Nick Brassel (tzarc)
+// Copyright 2021 Charly Delay <charly@codesink.dev> (@0xcharly)
+// SPDX-License-Identifier: GPL-2.0-or-later
 #pragma once
 
 #define HAL_USE_PWM TRUE

+ 14 - 29
keyboards/bastardkb/charybdis/3x5/blackpill/keyboard.json

@@ -1,38 +1,23 @@
 {
-    "keyboard_name": "Charybdis Nano (3x5) Blackpill",
-    "usb": {
-        "device_version": "1.0.0",
-        "shared_endpoint": {
-            "keyboard": true
-        }
-    },
-    "features": {
-        "bootmagic": true,
-        "mousekey": true,
-        "extrakey": true,
-        "rgb_matrix": true,
-        "pointing_device": true
-    },
+    "development_board": "blackpill_f411",
     "eeprom": {
         "driver": "spi"
     },
-    "split": {
-        "enabled": true
-    },
-    "rgb_matrix": {
-        "driver": "ws2812"
-    },
-    "ws2812": {
-        "pin": "A1",
-        "driver": "pwm"
-    },
-    "build": {
-        "debounce_type": "asym_eager_defer_pk"
-    },
     "matrix_pins": {
         "cols": ["B1", "B10", "B3", "B4", "B5"],
         "rows": ["A2", "B8", "A8", "B9"]
     },
-    "diode_direction": "ROW2COL",
-    "development_board": "blackpill_f411"
+    "split": {
+        "handedness": {
+            "pin": "A3"
+        },
+        "serial": {
+            "driver": "usart",
+            "pin": "A9"
+        }
+    },
+    "ws2812": {
+        "driver": "pwm",
+        "pin": "A1"
+    }
 }

+ 4 - 24
keyboards/bastardkb/charybdis/3x5/blackpill/mcuconf.h

@@ -1,22 +1,7 @@
-/*
- * Copyright 2020 Nick Brassel (tzarc)
- * Copyright 2021 Stefan Kerkmann (@KarlK90)
- * Copyright 2021 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/>.
- */
-
+// Copyright 2020 Nick Brassel (tzarc)
+// Copyright 2021 Stefan Kerkmann (@KarlK90)
+// Copyright 2021 Charly Delay <charly@codesink.dev> (@0xcharly)
+// SPDX-License-Identifier: GPL-2.0-or-later
 #pragma once
 
 #include_next <mcuconf.h>
@@ -30,11 +15,6 @@
 #undef STM32_SPI_USE_SPI1
 #define STM32_SPI_USE_SPI1 TRUE
 
-#undef STM32_SPI_SPI1_RX_DMA_STREAM
-#define STM32_SPI_SPI1_RX_DMA_STREAM STM32_DMA_STREAM_ID(2, 0)
-#undef STM32_SPI_SPI1_TX_DMA_STREAM
-#define STM32_SPI_SPI1_TX_DMA_STREAM STM32_DMA_STREAM_ID(2, 3)
-
 #undef STM32_SERIAL_USE_USART1
 #define STM32_SERIAL_USE_USART1 TRUE
 

+ 0 - 3
keyboards/bastardkb/charybdis/3x5/blackpill/readme.md

@@ -1,3 +0,0 @@
-# Charybdis Nano (3x5) BlackPill
-
-An ergonomic keyboard with integrated trackball, with BlackPill (STM32F411) mod.

+ 0 - 5
keyboards/bastardkb/charybdis/3x5/blackpill/rules.mk

@@ -1,5 +0,0 @@
-AUDIO_SUPPORTED = no        # Audio is not supported
-
-POINTING_DEVICE_DRIVER = pmw3360
-MOUSE_SHARED_EP = no # Unify multiple HID interfaces into a single Endpoint
-SERIAL_DRIVER = usart

+ 0 - 22
keyboards/bastardkb/charybdis/3x5/config.h

@@ -1,22 +0,0 @@
-/*
- * Copyright 2021 Quentin LEBASTARD <qlebastard@gmail.com>
- * Copyright 2021 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
-
-/* Trackball angle adjustment. */
-#define ROTATIONAL_TRANSFORM_ANGLE -25

+ 5 - 0
keyboards/bastardkb/charybdis/3x5/elitec/config.h

@@ -0,0 +1,5 @@
+// Copyright 2022 Charly Delay <charly@codesink.dev> (@0xcharly)
+// SPDX-License-Identifier: GPL-2.0-or-later
+#pragma once
+
+#define POINTING_DEVICE_CS_PIN F0

+ 19 - 0
keyboards/bastardkb/charybdis/3x5/elitec/keyboard.json

@@ -0,0 +1,19 @@
+{
+    "build": {
+        "lto": true
+    },
+    "development_board": "elite_c",
+    "matrix_pins": {
+        "cols": ["F5", "B6", "D7", "E6", "B4"],
+        "rows": ["F7", "C6", "D4", "B5"]
+    },
+    "pin_compatible": "elite_c",
+    "split": {
+        "serial": {
+            "pin": "D2"
+        }
+    },
+    "ws2812": {
+        "pin": "D3"
+    }
+}

+ 50 - 14
keyboards/bastardkb/charybdis/3x5/info.json

@@ -1,15 +1,58 @@
 {
-    "manufacturer": "Bastard Keyboards",
-    "url": "https://bastardkb.com/charybdis-nano",
-    "usb": {
-        "pid": "0x1832",
-        "vid": "0xA8F8"
+    "keyboard_name": "Charybdis Nano (3x5)",
+    "diode_direction": "ROW2COL",
+    "features": {
+        "bootmagic": true,
+        "extrakey": true,
+        "mousekey": false,
+        "pointing_device": true,
+        "rgb_matrix": true
     },
     "rgb_matrix": {
+        "driver": "ws2812",
+        "layout": [
+            {"matrix": [2, 0], "x": 0, "y": 42, "flags": 4},
+            {"matrix": [1, 0], "x": 0, "y": 21, "flags": 4},
+            {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4},
+            {"matrix": [0, 1], "x": 18, "y": 0, "flags": 4},
+            {"matrix": [1, 1], "x": 18, "y": 21, "flags": 4},
+            {"matrix": [2, 1], "x": 18, "y": 42, "flags": 4},
+            {"matrix": [2, 2], "x": 36, "y": 42, "flags": 4},
+            {"matrix": [1, 2], "x": 36, "y": 21, "flags": 4},
+            {"matrix": [0, 2], "x": 36, "y": 0, "flags": 4},
+            {"matrix": [0, 3], "x": 54, "y": 0, "flags": 4},
+            {"matrix": [1, 3], "x": 54, "y": 21, "flags": 4},
+            {"matrix": [2, 3], "x": 54, "y": 42, "flags": 4},
+            {"matrix": [0, 4], "x": 72, "y": 0, "flags": 4},
+            {"matrix": [1, 4], "x": 72, "y": 21, "flags": 4},
+            {"matrix": [2, 4], "x": 72, "y": 42, "flags": 4},
+            {"matrix": [3, 2], "x": 72, "y": 64, "flags": 1},
+            {"matrix": [3, 3], "x": 90, "y": 64, "flags": 1},
+            {"matrix": [3, 0], "x": 108, "y": 64, "flags": 1},
+            {"matrix": [6, 0], "x": 224, "y": 42, "flags": 4},
+            {"matrix": [5, 0], "x": 224, "y": 21, "flags": 4},
+            {"matrix": [4, 0], "x": 224, "y": 0, "flags": 4},
+            {"matrix": [4, 1], "x": 206, "y": 0, "flags": 4},
+            {"matrix": [5, 1], "x": 206, "y": 21, "flags": 4},
+            {"matrix": [6, 1], "x": 206, "y": 42, "flags": 4},
+            {"matrix": [6, 2], "x": 188, "y": 42, "flags": 4},
+            {"matrix": [5, 2], "x": 188, "y": 21, "flags": 4},
+            {"matrix": [4, 2], "x": 188, "y": 0, "flags": 4},
+            {"matrix": [4, 3], "x": 170, "y": 0, "flags": 4},
+            {"matrix": [5, 3], "x": 170, "y": 21, "flags": 4},
+            {"matrix": [6, 3], "x": 170, "y": 42, "flags": 4},
+            {"matrix": [4, 4], "x": 152, "y": 0, "flags": 4},
+            {"matrix": [5, 4], "x": 152, "y": 21, "flags": 4},
+            {"matrix": [6, 4], "x": 152, "y": 42, "flags": 4},
+            {"matrix": [7, 0], "x": 134, "y": 64, "flags": 4},
+            {"matrix": [7, 2], "x": 152, "y": 64, "flags": 4},
+            {"x": 170, "y": 64, "flags": 4}
+        ],
         "split_count": [18, 18]
     },
-    "layout_aliases": {
-        "LAYOUT_charybdis_3x5": "LAYOUT"
+    "usb": {
+        "device_version": "2.0.0",
+        "pid": "0x1832"
     },
     "layouts": {
         "LAYOUT": {
@@ -19,41 +62,34 @@
                 {"matrix": [0, 2], "x": 2, "y": 0},
                 {"matrix": [0, 3], "x": 3, "y": 0},
                 {"matrix": [0, 4], "x": 4, "y": 0},
-
                 {"matrix": [4, 4], "x": 11, "y": 0},
                 {"matrix": [4, 3], "x": 12, "y": 0},
                 {"matrix": [4, 2], "x": 13, "y": 0},
                 {"matrix": [4, 1], "x": 14, "y": 0},
                 {"matrix": [4, 0], "x": 15, "y": 0},
-
                 {"matrix": [1, 0], "x": 0, "y": 1},
                 {"matrix": [1, 1], "x": 1, "y": 1},
                 {"matrix": [1, 2], "x": 2, "y": 1},
                 {"matrix": [1, 3], "x": 3, "y": 1},
                 {"matrix": [1, 4], "x": 4, "y": 1},
-
                 {"matrix": [5, 4], "x": 11, "y": 1},
                 {"matrix": [5, 3], "x": 12, "y": 1},
                 {"matrix": [5, 2], "x": 13, "y": 1},
                 {"matrix": [5, 1], "x": 14, "y": 1},
                 {"matrix": [5, 0], "x": 15, "y": 1},
-
                 {"matrix": [2, 0], "x": 0, "y": 2},
                 {"matrix": [2, 1], "x": 1, "y": 2},
                 {"matrix": [2, 2], "x": 2, "y": 2},
                 {"matrix": [2, 3], "x": 3, "y": 2},
                 {"matrix": [2, 4], "x": 4, "y": 2},
-
                 {"matrix": [6, 4], "x": 11, "y": 2},
                 {"matrix": [6, 3], "x": 12, "y": 2},
                 {"matrix": [6, 2], "x": 13, "y": 2},
                 {"matrix": [6, 1], "x": 14, "y": 2},
                 {"matrix": [6, 0], "x": 15, "y": 2},
-
                 {"matrix": [3, 2], "x": 4, "y": 3},
                 {"matrix": [3, 3], "x": 5, "y": 3},
                 {"matrix": [3, 0], "x": 6, "y": 3},
-
                 {"matrix": [7, 0], "x": 9, "y": 3},
                 {"matrix": [7, 2], "x": 10, "y": 3}
             ]

+ 0 - 71
keyboards/bastardkb/charybdis/3x5/keymaps/default/keymap.c

@@ -1,71 +0,0 @@
-/**
- * Copyright 2021 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/>.
- */
-
-#include QMK_KEYBOARD_H
-
-enum charybdis_keymap_layers {
-    LAYER_BASE = 0,
-    LAYER_LOWER,
-    LAYER_RAISE,
-};
-
-#define LOWER MO(LAYER_LOWER)
-#define RAISE MO(LAYER_RAISE)
-
-#define CTL_BSP CTL_T(KC_BSPC)
-#define SFT_SPC SFT_T(KC_SPC)
-#define GUI_ENT GUI_T(KC_ENT)
-
-// clang-format off
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-  [LAYER_BASE] = LAYOUT(
-  // ╭─────────────────────────────────────────────╮ ╭─────────────────────────────────────────────╮
-          KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,       KC_Y,    KC_U,    KC_I,    KC_O,    KC_P,
-  // ├─────────────────────────────────────────────┤ ├─────────────────────────────────────────────┤
-          KC_A,    KC_S,    KC_D,    KC_F,    KC_G,       KC_H,    KC_J,    KC_K,    KC_L, KC_SCLN,
-  // ├─────────────────────────────────────────────┤ ├─────────────────────────────────────────────┤
-          KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,       KC_N,    KC_M, KC_COMM,  KC_DOT, KC_SLSH,
-  // ╰─────────────────────────────────────────────┤ ├─────────────────────────────────────────────╯
-                         CTL_BSP, SFT_SPC,   LOWER,      RAISE, GUI_ENT
-  //                   ╰───────────────────────────╯ ╰──────────────────╯
-  ),
-
-  [LAYER_LOWER] = LAYOUT(
-  // ╭─────────────────────────────────────────────╮ ╭─────────────────────────────────────────────╮
-       RM_TOGG, KC_MNXT, KC_MPLY, KC_MPRV, XXXXXXX,    KC_LBRC,    KC_7,    KC_8,    KC_9, KC_RBRC,
-  // ├─────────────────────────────────────────────┤ ├─────────────────────────────────────────────┤
-       KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, XXXXXXX,    KC_PPLS,    KC_4,    KC_5,    KC_6, KC_PMNS,
-  // ├─────────────────────────────────────────────┤ ├─────────────────────────────────────────────┤
-       XXXXXXX, XXXXXXX, XXXXXXX, EE_CLR,  QK_BOOT,    KC_PAST,    KC_1,    KC_2,    KC_3, KC_PSLS,
-  // ╰─────────────────────────────────────────────┤ ├─────────────────────────────────────────────╯
-                         XXXXXXX, XXXXXXX, _______,    XXXXXXX, _______
-  //                   ╰───────────────────────────╯ ╰──────────────────╯
-  ),
-
-  [LAYER_RAISE] = LAYOUT(
-  // ╭─────────────────────────────────────────────╮ ╭─────────────────────────────────────────────╮
-       XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,    XXXXXXX, KC_VOLU, KC_MUTE, KC_VOLD, XXXXXXX,
-  // ├─────────────────────────────────────────────┤ ├─────────────────────────────────────────────┤
-       KC_LEFT,   KC_UP, KC_DOWN, KC_RGHT, XXXXXXX,    XXXXXXX, KC_RSFT, KC_RCTL, KC_RALT, KC_RGUI,
-  // ├─────────────────────────────────────────────┤ ├─────────────────────────────────────────────┤
-       KC_HOME, KC_PGUP, KC_PGDN,  KC_END, XXXXXXX,    QK_BOOT, EE_CLR,  XXXXXXX, XXXXXXX, XXXXXXX,
-  // ╰─────────────────────────────────────────────┤ ├─────────────────────────────────────────────╯
-                         _______, _______, XXXXXXX,    _______, XXXXXXX
-  //                   ╰───────────────────────────╯ ╰──────────────────╯
-  ),
-};
-// clang-format on

+ 26 - 0
keyboards/bastardkb/charybdis/3x5/keymaps/default/keymap.json

@@ -0,0 +1,26 @@
+{
+    "keyboard": "bastardkb/charybdis/3x5/elitec",
+    "keymap": "default",
+    "layout": "LAYOUT",
+    "layers": [
+        [
+            "KC_Q",    "KC_W",    "KC_E",    "KC_R",    "KC_T",          "KC_Y",    "KC_U",    "KC_I",    "KC_O",    "KC_P",
+            "KC_A",    "KC_S",    "KC_D",    "KC_F",    "KC_G",          "KC_H",    "KC_J",    "KC_K",    "KC_L",    "KC_SCLN",
+            "KC_Z",    "KC_X",    "KC_C",    "KC_V",    "KC_B",          "KC_N",    "KC_M",    "KC_COMM", "KC_DOT",  "KC_SLSH",
+                                  "KC_LGUI", "MO(1)",   "KC_SPC",        "KC_ENT",  "MO(2)"
+        ],
+        [
+            "KC_1",    "KC_2",    "KC_3",    "KC_4",    "KC_5",          "KC_6",    "KC_7",    "KC_8",    "KC_9",    "KC_0",
+            "KC_EXLM", "KC_AT",   "KC_HASH", "KC_DLR",  "KC_PERC",       "KC_CIRC", "KC_AMPR", "KC_ASTR", "KC_LPRN", "KC_RPRN",
+            "_______", "_______", "_______", "_______", "_______",       "_______", "_______", "_______", "_______", "_______",
+                                  "_______", "_______", "_______",       "_______", "_______"
+        ],
+        [
+            "QK_BOOT", "_______", "_______", "_______", "_______",       "RM_VALU", "RM_HUEU", "RM_SATU", "RM_NEXT",  "RM_TOGG",
+            "EE_CLR",  "_______", "_______", "_______", "_______",       "RM_VALD", "RM_HUED", "RM_SATD", "RM_PREV",  "_______",
+            "_______", "_______", "_______", "_______", "_______",       "_______", "_______", "_______", "_______",  "_______",
+                                  "_______", "_______", "_______",       "_______", "_______"
+        ]
+    ]
+}
+

+ 0 - 7
keyboards/bastardkb/charybdis/3x5/keymaps/default/readme.md

@@ -1,7 +0,0 @@
-# Charybdis (3x5) default keymap
-
-> :bulb: Have a look at the [`via` keymap](../via) for a more feature-rich layout.
-
-The Charydbis (3x5) default keymap is inspired from the original [Dactyl Manuform](../../../../../handwired/dactyl_manuform) default keymap.
-
-This 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.

+ 0 - 15
keyboards/bastardkb/charybdis/3x5/readme.md

@@ -1,15 +0,0 @@
-# Charybdis Nano (3x5)
-
-An ergonomic keyboard with integrated trackball.
-
-The Charybdis is available in 4x6 and 3x5 form factor at [bastardkb.com](https://bastardkb.com).
-
-## Keymaps
-
-### [`default`](keymaps/default)
-
-A simple QWERTY layout with 4 layers.
-
-### [`via`](keymaps/via)
-
-A [Miryoku-inspired](https://github.com/manna-harbour/miryoku), feature-rich, keymap with VIA support.

+ 1 - 0
keyboards/bastardkb/charybdis/3x5/rules.mk

@@ -0,0 +1 @@
+POINTING_DEVICE_DRIVER = pmw3360

+ 0 - 25
keyboards/bastardkb/charybdis/3x5/v1/elitec/config.h

@@ -1,25 +0,0 @@
-/*
- * Copyright 2020 Christopher Courtney <drashna@live.com> (@drashna)
- * Copyright 2021 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
-
-/* Handedness. */
-#define MASTER_RIGHT
-
-/* PMW3360 settings. */
-#define POINTING_DEVICE_CS_PIN B0

+ 0 - 41
keyboards/bastardkb/charybdis/3x5/v1/elitec/keyboard.json

@@ -1,41 +0,0 @@
-{
-    "keyboard_name": "Charybdis Nano (3x5) Elite-C",
-    "usb": {
-        "device_version": "1.0.0"
-    },
-    "features": {
-        "bootmagic": true,
-        "mousekey": false,
-        "extrakey": true,
-        "rgb_matrix": true,
-        "pointing_device": true
-    },
-    "build": {
-        "lto": true
-    },
-    "ws2812": {
-        "pin": "D3"
-    },
-    "rgb_matrix": {
-        "driver": "ws2812"
-    },
-    "matrix_pins": {
-        "cols": ["C7", "F0", "D7", "E6", "B4"],
-        "rows": ["B7", "C6", "D4", "B5"]
-    },
-    "diode_direction": "ROW2COL",
-    "split": {
-        "enabled": true,
-        "serial": {
-            "pin": "D2"
-        },
-        "matrix_pins": {
-            "right": {
-                "cols": ["C7", "B7", "D7", "E6", "B4"],
-                "rows": ["F0", "C6", "D4", "B5"]
-            }
-        }
-    },
-    "processor": "atmega32u4",
-    "bootloader": "atmel-dfu"
-}

+ 0 - 4
keyboards/bastardkb/charybdis/3x5/v1/elitec/rules.mk

@@ -1,4 +0,0 @@
-AUDIO_SUPPORTED = no        # Audio is not supported
-
-POINTING_DEVICE_DRIVER = pmw3360
-MOUSE_SHARED_EP = no # Unify multiple HID interfaces into a single Endpoint

+ 0 - 24
keyboards/bastardkb/charybdis/3x5/v2/elitec/config.h

@@ -1,24 +0,0 @@
-/*
- * 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
-
-/* Handedness. */
-#define MASTER_RIGHT
-
-/* PMW3360 settings. */
-#define POINTING_DEVICE_CS_PIN F0

+ 0 - 35
keyboards/bastardkb/charybdis/3x5/v2/elitec/keyboard.json

@@ -1,35 +0,0 @@
-{
-    "keyboard_name": "Charybdis Nano (3x5) Elite-C",
-    "usb": {
-        "device_version": "2.0.0"
-    },
-    "features": {
-        "bootmagic": true,
-        "mousekey": false,
-        "extrakey": true,
-        "rgb_matrix": true,
-        "pointing_device": true
-    },
-    "build": {
-        "lto": true
-    },
-    "ws2812": {
-        "pin": "D3"
-    },
-    "rgb_matrix": {
-        "driver": "ws2812"
-    },
-    "matrix_pins": {
-        "cols": ["F5", "B6", "D7", "E6", "B4"],
-        "rows": ["F7", "C6", "D4", "B5"]
-    },
-    "diode_direction": "ROW2COL",
-    "split": {
-        "enabled": true,
-        "serial": {
-            "pin": "D2"
-        }
-    },
-    "processor": "atmega32u4",
-    "bootloader": "atmel-dfu"
-}

+ 0 - 4
keyboards/bastardkb/charybdis/3x5/v2/elitec/rules.mk

@@ -1,4 +0,0 @@
-AUDIO_SUPPORTED = no        # Audio is not supported
-
-POINTING_DEVICE_DRIVER = pmw3360
-MOUSE_SHARED_EP = no # Unify multiple HID interfaces into a single Endpoint

+ 0 - 38
keyboards/bastardkb/charybdis/3x5/v2/splinky_2/config.h

@@ -1,38 +0,0 @@
-/*
- * 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
-
-/* 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 SPLIT_HAND_PIN GP13
-// #define SPLIT_HAND_PIN_LOW_IS_LEFT  // High -> right, Low -> left.
-
-/* SPI & PMW3360 settings. */
-#define SPI_DRIVER SPID0
-#define SPI_SCK_PIN GP18
-#define SPI_MISO_PIN GP20
-#define SPI_MOSI_PIN GP19
-#define POINTING_DEVICE_CS_PIN GP14
-
-/* Reset. */
-#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET
-#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_LED GP17
-#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 1000U

+ 0 - 33
keyboards/bastardkb/charybdis/3x5/v2/splinky_2/keyboard.json

@@ -1,33 +0,0 @@
-{
-    "keyboard_name": "Charybdis Nano (3x5) Splinky",
-    "usb": {
-        "device_version": "2.0.0"
-    },
-    "features": {
-        "bootmagic": true,
-        "mousekey": false,
-        "extrakey": true,
-        "rgb_matrix": true,
-        "pointing_device": true
-    },
-    "rgb_matrix": {
-        "driver": "ws2812"
-    },
-    "matrix_pins": {
-        "cols": ["GP28", "GP15", "GP6", "GP7", "GP8"],
-        "rows": ["GP26", "GP5", "GP4", "GP9"]
-    },
-    "diode_direction": "ROW2COL",
-    "split": {
-        "enabled": true,
-        "serial": {
-            "pin": "GP1"
-        }
-    },
-    "ws2812": {
-        "pin": "GP0",
-        "driver": "vendor"
-    },
-    "processor": "RP2040",
-    "bootloader": "rp2040"
-}

+ 0 - 23
keyboards/bastardkb/charybdis/3x5/v2/splinky_2/mcuconf.h

@@ -1,23 +0,0 @@
-/*
- * 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 RP_SPI_USE_SPI0
-#define RP_SPI_USE_SPI0 TRUE

+ 0 - 5
keyboards/bastardkb/charybdis/3x5/v2/splinky_2/readme.md

@@ -1,5 +0,0 @@
-# Splinky controller
-
-The splinky is a Pro-Micro/Elite-C replacement with USB-C and RP2040.
-
-See [plut0nium/0xB2](https://github.com/plut0nium/0xB2/#releases) to figure out the right version for you (v2 or v3).

+ 0 - 5
keyboards/bastardkb/charybdis/3x5/v2/splinky_2/rules.mk

@@ -1,5 +0,0 @@
-AUDIO_SUPPORTED = no        # Audio is not supported
-
-POINTING_DEVICE_DRIVER = pmw3360
-
-SERIAL_DRIVER = vendor

+ 0 - 38
keyboards/bastardkb/charybdis/3x5/v2/splinky_3/config.h

@@ -1,38 +0,0 @@
-/*
- * 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
-
-/* 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 SPLIT_HAND_PIN GP15
-// #define SPLIT_HAND_PIN_LOW_IS_LEFT  // High -> right, Low -> left.
-
-/* SPI & PMW3360 settings. */
-#define SPI_DRIVER SPID0
-#define SPI_SCK_PIN GP22
-#define SPI_MISO_PIN GP20
-#define SPI_MOSI_PIN GP23
-#define POINTING_DEVICE_CS_PIN GP16
-
-/* Reset. */
-#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET
-#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_LED GP17
-#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 1000U

+ 0 - 33
keyboards/bastardkb/charybdis/3x5/v2/splinky_3/keyboard.json

@@ -1,33 +0,0 @@
-{
-    "keyboard_name": "Charybdis Nano (3x5) Splinky",
-    "usb": {
-        "device_version": "2.0.0"
-    },
-    "features": {
-        "bootmagic": true,
-        "mousekey": false,
-        "extrakey": true,
-        "rgb_matrix": true,
-        "pointing_device": true
-    },
-    "rgb_matrix": {
-        "driver": "ws2812"
-    },
-    "matrix_pins": {
-        "cols": ["GP28", "GP21", "GP6", "GP7", "GP8"],
-        "rows": ["GP26", "GP5", "GP4", "GP9"]
-    },
-    "diode_direction": "ROW2COL",
-    "split": {
-        "enabled": true,
-        "serial": {
-            "pin": "GP1"
-        }
-    },
-    "ws2812": {
-        "pin": "GP0",
-        "driver": "vendor"
-    },
-    "processor": "RP2040",
-    "bootloader": "rp2040"
-}

+ 0 - 23
keyboards/bastardkb/charybdis/3x5/v2/splinky_3/mcuconf.h

@@ -1,23 +0,0 @@
-/*
- * 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 RP_SPI_USE_SPI0
-#define RP_SPI_USE_SPI0 TRUE

+ 0 - 5
keyboards/bastardkb/charybdis/3x5/v2/splinky_3/readme.md

@@ -1,5 +0,0 @@
-# Splinky controller
-
-The splinky is a Pro-Micro/Elite-C replacement with USB-C and RP2040.
-
-See [plut0nium/0xB2](https://github.com/plut0nium/0xB2/#releases) to figure out the right version for you (v2 or v3).

+ 0 - 5
keyboards/bastardkb/charybdis/3x5/v2/splinky_3/rules.mk

@@ -1,5 +0,0 @@
-AUDIO_SUPPORTED = no        # Audio is not supported
-
-POINTING_DEVICE_DRIVER = pmw3360
-
-SERIAL_DRIVER = vendor

+ 0 - 52
keyboards/bastardkb/charybdis/3x5/v2/stemcell/config.h

@@ -1,52 +0,0 @@
-/*
- * 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
-
-/* 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.
-
-/* RGB settings. */
-#define WS2812_PWM_DRIVER PWMD2
-#define WS2812_PWM_CHANNEL 4
-#define WS2812_PWM_PAL_MODE 1
-#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM7
-#define WS2812_PWM_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 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
-
-/* PMW3360 settings. */
-#define POINTING_DEVICE_CS_PIN A1
-#define PMW3360_CS_MODE 3
-#define PMW3360_CS_DIVISOR 64

+ 0 - 24
keyboards/bastardkb/charybdis/3x5/v2/stemcell/halconf.h

@@ -1,24 +0,0 @@
-/*
- * Copyright 2021 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>

+ 0 - 38
keyboards/bastardkb/charybdis/3x5/v2/stemcell/keyboard.json

@@ -1,38 +0,0 @@
-{
-    "keyboard_name": "Charybdis Nano (3x5) STeMCell",
-    "usb": {
-        "device_version": "2.0.0",
-        "shared_endpoint": {
-            "keyboard": true
-        }
-    },
-    "features": {
-        "bootmagic": true,
-        "mousekey": true,
-        "extrakey": true,
-        "rgb_matrix": true,
-        "pointing_device": true
-    },
-    "rgb_matrix": {
-        "driver": "ws2812"
-    },
-    "ws2812": {
-        "pin": "A2",
-        "driver": "pwm"
-    },
-    "build": {
-        "debounce_type": "asym_eager_defer_pk"
-    },
-    "matrix_pins": {
-        "cols": ["B2", "A4", "B4", "B5", "B8"],
-        "rows": ["B0", "B3", "A15", "B9"]
-    },
-    "diode_direction": "ROW2COL",
-    "split": {
-        "enabled": true,
-        "serial": {
-            "pin": "A3"
-        }
-    },
-    "development_board": "stemcell"
-}

+ 0 - 32
keyboards/bastardkb/charybdis/3x5/v2/stemcell/mcuconf.h

@@ -1,32 +0,0 @@
-/*
- * Copyright 2021 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

+ 0 - 6
keyboards/bastardkb/charybdis/3x5/v2/stemcell/rules.mk

@@ -1,6 +0,0 @@
-AUDIO_SUPPORTED = no        # Audio is not supported
-
-POINTING_DEVICE_DRIVER = pmw3360
-MOUSE_SHARED_EP = no # Unify multiple HID interfaces into a single Endpoint
-
-SERIAL_DRIVER = usart

+ 4 - 19
keyboards/bastardkb/charybdis/charybdis.c

@@ -1,22 +1,7 @@
-/*
- * Copyright 2020 Christopher Courtney <drashna@live.com> (@drashna)
- * Copyright 2021 Quentin LEBASTARD <qlebastard@gmail.com>
- * Copyright 2021 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 Publicw 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/>.
- */
-
+// Copyright 2020 Christopher Courtney <drashna@live.com> (@drashna)
+// Copyright 2021 Quentin LEBASTARD <qlebastard@gmail.com>
+// Copyright 2021 Charly Delay <charly@codesink.dev> (@0xcharly)
+// SPDX-License-Identifier: GPL-2.0-or-later
 #include "charybdis.h"
 #include "transactions.h"
 #include <string.h>

+ 3 - 18
keyboards/bastardkb/charybdis/charybdis.h

@@ -1,21 +1,6 @@
-/*
- * Copyright 2021 Quentin LEBASTARD <qlebastard@gmail.com>
- * Copyright 2021 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/>.
- */
-
+// Copyright 2021 Quentin LEBASTARD <qlebastard@gmail.com>
+// Copyright 2021 Charly Delay <charly@codesink.dev> (@0xcharly)
+// SPDX-License-Identifier: GPL-2.0-or-later
 #pragma once
 
 #include "quantum.h"

+ 5 - 63
keyboards/bastardkb/charybdis/config.h

@@ -1,25 +1,8 @@
-/*
- * Copyright 2021 Quentin LEBASTARD <qlebastard@gmail.com>
- * Copyright 2021 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/>.
- */
-
+// Copyright 2021 Quentin LEBASTARD <qlebastard@gmail.com>
+// Copyright 2021 Charly Delay <charly@codesink.dev> (@0xcharly)
+// SPDX-License-Identifier: GPL-2.0-or-later
 #pragma once
 
-/* Pointing device configuration. */
-
 // Enable use of pointing device on slave split.
 #define SPLIT_POINTING_ENABLE
 
@@ -32,46 +15,5 @@
 // Invert X axis on mouse reports.
 #define POINTING_DEVICE_INVERT_X
 
-/* RGB matrix support. */
-#ifdef RGB_MATRIX_ENABLE
-#        define ENABLE_RGB_MATRIX_ALPHAS_MODS
-#        define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN
-#        define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT
-#        define ENABLE_RGB_MATRIX_BREATHING
-#        define ENABLE_RGB_MATRIX_BAND_SAT
-#        define ENABLE_RGB_MATRIX_BAND_VAL
-#        define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT
-#        define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL
-#        define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT
-#        define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL
-#        define ENABLE_RGB_MATRIX_CYCLE_ALL
-#        define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT
-#        define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN
-#        define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
-#        define ENABLE_RGB_MATRIX_CYCLE_OUT_IN
-#        define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL
-#        define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL
-#        define ENABLE_RGB_MATRIX_CYCLE_SPIRAL
-#        define ENABLE_RGB_MATRIX_DUAL_BEACON
-#        define ENABLE_RGB_MATRIX_RAINBOW_BEACON
-#        define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS
-#        define ENABLE_RGB_MATRIX_RAINDROPS
-#        define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS
-#        define ENABLE_RGB_MATRIX_HUE_BREATHING
-#        define ENABLE_RGB_MATRIX_HUE_PENDULUM
-#        define ENABLE_RGB_MATRIX_HUE_WAVE
-#        define ENABLE_RGB_MATRIX_TYPING_HEATMAP
-#        define ENABLE_RGB_MATRIX_DIGITAL_RAIN
-#        define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
-#        define ENABLE_RGB_MATRIX_SOLID_REACTIVE
-#        define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
-#        define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE
-#        define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS
-#        define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS
-#        define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS
-#        define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS
-#        define ENABLE_RGB_MATRIX_SPLASH
-#        define ENABLE_RGB_MATRIX_MULTISPLASH
-#        define ENABLE_RGB_MATRIX_SOLID_SPLASH
-#        define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
-#endif
+/* Trackball angle adjustment. */
+#define ROTATIONAL_TRANSFORM_ANGLE -25

+ 46 - 2
keyboards/bastardkb/charybdis/info.json

@@ -1,7 +1,50 @@
 {
+    "url": "https://github.com/Bastardkb/Charybdis",
     "rgb_matrix": {
         "animations": {
-            "cycle_left_right": true
+            "alphas_mods": true,
+            "gradient_up_down": true,
+            "gradient_left_right": true,
+            "breathing": true,
+            "band_sat": true,
+            "band_val": true,
+            "band_pinwheel_sat": true,
+            "band_pinwheel_val": true,
+            "band_spiral_sat": true,
+            "band_spiral_val": true,
+            "cycle_all": true,
+            "cycle_left_right": true,
+            "cycle_up_down": true,
+            "rainbow_moving_chevron": true,
+            "cycle_out_in": true,
+            "cycle_out_in_dual": true,
+            "cycle_pinwheel": true,
+            "cycle_spiral": true,
+            "dual_beacon": true,
+            "rainbow_beacon": true,
+            "rainbow_pinwheels": true,
+            "raindrops": true,
+            "jellybean_raindrops": true,
+            "hue_breathing": true,
+            "hue_pendulum": true,
+            "hue_wave": true,
+            "pixel_rain": true,
+            "pixel_flow": true,
+            "pixel_fractal": true,
+            "typing_heatmap": true,
+            "digital_rain": true,
+            "solid_reactive_simple": true,
+            "solid_reactive": true,
+            "solid_reactive_wide": true,
+            "solid_reactive_multiwide": true,
+            "solid_reactive_cross": true,
+            "solid_reactive_multicross": true,
+            "solid_reactive_nexus": true,
+            "solid_reactive_multinexus": true,
+            "splash": true,
+            "multisplash": true,
+            "solid_splash": true,
+            "solid_multisplash": true
         },
         "default": {
             "speed": 32,
@@ -10,10 +53,11 @@
         "sleep": true
     },
     "split": {
+        "enabled": true,
         "transport": {
             "sync": {
                 "matrix_state": true
             }
         }
     }
-}
+}

+ 5 - 20
keyboards/bastardkb/charybdis/post_config.h

@@ -1,23 +1,8 @@
-/*
- * Copyright 2012 Jun Wako <wakojun@gmail.com>
- * Copyright 2015 Jack Humbert
- * Copyright 2021 Quentin LEBASTARD <qlebastard@gmail.com>
- * Copyright 2021 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/>.
- */
-
+// Copyright 2012 Jun Wako <wakojun@gmail.com>
+// Copyright 2015 Jack Humbert
+// Copyright 2021 Quentin LEBASTARD <qlebastard@gmail.com>
+// Copyright 2021 Charly Delay <charly@codesink.dev> (@0xcharly)
+// SPDX-License-Identifier: GPL-2.0-or-later
 #pragma once
 
 // Enable syncing of charybdis config