summaryrefslogtreecommitdiff
path: root/keyboards/xelus
diff options
context:
space:
mode:
Diffstat (limited to 'keyboards/xelus')
-rw-r--r--keyboards/xelus/akis/config.h8
-rw-r--r--keyboards/xelus/akis/info.json2
-rw-r--r--keyboards/xelus/akis/rules.mk6
-rw-r--r--keyboards/xelus/dawn60/config.h17
-rw-r--r--keyboards/xelus/dawn60/info.json2
-rw-r--r--keyboards/xelus/dawn60/rev1/config.h8
-rw-r--r--keyboards/xelus/dawn60/rev1/rules.mk6
-rw-r--r--keyboards/xelus/dawn60/rev1_qmk/config.h8
-rw-r--r--keyboards/xelus/dawn60/rev1_qmk/rules.mk6
-rw-r--r--keyboards/xelus/dharma/config.h11
-rw-r--r--keyboards/xelus/dharma/info.json6
-rw-r--r--keyboards/xelus/dharma/rules.mk6
-rw-r--r--keyboards/xelus/kangaroo/rev1/config.h10
-rw-r--r--keyboards/xelus/kangaroo/rev1/info.json4
-rw-r--r--keyboards/xelus/kangaroo/rev1/rules.mk6
-rw-r--r--keyboards/xelus/kangaroo/rev2/config.h7
-rw-r--r--keyboards/xelus/kangaroo/rev2/info.json4
-rw-r--r--keyboards/xelus/kangaroo/rev2/rules.mk6
-rwxr-xr-xkeyboards/xelus/la_plus/config.h8
-rw-r--r--keyboards/xelus/la_plus/info.json2
-rwxr-xr-xkeyboards/xelus/la_plus/la_plus.c10
-rwxr-xr-xkeyboards/xelus/la_plus/rules.mk6
-rw-r--r--keyboards/xelus/ninjin/config.h11
-rw-r--r--keyboards/xelus/ninjin/info.json6
-rw-r--r--keyboards/xelus/ninjin/rules.mk6
-rw-r--r--keyboards/xelus/pachi/mini_32u4/config.h10
-rw-r--r--keyboards/xelus/pachi/mini_32u4/info.json6
-rw-r--r--keyboards/xelus/pachi/mini_32u4/rules.mk6
-rw-r--r--keyboards/xelus/pachi/rev1/config.h11
-rw-r--r--keyboards/xelus/pachi/rev1/info.json6
-rw-r--r--keyboards/xelus/pachi/rev1/rules.mk6
-rw-r--r--keyboards/xelus/pachi/rgb/rev1/config.h7
-rw-r--r--keyboards/xelus/pachi/rgb/rev1/info.json2
-rw-r--r--keyboards/xelus/pachi/rgb/rev1/rules.mk6
-rw-r--r--keyboards/xelus/pachi/rgb/rev2/config.h7
-rw-r--r--keyboards/xelus/pachi/rgb/rev2/info.json2
-rw-r--r--keyboards/xelus/pachi/rgb/rev2/rules.mk6
-rw-r--r--keyboards/xelus/rs108/config.h12
-rw-r--r--keyboards/xelus/rs108/info.json7
-rw-r--r--keyboards/xelus/rs108/rules.mk7
-rw-r--r--keyboards/xelus/rs60/rev1/config.h10
-rw-r--r--keyboards/xelus/rs60/rev1/info.json7
-rw-r--r--keyboards/xelus/rs60/rev1/rules.mk6
-rw-r--r--keyboards/xelus/rs60/rev2_0/config.h10
-rw-r--r--keyboards/xelus/rs60/rev2_0/info.json7
-rw-r--r--keyboards/xelus/rs60/rev2_0/rules.mk7
-rw-r--r--keyboards/xelus/rs60/rev2_1/config.h10
-rw-r--r--keyboards/xelus/rs60/rev2_1/info.json7
-rw-r--r--keyboards/xelus/rs60/rev2_1/rules.mk6
-rw-r--r--keyboards/xelus/snap96/config.h8
-rw-r--r--keyboards/xelus/snap96/info.json2
-rw-r--r--keyboards/xelus/snap96/rules.mk6
-rw-r--r--keyboards/xelus/trinityxttkl/config.h14
-rw-r--r--keyboards/xelus/trinityxttkl/info.json6
-rw-r--r--keyboards/xelus/trinityxttkl/rules.mk6
-rw-r--r--keyboards/xelus/valor/rev1/config.h8
-rw-r--r--keyboards/xelus/valor/rev1/info.json3
-rw-r--r--keyboards/xelus/valor/rev1/rules.mk8
-rw-r--r--keyboards/xelus/valor/rev2/config.h8
-rw-r--r--keyboards/xelus/valor/rev2/info.json3
-rw-r--r--keyboards/xelus/valor/rev2/rules.mk8
-rw-r--r--keyboards/xelus/valor_frl_tkl/rev1/config.h8
-rw-r--r--keyboards/xelus/valor_frl_tkl/rev1/info.json4
-rw-r--r--keyboards/xelus/valor_frl_tkl/rev1/rules.mk6
-rw-r--r--keyboards/xelus/valor_frl_tkl/rev2_0/config.h7
-rw-r--r--keyboards/xelus/valor_frl_tkl/rev2_0/info.json4
-rw-r--r--keyboards/xelus/valor_frl_tkl/rev2_0/rules.mk7
-rw-r--r--keyboards/xelus/valor_frl_tkl/rev2_1/config.h7
-rw-r--r--keyboards/xelus/valor_frl_tkl/rev2_1/info.json4
-rw-r--r--keyboards/xelus/valor_frl_tkl/rev2_1/rules.mk7
-rw-r--r--keyboards/xelus/xs108/config.h13
-rw-r--r--keyboards/xelus/xs108/info.json7
-rw-r--r--keyboards/xelus/xs108/rules.mk6
-rw-r--r--keyboards/xelus/xs60/hotswap/config.h (renamed from keyboards/xelus/xs60/config.h)26
-rw-r--r--keyboards/xelus/xs60/hotswap/halconf.h (renamed from keyboards/xelus/xs60/halconf.h)2
-rw-r--r--keyboards/xelus/xs60/hotswap/hotswap.c (renamed from keyboards/xelus/xs60/xs60.c)4
-rw-r--r--keyboards/xelus/xs60/hotswap/hotswap.h34
-rw-r--r--keyboards/xelus/xs60/hotswap/info.json85
-rw-r--r--keyboards/xelus/xs60/hotswap/keymaps/default/keymap.c81
-rw-r--r--keyboards/xelus/xs60/hotswap/keymaps/via/config.h (renamed from keyboards/xelus/xs60/keymaps/via/config.h)2
-rw-r--r--keyboards/xelus/xs60/hotswap/keymaps/via/keymap.c128
-rw-r--r--keyboards/xelus/xs60/hotswap/keymaps/via/rules.mk (renamed from keyboards/xelus/xs60/keymaps/via/rules.mk)0
-rw-r--r--keyboards/xelus/xs60/hotswap/mcuconf.h (renamed from keyboards/xelus/xs60/mcuconf.h)2
-rw-r--r--keyboards/xelus/xs60/hotswap/readme.md16
-rw-r--r--keyboards/xelus/xs60/hotswap/rules.mk (renamed from keyboards/xelus/xs60/rules.mk)11
-rw-r--r--keyboards/xelus/xs60/soldered/config.h47
-rw-r--r--keyboards/xelus/xs60/soldered/halconf.h (renamed from keyboards/xelus/pachi/rgb/config.h)9
-rw-r--r--keyboards/xelus/xs60/soldered/info.json (renamed from keyboards/xelus/xs60/info.json)10
-rw-r--r--keyboards/xelus/xs60/soldered/keymaps/default/keymap.c (renamed from keyboards/xelus/xs60/keymaps/default/keymap.c)46
-rw-r--r--keyboards/xelus/xs60/soldered/keymaps/via/config.h (renamed from keyboards/xelus/rs60/config.h)4
-rw-r--r--keyboards/xelus/xs60/soldered/keymaps/via/keymap.c (renamed from keyboards/xelus/xs60/keymaps/via/keymap.c)46
-rw-r--r--keyboards/xelus/xs60/soldered/keymaps/via/rules.mk1
-rw-r--r--keyboards/xelus/xs60/soldered/mcuconf.h23
-rw-r--r--keyboards/xelus/xs60/soldered/readme.md (renamed from keyboards/xelus/xs60/readme.md)5
-rw-r--r--keyboards/xelus/xs60/soldered/rules.mk19
-rw-r--r--keyboards/xelus/xs60/soldered/soldered.c20
-rw-r--r--keyboards/xelus/xs60/soldered/soldered.h (renamed from keyboards/xelus/xs60/xs60.h)2
97 files changed, 685 insertions, 441 deletions
diff --git a/keyboards/xelus/akis/config.h b/keyboards/xelus/akis/config.h
index c4df7561c6..b0a56cdba8 100644
--- a/keyboards/xelus/akis/config.h
+++ b/keyboards/xelus/akis/config.h
@@ -16,11 +16,6 @@
#pragma once
-#include "config_common.h"
-
-/* key matrix size */
-#define MATRIX_ROWS 5
-#define MATRIX_COLS 15
/* key matrix pins */
#define MATRIX_ROW_PINS { F5, F4, F1, F0, E6 }
@@ -43,9 +38,6 @@
/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION COL2ROW
-/* Set 0 if debouncing isn't needed */
-#define DEBOUNCE 5
-
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE
diff --git a/keyboards/xelus/akis/info.json b/keyboards/xelus/akis/info.json
index 36a6d78277..bc275f3509 100644
--- a/keyboards/xelus/akis/info.json
+++ b/keyboards/xelus/akis/info.json
@@ -8,6 +8,8 @@
"pid": "0xA04B",
"device_version": "0.0.1"
},
+ "processor": "atmega32u4",
+ "bootloader": "atmel-dfu",
"layout_aliases": {
"LAYOUT_65_all": "LAYOUT_all"
},
diff --git a/keyboards/xelus/akis/rules.mk b/keyboards/xelus/akis/rules.mk
index 6514393307..6160e71935 100644
--- a/keyboards/xelus/akis/rules.mk
+++ b/keyboards/xelus/akis/rules.mk
@@ -1,9 +1,3 @@
-# MCU name
-MCU = atmega32u4
-
-# Bootloader selection
-BOOTLOADER = atmel-dfu
-
# Build Options
# change yes to no to disable
#
diff --git a/keyboards/xelus/dawn60/config.h b/keyboards/xelus/dawn60/config.h
deleted file mode 100644
index ebd231ca97..0000000000
--- a/keyboards/xelus/dawn60/config.h
+++ /dev/null
@@ -1,17 +0,0 @@
-/* Copyright 2020 Harrison Chan (Xelus)
- *
- * 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 "config_common.h"
diff --git a/keyboards/xelus/dawn60/info.json b/keyboards/xelus/dawn60/info.json
index 24eba75384..7dc91a84b1 100644
--- a/keyboards/xelus/dawn60/info.json
+++ b/keyboards/xelus/dawn60/info.json
@@ -8,6 +8,8 @@
"pid": "0x0060",
"device_version": "0.0.1"
},
+ "processor": "atmega32u4",
+ "bootloader": "atmel-dfu",
"layout_aliases": {
"LAYOUT_60_all": "LAYOUT_all"
},
diff --git a/keyboards/xelus/dawn60/rev1/config.h b/keyboards/xelus/dawn60/rev1/config.h
index 6aeef780bb..2e7f49644d 100644
--- a/keyboards/xelus/dawn60/rev1/config.h
+++ b/keyboards/xelus/dawn60/rev1/config.h
@@ -15,11 +15,6 @@
*/
#pragma once
-#include "config_common.h"
-
-// key matrix size
-#define MATRIX_ROWS 5
-#define MATRIX_COLS 14
//no underglow - prototype
//#define MATRIX_ROW_PINS { B1, B3, B7, F6, F7 }
@@ -36,9 +31,6 @@
// COL2ROW or ROW2COL
#define DIODE_DIRECTION COL2ROW
-// Set 0 if debouncing isn't needed
-#define DEBOUNCE 5
-
// Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap
#define LOCKING_SUPPORT_ENABLE
// Locking resynchronize hack
diff --git a/keyboards/xelus/dawn60/rev1/rules.mk b/keyboards/xelus/dawn60/rev1/rules.mk
index 3fe31770d0..e641678ecb 100644
--- a/keyboards/xelus/dawn60/rev1/rules.mk
+++ b/keyboards/xelus/dawn60/rev1/rules.mk
@@ -1,9 +1,3 @@
-# MCU name
-MCU = atmega32u4
-
-# Bootloader selection
-BOOTLOADER = atmel-dfu
-
# Do not put the microcontroller into power saving mode
# when we get USB suspend event. We want it to keep updating
# backlight effects.
diff --git a/keyboards/xelus/dawn60/rev1_qmk/config.h b/keyboards/xelus/dawn60/rev1_qmk/config.h
index 421243cead..b00009b44e 100644
--- a/keyboards/xelus/dawn60/rev1_qmk/config.h
+++ b/keyboards/xelus/dawn60/rev1_qmk/config.h
@@ -15,11 +15,6 @@
*/
#pragma once
-#include "config_common.h"
-
-// key matrix size
-#define MATRIX_ROWS 5
-#define MATRIX_COLS 14
//underglow
#define MATRIX_ROW_PINS { B1, B3, F1, F6, F7 }
@@ -28,9 +23,6 @@
// COL2ROW or ROW2COL
#define DIODE_DIRECTION COL2ROW
-// Set 0 if debouncing isn't needed
-#define DEBOUNCE 5
-
// Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap
#define LOCKING_SUPPORT_ENABLE
// Locking resynchronize hack
diff --git a/keyboards/xelus/dawn60/rev1_qmk/rules.mk b/keyboards/xelus/dawn60/rev1_qmk/rules.mk
index 0932c3fc88..2101e1cd1c 100644
--- a/keyboards/xelus/dawn60/rev1_qmk/rules.mk
+++ b/keyboards/xelus/dawn60/rev1_qmk/rules.mk
@@ -1,9 +1,3 @@
-# MCU name
-MCU = atmega32u4
-
-# Bootloader selection
-BOOTLOADER = atmel-dfu
-
# Do not put the microcontroller into power saving mode
# when we get USB suspend event. We want it to keep updating
# backlight effects.
diff --git a/keyboards/xelus/dharma/config.h b/keyboards/xelus/dharma/config.h
index 08fd8fb8f8..a3301f94f7 100644
--- a/keyboards/xelus/dharma/config.h
+++ b/keyboards/xelus/dharma/config.h
@@ -16,10 +16,6 @@
#pragma once
-/* key matrix size */
-#define MATRIX_ROWS 5
-#define MATRIX_COLS 18
-
/* key matrix pins */
#define MATRIX_ROW_PINS { D0, D1, D2, D3, B0 }
#define MATRIX_COL_PINS { B3, B2, B1, D5, D4, E6, D6, D7, B4, B5, B6, C6, C7, F7, F6, F5, F4, F1 }
@@ -27,9 +23,6 @@
/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION COL2ROW
-/* Set 0 if debouncing isn't needed */
-#define DEBOUNCE 5
-
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE
@@ -37,7 +30,3 @@
#define LOCKING_RESYNC_ENABLE
#define FORCE_NKRO
-
-#define LED_CAPS_LOCK_PIN B7
-#define LED_NUM_LOCK_PIN F0
-#define LED_PIN_ON_STATE 1
diff --git a/keyboards/xelus/dharma/info.json b/keyboards/xelus/dharma/info.json
index 174cf2a1f0..ffd8e500b9 100644
--- a/keyboards/xelus/dharma/info.json
+++ b/keyboards/xelus/dharma/info.json
@@ -8,6 +8,12 @@
"pid": "0xDAAA",
"device_version": "0.0.1"
},
+ "indicators": {
+ "caps_lock": "B7",
+ "num_lock": "F0"
+ },
+ "processor": "atmega32u4",
+ "bootloader": "atmel-dfu",
"layouts": {
"LAYOUT_all": {
"layout": [
diff --git a/keyboards/xelus/dharma/rules.mk b/keyboards/xelus/dharma/rules.mk
index 476cf49f27..3b6a1809db 100644
--- a/keyboards/xelus/dharma/rules.mk
+++ b/keyboards/xelus/dharma/rules.mk
@@ -1,9 +1,3 @@
-# MCU name
-MCU = atmega32u4
-
-# Bootloader selection
-BOOTLOADER = atmel-dfu
-
# Build Options
# change yes to no to disable
#
diff --git a/keyboards/xelus/kangaroo/rev1/config.h b/keyboards/xelus/kangaroo/rev1/config.h
index a57d22a7f8..369cb76573 100644
--- a/keyboards/xelus/kangaroo/rev1/config.h
+++ b/keyboards/xelus/kangaroo/rev1/config.h
@@ -16,20 +16,10 @@
#pragma once
-/* key matrix size */
-#define MATRIX_ROWS 12
-#define MATRIX_COLS 11
-
#define MATRIX_COL_PINS { B10, B2, B11, A10, B7, B6, B5, B4, B3, A15, A14 }
#define MATRIX_ROW_PINS { A9, A8, B15, B14, B13, B12, A4, A5, A6, A7, B0, B1 }
#define DIODE_DIRECTION COL2ROW
-/* define if matrix has ghost */
-//#define MATRIX_HAS_GHOST
-
-/* Set 0 if debouncing isn't needed */
-#define DEBOUNCE 5
-
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */
diff --git a/keyboards/xelus/kangaroo/rev1/info.json b/keyboards/xelus/kangaroo/rev1/info.json
index 523aef4aaa..f6e477a9ef 100644
--- a/keyboards/xelus/kangaroo/rev1/info.json
+++ b/keyboards/xelus/kangaroo/rev1/info.json
@@ -2,5 +2,7 @@
"keyboard_name": "Kangaroo Rev 1.0",
"usb": {
"device_version": "0.0.1"
- }
+ },
+ "processor": "STM32F072",
+ "bootloader": "stm32-dfu"
}
diff --git a/keyboards/xelus/kangaroo/rev1/rules.mk b/keyboards/xelus/kangaroo/rev1/rules.mk
index 80826fae5f..805e07ebc2 100644
--- a/keyboards/xelus/kangaroo/rev1/rules.mk
+++ b/keyboards/xelus/kangaroo/rev1/rules.mk
@@ -1,9 +1,3 @@
-# MCU name
-MCU = STM32F072
-
-# Bootloader selection
-BOOTLOADER = stm32-dfu
-
# Build Options
# change yes to no to disable
#
diff --git a/keyboards/xelus/kangaroo/rev2/config.h b/keyboards/xelus/kangaroo/rev2/config.h
index a2f89a0ab1..0711e39909 100644
--- a/keyboards/xelus/kangaroo/rev2/config.h
+++ b/keyboards/xelus/kangaroo/rev2/config.h
@@ -16,19 +16,12 @@
#pragma once
-/* key matrix size */
-#define MATRIX_ROWS 12
-#define MATRIX_COLS 11
-
#define MATRIX_COL_PINS { B10, B2, B11, A10, B7, B6, B5, B4, B3, A15, A14 }
#define MATRIX_ROW_PINS { A9, A8, B15, B14, B13, B12, A4, A5, A6, A7, B0, B1 }
/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION COL2ROW
-/* Set 0 if debouncing isn't needed */
-#define DEBOUNCE 5
-
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */
diff --git a/keyboards/xelus/kangaroo/rev2/info.json b/keyboards/xelus/kangaroo/rev2/info.json
index 8f7a2c6ce9..a2dc9694c1 100644
--- a/keyboards/xelus/kangaroo/rev2/info.json
+++ b/keyboards/xelus/kangaroo/rev2/info.json
@@ -2,5 +2,7 @@
"keyboard_name": "Kangaroo Rev 2.0",
"usb": {
"device_version": "0.0.2"
- }
+ },
+ "processor": "STM32L412",
+ "bootloader": "stm32-dfu"
}
diff --git a/keyboards/xelus/kangaroo/rev2/rules.mk b/keyboards/xelus/kangaroo/rev2/rules.mk
index 44ac92bb81..c7c6f5f163 100644
--- a/keyboards/xelus/kangaroo/rev2/rules.mk
+++ b/keyboards/xelus/kangaroo/rev2/rules.mk
@@ -1,9 +1,3 @@
-# MCU name
-MCU = STM32L412
-
-# Bootloader selection
-BOOTLOADER = stm32-dfu
-
# Build Options
# change yes to no to disable
#
diff --git a/keyboards/xelus/la_plus/config.h b/keyboards/xelus/la_plus/config.h
index c3dbc5fcca..2dc02a7f4f 100755
--- a/keyboards/xelus/la_plus/config.h
+++ b/keyboards/xelus/la_plus/config.h
@@ -16,11 +16,6 @@
#pragma once
-#include "config_common.h"
-
-/* key matrix size */
-#define MATRIX_ROWS 5
-#define MATRIX_COLS 15
/* key matrix pins */
#define MATRIX_ROW_PINS { B0, B1, F0, F4, F5 }
@@ -29,9 +24,6 @@
/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION COL2ROW
-/* Set 0 if debouncing isn't needed */
-#define DEBOUNCE 5
-
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE
diff --git a/keyboards/xelus/la_plus/info.json b/keyboards/xelus/la_plus/info.json
index ced81e6f3d..c37c898995 100644
--- a/keyboards/xelus/la_plus/info.json
+++ b/keyboards/xelus/la_plus/info.json
@@ -8,6 +8,8 @@
"pid": "0x4C50",
"device_version": "0.0.1"
},
+ "processor": "atmega32u4",
+ "bootloader": "atmel-dfu",
"layouts": {
"LAYOUT_all": {
"layout": [
diff --git a/keyboards/xelus/la_plus/la_plus.c b/keyboards/xelus/la_plus/la_plus.c
index 41358c3599..81aec5d547 100755
--- a/keyboards/xelus/la_plus/la_plus.c
+++ b/keyboards/xelus/la_plus/la_plus.c
@@ -23,11 +23,11 @@ keyboard_config_t keyboard_config;
led_config_t g_led_config = { {
// Key Matrix to LED Index
- { _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____ }, \
- { _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____ }, \
- { _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____ }, \
- { _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____ }, \
- { _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____ } \
+ { _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____ },
+ { _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____ },
+ { _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____ },
+ { _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____ },
+ { _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____ }
}, {
// LED Index to Physical Position
{ 2, 38 },
diff --git a/keyboards/xelus/la_plus/rules.mk b/keyboards/xelus/la_plus/rules.mk
index 440396715b..cf61932706 100755
--- a/keyboards/xelus/la_plus/rules.mk
+++ b/keyboards/xelus/la_plus/rules.mk
@@ -1,9 +1,3 @@
-# MCU name
-MCU = atmega32u4
-
-# Bootloader selection
-BOOTLOADER = atmel-dfu
-
# Build Options
# change yes to no to disable
#
diff --git a/keyboards/xelus/ninjin/config.h b/keyboards/xelus/ninjin/config.h
index 999480ab75..2e6a07df5a 100644
--- a/keyboards/xelus/ninjin/config.h
+++ b/keyboards/xelus/ninjin/config.h
@@ -16,10 +16,6 @@
#pragma once
-/* key matrix size */
-#define MATRIX_ROWS 6
-#define MATRIX_COLS 17
-
#define MATRIX_COL_PINS { A9, A8, B15, B14, B13, B12, B11, B10, B2, B1, B0, A7, A6, A5, A4, B6, B5 }
#define MATRIX_ROW_PINS { B4, B3, A15, A3, B9, B8 }
#define DIODE_DIRECTION COL2ROW
@@ -47,15 +43,8 @@
#define WS2812_DMA_CHANNEL 3
#define WS2812_EXTERNAL_PULLUP
-/* Set 0 if debouncing isn't needed */
-#define DEBOUNCE 5
-
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
-
-#define LED_CAPS_LOCK_PIN A2
-#define LED_SCROLL_LOCK_PIN A13
-#define LED_PIN_ON_STATE 1
diff --git a/keyboards/xelus/ninjin/info.json b/keyboards/xelus/ninjin/info.json
index f85a6a54c4..bbac38b051 100644
--- a/keyboards/xelus/ninjin/info.json
+++ b/keyboards/xelus/ninjin/info.json
@@ -8,6 +8,12 @@
"pid": "0x4E4A",
"device_version": "0.0.1"
},
+ "indicators": {
+ "caps_lock": "A2",
+ "scroll_lock": "A13"
+ },
+ "processor": "STM32F072",
+ "bootloader": "stm32-dfu",
"layout_aliases": {
"LAYOUT_all": "LAYOUT_tkl_ansi_tsangan"
},
diff --git a/keyboards/xelus/ninjin/rules.mk b/keyboards/xelus/ninjin/rules.mk
index 1407a61c3f..3d8c7c0af8 100644
--- a/keyboards/xelus/ninjin/rules.mk
+++ b/keyboards/xelus/ninjin/rules.mk
@@ -1,9 +1,3 @@
-# MCU name
-MCU = STM32F072
-
-# Bootloader selection
-BOOTLOADER = stm32-dfu
-
# Build Options
# change yes to no to disable
#
diff --git a/keyboards/xelus/pachi/mini_32u4/config.h b/keyboards/xelus/pachi/mini_32u4/config.h
index f2abc3619f..8786b2ad29 100644
--- a/keyboards/xelus/pachi/mini_32u4/config.h
+++ b/keyboards/xelus/pachi/mini_32u4/config.h
@@ -16,21 +16,11 @@
#pragma once
-/* key matrix size */
-#define MATRIX_ROWS 6
-#define MATRIX_COLS 17
-
#define MATRIX_ROW_PINS { B0, B1, B2, F0, D2, D1 }
#define MATRIX_COL_PINS { F4, F5, F6, F7, C7, C6, B6, B5, B4, D7, D6, D4, D5, D3, E6, B7, D0 }
#define DIODE_DIRECTION COL2ROW
-/* Set 0 if debouncing isn't needed */
-#define DEBOUNCE 5
-
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
-
-#define LED_CAPS_LOCK_PIN F1
-#define LED_SCROLL_LOCK_PIN B3
diff --git a/keyboards/xelus/pachi/mini_32u4/info.json b/keyboards/xelus/pachi/mini_32u4/info.json
index ca78bdbffe..b400fdd7a4 100644
--- a/keyboards/xelus/pachi/mini_32u4/info.json
+++ b/keyboards/xelus/pachi/mini_32u4/info.json
@@ -8,6 +8,12 @@
"pid": "0x5041",
"device_version": "0.0.1"
},
+ "indicators": {
+ "caps_lock": "F1",
+ "scroll_lock": "B3"
+ },
+ "processor": "atmega32u4",
+ "bootloader": "atmel-dfu",
"layouts": {
"LAYOUT_all": {
"layout": [
diff --git a/keyboards/xelus/pachi/mini_32u4/rules.mk b/keyboards/xelus/pachi/mini_32u4/rules.mk
index 476cf49f27..3b6a1809db 100644
--- a/keyboards/xelus/pachi/mini_32u4/rules.mk
+++ b/keyboards/xelus/pachi/mini_32u4/rules.mk
@@ -1,9 +1,3 @@
-# MCU name
-MCU = atmega32u4
-
-# Bootloader selection
-BOOTLOADER = atmel-dfu
-
# Build Options
# change yes to no to disable
#
diff --git a/keyboards/xelus/pachi/rev1/config.h b/keyboards/xelus/pachi/rev1/config.h
index 8a8c51779f..e931eca992 100644
--- a/keyboards/xelus/pachi/rev1/config.h
+++ b/keyboards/xelus/pachi/rev1/config.h
@@ -16,22 +16,11 @@
#pragma once
-/* key matrix size */
-#define MATRIX_ROWS 6
-#define MATRIX_COLS 17
-
#define MATRIX_ROW_PINS { B4, B3, A15, B15, B9, B8 }
#define MATRIX_COL_PINS { B13, B12, B11, B10, B2, B1, B0, A7, A6, A5, A4, A2, A1, A0, A3, B6, B5 }
#define DIODE_DIRECTION COL2ROW
-/* Set 0 if debouncing isn't needed */
-#define DEBOUNCE 5
-
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
-
-#define LED_CAPS_LOCK_PIN B14
-#define LED_SCROLL_LOCK_PIN A13
-#define LED_PIN_ON_STATE 1
diff --git a/keyboards/xelus/pachi/rev1/info.json b/keyboards/xelus/pachi/rev1/info.json
index 1b14340edd..44690cd7b5 100644
--- a/keyboards/xelus/pachi/rev1/info.json
+++ b/keyboards/xelus/pachi/rev1/info.json
@@ -8,6 +8,12 @@
"pid": "0x5041",
"device_version": "0.0.1"
},
+ "indicators": {
+ "caps_lock": "B14",
+ "scroll_lock": "A13"
+ },
+ "processor": "STM32F072",
+ "bootloader": "stm32-dfu",
"layouts": {
"LAYOUT_all": {
"layout": [
diff --git a/keyboards/xelus/pachi/rev1/rules.mk b/keyboards/xelus/pachi/rev1/rules.mk
index ccb8e4eb54..c02eb841df 100644
--- a/keyboards/xelus/pachi/rev1/rules.mk
+++ b/keyboards/xelus/pachi/rev1/rules.mk
@@ -1,9 +1,3 @@
-# MCU name
-MCU = STM32F072
-
-# Bootloader selection
-BOOTLOADER = stm32-dfu
-
# Enter lower-power sleep mode when on the ChibiOS idle thread
OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE
diff --git a/keyboards/xelus/pachi/rgb/rev1/config.h b/keyboards/xelus/pachi/rgb/rev1/config.h
index 2cc2506866..f64c4ed2e3 100644
--- a/keyboards/xelus/pachi/rgb/rev1/config.h
+++ b/keyboards/xelus/pachi/rgb/rev1/config.h
@@ -16,10 +16,6 @@
#pragma once
-/* key matrix size */
-#define MATRIX_ROWS 6
-#define MATRIX_COLS 17
-
/* key matrix pins */
#define MATRIX_ROW_PINS { B14, B13, B12, B2, A8, B15 }
#define MATRIX_COL_PINS { C13, C14, C15, H0, A0, A1, A2, A3, A4, A5, A6, A7, B0, B1, H1, B10, B11 }
@@ -27,9 +23,6 @@
/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION COL2ROW
-/* Set 0 if debouncing isn't needed */
-#define DEBOUNCE 5
-
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE
diff --git a/keyboards/xelus/pachi/rgb/rev1/info.json b/keyboards/xelus/pachi/rgb/rev1/info.json
index 24b6c4834a..be31e74a6c 100644
--- a/keyboards/xelus/pachi/rgb/rev1/info.json
+++ b/keyboards/xelus/pachi/rgb/rev1/info.json
@@ -8,6 +8,8 @@
"pid": "0x5052",
"device_version": "0.0.1"
},
+ "processor": "STM32L422",
+ "bootloader": "stm32-dfu",
"layout_aliases": {
"LAYOUT_ansi_tsangan": "LAYOUT_tkl_ansi_tsangan"
},
diff --git a/keyboards/xelus/pachi/rgb/rev1/rules.mk b/keyboards/xelus/pachi/rgb/rev1/rules.mk
index 3cfa837091..904565c01e 100644
--- a/keyboards/xelus/pachi/rgb/rev1/rules.mk
+++ b/keyboards/xelus/pachi/rgb/rev1/rules.mk
@@ -1,9 +1,3 @@
-# MCU name
-MCU = STM32L422
-
-# Bootloader selection
-BOOTLOADER = stm32-dfu
-
# Build Options
# change yes to no to disable
#
diff --git a/keyboards/xelus/pachi/rgb/rev2/config.h b/keyboards/xelus/pachi/rgb/rev2/config.h
index 5174e920e6..04dfd15983 100644
--- a/keyboards/xelus/pachi/rgb/rev2/config.h
+++ b/keyboards/xelus/pachi/rgb/rev2/config.h
@@ -16,10 +16,6 @@
#pragma once
-/* key matrix size */
-#define MATRIX_ROWS 12
-#define MATRIX_COLS 9
-
/* key matrix pins */
#define MATRIX_ROW_PINS { A5, A6, B0, A7, A8, B1, B4, B5, A15, B3, A13, A14 }
#define MATRIX_COL_PINS { C14, C15, A0, A1, A2, A3, A4, A10, A9}
@@ -27,9 +23,6 @@
/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION COL2ROW
-/* Set 0 if debouncing isn't needed */
-#define DEBOUNCE 5
-
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE
diff --git a/keyboards/xelus/pachi/rgb/rev2/info.json b/keyboards/xelus/pachi/rgb/rev2/info.json
index 46a4de5920..e771916407 100644
--- a/keyboards/xelus/pachi/rgb/rev2/info.json
+++ b/keyboards/xelus/pachi/rgb/rev2/info.json
@@ -8,6 +8,8 @@
"pid": "0x5053",
"device_version": "0.0.2"
},
+ "processor": "STM32L422",
+ "bootloader": "stm32-dfu",
"layout_aliases": {
"LAYOUT_ansi_tsangan": "LAYOUT_tkl_ansi_tsangan"
},
diff --git a/keyboards/xelus/pachi/rgb/rev2/rules.mk b/keyboards/xelus/pachi/rgb/rev2/rules.mk
index 8092cc995a..7150da0389 100644
--- a/keyboards/xelus/pachi/rgb/rev2/rules.mk
+++ b/keyboards/xelus/pachi/rgb/rev2/rules.mk
@@ -1,9 +1,3 @@
-# MCU name
-MCU = STM32L422
-
-# Bootloader selection
-BOOTLOADER = stm32-dfu
-
# Build Options
# change yes to no to disable
#
diff --git a/keyboards/xelus/rs108/config.h b/keyboards/xelus/rs108/config.h
index 990c0aca55..329fa6639c 100644
--- a/keyboards/xelus/rs108/config.h
+++ b/keyboards/xelus/rs108/config.h
@@ -15,30 +15,18 @@
*/
#pragma once
-/* key matrix size */
-#define MATRIX_ROWS 12
-#define MATRIX_COLS 11
-
#define MATRIX_ROW_PINS { B5, B6, B7, A1, A0, C13, B0, A7, A5, A4, A3, A2 }
#define MATRIX_COL_PINS { A10, A8, B15, B14, B13, B12, B1, B10, B4, B3, A15 }
// COL2ROW or ROW2COL
#define DIODE_DIRECTION COL2ROW
-// Set 0 if debouncing isn't needed
-#define DEBOUNCE 5
-
// Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap
#define LOCKING_SUPPORT_ENABLE
// Locking resynchronize hack
#define LOCKING_RESYNC_ENABLE
-//Indicator
-#define LED_CAPS_LOCK_PIN A6
-#define LED_SCROLL_LOCK_PIN A13
-#define LED_NUM_LOCK_PIN A14
-
// I2C config
#define I2C1_SCL_PIN B8
#define I2C1_SDA_PIN B9
diff --git a/keyboards/xelus/rs108/info.json b/keyboards/xelus/rs108/info.json
index c266a5193b..959da932de 100644
--- a/keyboards/xelus/rs108/info.json
+++ b/keyboards/xelus/rs108/info.json
@@ -8,6 +8,13 @@
"pid": "0x5208",
"device_version": "0.0.2"
},
+ "indicators": {
+ "caps_lock": "A6",
+ "num_lock": "A14",
+ "scroll_lock": "A13"
+ },
+ "processor": "STM32F401",
+ "bootloader": "stm32-dfu",
"layouts": {
"LAYOUT_108_fullsize_ansi": {
"layout": [
diff --git a/keyboards/xelus/rs108/rules.mk b/keyboards/xelus/rs108/rules.mk
index 46df2e4e8e..8441c649b2 100644
--- a/keyboards/xelus/rs108/rules.mk
+++ b/keyboards/xelus/rs108/rules.mk
@@ -1,10 +1,3 @@
-# MCU name
-MCU = STM32F401
-BOARD = GENERIC_STM32_F401XC
-
-# Bootloader selection
-BOOTLOADER = stm32-dfu
-
# Build Options
# change yes to no to disable
#
diff --git a/keyboards/xelus/rs60/rev1/config.h b/keyboards/xelus/rs60/rev1/config.h
index 00fbf6712b..78b03aa455 100644
--- a/keyboards/xelus/rs60/rev1/config.h
+++ b/keyboards/xelus/rs60/rev1/config.h
@@ -15,27 +15,17 @@
*/
#pragma once
-/* key matrix size */
-#define MATRIX_ROWS 5
-#define MATRIX_COLS 14
-
#define MATRIX_ROW_PINS { B3, B7, F0, F4, F1 }
#define MATRIX_COL_PINS { E6, D5, D3, F5, F6, F7, C7, C6, B6, B5, B4, D7, D6, D4}
// COL2ROW or ROW2COL
#define DIODE_DIRECTION COL2ROW
-// Set 0 if debouncing isn't needed
-#define DEBOUNCE 5
-
// Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap
#define LOCKING_SUPPORT_ENABLE
// Locking resynchronize hack
#define LOCKING_RESYNC_ENABLE
-//Indicator
-#define LED_CAPS_LOCK_PIN B0
-
//Force NKRO
#define FORCE_NKRO
diff --git a/keyboards/xelus/rs60/rev1/info.json b/keyboards/xelus/rs60/rev1/info.json
index cf78bc4ec7..5eff1d75a6 100644
--- a/keyboards/xelus/rs60/rev1/info.json
+++ b/keyboards/xelus/rs60/rev1/info.json
@@ -1,5 +1,10 @@
{
"usb": {
"device_version": "0.1.0"
- }
+ },
+ "indicators": {
+ "caps_lock": "B0"
+ },
+ "processor": "atmega32u4",
+ "bootloader": "atmel-dfu"
}
diff --git a/keyboards/xelus/rs60/rev1/rules.mk b/keyboards/xelus/rs60/rev1/rules.mk
index cdac239154..cfea96a79b 100644
--- a/keyboards/xelus/rs60/rev1/rules.mk
+++ b/keyboards/xelus/rs60/rev1/rules.mk
@@ -1,9 +1,3 @@
-# MCU name
-MCU = atmega32u4
-
-# Bootloader selection
-BOOTLOADER = atmel-dfu
-
# Build Options
# change yes to no to disable
#
diff --git a/keyboards/xelus/rs60/rev2_0/config.h b/keyboards/xelus/rs60/rev2_0/config.h
index 71eb5fb262..5e8565b63b 100644
--- a/keyboards/xelus/rs60/rev2_0/config.h
+++ b/keyboards/xelus/rs60/rev2_0/config.h
@@ -15,28 +15,18 @@
*/
#pragma once
-/* key matrix size */
-#define MATRIX_ROWS 5
-#define MATRIX_COLS 14
-
#define MATRIX_ROW_PINS { B15, B14, B12, B1, B0 }
#define MATRIX_COL_PINS { B13, A7, A6, A5, A4, A3, A2, B7, B6, B5, B4, B3, A15, A14 }
// COL2ROW or ROW2COL
#define DIODE_DIRECTION COL2ROW
-// Set 0 if debouncing isn't needed
-#define DEBOUNCE 5
-
// Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap
#define LOCKING_SUPPORT_ENABLE
// Locking resynchronize hack
#define LOCKING_RESYNC_ENABLE
-//Indicator
-#define LED_CAPS_LOCK_PIN A1
-
// I2C config
#define I2C1_SCL_PIN B8
#define I2C1_SDA_PIN B9
diff --git a/keyboards/xelus/rs60/rev2_0/info.json b/keyboards/xelus/rs60/rev2_0/info.json
index f9f8400732..e2ab965c1b 100644
--- a/keyboards/xelus/rs60/rev2_0/info.json
+++ b/keyboards/xelus/rs60/rev2_0/info.json
@@ -1,5 +1,10 @@
{
"usb": {
"device_version": "0.2.0"
- }
+ },
+ "indicators": {
+ "caps_lock": "A1"
+ },
+ "processor": "STM32F401",
+ "bootloader": "stm32-dfu"
}
diff --git a/keyboards/xelus/rs60/rev2_0/rules.mk b/keyboards/xelus/rs60/rev2_0/rules.mk
index 221b9d4c01..e81b538301 100644
--- a/keyboards/xelus/rs60/rev2_0/rules.mk
+++ b/keyboards/xelus/rs60/rev2_0/rules.mk
@@ -1,10 +1,3 @@
-# MCU name
-MCU = STM32F401
-BOARD = GENERIC_STM32_F401XC
-
-# Bootloader selection
-BOOTLOADER = stm32-dfu
-
# Build Options
# change yes to no to disable
#
diff --git a/keyboards/xelus/rs60/rev2_1/config.h b/keyboards/xelus/rs60/rev2_1/config.h
index 9f5925f784..0dfcb0df72 100644
--- a/keyboards/xelus/rs60/rev2_1/config.h
+++ b/keyboards/xelus/rs60/rev2_1/config.h
@@ -15,28 +15,18 @@
*/
#pragma once
-/* key matrix size */
-#define MATRIX_ROWS 5
-#define MATRIX_COLS 14
-
#define MATRIX_ROW_PINS { B15, B14, B12, B1, B0 }
#define MATRIX_COL_PINS { B13, A7, A6, A5, A4, A3, A2, B7, B6, B5, B4, B3, A15, A14 }
// COL2ROW or ROW2COL
#define DIODE_DIRECTION COL2ROW
-// Set 0 if debouncing isn't needed
-#define DEBOUNCE 5
-
// Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap
#define LOCKING_SUPPORT_ENABLE
// Locking resynchronize hack
#define LOCKING_RESYNC_ENABLE
-//Indicator
-#define LED_CAPS_LOCK_PIN A1
-
// Emulated EEPROM
#define WEAR_LEVELING_LOGICAL_SIZE 2048
#define WEAR_LEVELING_BACKING_SIZE WEAR_LEVELING_LOGICAL_SIZE*2
diff --git a/keyboards/xelus/rs60/rev2_1/info.json b/keyboards/xelus/rs60/rev2_1/info.json
index 79768e0009..2cb5b5ddda 100644
--- a/keyboards/xelus/rs60/rev2_1/info.json
+++ b/keyboards/xelus/rs60/rev2_1/info.json
@@ -1,5 +1,10 @@
{
"usb": {
"device_version": "0.2.1"
- }
+ },
+ "indicators": {
+ "caps_lock": "A1"
+ },
+ "processor": "STM32L412",
+ "bootloader": "stm32-dfu"
}
diff --git a/keyboards/xelus/rs60/rev2_1/rules.mk b/keyboards/xelus/rs60/rev2_1/rules.mk
index 86f893cb2f..6329d2c31d 100644
--- a/keyboards/xelus/rs60/rev2_1/rules.mk
+++ b/keyboards/xelus/rs60/rev2_1/rules.mk
@@ -1,9 +1,3 @@
-# MCU name
-MCU = STM32L412
-
-# Bootloader selection
-BOOTLOADER = stm32-dfu
-
# Build Options
# change yes to no to disable
#
diff --git a/keyboards/xelus/snap96/config.h b/keyboards/xelus/snap96/config.h
index a42ecb1931..553c6aaddf 100644
--- a/keyboards/xelus/snap96/config.h
+++ b/keyboards/xelus/snap96/config.h
@@ -1,10 +1,5 @@
#pragma once
-#include "config_common.h"
-
-// key matrix size
-#define MATRIX_ROWS 12
-#define MATRIX_COLS 10
// key matrix pins
#define MATRIX_ROW_PINS { B2, B1, B0, C7, F6, F7, B3, D1, D2, D7, B6, C6 }
@@ -13,9 +8,6 @@
// COL2ROW or ROW2COL
#define DIODE_DIRECTION COL2ROW
-// Set 0 if debouncing isn't needed
-#define DEBOUNCE 5
-
// Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap
#define LOCKING_SUPPORT_ENABLE
// Locking resynchronize hack
diff --git a/keyboards/xelus/snap96/info.json b/keyboards/xelus/snap96/info.json
index 74c7d6225a..6550d46c8e 100644
--- a/keyboards/xelus/snap96/info.json
+++ b/keyboards/xelus/snap96/info.json
@@ -8,6 +8,8 @@
"pid": "0x5396",
"device_version": "0.0.1"
},
+ "processor": "atmega32u4",
+ "bootloader": "atmel-dfu",
"layouts": {
"LAYOUT_all": {
"layout": [
diff --git a/keyboards/xelus/snap96/rules.mk b/keyboards/xelus/snap96/rules.mk
index 726bc460fe..8ced3c4cfc 100644
--- a/keyboards/xelus/snap96/rules.mk
+++ b/keyboards/xelus/snap96/rules.mk
@@ -1,9 +1,3 @@
-# MCU name
-MCU = atmega32u4
-
-# Bootloader selection
-BOOTLOADER = atmel-dfu
-
# Build Options
# change yes to no to disable
#
diff --git a/keyboards/xelus/trinityxttkl/config.h b/keyboards/xelus/trinityxttkl/config.h
index d480a57ff8..64cb061b40 100644
--- a/keyboards/xelus/trinityxttkl/config.h
+++ b/keyboards/xelus/trinityxttkl/config.h
@@ -16,25 +16,11 @@
#pragma once
-/* key matrix size */
-#define MATRIX_ROWS 6
-#define MATRIX_COLS 19
-
#define MATRIX_COL_PINS { A9, A8, B15, B14, B13, B12, B11, B10, B2, B1, B0, A7, A6, A5, A4, A3, A10, B9, B4 }
#define MATRIX_ROW_PINS { A14, A15, B3, A2, B6, B5 }
#define DIODE_DIRECTION COL2ROW
-/* define if matrix has ghost */
-//#define MATRIX_HAS_GHOST
-
-/* Set 0 if debouncing isn't needed */
-#define DEBOUNCE 5
-
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
-
-#define LED_CAPS_LOCK_PIN A1
-#define LED_SCROLL_LOCK_PIN A13
-#define LED_PIN_ON_STATE 1
diff --git a/keyboards/xelus/trinityxttkl/info.json b/keyboards/xelus/trinityxttkl/info.json
index 724eaef114..787f30cf99 100644
--- a/keyboards/xelus/trinityxttkl/info.json
+++ b/keyboards/xelus/trinityxttkl/info.json
@@ -8,6 +8,12 @@
"pid": "0x5854",
"device_version": "0.0.1"
},
+ "indicators": {
+ "caps_lock": "A1",
+ "scroll_lock": "A13"
+ },
+ "processor": "STM32F072",
+ "bootloader": "stm32-dfu",
"layouts": {
"LAYOUT_all": {
"layout": [
diff --git a/keyboards/xelus/trinityxttkl/rules.mk b/keyboards/xelus/trinityxttkl/rules.mk
index 99fcb3cd13..120a444ec8 100644
--- a/keyboards/xelus/trinityxttkl/rules.mk
+++ b/keyboards/xelus/trinityxttkl/rules.mk
@@ -1,9 +1,3 @@
-# MCU name
-MCU = STM32F072
-
-# Bootloader selection
-BOOTLOADER = stm32-dfu
-
# Wildcard to allow APM32 MCU
DFU_SUFFIX_ARGS = -v FFFF -p FFFF
diff --git a/keyboards/xelus/valor/rev1/config.h b/keyboards/xelus/valor/rev1/config.h
index d5ed8f0e66..07f69540a0 100644
--- a/keyboards/xelus/valor/rev1/config.h
+++ b/keyboards/xelus/valor/rev1/config.h
@@ -16,11 +16,6 @@
#pragma once
-#include "config_common.h"
-
-/* key matrix size */
-#define MATRIX_ROWS 5
-#define MATRIX_COLS 15
/* key matrix pins */
#define MATRIX_ROW_PINS { B1, B2, C7, C6, B6 }
@@ -44,9 +39,6 @@
/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION COL2ROW
-/* Set 0 if debouncing isn't needed */
-#define DEBOUNCE 5
-
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE
diff --git a/keyboards/xelus/valor/rev1/info.json b/keyboards/xelus/valor/rev1/info.json
index 7e8f874d2c..547e50b3f8 100644
--- a/keyboards/xelus/valor/rev1/info.json
+++ b/keyboards/xelus/valor/rev1/info.json
@@ -8,6 +8,9 @@
"pid": "0x5652",
"device_version": "0.0.1"
},
+ "processor": "atmega32u4",
+ "bootloader": "atmel-dfu",
+ "community_layouts": ["alice_split_bs"],
"layouts": {
"LAYOUT_alice_split_bs": {
"layout": [
diff --git a/keyboards/xelus/valor/rev1/rules.mk b/keyboards/xelus/valor/rev1/rules.mk
index 4c6c0aaf13..2617d3d629 100644
--- a/keyboards/xelus/valor/rev1/rules.mk
+++ b/keyboards/xelus/valor/rev1/rules.mk
@@ -1,9 +1,3 @@
-# MCU name
-MCU = atmega32u4
-
-# Bootloader selection
-BOOTLOADER = atmel-dfu
-
# Build Options
# change yes to no to disable
#
@@ -17,5 +11,3 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
AUDIO_ENABLE = no # Audio output
LTO_ENABLE = yes
-
-LAYOUTS = alice_split_bs
diff --git a/keyboards/xelus/valor/rev2/config.h b/keyboards/xelus/valor/rev2/config.h
index 4599546149..2dba975d78 100644
--- a/keyboards/xelus/valor/rev2/config.h
+++ b/keyboards/xelus/valor/rev2/config.h
@@ -16,11 +16,6 @@
#pragma once
-#include "config_common.h"
-
-/* key matrix size */
-#define MATRIX_ROWS 5
-#define MATRIX_COLS 15
/* key matrix pins */
#define MATRIX_ROW_PINS { B11, B10, A3, A1, A2 }
@@ -29,9 +24,6 @@
/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION COL2ROW
-/* Set 0 if debouncing isn't needed */
-#define DEBOUNCE 5
-
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE
diff --git a/keyboards/xelus/valor/rev2/info.json b/keyboards/xelus/valor/rev2/info.json
index 1d19fbad2d..f77f18dda3 100644
--- a/keyboards/xelus/valor/rev2/info.json
+++ b/keyboards/xelus/valor/rev2/info.json
@@ -8,6 +8,9 @@
"pid": "0x5653",
"device_version": "0.0.1"
},
+ "processor": "STM32L422",
+ "bootloader": "stm32-dfu",
+ "community_layouts": ["alice_split_bs"],
"layouts": {
"LAYOUT_alice_split_bs": {
"layout": [
diff --git a/keyboards/xelus/valor/rev2/rules.mk b/keyboards/xelus/valor/rev2/rules.mk
index ca2fac6094..47560d7f15 100644
--- a/keyboards/xelus/valor/rev2/rules.mk
+++ b/keyboards/xelus/valor/rev2/rules.mk
@@ -1,9 +1,3 @@
-# MCU name
-MCU = STM32L422
-
-# Bootloader selection
-BOOTLOADER = stm32-dfu
-
# Build Options
# change yes to no to disable
#
@@ -24,5 +18,3 @@ EEPROM_DRIVER = i2c
OPT = 2
LTO_ENABLE = yes
-
-LAYOUTS = alice_split_bs
diff --git a/keyboards/xelus/valor_frl_tkl/rev1/config.h b/keyboards/xelus/valor_frl_tkl/rev1/config.h
index 46c598c637..8852d04548 100644
--- a/keyboards/xelus/valor_frl_tkl/rev1/config.h
+++ b/keyboards/xelus/valor_frl_tkl/rev1/config.h
@@ -16,11 +16,6 @@
#pragma once
-#include "config_common.h"
-
-/* key matrix size */
-#define MATRIX_ROWS 5
-#define MATRIX_COLS 17
/* key matrix pins */
#define MATRIX_ROW_PINS { A15, A14, A1, B3, B4 }
@@ -29,9 +24,6 @@
/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION COL2ROW
-/* Set 0 if debouncing isn't needed */
-#define DEBOUNCE 5
-
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE
diff --git a/keyboards/xelus/valor_frl_tkl/rev1/info.json b/keyboards/xelus/valor_frl_tkl/rev1/info.json
index 694c988376..f4cc0f9659 100644
--- a/keyboards/xelus/valor_frl_tkl/rev1/info.json
+++ b/keyboards/xelus/valor_frl_tkl/rev1/info.json
@@ -2,5 +2,7 @@
"keyboard_name": "Valor FRL TKL Rev1",
"usb": {
"device_version": "0.0.1"
- }
+ },
+ "processor": "STM32F072",
+ "bootloader": "stm32-dfu"
}
diff --git a/keyboards/xelus/valor_frl_tkl/rev1/rules.mk b/keyboards/xelus/valor_frl_tkl/rev1/rules.mk
index 1c71897c3e..35173d663a 100644
--- a/keyboards/xelus/valor_frl_tkl/rev1/rules.mk
+++ b/keyboards/xelus/valor_frl_tkl/rev1/rules.mk
@@ -1,9 +1,3 @@
-# MCU name
-MCU = STM32F072
-
-# Bootloader selection
-BOOTLOADER = stm32-dfu
-
# Build Options
# change yes to no to disable
#
diff --git a/keyboards/xelus/valor_frl_tkl/rev2_0/config.h b/keyboards/xelus/valor_frl_tkl/rev2_0/config.h
index 53064275b1..da2454b4fe 100644
--- a/keyboards/xelus/valor_frl_tkl/rev2_0/config.h
+++ b/keyboards/xelus/valor_frl_tkl/rev2_0/config.h
@@ -16,10 +16,6 @@
#pragma once
-/* key matrix size */
-#define MATRIX_ROWS 5
-#define MATRIX_COLS 17
-
/* key matrix pins */
#define MATRIX_ROW_PINS { A15, A14, A10, B3, B4 }
#define MATRIX_COL_PINS { A9, A8, B15, B14, B13, B12, B9, B1, B0, A7, A6, A5, A4, A3, A2, A1, A0 }
@@ -27,9 +23,6 @@
/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION COL2ROW
-/* Set 0 if debouncing isn't needed */
-#define DEBOUNCE 5
-
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE
diff --git a/keyboards/xelus/valor_frl_tkl/rev2_0/info.json b/keyboards/xelus/valor_frl_tkl/rev2_0/info.json
index 1764cc45eb..972ee4bf92 100644
--- a/keyboards/xelus/valor_frl_tkl/rev2_0/info.json
+++ b/keyboards/xelus/valor_frl_tkl/rev2_0/info.json
@@ -2,5 +2,7 @@
"keyboard_name": "Valor FRL TKL Rev2.0",
"usb": {
"device_version": "0.0.2"
- }
+ },
+ "processor": "STM32F411",
+ "bootloader": "stm32-dfu"
}
diff --git a/keyboards/xelus/valor_frl_tkl/rev2_0/rules.mk b/keyboards/xelus/valor_frl_tkl/rev2_0/rules.mk
index 0adbc4f383..4ecf72dea7 100644
--- a/keyboards/xelus/valor_frl_tkl/rev2_0/rules.mk
+++ b/keyboards/xelus/valor_frl_tkl/rev2_0/rules.mk
@@ -1,10 +1,3 @@
-# MCU name
-MCU = STM32F411
-BOARD = GENERIC_STM32_F411XE
-
-# Bootloader selection
-BOOTLOADER = stm32-dfu
-
# Build Options
# change yes to no to disable
#
diff --git a/keyboards/xelus/valor_frl_tkl/rev2_1/config.h b/keyboards/xelus/valor_frl_tkl/rev2_1/config.h
index fdcbf4ffe3..ad3ac93ae7 100644
--- a/keyboards/xelus/valor_frl_tkl/rev2_1/config.h
+++ b/keyboards/xelus/valor_frl_tkl/rev2_1/config.h
@@ -16,10 +16,6 @@
#pragma once
-/* key matrix size */
-#define MATRIX_ROWS 5
-#define MATRIX_COLS 17
-
/* key matrix pins */
#define MATRIX_ROW_PINS { A15, A14, A13, B3, B4 }
#define MATRIX_COL_PINS { A10, A8, B15, B14, B13, B12, B9, B1, B0, A7, A6, A5, A4, A3, A2, A1, A0 }
@@ -27,9 +23,6 @@
/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION COL2ROW
-/* Set 0 if debouncing isn't needed */
-#define DEBOUNCE 5
-
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE
diff --git a/keyboards/xelus/valor_frl_tkl/rev2_1/info.json b/keyboards/xelus/valor_frl_tkl/rev2_1/info.json
index 1c7fb1dd6b..6e76320a13 100644
--- a/keyboards/xelus/valor_frl_tkl/rev2_1/info.json
+++ b/keyboards/xelus/valor_frl_tkl/rev2_1/info.json
@@ -2,5 +2,7 @@
"keyboard_name": "Valor FRL TKL Rev2.2",
"usb": {
"device_version": "0.0.3"
- }
+ },
+ "processor": "STM32F401",
+ "bootloader": "stm32-dfu"
}
diff --git a/keyboards/xelus/valor_frl_tkl/rev2_1/rules.mk b/keyboards/xelus/valor_frl_tkl/rev2_1/rules.mk
index 6b2ee6520d..4ecf72dea7 100644
--- a/keyboards/xelus/valor_frl_tkl/rev2_1/rules.mk
+++ b/keyboards/xelus/valor_frl_tkl/rev2_1/rules.mk
@@ -1,10 +1,3 @@
-# MCU name
-MCU = STM32F401
-BOARD = GENERIC_STM32_F401XC
-
-# Bootloader selection
-BOOTLOADER = stm32-dfu
-
# Build Options
# change yes to no to disable
#
diff --git a/keyboards/xelus/xs108/config.h b/keyboards/xelus/xs108/config.h
index c2643fa3c4..b04e268f1e 100644
--- a/keyboards/xelus/xs108/config.h
+++ b/keyboards/xelus/xs108/config.h
@@ -16,29 +16,16 @@
#pragma once
-/* key matrix size */
-#define MATRIX_ROWS 6
-#define MATRIX_COLS 21
-
#define MATRIX_ROW_PINS { C14, C13, A10, A3, A1, A0 }
#define MATRIX_COL_PINS { A9, A8, B15, B14, B13, B12, B11, B10, B2, B1, B0, A7, A6, A5, A4, B6, B5, B4, B3, A15, A14 }
#define DIODE_DIRECTION COL2ROW
-/* Set 0 if debouncing isn't needed */
-#define DEBOUNCE 5
-
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
-// LED defines
-#define LED_CAPS_LOCK_PIN A2
-#define LED_SCROLL_LOCK_PIN A13
-#define LED_NUM_LOCK_PIN B7
-#define LED_PIN_ON_STATE 1
-
// I2C setup
#define I2C1_SCL_PIN B8
#define I2C1_SDA_PIN B9
diff --git a/keyboards/xelus/xs108/info.json b/keyboards/xelus/xs108/info.json
index c24b00b011..c4a53a6f59 100644
--- a/keyboards/xelus/xs108/info.json
+++ b/keyboards/xelus/xs108/info.json
@@ -8,6 +8,13 @@
"pid": "0x0108",
"device_version": "0.0.1"
},
+ "indicators": {
+ "caps_lock": "A2",
+ "num_lock": "B7",
+ "scroll_lock": "A13"
+ },
+ "processor": "STM32L412",
+ "bootloader": "stm32-dfu",
"layouts": {
"LAYOUT_108_ansi": {
"layout": [
diff --git a/keyboards/xelus/xs108/rules.mk b/keyboards/xelus/xs108/rules.mk
index b02554d542..a204d485fa 100644
--- a/keyboards/xelus/xs108/rules.mk
+++ b/keyboards/xelus/xs108/rules.mk
@@ -1,9 +1,3 @@
-# MCU name
-MCU = STM32L412
-
-# Bootloader selection
-BOOTLOADER = stm32-dfu
-
# Build Options
# change yes to no to disable
#
diff --git a/keyboards/xelus/xs60/config.h b/keyboards/xelus/xs60/hotswap/config.h
index a61cd22e53..807c397aba 100644
--- a/keyboards/xelus/xs60/config.h
+++ b/keyboards/xelus/xs60/hotswap/config.h
@@ -1,4 +1,4 @@
-/* Copyright 2021 Harrison Chan (Xelus)
+/* Copyright 2022 Harrison Chan (Xelus)
*
* 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
@@ -16,20 +16,6 @@
#pragma once
-/* key matrix size */
-#define MATRIX_ROWS 5
-#define MATRIX_COLS 14
-
-/* key matrix pins */
-#define MATRIX_ROW_PINS { B4, B3, A15, A14, A7 }
-#define MATRIX_COL_PINS { B0, B1, A8, A9, B5, A6, C14, C15, A0, A5, A4, A3, A2, A1 }
-
-/* COL2ROW or ROW2COL */
-#define DIODE_DIRECTION COL2ROW
-
-/* Set 0 if debouncing isn't needed */
-#define DEBOUNCE 5
-
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE
@@ -50,3 +36,13 @@
// More EEPROM for layers
#define DYNAMIC_KEYMAP_EEPROM_MAX_ADDR 8191
+
+// RGBLIGHT
+#define RGB_DI_PIN A10
+#define RGBLED_NUM 8 // actually only has 1
+#define RGBLIGHT_LAYERS
+#define WS2812_EXTERNAL_PULLUP
+#define RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF
+
+// Bitbang WS2812
+#define NOP_FUDGE 0.4
diff --git a/keyboards/xelus/xs60/halconf.h b/keyboards/xelus/xs60/hotswap/halconf.h
index 73481c72a6..b494afca7f 100644
--- a/keyboards/xelus/xs60/halconf.h
+++ b/keyboards/xelus/xs60/hotswap/halconf.h
@@ -1,4 +1,4 @@
-/* Copyright 2021 Harrison Chan (Xelus)
+/* Copyright 2022 Harrison Chan (Xelus)
*
* 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
diff --git a/keyboards/xelus/xs60/xs60.c b/keyboards/xelus/xs60/hotswap/hotswap.c
index 95247c934a..cb84eeca18 100644
--- a/keyboards/xelus/xs60/xs60.c
+++ b/keyboards/xelus/xs60/hotswap/hotswap.c
@@ -1,4 +1,4 @@
-/* Copyright 2021 Harrison Chan (Xelus)
+/* Copyright 2022 Harrison Chan (Xelus)
*
* 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
@@ -14,7 +14,7 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-#include "xs60.h"
+#include "hotswap.h"
// tested and working
void matrix_io_delay(void) { __asm__ volatile("nop\nnop\nnop\n"); }
diff --git a/keyboards/xelus/xs60/hotswap/hotswap.h b/keyboards/xelus/xs60/hotswap/hotswap.h
new file mode 100644
index 0000000000..b2d4431554
--- /dev/null
+++ b/keyboards/xelus/xs60/hotswap/hotswap.h
@@ -0,0 +1,34 @@
+/* Copyright 2022 Harrison Chan (Xelus)
+ *
+ * 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 "quantum.h"
+
+#define XXX KC_NO
+
+#define LAYOUT_60_ansi_tsangan_split_rshift( \
+ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \
+ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
+ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, \
+ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3C, K3D, \
+ K40, K41, K42, K45, K4A, K4B, K4D \
+) { \
+ { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D }, \
+ { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D }, \
+ { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, XXX, K2D }, \
+ { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, XXX, K3C, K3D }, \
+ { K40, K41, K42, XXX, XXX, K45, XXX, XXX, XXX, XXX, K4A, K4B, XXX, K4D } \
+}
diff --git a/keyboards/xelus/xs60/hotswap/info.json b/keyboards/xelus/xs60/hotswap/info.json
new file mode 100644
index 0000000000..35c4c7bc63
--- /dev/null
+++ b/keyboards/xelus/xs60/hotswap/info.json
@@ -0,0 +1,85 @@
+{
+ "keyboard_name": "XS60 Hotswap",
+ "manufacturer": "Xelus",
+ "url": "",
+ "maintainer": "Xelus22",
+ "usb": {
+ "vid": "0x5845",
+ "pid": "0x5861",
+ "device_version": "0.0.1"
+ },
+ "processor": "STM32L422",
+ "bootloader": "stm32-dfu",
+ "diode_direction": "COL2ROW",
+ "matrix_pins": {
+ "cols": ["B0", "B1", "A8", "A9", "B5", "A6", "C14", "C15", "A0", "A5","A4","A3","A2","A1"],
+ "rows": ["B4", "B3", "A15", "A14", "A7"]
+ },
+ "layouts": {
+ "LAYOUT_60_ansi_tsangan_split_rshift": {
+ "layout": [
+ {"label":"Esc", "x":0, "y":0},
+ {"label":"1", "x":1, "y":0},
+ {"label":"2", "x":2, "y":0},
+ {"label":"3", "x":3, "y":0},
+ {"label":"4", "x":4, "y":0},
+ {"label":"5", "x":5, "y":0},
+ {"label":"6", "x":6, "y":0},
+ {"label":"7", "x":7, "y":0},
+ {"label":"8", "x":8, "y":0},
+ {"label":"9", "x":9, "y":0},
+ {"label":"0", "x":10, "y":0},
+ {"label":"-", "x":11, "y":0},
+ {"label":"=", "x":12, "y":0},
+ {"label":"Backspace", "x":13, "y":0, "w":2},
+ {"label":"Tab", "x":0, "y":1, "w":1.5},
+ {"label":"Q", "x":1.5, "y":1},
+ {"label":"W", "x":2.5, "y":1},
+ {"label":"E", "x":3.5, "y":1},
+ {"label":"R", "x":4.5, "y":1},
+ {"label":"T", "x":5.5, "y":1},
+ {"label":"Y", "x":6.5, "y":1},
+ {"label":"U", "x":7.5, "y":1},
+ {"label":"I", "x":8.5, "y":1},
+ {"label":"O", "x":9.5, "y":1},
+ {"label":"P", "x":10.5, "y":1},
+ {"label":"[", "x":11.5, "y":1},
+ {"label":"]", "x":12.5, "y":1},
+ {"label":"Backspace", "x":13.5, "y":1, "w":1.5},
+ {"label":"Caps Lock", "x":0, "y":2, "w":1.75},
+ {"label":"A", "x":1.75, "y":2},
+ {"label":"S", "x":2.75, "y":2},
+ {"label":"D", "x":3.75, "y":2},
+ {"label":"F", "x":4.75, "y":2},
+ {"label":"G", "x":5.75, "y":2},
+ {"label":"H", "x":6.75, "y":2},
+ {"label":"J", "x":7.75, "y":2},
+ {"label":"K", "x":8.75, "y":2},
+ {"label":"L", "x":9.75, "y":2},
+ {"label":";", "x":10.75, "y":2},
+ {"label":"'", "x":11.75, "y":2},
+ {"label":"Enter", "x":12.75, "y":2, "w":2.25},
+ {"label":"Shift", "x":0, "y":3, "w":2.25},
+ {"label":"Z", "x":2.25, "y":3},
+ {"label":"X", "x":3.25, "y":3},
+ {"label":"C", "x":4.25, "y":3},
+ {"label":"V", "x":5.25, "y":3},
+ {"label":"B", "x":6.25, "y":3},
+ {"label":"N", "x":7.25, "y":3},
+ {"label":"M", "x":8.25, "y":3},
+ {"label":",", "x":9.25, "y":3},
+ {"label":".", "x":10.25, "y":3},
+ {"label":"/", "x":11.25, "y":3},
+ {"label":"Shift", "x":12.25, "y":3, "w":1.75},
+ {"label":"Fn", "x":14, "y":3},
+ {"label":"Ctrl", "x":0, "y":4, "w":1.5},
+ {"label":"GUI", "x":1.5, "y":4},
+ {"label":"Alt", "x":2.5, "y":4, "w":1.5},
+ {"label":"Space", "x":4, "y":4, "w":7},
+ {"label":"Alt", "x":11, "y":4, "w":1.5},
+ {"label":"GUI", "x":12.5, "y":4},
+ {"label":"Ctrl", "x":13.5, "y":4, "w":1.5}
+ ]
+ }
+ }
+}
diff --git a/keyboards/xelus/xs60/hotswap/keymaps/default/keymap.c b/keyboards/xelus/xs60/hotswap/keymaps/default/keymap.c
new file mode 100644
index 0000000000..87aa2adc03
--- /dev/null
+++ b/keyboards/xelus/xs60/hotswap/keymaps/default/keymap.c
@@ -0,0 +1,81 @@
+/* Copyright 2022 Harrison Chan (Xelus)
+ *
+ * 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/>.
+ */
+
+// Default layout for XS60
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+// Default layer: Pressing caps-lock momentarily switches to Layer 1.
+// This is the default layer. Pressing an empty keycode on another layer will take you here.
+ [0] = LAYOUT_60_ansi_tsangan_split_rshift(
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL , KC_BSLS,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC,
+ KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_UP, MO(1),
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL
+ ),
+
+ [1] = LAYOUT_60_ansi_tsangan_split_rshift(
+ KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR,
+ KC_CAPS, KC_TRNS, KC_UP , KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE,
+ KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_RSFT, KC_PGUP, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_END
+ )
+};
+
+#ifdef RGBLIGHT_LAYERS
+const rgblight_segment_t PROGMEM my_capslock_layer[] = RGBLIGHT_LAYER_SEGMENTS(
+ {0, 1, HSV_ORANGE}
+);
+
+const rgblight_segment_t PROGMEM my_layer1_layer[] = RGBLIGHT_LAYER_SEGMENTS(
+ {0, 1, HSV_CYAN}
+);
+
+const rgblight_segment_t PROGMEM my_layer2_layer[] = RGBLIGHT_LAYER_SEGMENTS(
+ {0, 1, HSV_PURPLE}
+);
+
+const rgblight_segment_t PROGMEM my_layer3_layer[] = RGBLIGHT_LAYER_SEGMENTS(
+ {0, 1, HSV_GREEN}
+);
+
+// Now define the array of layers. Later layers take precedence
+const rgblight_segment_t* const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST(
+ my_capslock_layer,
+ my_layer1_layer, // Overrides caps lock layer
+ my_layer2_layer, // Overrides other layers
+ my_layer3_layer // Overrides other layers
+);
+
+void keyboard_post_init_user(void) {
+ // Enable the LED layers
+ rgblight_layers = my_rgb_layers;
+}
+
+bool led_update_user(led_t led_state) {
+ rgblight_set_layer_state(0, led_state.caps_lock);
+ return true;
+}
+
+layer_state_t layer_state_set_user(layer_state_t state) {
+ rgblight_set_layer_state(1, layer_state_cmp(state, 1));
+ rgblight_set_layer_state(2, layer_state_cmp(state, 2));
+ rgblight_set_layer_state(3, layer_state_cmp(state, 3));
+ return state;
+}
+#endif
diff --git a/keyboards/xelus/xs60/keymaps/via/config.h b/keyboards/xelus/xs60/hotswap/keymaps/via/config.h
index 8c0ed0c6e3..965c516a63 100644
--- a/keyboards/xelus/xs60/keymaps/via/config.h
+++ b/keyboards/xelus/xs60/hotswap/keymaps/via/config.h
@@ -1,4 +1,4 @@
-/* Copyright 2021 Harrison Chan (Xelus)
+/* Copyright 2022 Harrison Chan (Xelus)
*
* 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
diff --git a/keyboards/xelus/xs60/hotswap/keymaps/via/keymap.c b/keyboards/xelus/xs60/hotswap/keymaps/via/keymap.c
new file mode 100644
index 0000000000..b749a01580
--- /dev/null
+++ b/keyboards/xelus/xs60/hotswap/keymaps/via/keymap.c
@@ -0,0 +1,128 @@
+/* Copyright 2022 Harrison Chan (Xelus)
+ *
+ * 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
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+// Default layer: Pressing caps-lock momentarily switches to Layer 1.
+// This is the default layer. Pressing an empty keycode on another layer will take you here.
+ [0] = LAYOUT_60_ansi_tsangan_split_rshift(
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL , KC_BSLS,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC,
+ KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1),
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL
+ ),
+
+ [1] = LAYOUT_60_ansi_tsangan_split_rshift(
+ KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR,
+ KC_CAPS, KC_TRNS, KC_UP , KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE,
+ KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_RSFT, KC_PGUP, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_END
+ ),
+
+ [2] = LAYOUT_60_ansi_tsangan_split_rshift(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+ ),
+
+ [3] = LAYOUT_60_ansi_tsangan_split_rshift(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+ ),
+
+ [4] = LAYOUT_60_ansi_tsangan_split_rshift(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+ ),
+
+ [5] = LAYOUT_60_ansi_tsangan_split_rshift(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+ ),
+
+ [6] = LAYOUT_60_ansi_tsangan_split_rshift(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+ ),
+
+ [7] = LAYOUT_60_ansi_tsangan_split_rshift(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+ )
+};
+
+#ifdef RGBLIGHT_LAYERS
+const rgblight_segment_t PROGMEM my_capslock_layer[] = RGBLIGHT_LAYER_SEGMENTS(
+ {0, 1, HSV_ORANGE}
+);
+
+const rgblight_segment_t PROGMEM my_layer1_layer[] = RGBLIGHT_LAYER_SEGMENTS(
+ {0, 1, HSV_CYAN}
+);
+
+const rgblight_segment_t PROGMEM my_layer2_layer[] = RGBLIGHT_LAYER_SEGMENTS(
+ {0, 1, HSV_PURPLE}
+);
+
+const rgblight_segment_t PROGMEM my_layer3_layer[] = RGBLIGHT_LAYER_SEGMENTS(
+ {0, 1, HSV_GREEN}
+);
+
+// Now define the array of layers. Later layers take precedence
+const rgblight_segment_t* const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST(
+ my_capslock_layer,
+ my_layer1_layer, // Overrides caps lock layer
+ my_layer2_layer, // Overrides other layers
+ my_layer3_layer // Overrides other layers
+);
+
+void keyboard_post_init_user(void) {
+ // Enable the LED layers
+ rgblight_layers = my_rgb_layers;
+}
+
+bool led_update_user(led_t led_state) {
+ rgblight_set_layer_state(0, led_state.caps_lock);
+ return true;
+}
+
+layer_state_t layer_state_set_user(layer_state_t state) {
+ rgblight_set_layer_state(1, layer_state_cmp(state, 1));
+ rgblight_set_layer_state(2, layer_state_cmp(state, 2));
+ rgblight_set_layer_state(3, layer_state_cmp(state, 3));
+ return state;
+}
+#endif
diff --git a/keyboards/xelus/xs60/keymaps/via/rules.mk b/keyboards/xelus/xs60/hotswap/keymaps/via/rules.mk
index 1e5b99807c..1e5b99807c 100644
--- a/keyboards/xelus/xs60/keymaps/via/rules.mk
+++ b/keyboards/xelus/xs60/hotswap/keymaps/via/rules.mk
diff --git a/keyboards/xelus/xs60/mcuconf.h b/keyboards/xelus/xs60/hotswap/mcuconf.h
index a1d2f9480e..95f3845f57 100644
--- a/keyboards/xelus/xs60/mcuconf.h
+++ b/keyboards/xelus/xs60/hotswap/mcuconf.h
@@ -1,4 +1,4 @@
-/* Copyright 2021 Harrison Chan (Xelus)
+/* Copyright 2022 Harrison Chan (Xelus)
*
* 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
diff --git a/keyboards/xelus/xs60/hotswap/readme.md b/keyboards/xelus/xs60/hotswap/readme.md
new file mode 100644
index 0000000000..a8c7801c84
--- /dev/null
+++ b/keyboards/xelus/xs60/hotswap/readme.md
@@ -0,0 +1,16 @@
+# XS60HS
+
+XS60HS - ANSI, tsangan bottom row.
+
+* Keyboard Maintainer: [Xelus22](https://github.com/Xelus22)
+* Hardware Supported: Group buys
+
+Make example for this keyboard (after setting up your build environment):
+
+ make xelus/xs60/hotswap:default
+
+Reset your keyboard in 3 ways:
+* Bootmagic reset: hold down the top left key (usually ESC) and plugin the keyboard
+* Physical reset button: on the back of the PCB, there should be a small golden button you can press
+
+See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
diff --git a/keyboards/xelus/xs60/rules.mk b/keyboards/xelus/xs60/hotswap/rules.mk
index 65c7d981ef..b58e18c74f 100644
--- a/keyboards/xelus/xs60/rules.mk
+++ b/keyboards/xelus/xs60/hotswap/rules.mk
@@ -1,9 +1,3 @@
-# MCU name
-MCU = STM32L422
-
-# Bootloader selection
-BOOTLOADER = stm32-dfu
-
# Build Options
# change yes to no to disable
#
@@ -18,7 +12,8 @@ AUDIO_ENABLE = no # Audio output
EEPROM_DRIVER = i2c
+RGBLIGHT_ENABLE = yes
+WS2812_DRIVER = bitbang
+
LTO_ENABLE = yes
OPT = 2
-
-LAYOUTS = 60_ansi_split_bs_rshift
diff --git a/keyboards/xelus/xs60/soldered/config.h b/keyboards/xelus/xs60/soldered/config.h
new file mode 100644
index 0000000000..da1468be66
--- /dev/null
+++ b/keyboards/xelus/xs60/soldered/config.h
@@ -0,0 +1,47 @@
+/* Copyright 2022 Harrison Chan (Xelus)
+ *
+ * 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
+
+/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
+#define LOCKING_SUPPORT_ENABLE
+
+/* Locking resynchronize hack */
+#define LOCKING_RESYNC_ENABLE
+
+// I2C setup
+#define I2C1_SCL_PAL_MODE 4
+#define I2C1_SDA_PAL_MODE 4
+#define I2C1_TIMINGR_PRESC 0U
+#define I2C1_TIMINGR_SCLDEL 7U
+#define I2C1_TIMINGR_SDADEL 0U
+#define I2C1_TIMINGR_SCLH 45U
+#define I2C1_TIMINGR_SCLL 149U
+
+// I2C EEPROM
+#define EEPROM_I2C_24LC64
+
+// More EEPROM for layers
+
+// RGBLIGHT
+#define RGB_DI_PIN A10
+#define RGBLED_NUM 8 // actually only has 1
+#define RGBLIGHT_LAYERS
+#define WS2812_EXTERNAL_PULLUP
+#define RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF
+
+// Bitbang WS2812
+#define NOP_FUDGE 0.4
diff --git a/keyboards/xelus/pachi/rgb/config.h b/keyboards/xelus/xs60/soldered/halconf.h
index 956d35d69b..b494afca7f 100644
--- a/keyboards/xelus/pachi/rgb/config.h
+++ b/keyboards/xelus/xs60/soldered/halconf.h
@@ -1,4 +1,4 @@
-/* Copyright 2021 Harrison Chan (Xelus)
+/* Copyright 2022 Harrison Chan (Xelus)
*
* 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
@@ -14,4 +14,9 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-#include "config_common.h"
+#pragma once
+
+#define HAL_USE_I2C TRUE
+
+#include_next <halconf.h>
+
diff --git a/keyboards/xelus/xs60/info.json b/keyboards/xelus/xs60/soldered/info.json
index 089d728b01..471bedba8c 100644
--- a/keyboards/xelus/xs60/info.json
+++ b/keyboards/xelus/xs60/soldered/info.json
@@ -1,5 +1,5 @@
{
- "keyboard_name": "XS60",
+ "keyboard_name": "XS60 Soldered",
"manufacturer": "Xelus",
"url": "",
"maintainer": "Xelus22",
@@ -8,6 +8,14 @@
"pid": "0x5860",
"device_version": "0.0.1"
},
+ "processor": "STM32L422",
+ "bootloader": "stm32-dfu",
+ "diode_direction": "COL2ROW",
+ "matrix_pins": {
+ "cols": ["B0", "B1", "A8", "A9", "B5", "A6", "C14", "C15", "A0", "A5", "A4", "A3", "A2", "A1"],
+ "rows": ["B4", "B3", "A15", "A14", "A7"]
+ },
+ "community_layouts": ["60_ansi_split_bs_rshift"],
"layouts": {
"LAYOUT_60_ansi_split_bs_rshift": {
"layout": [
diff --git a/keyboards/xelus/xs60/keymaps/default/keymap.c b/keyboards/xelus/xs60/soldered/keymaps/default/keymap.c
index 6970b02543..63d910eff4 100644
--- a/keyboards/xelus/xs60/keymaps/default/keymap.c
+++ b/keyboards/xelus/xs60/soldered/keymaps/default/keymap.c
@@ -1,4 +1,4 @@
-/* Copyright 2021 Harrison Chan (Xelus)
+/* Copyright 2022 Harrison Chan (Xelus)
*
* 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
@@ -36,3 +36,47 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_END
)
};
+
+
+#ifdef RGBLIGHT_LAYERS
+const rgblight_segment_t PROGMEM my_capslock_layer[] = RGBLIGHT_LAYER_SEGMENTS(
+ {0, 1, HSV_ORANGE}
+);
+
+const rgblight_segment_t PROGMEM my_layer1_layer[] = RGBLIGHT_LAYER_SEGMENTS(
+ {0, 1, HSV_CYAN}
+);
+
+const rgblight_segment_t PROGMEM my_layer2_layer[] = RGBLIGHT_LAYER_SEGMENTS(
+ {0, 1, HSV_PURPLE}
+);
+
+const rgblight_segment_t PROGMEM my_layer3_layer[] = RGBLIGHT_LAYER_SEGMENTS(
+ {0, 1, HSV_GREEN}
+);
+
+// Now define the array of layers. Later layers take precedence
+const rgblight_segment_t* const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST(
+ my_capslock_layer,
+ my_layer1_layer, // Overrides caps lock layer
+ my_layer2_layer, // Overrides other layers
+ my_layer3_layer // Overrides other layers
+);
+
+void keyboard_post_init_user(void) {
+ // Enable the LED layers
+ rgblight_layers = my_rgb_layers;
+}
+
+bool led_update_user(led_t led_state) {
+ rgblight_set_layer_state(0, led_state.caps_lock);
+ return true;
+}
+
+layer_state_t layer_state_set_user(layer_state_t state) {
+ rgblight_set_layer_state(1, layer_state_cmp(state, 1));
+ rgblight_set_layer_state(2, layer_state_cmp(state, 2));
+ rgblight_set_layer_state(3, layer_state_cmp(state, 3));
+ return state;
+}
+#endif
diff --git a/keyboards/xelus/rs60/config.h b/keyboards/xelus/xs60/soldered/keymaps/via/config.h
index 52c27df6e8..965c516a63 100644
--- a/keyboards/xelus/rs60/config.h
+++ b/keyboards/xelus/xs60/soldered/keymaps/via/config.h
@@ -13,5 +13,7 @@
* 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 "config_common.h"
+// More layers
+#define DYNAMIC_KEYMAP_LAYER_COUNT 8
diff --git a/keyboards/xelus/xs60/keymaps/via/keymap.c b/keyboards/xelus/xs60/soldered/keymaps/via/keymap.c
index 76901c41c7..a6ae08741a 100644
--- a/keyboards/xelus/xs60/keymaps/via/keymap.c
+++ b/keyboards/xelus/xs60/soldered/keymaps/via/keymap.c
@@ -1,4 +1,4 @@
-/* Copyright 2021 Harrison Chan (Xelus)
+/* Copyright 2022 Harrison Chan (Xelus)
*
* 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
@@ -83,3 +83,47 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
)
};
+
+
+#ifdef RGBLIGHT_LAYERS
+const rgblight_segment_t PROGMEM my_capslock_layer[] = RGBLIGHT_LAYER_SEGMENTS(
+ {0, 1, HSV_ORANGE}
+);
+
+const rgblight_segment_t PROGMEM my_layer1_layer[] = RGBLIGHT_LAYER_SEGMENTS(
+ {0, 1, HSV_CYAN}
+);
+
+const rgblight_segment_t PROGMEM my_layer2_layer[] = RGBLIGHT_LAYER_SEGMENTS(
+ {0, 1, HSV_PURPLE}
+);
+
+const rgblight_segment_t PROGMEM my_layer3_layer[] = RGBLIGHT_LAYER_SEGMENTS(
+ {0, 1, HSV_GREEN}
+);
+
+// Now define the array of layers. Later layers take precedence
+const rgblight_segment_t* const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST(
+ my_capslock_layer,
+ my_layer1_layer, // Overrides caps lock layer
+ my_layer2_layer, // Overrides other layers
+ my_layer3_layer // Overrides other layers
+);
+
+void keyboard_post_init_user(void) {
+ // Enable the LED layers
+ rgblight_layers = my_rgb_layers;
+}
+
+bool led_update_user(led_t led_state) {
+ rgblight_set_layer_state(0, led_state.caps_lock);
+ return true;
+}
+
+layer_state_t layer_state_set_user(layer_state_t state) {
+ rgblight_set_layer_state(1, layer_state_cmp(state, 1));
+ rgblight_set_layer_state(2, layer_state_cmp(state, 2));
+ rgblight_set_layer_state(3, layer_state_cmp(state, 3));
+ return state;
+}
+#endif
diff --git a/keyboards/xelus/xs60/soldered/keymaps/via/rules.mk b/keyboards/xelus/xs60/soldered/keymaps/via/rules.mk
new file mode 100644
index 0000000000..1e5b99807c
--- /dev/null
+++ b/keyboards/xelus/xs60/soldered/keymaps/via/rules.mk
@@ -0,0 +1 @@
+VIA_ENABLE = yes
diff --git a/keyboards/xelus/xs60/soldered/mcuconf.h b/keyboards/xelus/xs60/soldered/mcuconf.h
new file mode 100644
index 0000000000..95f3845f57
--- /dev/null
+++ b/keyboards/xelus/xs60/soldered/mcuconf.h
@@ -0,0 +1,23 @@
+/* Copyright 2022 Harrison Chan (Xelus)
+ *
+ * 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_I2C_USE_I2C1
+#define STM32_I2C_USE_I2C1 TRUE
+
diff --git a/keyboards/xelus/xs60/readme.md b/keyboards/xelus/xs60/soldered/readme.md
index f169f7f169..24a0b96280 100644
--- a/keyboards/xelus/xs60/readme.md
+++ b/keyboards/xelus/xs60/soldered/readme.md
@@ -1,4 +1,4 @@
-# XS60
+# XS60 Soldered
XS60 ANSI, normal + tsangan bottom row.
@@ -7,10 +7,9 @@ XS60 ANSI, normal + tsangan bottom row.
Make example for this keyboard (after setting up your build environment):
- make xelus/xs60:default
+ make xelus/xs60/soldered:default
Reset your keyboard in 3 ways:
-* Software reset on Fn + Backspace
* Bootmagic reset: hold down the top left key (usually ESC) and plugin the keyboard
* Physical reset button: on the back of the PCB, there should be a small golden button you can press
diff --git a/keyboards/xelus/xs60/soldered/rules.mk b/keyboards/xelus/xs60/soldered/rules.mk
new file mode 100644
index 0000000000..b58e18c74f
--- /dev/null
+++ b/keyboards/xelus/xs60/soldered/rules.mk
@@ -0,0 +1,19 @@
+# Build Options
+# change yes to no to disable
+#
+BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
+COMMAND_ENABLE = no # Commands for debug and configuration
+NKRO_ENABLE = yes # Enable N-Key Rollover
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
+AUDIO_ENABLE = no # Audio output
+
+EEPROM_DRIVER = i2c
+
+RGBLIGHT_ENABLE = yes
+WS2812_DRIVER = bitbang
+
+LTO_ENABLE = yes
+OPT = 2
diff --git a/keyboards/xelus/xs60/soldered/soldered.c b/keyboards/xelus/xs60/soldered/soldered.c
new file mode 100644
index 0000000000..bedf318221
--- /dev/null
+++ b/keyboards/xelus/xs60/soldered/soldered.c
@@ -0,0 +1,20 @@
+/* Copyright 2022 Harrison Chan (Xelus)
+ *
+ * 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 "soldered.h"
+
+// tested and working
+void matrix_io_delay(void) { __asm__ volatile("nop\nnop\nnop\n"); }
diff --git a/keyboards/xelus/xs60/xs60.h b/keyboards/xelus/xs60/soldered/soldered.h
index 41ecb4efaf..bcfd1437de 100644
--- a/keyboards/xelus/xs60/xs60.h
+++ b/keyboards/xelus/xs60/soldered/soldered.h
@@ -1,4 +1,4 @@
-/* Copyright 2021 Harrison Chan (Xelus)
+/* Copyright 2022 Harrison Chan (Xelus)
*
* 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