From 489b287e1ff2d4140f28b17f439daa5efdef5382 Mon Sep 17 00:00:00 2001
From: Xelus22 <17491233+Xelus22@users.noreply.github.com>
Date: Sun, 4 Sep 2022 01:27:00 +1000
Subject: [Keyboard] RS60 Rev2 change to eeprom emulation (#18201)
by xelus
---
keyboards/xelus/rs60/rev1/info.json | 2 +-
keyboards/xelus/rs60/rev2/chconf.h | 30 ----------------
keyboards/xelus/rs60/rev2/config.h | 65 -----------------------------------
keyboards/xelus/rs60/rev2/halconf.h | 26 --------------
keyboards/xelus/rs60/rev2/info.json | 5 ---
keyboards/xelus/rs60/rev2/mcuconf.h | 42 ----------------------
keyboards/xelus/rs60/rev2/rev2.c | 16 ---------
keyboards/xelus/rs60/rev2/rev2.h | 34 ------------------
keyboards/xelus/rs60/rev2/rules.mk | 29 ----------------
keyboards/xelus/rs60/rev2_0/config.h | 65 +++++++++++++++++++++++++++++++++++
keyboards/xelus/rs60/rev2_0/halconf.h | 26 ++++++++++++++
keyboards/xelus/rs60/rev2_0/info.json | 5 +++
keyboards/xelus/rs60/rev2_0/mcuconf.h | 42 ++++++++++++++++++++++
keyboards/xelus/rs60/rev2_0/readme.md | 20 +++++++++++
keyboards/xelus/rs60/rev2_0/rev2_0.c | 16 +++++++++
keyboards/xelus/rs60/rev2_0/rev2_0.h | 34 ++++++++++++++++++
keyboards/xelus/rs60/rev2_0/rules.mk | 28 +++++++++++++++
keyboards/xelus/rs60/rev2_1/config.h | 45 ++++++++++++++++++++++++
keyboards/xelus/rs60/rev2_1/info.json | 5 +++
keyboards/xelus/rs60/rev2_1/readme.md | 20 +++++++++++
keyboards/xelus/rs60/rev2_1/rev2_1.c | 16 +++++++++
keyboards/xelus/rs60/rev2_1/rev2_1.h | 34 ++++++++++++++++++
keyboards/xelus/rs60/rev2_1/rules.mk | 29 ++++++++++++++++
keyboards/xelus/rs60/rs60.h | 6 ++--
24 files changed, 390 insertions(+), 250 deletions(-)
delete mode 100644 keyboards/xelus/rs60/rev2/chconf.h
delete mode 100644 keyboards/xelus/rs60/rev2/config.h
delete mode 100644 keyboards/xelus/rs60/rev2/halconf.h
delete mode 100644 keyboards/xelus/rs60/rev2/info.json
delete mode 100644 keyboards/xelus/rs60/rev2/mcuconf.h
delete mode 100644 keyboards/xelus/rs60/rev2/rev2.c
delete mode 100644 keyboards/xelus/rs60/rev2/rev2.h
delete mode 100644 keyboards/xelus/rs60/rev2/rules.mk
create mode 100644 keyboards/xelus/rs60/rev2_0/config.h
create mode 100644 keyboards/xelus/rs60/rev2_0/halconf.h
create mode 100644 keyboards/xelus/rs60/rev2_0/info.json
create mode 100644 keyboards/xelus/rs60/rev2_0/mcuconf.h
create mode 100644 keyboards/xelus/rs60/rev2_0/readme.md
create mode 100644 keyboards/xelus/rs60/rev2_0/rev2_0.c
create mode 100644 keyboards/xelus/rs60/rev2_0/rev2_0.h
create mode 100644 keyboards/xelus/rs60/rev2_0/rules.mk
create mode 100644 keyboards/xelus/rs60/rev2_1/config.h
create mode 100644 keyboards/xelus/rs60/rev2_1/info.json
create mode 100644 keyboards/xelus/rs60/rev2_1/readme.md
create mode 100644 keyboards/xelus/rs60/rev2_1/rev2_1.c
create mode 100644 keyboards/xelus/rs60/rev2_1/rev2_1.h
create mode 100644 keyboards/xelus/rs60/rev2_1/rules.mk
diff --git a/keyboards/xelus/rs60/rev1/info.json b/keyboards/xelus/rs60/rev1/info.json
index 90ac25f360..cf78bc4ec7 100644
--- a/keyboards/xelus/rs60/rev1/info.json
+++ b/keyboards/xelus/rs60/rev1/info.json
@@ -1,5 +1,5 @@
{
"usb": {
- "device_version": "0.0.1"
+ "device_version": "0.1.0"
}
}
diff --git a/keyboards/xelus/rs60/rev2/chconf.h b/keyboards/xelus/rs60/rev2/chconf.h
deleted file mode 100644
index a9608a4c75..0000000000
--- a/keyboards/xelus/rs60/rev2/chconf.h
+++ /dev/null
@@ -1,30 +0,0 @@
-/* Copyright 2022 QMK
- *
- * 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 .
- */
-
-/*
- * This file was auto-generated by:
- * `qmk chibios-confmigrate -i keyboards/acheron/austin/chconf.h -r platforms/chibios/common/configs/chconf.h`
- */
-
-#pragma once
-
-#define CH_CFG_ST_FREQUENCY 10000
-
-#define CH_CFG_OPTIMIZE_SPEED FALSE
-
-#define CH_CFG_USE_CONDVARS_TIMEOUT FALSE
-
-#include_next
diff --git a/keyboards/xelus/rs60/rev2/config.h b/keyboards/xelus/rs60/rev2/config.h
deleted file mode 100644
index 71eb5fb262..0000000000
--- a/keyboards/xelus/rs60/rev2/config.h
+++ /dev/null
@@ -1,65 +0,0 @@
-/* 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 .
- */
-#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
-#define I2C1_SCL_PAL_MODE 4
-#define I2C1_SDA_PAL_MODE 4
-#define I2C1_CLOCK_SPEED 400000
-#define I2C1_DUTY_CYCLE FAST_DUTY_CYCLE_2
-
-// EEPROM config
-// 24LC32
-#define EXTERNAL_EEPROM_BYTE_COUNT 4096
-#define EXTERNAL_EEPROM_PAGE_SIZE 32
-#define EXTERNAL_EEPROM_ADDRESS_SIZE 2
-#define EXTERNAL_EEPROM_WRITE_TIME 5
-
-// More EEPROM for layers
-#define DYNAMIC_KEYMAP_EEPROM_MAX_ADDR 4095
-
-// Hardware Defines
-#define EARLY_INIT_PERFORM_BOOTLOADER_JUMP TRUE
-
-// HSE CLK
-#define STM32_HSECLK 16000000
-
-//Force NKRO
-#define FORCE_NKRO
diff --git a/keyboards/xelus/rs60/rev2/halconf.h b/keyboards/xelus/rs60/rev2/halconf.h
deleted file mode 100644
index b3e848852b..0000000000
--- a/keyboards/xelus/rs60/rev2/halconf.h
+++ /dev/null
@@ -1,26 +0,0 @@
-/* Copyright 2022 QMK
- *
- * 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 .
- */
-
-/*
- * This file was auto-generated by:
- * `qmk chibios-confmigrate -i keyboards/acheron/austin/halconf.h -r platforms/chibios/common/configs/halconf.h`
- */
-
-#pragma once
-
-#define HAL_USE_I2C TRUE
-
-#include_next
diff --git a/keyboards/xelus/rs60/rev2/info.json b/keyboards/xelus/rs60/rev2/info.json
deleted file mode 100644
index e557e4d307..0000000000
--- a/keyboards/xelus/rs60/rev2/info.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "usb": {
- "device_version": "0.0.2"
- }
-}
diff --git a/keyboards/xelus/rs60/rev2/mcuconf.h b/keyboards/xelus/rs60/rev2/mcuconf.h
deleted file mode 100644
index 2ef15d0720..0000000000
--- a/keyboards/xelus/rs60/rev2/mcuconf.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/* Copyright 2022 QMK
- *
- * 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 .
- */
-
-/*
- * This file was auto-generated by:
- * `qmk chibios-confmigrate -i keyboards/xelus/kangaroo/mcuconf.h -r platforms/chibios/GENERIC_STM32_F072XB/configs/mcuconf.h`
- */
-
-#pragma once
-
-#include_next
-
-#undef STM32_PLLM_VALUE
-#undef STM32_PLLN_VALUE
-#undef STM32_PLLP_VALUE
-#undef STM32_PLLQ_VALUE
-#undef STM32_PPRE1
-#undef STM32_PPRE2
-
-// 64MHz core
-#define STM32_PLLM_VALUE 8
-#define STM32_PLLN_VALUE 168
-#define STM32_PLLP_VALUE 4
-#define STM32_PLLQ_VALUE 7
-#define STM32_PPRE1 STM32_PPRE1_DIV2
-#define STM32_PPRE2 STM32_PPRE1_DIV1
-
-#undef STM32_I2C_USE_I2C1
-#define STM32_I2C_USE_I2C1 TRUE
diff --git a/keyboards/xelus/rs60/rev2/rev2.c b/keyboards/xelus/rs60/rev2/rev2.c
deleted file mode 100644
index f51e262ea0..0000000000
--- a/keyboards/xelus/rs60/rev2/rev2.c
+++ /dev/null
@@ -1,16 +0,0 @@
-/* Copyright 2021 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 .
- */
- #include "rev2.h"
diff --git a/keyboards/xelus/rs60/rev2/rev2.h b/keyboards/xelus/rs60/rev2/rev2.h
deleted file mode 100644
index 9b8e841de5..0000000000
--- a/keyboards/xelus/rs60/rev2/rev2.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/* Copyright 2021 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 .
- */
-#pragma once
-
-#include "quantum.h"
-
-#define XXX KC_NO
-
-#define LAYOUT_60_ansi_split_bs_rshift( \
- K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K2D, \
- 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, K2C, \
- K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3B, K3C, K3D, \
- K40, K41, K42, K45, K49, K4A, K4C, 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, K2C, K2D }, \
- { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, XXX, K3B, K3C, K3D }, \
- { K40, K41, K42, XXX, XXX, K45, XXX, XXX, XXX, K49, K4A, XXX, K4C, K4D } \
-}
diff --git a/keyboards/xelus/rs60/rev2/rules.mk b/keyboards/xelus/rs60/rev2/rules.mk
deleted file mode 100644
index 3bf99c0be7..0000000000
--- a/keyboards/xelus/rs60/rev2/rules.mk
+++ /dev/null
@@ -1,29 +0,0 @@
-# MCU name
-MCU = STM32F401
-BOARD = GENERIC_STM32_F401XC
-
-# Bootloader selection
-BOOTLOADER = stm32-dfu
-
-# 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
-RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-AUDIO_ENABLE = no # Audio output
-
-EEPROM_DRIVER = i2c
-
-# Save hid interface
-KEYBOARD_SHARED_EP = yes
-
-# Enter lower-power sleep mode when on the ChibiOS idle thread
-OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE
-
-LAYOUTS = 60_ansi_split_bs_rshift
diff --git a/keyboards/xelus/rs60/rev2_0/config.h b/keyboards/xelus/rs60/rev2_0/config.h
new file mode 100644
index 0000000000..71eb5fb262
--- /dev/null
+++ b/keyboards/xelus/rs60/rev2_0/config.h
@@ -0,0 +1,65 @@
+/* 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 .
+ */
+#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
+#define I2C1_SCL_PAL_MODE 4
+#define I2C1_SDA_PAL_MODE 4
+#define I2C1_CLOCK_SPEED 400000
+#define I2C1_DUTY_CYCLE FAST_DUTY_CYCLE_2
+
+// EEPROM config
+// 24LC32
+#define EXTERNAL_EEPROM_BYTE_COUNT 4096
+#define EXTERNAL_EEPROM_PAGE_SIZE 32
+#define EXTERNAL_EEPROM_ADDRESS_SIZE 2
+#define EXTERNAL_EEPROM_WRITE_TIME 5
+
+// More EEPROM for layers
+#define DYNAMIC_KEYMAP_EEPROM_MAX_ADDR 4095
+
+// Hardware Defines
+#define EARLY_INIT_PERFORM_BOOTLOADER_JUMP TRUE
+
+// HSE CLK
+#define STM32_HSECLK 16000000
+
+//Force NKRO
+#define FORCE_NKRO
diff --git a/keyboards/xelus/rs60/rev2_0/halconf.h b/keyboards/xelus/rs60/rev2_0/halconf.h
new file mode 100644
index 0000000000..b3e848852b
--- /dev/null
+++ b/keyboards/xelus/rs60/rev2_0/halconf.h
@@ -0,0 +1,26 @@
+/* Copyright 2022 QMK
+ *
+ * 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 .
+ */
+
+/*
+ * This file was auto-generated by:
+ * `qmk chibios-confmigrate -i keyboards/acheron/austin/halconf.h -r platforms/chibios/common/configs/halconf.h`
+ */
+
+#pragma once
+
+#define HAL_USE_I2C TRUE
+
+#include_next
diff --git a/keyboards/xelus/rs60/rev2_0/info.json b/keyboards/xelus/rs60/rev2_0/info.json
new file mode 100644
index 0000000000..f9f8400732
--- /dev/null
+++ b/keyboards/xelus/rs60/rev2_0/info.json
@@ -0,0 +1,5 @@
+{
+ "usb": {
+ "device_version": "0.2.0"
+ }
+}
diff --git a/keyboards/xelus/rs60/rev2_0/mcuconf.h b/keyboards/xelus/rs60/rev2_0/mcuconf.h
new file mode 100644
index 0000000000..2ef15d0720
--- /dev/null
+++ b/keyboards/xelus/rs60/rev2_0/mcuconf.h
@@ -0,0 +1,42 @@
+/* Copyright 2022 QMK
+ *
+ * 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 .
+ */
+
+/*
+ * This file was auto-generated by:
+ * `qmk chibios-confmigrate -i keyboards/xelus/kangaroo/mcuconf.h -r platforms/chibios/GENERIC_STM32_F072XB/configs/mcuconf.h`
+ */
+
+#pragma once
+
+#include_next
+
+#undef STM32_PLLM_VALUE
+#undef STM32_PLLN_VALUE
+#undef STM32_PLLP_VALUE
+#undef STM32_PLLQ_VALUE
+#undef STM32_PPRE1
+#undef STM32_PPRE2
+
+// 64MHz core
+#define STM32_PLLM_VALUE 8
+#define STM32_PLLN_VALUE 168
+#define STM32_PLLP_VALUE 4
+#define STM32_PLLQ_VALUE 7
+#define STM32_PPRE1 STM32_PPRE1_DIV2
+#define STM32_PPRE2 STM32_PPRE1_DIV1
+
+#undef STM32_I2C_USE_I2C1
+#define STM32_I2C_USE_I2C1 TRUE
diff --git a/keyboards/xelus/rs60/rev2_0/readme.md b/keyboards/xelus/rs60/rev2_0/readme.md
new file mode 100644
index 0000000000..692e4a9f0d
--- /dev/null
+++ b/keyboards/xelus/rs60/rev2_0/readme.md
@@ -0,0 +1,20 @@
+# RS60 Rev2 Prototype Version
+
+60% PCB with daughterboard in collaboration with Bisoromi and Mekibo
+
+* Keyboard Maintainer: [Xelus22](https://github.com/Xelus22)
+* Hardware Supported: RS60
+* Hardware Availability: Custom Keyboard Group Buys
+
+Make example for this keyboard (after setting up your build environment):
+
+ make xelus/rs60/rev2_0:default
+ make xelus/rs60/rev2_0:via
+
+Reset your keyboard in 3 ways:
+
+* Software reset on Fn [MO(1)] + Backspace
+* Bootmagic reset: hold down the top left key (usually escape) 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/rs60/rev2_0/rev2_0.c b/keyboards/xelus/rs60/rev2_0/rev2_0.c
new file mode 100644
index 0000000000..d2abbda521
--- /dev/null
+++ b/keyboards/xelus/rs60/rev2_0/rev2_0.c
@@ -0,0 +1,16 @@
+/* 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 .
+ */
+ #include "rev2_0.h"
diff --git a/keyboards/xelus/rs60/rev2_0/rev2_0.h b/keyboards/xelus/rs60/rev2_0/rev2_0.h
new file mode 100644
index 0000000000..dd43418964
--- /dev/null
+++ b/keyboards/xelus/rs60/rev2_0/rev2_0.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 .
+ */
+#pragma once
+
+#include "quantum.h"
+
+#define XXX KC_NO
+
+#define LAYOUT_60_ansi_split_bs_rshift( \
+ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K2D, \
+ 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, K2C, \
+ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3B, K3C, K3D, \
+ K40, K41, K42, K45, K49, K4A, K4C, 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, K2C, K2D }, \
+ { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, XXX, K3B, K3C, K3D }, \
+ { K40, K41, K42, XXX, XXX, K45, XXX, XXX, XXX, K49, K4A, XXX, K4C, K4D } \
+}
diff --git a/keyboards/xelus/rs60/rev2_0/rules.mk b/keyboards/xelus/rs60/rev2_0/rules.mk
new file mode 100644
index 0000000000..df66f7dd37
--- /dev/null
+++ b/keyboards/xelus/rs60/rev2_0/rules.mk
@@ -0,0 +1,28 @@
+# MCU name
+MCU = STM32F401
+BOARD = GENERIC_STM32_F401XC
+
+# Bootloader selection
+BOOTLOADER = stm32-dfu
+
+# 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
+RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
+AUDIO_ENABLE = no # Audio output
+EEPROM_DRIVER = i2c
+
+# Save hid interface
+KEYBOARD_SHARED_EP = yes
+
+# Enter lower-power sleep mode when on the ChibiOS idle thread
+OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE
+
+LAYOUTS = 60_ansi_split_bs_rshift
diff --git a/keyboards/xelus/rs60/rev2_1/config.h b/keyboards/xelus/rs60/rev2_1/config.h
new file mode 100644
index 0000000000..9f5925f784
--- /dev/null
+++ b/keyboards/xelus/rs60/rev2_1/config.h
@@ -0,0 +1,45 @@
+/* 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 .
+ */
+#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
+
+//Force NKRO
+#define FORCE_NKRO
diff --git a/keyboards/xelus/rs60/rev2_1/info.json b/keyboards/xelus/rs60/rev2_1/info.json
new file mode 100644
index 0000000000..79768e0009
--- /dev/null
+++ b/keyboards/xelus/rs60/rev2_1/info.json
@@ -0,0 +1,5 @@
+{
+ "usb": {
+ "device_version": "0.2.1"
+ }
+}
diff --git a/keyboards/xelus/rs60/rev2_1/readme.md b/keyboards/xelus/rs60/rev2_1/readme.md
new file mode 100644
index 0000000000..2454fec271
--- /dev/null
+++ b/keyboards/xelus/rs60/rev2_1/readme.md
@@ -0,0 +1,20 @@
+# RS60 Rev2 Production Version
+
+60% PCB with daughterboard in collaboration with Bisoromi and Mekibo
+
+* Keyboard Maintainer: [Xelus22](https://github.com/Xelus22)
+* Hardware Supported: RS60
+* Hardware Availability: Custom Keyboard Group Buys
+
+Make example for this keyboard (after setting up your build environment):
+
+ make xelus/rs60/rev2_1:default
+ make xelus/rs60/rev2_1:via
+
+Reset your keyboard in 3 ways:
+
+* Software reset on Fn [MO(1)] + Backspace
+* Bootmagic reset: hold down the top left key (usually escape) 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/rs60/rev2_1/rev2_1.c b/keyboards/xelus/rs60/rev2_1/rev2_1.c
new file mode 100644
index 0000000000..dc234542b5
--- /dev/null
+++ b/keyboards/xelus/rs60/rev2_1/rev2_1.c
@@ -0,0 +1,16 @@
+/* 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 .
+ */
+ #include "rev2_1.h"
diff --git a/keyboards/xelus/rs60/rev2_1/rev2_1.h b/keyboards/xelus/rs60/rev2_1/rev2_1.h
new file mode 100644
index 0000000000..dd43418964
--- /dev/null
+++ b/keyboards/xelus/rs60/rev2_1/rev2_1.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 .
+ */
+#pragma once
+
+#include "quantum.h"
+
+#define XXX KC_NO
+
+#define LAYOUT_60_ansi_split_bs_rshift( \
+ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K2D, \
+ 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, K2C, \
+ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3B, K3C, K3D, \
+ K40, K41, K42, K45, K49, K4A, K4C, 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, K2C, K2D }, \
+ { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, XXX, K3B, K3C, K3D }, \
+ { K40, K41, K42, XXX, XXX, K45, XXX, XXX, XXX, K49, K4A, XXX, K4C, K4D } \
+}
diff --git a/keyboards/xelus/rs60/rev2_1/rules.mk b/keyboards/xelus/rs60/rev2_1/rules.mk
new file mode 100644
index 0000000000..da1f821141
--- /dev/null
+++ b/keyboards/xelus/rs60/rev2_1/rules.mk
@@ -0,0 +1,29 @@
+# MCU name
+MCU = STM32L412
+
+# Bootloader selection
+BOOTLOADER = stm32-dfu
+
+# 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
+RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
+AUDIO_ENABLE = no # Audio output
+
+EEPROM_DRIVER = wear_leveling
+WEAR_LEVELING_DRIVER = embedded_flash
+
+# Save hid interface
+KEYBOARD_SHARED_EP = yes
+
+# Enter lower-power sleep mode when on the ChibiOS idle thread
+OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE
+
+LAYOUTS = 60_ansi_split_bs_rshift
diff --git a/keyboards/xelus/rs60/rs60.h b/keyboards/xelus/rs60/rs60.h
index 81e4470db5..5a52d37a7f 100644
--- a/keyboards/xelus/rs60/rs60.h
+++ b/keyboards/xelus/rs60/rs60.h
@@ -19,6 +19,8 @@
#if defined(KEYBOARD_xelus_rs60_rev1)
#include "rev1.h"
-#elif defined(KEYBOARD_xelus_rs60_rev2)
- #include "rev2.h"
+#elif defined(KEYBOARD_xelus_rs60_rev2_0)
+ #include "rev2_0.h"
+#elif defined(KEYBOARD_xelus_rs60_rev2_1)
+ #include "rev2_1.h"
#endif
--
cgit v1.2.3