summaryrefslogtreecommitdiff
path: root/keyboards
diff options
context:
space:
mode:
Diffstat (limited to 'keyboards')
-rw-r--r--keyboards/atreus/keymaps/replicaJunction/config.h51
-rw-r--r--keyboards/atreus/keymaps/replicaJunction/keymap.c95
-rw-r--r--keyboards/atreus/keymaps/replicaJunction/readme.md7
-rw-r--r--keyboards/atreus/keymaps/replicaJunction/rules.mk28
-rw-r--r--keyboards/bioi/f60/readme.md2
-rw-r--r--keyboards/bioi/main.c2
-rw-r--r--keyboards/bobpad/readme.md2
-rw-r--r--keyboards/cannonkeys/ortho60v2/config.h23
-rw-r--r--keyboards/cannonkeys/ortho60v2/halconf.h (renamed from keyboards/kprepublic/bm16a/bm16a.c)11
-rw-r--r--keyboards/cannonkeys/ortho60v2/info.json105
-rw-r--r--keyboards/cannonkeys/ortho60v2/keymaps/default/keymap.c99
-rw-r--r--keyboards/cannonkeys/ortho60v2/keymaps/via/keymap.c53
-rw-r--r--keyboards/cannonkeys/ortho60v2/keymaps/via/rules.mk (renamed from keyboards/xelus/xs60/keymaps/via/rules.mk)0
-rw-r--r--keyboards/cannonkeys/ortho60v2/mcuconf.h9
-rw-r--r--keyboards/cannonkeys/ortho60v2/ortho60v2.c31
-rw-r--r--keyboards/cannonkeys/ortho60v2/ortho60v2.h19
-rw-r--r--keyboards/cannonkeys/ortho60v2/readme.md22
-rw-r--r--keyboards/cannonkeys/ortho60v2/rules.mk2
-rw-r--r--keyboards/creatkeebs/glacier/readme.md2
-rw-r--r--keyboards/creatkeebs/thera/readme.md2
-rw-r--r--keyboards/gmmk/pro/rev1/ansi/keymaps/andrebrait/rules.mk19
-rw-r--r--keyboards/handwired/axon/readme.md4
-rw-r--r--keyboards/handwired/jscotto/scotto9/info.json4
-rw-r--r--keyboards/handwired/jscotto/scottostarter/info.json4
-rw-r--r--keyboards/handwired/swiftrax/digicarp65/readme.md2
-rw-r--r--keyboards/idobao/id75/v1/config.h1
-rw-r--r--keyboards/idobao/id80/v2/config.h1
-rw-r--r--keyboards/idobao/id87/v1/config.h1
-rw-r--r--keyboards/idobao/montex/v1/config.h1
-rw-r--r--keyboards/kbdfans/kbdpad/mk3/info.json2
-rw-r--r--keyboards/keebio/nyquist/keymaps/danielhklein/keymap.c1
-rw-r--r--keyboards/keyboardio/atreus/keymaps/replicaJunction/config.h51
-rw-r--r--keyboards/keyboardio/atreus/keymaps/replicaJunction/keymap.c94
-rw-r--r--keyboards/keyboardio/atreus/keymaps/replicaJunction/readme.md6
-rw-r--r--keyboards/keyboardio/atreus/keymaps/replicaJunction/rules.mk29
-rw-r--r--keyboards/kprepublic/bm16a/bm16a.h39
-rw-r--r--keyboards/kprepublic/bm16a/config.h128
-rw-r--r--keyboards/kprepublic/bm16a/info.json33
-rw-r--r--keyboards/kprepublic/bm16a/v1/info.json75
-rw-r--r--keyboards/kprepublic/bm16a/v1/keymaps/default/keymap.c (renamed from keyboards/kprepublic/bm16a/keymaps/default/keymap.c)0
-rw-r--r--keyboards/kprepublic/bm16a/v1/keymaps/default/readme.md (renamed from keyboards/kprepublic/bm16a/keymaps/default/readme.md)0
-rw-r--r--keyboards/kprepublic/bm16a/v1/keymaps/factory/keymap.c (renamed from keyboards/kprepublic/bm16a/keymaps/factory/keymap.c)0
-rw-r--r--keyboards/kprepublic/bm16a/v1/keymaps/factory/readme.md (renamed from keyboards/kprepublic/bm16a/keymaps/factory/readme.md)0
-rw-r--r--keyboards/kprepublic/bm16a/v1/keymaps/via/keymap.c (renamed from keyboards/kprepublic/bm16a/keymaps/via/keymap.c)0
-rw-r--r--keyboards/kprepublic/bm16a/v1/keymaps/via/readme.md (renamed from keyboards/kprepublic/bm16a/keymaps/via/readme.md)0
-rw-r--r--keyboards/kprepublic/bm16a/v1/keymaps/via/rules.mk (renamed from keyboards/kprepublic/bm16a/keymaps/via/rules.mk)0
-rw-r--r--keyboards/kprepublic/bm16a/v1/readme.md (renamed from keyboards/kprepublic/bm16a/readme.md)2
-rw-r--r--keyboards/kprepublic/bm16a/v1/rules.mk1
-rw-r--r--keyboards/kprepublic/bm16a/v2/config.h12
-rw-r--r--keyboards/kprepublic/bm16a/v2/halconf.h8
-rw-r--r--keyboards/kprepublic/bm16a/v2/info.json120
-rw-r--r--keyboards/kprepublic/bm16a/v2/keymaps/default/keymap.c19
-rw-r--r--keyboards/kprepublic/bm16a/v2/mcuconf.h9
-rw-r--r--keyboards/kprepublic/bm16a/v2/readme.md27
-rw-r--r--keyboards/kprepublic/bm16a/v2/rules.mk1
-rw-r--r--keyboards/late9/readme.md2
-rw-r--r--keyboards/linworks/fave65h/readme.md2
-rw-r--r--keyboards/linworks/fave84h/readme.md2
-rw-r--r--keyboards/linworks/fave87h/readme.md2
-rw-r--r--keyboards/mechanickeys/miniashen40/readme.md2
-rw-r--r--keyboards/moonlander/config.h2
-rw-r--r--keyboards/moonlander/moonlander.c88
-rw-r--r--keyboards/moonlander/moonlander.h28
-rw-r--r--keyboards/neopad/readme.md2
-rw-r--r--keyboards/pearlboards/atlas/readme.md2
-rw-r--r--keyboards/pearlboards/pandora/readme.md7
-rw-r--r--keyboards/pearlboards/pearl/readme.md2
-rw-r--r--keyboards/pearlboards/zeus/readme.md2
-rw-r--r--keyboards/pearlboards/zeuspad/readme.md2
-rw-r--r--keyboards/polycarbdiet/s20/readme.md2
-rw-r--r--keyboards/ramonimbao/mona/v1_1/readme.md2
-rw-r--r--keyboards/ramonimbao/mona/v32a/readme.md2
-rw-r--r--keyboards/ryanskidmore/rskeys100/readme.md2
-rwxr-xr-xkeyboards/ryloo_studio/m0110/readme.md4
-rw-r--r--keyboards/studiokestra/bourgeau/readme.md2
-rw-r--r--keyboards/studiokestra/cascade/readme.md2
-rw-r--r--keyboards/studiokestra/galatea/readme.md2
-rw-r--r--keyboards/studiokestra/nue/readme.md2
-rw-r--r--keyboards/xelus/xs60/hotswap/config.h (renamed from keyboards/xelus/xs60/config.h)23
-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.json83
-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.mk1
-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/kprepublic/bm16a/rules.mk)19
-rw-r--r--keyboards/xelus/xs60/soldered/config.h50
-rw-r--r--keyboards/xelus/xs60/soldered/halconf.h22
-rw-r--r--keyboards/xelus/xs60/soldered/info.json (renamed from keyboards/xelus/xs60/info.json)7
-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.h19
-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.mk (renamed from keyboards/xelus/xs60/rules.mk)3
-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
-rw-r--r--keyboards/xiudi/xd75/keymaps/replicajunction/config.h51
-rw-r--r--keyboards/xiudi/xd75/keymaps/replicajunction/keymap.c138
-rw-r--r--keyboards/xiudi/xd75/keymaps/replicajunction/readme.md5
-rw-r--r--keyboards/xiudi/xd75/keymaps/replicajunction/rules.mk29
-rw-r--r--keyboards/ydkb/just60/readme.md2
107 files changed, 1389 insertions, 899 deletions
diff --git a/keyboards/atreus/keymaps/replicaJunction/config.h b/keyboards/atreus/keymaps/replicaJunction/config.h
deleted file mode 100644
index a02f9a95db..0000000000
--- a/keyboards/atreus/keymaps/replicaJunction/config.h
+++ /dev/null
@@ -1,51 +0,0 @@
-/* Copyright 2021 Joshua T.
- *
- * 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
-
-// Do not allow one macro to contain the other macro
-#define DYNAMIC_MACRO_NO_NESTING
-
-// "THE most important tap hold configuration setting"
-// https://precondition.github.io/home-row-mods#ignore-mod-tap-interrupt
-// https://docs.qmk.fm/#/tap_hold?id=ignore-mod-tap-interrupt
-#define IGNORE_MOD_TAP_INTERRUPT
-
-// This one is a style choice. Play with it both on and off to see which
-// one suits you better.
-// https://precondition.github.io/home-row-mods#permissive-hold
-// https://docs.qmk.fm/#/tap_hold?id=permissive-hold
-#define PERMISSIVE_HOLD
-
-// If you press a dual-role key for longer than TAPPING_TERM, then
-// release it without pressing another key, without this setting nothing
-// would happen. With this setting, it sends the key's tap function.
-// https://precondition.github.io/home-row-mods#retro-tapping
-#define RETRO_TAPPING
-
-// Disable some unused features to save space
-#undef LOCKING_SUPPORT_ENABLE
-#undef LOCKING_RESYNC_ENABLE
-
-/////
-// Flags for stuff in my userspace
-
-#define USER_INCLUDE_GAMING_LAYER
-#define USER_INCLUDE_MACRO_LAYER
-
-// "Super Alt-Tab"
-// https://docs.qmk.fm/#/feature_macros?id=super-alt%E2%86%AFtab
-#define USER_SUPER_ALT_TAB_TIMEOUT 500
diff --git a/keyboards/atreus/keymaps/replicaJunction/keymap.c b/keyboards/atreus/keymaps/replicaJunction/keymap.c
deleted file mode 100644
index fbefb52df6..0000000000
--- a/keyboards/atreus/keymaps/replicaJunction/keymap.c
+++ /dev/null
@@ -1,95 +0,0 @@
-/* Copyright 2021 Joshua T.
- *
- * 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
-#include "replicaJunction.h"
-
-#define BSP_SYM LT(L_SYMBOLS, KC_BSPC)
-#define SPC_NAV LT(L_NAVIGATION, KC_SPC)
-#define EQL_FUN LT(L_FN, KC_EQL)
-
-#define ESC_SFT LSFT_T(KC_ESC)
-#define TAB_SFT RSFT_T(KC_TAB)
-
-#define DF_TYPE DF(L_BASE)
-#define DF_GAME DF(L_GAMING)
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
-[L_BASE] = LAYOUT(
- KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_SCLN,
- KC_A, KC_R, KC_S, KC_T, KC_G, KC_M, KC_N, KC_E, KC_I, KC_O,
- KC_Z, KC_X, KC_C, KC_D, KC_V, KC_K, KC_H, KC_COMM,KC_DOT, KC_SLSH,
- KC_ESC, KC_LGUI,KC_TAB, ESC_SFT,BSP_SYM,CTL_DEL,ALT_ENT,SPC_NAV,TAB_SFT,KC_MINS,KC_QUOT,EQL_FUN
-),
-
-[L_GAMING] = LAYOUT(
- _______,_______,_______,_______,_______, _______,_______,_______,_______,_______,
- _______,_______,_______,_______,_______, _______,_______,_______,_______,_______,
- _______,_______,KC_C, KC_D, _______, _______,_______,_______,_______,_______,
- _______,KC_TAB, KC_LALT,KC_LSFT,KC_SPC, KC_LCTL,KC_LALT,KC_BSPC,KC_BTN1,KC_BTN2,KC_BTN3,_______
-),
-
-[L_NUMBERS] = LAYOUT(
- _______,_______,_______,_______,_______, KC_HASH,KC_7, KC_8, KC_9, KC_SLSH,
- _______,_______,_______,_______,_______, KC_PLUS,KC_4, KC_5, KC_6, KC_ASTR,
- _______,_______,_______,_______,_______, KC_MINS,KC_1, KC_2, KC_3, KC_BSLS,
- _______,_______,_______,_______,_______,_______,_______,_______,KC_0, KC_0, KC_DOT, KC_ENT
-),
-
-[L_SYMBOLS] = LAYOUT(
- KC_AT, KC_LT, KC_DLR, KC_GT, XXXXXXX, XXXXXXX,KC_LBRC,KC_UNDS,KC_RBRC,XXXXXXX,
- KC_BSLS,KC_LPRN,KC_DQUO,KC_RPRN,KC_HASH, KC_PERC,KC_LCBR,KC_EQL, KC_RCBR,KC_PIPE,
- KC_EXLM,KC_COLN,KC_ASTR,KC_PLUS,XXXXXXX, XXXXXXX,KC_AMPR,KC_CIRC,KC_TILD,KC_GRV,
- _______,_______,_______,_______,ooooooo,_______,_______,ooooooo,CAPWORD,_______,_______,_______
-),
-
-[L_NAVIGATION] = LAYOUT(
- OS_UNDO,OS_CUT, OS_PAST,OS_COPY,OS_SALL, KC_PGUP,KC_HOME,KC_UP, KC_END, KC_DEL,
- KC_LGUI,KC_LALT,KC_LSFT,KC_LCTL,_______, KC_PGDN,KC_LEFT,KC_DOWN,KC_RGHT,KC_BSPC,
- WIN_V, _______,_______,OS_FIND,SEARCH, _______,SFT_TAB,KC_TAB, KC_APP, KC_PSCR,
- _______,_______,_______,NUMWORD,ooooooo,_______,_______,ooooooo,_______,_______,_______,_______
-),
-
-[L_FN] = LAYOUT(
- QK_BOOT, _______,_______,_______,_______, KC_VOLU,KC_F9, KC_F10, KC_F11, KC_F12,
- MS_JIGL,_______,_______,_______,_______, KC_MUTE,KC_F5, KC_F6, KC_F7, KC_F8,
- _______,K_SECR1,K_SECR2,K_SECR3,K_SECR4, KC_VOLD,KC_F1, KC_F2, KC_F3, KC_F4,
- DF_TYPE,DF_GAME,_______,_______,_______,KC_LCTL,KC_LALT,_______,_______,_______,_______,ooooooo
-),
-
-[L_MACROS] = LAYOUT(
- QK_MAKE,_______,DM_REC2,DM_REC1,DM_RSTP, _______,SHEBANG,_______,_______,_______,
- QK_FLSH,_______,DM_PLY2,DM_PLY1,_______, PRG_NE, PRG_EQ, PRG_GEQ,PRG_LEQ,PRG_ARR,
- QK_VERS,_______,_______,_______,_______, _______,PS_ITEM,FS_PIPE,_______,FS_ARR,
- _______,_______,_______,_______,ooooooo,_______,_______,ooooooo,_______,_______,_______,_______
-)
-
-
-// Template
-// [L_FUNC] = LAYOUT(
-// _______,_______,_______,_______,_______, _______,_______,_______,_______,_______,
-// _______,_______,_______,_______,_______, _______,_______,_______,_______,_______,
-// _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,
-// _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______
-// ),
-
-};
-
-layer_state_t layer_state_set_user(layer_state_t state) {
- return update_tri_layer_state(state, L_SYMBOLS, L_NAVIGATION, L_MACROS);
-}
-
diff --git a/keyboards/atreus/keymaps/replicaJunction/readme.md b/keyboards/atreus/keymaps/replicaJunction/readme.md
deleted file mode 100644
index 6aa356f4f7..0000000000
--- a/keyboards/atreus/keymaps/replicaJunction/readme.md
+++ /dev/null
@@ -1,7 +0,0 @@
-# replicaJunction - Atreus Layout
-
-I no longer actively use this keyboard. I've replaced it with the [Keyboardio Atreus](../../../keyboardio/atreus/keymaps/replicaJunction/readme.md).
-
-I still try to make sure the layout compiles, but I'm no longer tweaking it or adding new features.
-
-Most of the interesting features in this layout are defined in [my userspace folder](../../../../users/replicaJunction/readme.md). Refer to the documentation and code there for more details.
diff --git a/keyboards/atreus/keymaps/replicaJunction/rules.mk b/keyboards/atreus/keymaps/replicaJunction/rules.mk
deleted file mode 100644
index 13730aec65..0000000000
--- a/keyboards/atreus/keymaps/replicaJunction/rules.mk
+++ /dev/null
@@ -1,28 +0,0 @@
-# Userspace options
-USER_CAPS_WORD_ENABLE = yes
-USER_MOUSE_JIGGLE_ENABLE = yes
-USER_NUM_WORD_ENABLE = yes
-USER_SECRETS_ENABLE = yes
-
-DYNAMIC_MACRO_ENABLE = yes
-
-# Extra features that are nice but takes space. Enable only if they're
-# used in the layout.
-WPM_ENABLE = no
-# EXTRAKEY_ENABLE = no # For volume keys and similar
-# MOUSEKEY_ENABLE = no # Them mouse keys yo
-KEY_OVERRIDE_ENABLE = no
-LEADER_ENABLE = no
-TAP_DANCE_ENABLE = no
-# RGBLIGHT_ENABLE = no # Keyboard RGB underglow
-RGB_MATRIX_ENABLE = no
-
-# Features I definitely don't care aboud
-LTO_ENABLE = yes
-CONSOLE_ENABLE = no
-VERBOSE = no
-DEBUG_MATRIX_SCAN_RATE = no
-DEBUG_MATRIX = no
-MAGIC_ENABLE = no
-SPACE_CADET_ENABLE = no
-GRAVE_ESC_ENABLE = no
diff --git a/keyboards/bioi/f60/readme.md b/keyboards/bioi/f60/readme.md
index 9b5c8e8591..8c32c7e7f9 100644
--- a/keyboards/bioi/f60/readme.md
+++ b/keyboards/bioi/f60/readme.md
@@ -21,5 +21,5 @@ See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_to
## Bootloader
* **Bootmagic reset**: Hold down the top left key (ESC) and plug in the keyboard
-* **Physical reset button**: Short the two small pads labeled "QK_BOOT" the back of the PCB
+* **Physical reset button**: Short the two small pads labeled `RESET` the back of the PCB
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available
diff --git a/keyboards/bioi/main.c b/keyboards/bioi/main.c
index bba54dfab1..eb149eb7cd 100644
--- a/keyboards/bioi/main.c
+++ b/keyboards/bioi/main.c
@@ -56,7 +56,7 @@ extern keymap_config_t keymap_config;
#include "virtser.h"
#endif
-#if (defined(RGB_MIDI) | defined(RGBLIGHT_ANIMATIONS)) & defined(RGBLIGHT_ENABLE)
+#if defined(RGBLIGHT_ENABLE)
#include "rgblight.h"
#endif
diff --git a/keyboards/bobpad/readme.md b/keyboards/bobpad/readme.md
index 75e6e03202..c69f2e9d99 100644
--- a/keyboards/bobpad/readme.md
+++ b/keyboards/bobpad/readme.md
@@ -19,7 +19,7 @@ Flashing example for this keyboard:
## Bootloader
Enter the bootloader in 3 ways:
-* **Physical reset button**: Briefly short the pad connected to QK_BOOT and GND on the back
+* **Physical reset button**: Briefly short the pad connected to *RESET* and *GND* on the back
* **Keycode in layout**: Press the key mapped to `QK_BOOT`, this is the recommened method
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/cannonkeys/ortho60v2/config.h b/keyboards/cannonkeys/ortho60v2/config.h
new file mode 100644
index 0000000000..2af75a1715
--- /dev/null
+++ b/keyboards/cannonkeys/ortho60v2/config.h
@@ -0,0 +1,23 @@
+/*
+Copyright 2022 CannonKeys
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+#pragma once
+
+#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET // Activates the double-tap behavior
+#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 200U // Timeout window in ms in which the double tap can occur.
+
+#define BACKLIGHT_PWM_DRIVER PWMD6
+#define BACKLIGHT_PWM_CHANNEL RP2040_PWM_CHANNEL_A
diff --git a/keyboards/kprepublic/bm16a/bm16a.c b/keyboards/cannonkeys/ortho60v2/halconf.h
index 9676b50119..cef26f106c 100644
--- a/keyboards/kprepublic/bm16a/bm16a.c
+++ b/keyboards/cannonkeys/ortho60v2/halconf.h
@@ -1,4 +1,5 @@
-/* Copyright 2019
+ /*
+ * Copyright Andrew Kannan 2022
*
* 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
@@ -13,4 +14,10 @@
* 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 "bm16a.h"
+
+
+#pragma once
+
+#define HAL_USE_PWM TRUE
+
+#include_next <halconf.h>
diff --git a/keyboards/cannonkeys/ortho60v2/info.json b/keyboards/cannonkeys/ortho60v2/info.json
new file mode 100644
index 0000000000..08f5321d84
--- /dev/null
+++ b/keyboards/cannonkeys/ortho60v2/info.json
@@ -0,0 +1,105 @@
+{
+ "keyboard_name": "Ortho60 v2",
+ "maintainer": "awkannan",
+ "manufacturer": "CannonKeys",
+ "processor": "RP2040",
+ "bootloader": "rp2040",
+ "usb": {
+ "vid": "0xCA04",
+ "pid": "0x0019",
+ "device_version": "0.0.1"
+ },
+ "url": "https://cannonkeys.com",
+ "diode_direction": "COL2ROW",
+ "matrix_pins": {
+ "cols": ["GP7", "GP6", "GP5", "GP4", "GP3", "GP2", "GP1", "GP0", "GP13", "GP24", "GP23", "GP22"],
+ "rows": ["GP27", "GP18", "GP19", "GP25", "GP26"]
+ },
+ "features": {
+ "bootmagic": true,
+ "command": false,
+ "console": false,
+ "extrakey": true,
+ "mousekey": true,
+ "nkro": true,
+ "backlight": true,
+ "encoder": true
+ },
+ "encoder": {
+ "rotary": [
+ { "pin_a": "GP28", "pin_b": "GP29" }
+ ]
+ },
+ "backlight": {
+ "breathing": true,
+ "breathing_period": 5,
+ "levels": 15,
+ "pin": "GP12"
+ },
+ "layouts": {
+ "LAYOUT_ortho_5x12": {
+ "layout": [
+ { "label": "`", "matrix": [0, 0], "x": 0.0, "y": 0.0 },
+ { "label": "1", "matrix": [0, 1], "x": 1.0, "y": 0.0 },
+ { "label": "2", "matrix": [0, 2], "x": 2.0, "y": 0.0 },
+ { "label": "3", "matrix": [0, 3], "x": 3.0, "y": 0.0 },
+ { "label": "4", "matrix": [0, 4], "x": 4.0, "y": 0.0 },
+ { "label": "5", "matrix": [0, 5], "x": 5.0, "y": 0.0 },
+ { "label": "6", "matrix": [0, 6], "x": 6.0, "y": 0.0 },
+ { "label": "7", "matrix": [0, 7], "x": 7.0, "y": 0.0 },
+ { "label": "8", "matrix": [0, 8], "x": 8.0, "y": 0.0 },
+ { "label": "9", "matrix": [0, 9], "x": 9.0, "y": 0.0 },
+ { "label": "0", "matrix": [0, 10], "x": 10.0, "y": 0.0 },
+ { "label": "Del", "matrix": [0, 11], "x": 11.0, "y": 0.0 },
+ { "label": "Tab", "matrix": [1, 0], "x": 0.0, "y": 1.0 },
+ { "label": "Q", "matrix": [1, 1], "x": 1.0, "y": 1.0 },
+ { "label": "W", "matrix": [1, 2], "x": 2.0, "y": 1.0 },
+ { "label": "E", "matrix": [1, 3], "x": 3.0, "y": 1.0 },
+ { "label": "R", "matrix": [1, 4], "x": 4.0, "y": 1.0 },
+ { "label": "T", "matrix": [1, 5], "x": 5.0, "y": 1.0 },
+ { "label": "Y", "matrix": [1, 6], "x": 6.0, "y": 1.0 },
+ { "label": "U", "matrix": [1, 7], "x": 7.0, "y": 1.0 },
+ { "label": "I", "matrix": [1, 8], "x": 8.0, "y": 1.0 },
+ { "label": "O", "matrix": [1, 9], "x": 9.0, "y": 1.0 },
+ { "label": "P", "matrix": [1, 10], "x": 10.0, "y": 1.0 },
+ { "label": "Back Space", "matrix": [1, 11], "x": 11.0, "y": 1.0 },
+ { "label": "Esc", "matrix": [2, 0], "x": 0.0, "y": 2.0 },
+ { "label": "A", "matrix": [2, 1], "x": 1.0, "y": 2.0 },
+ { "label": "S", "matrix": [2, 2], "x": 2.0, "y": 2.0 },
+ { "label": "D", "matrix": [2, 3], "x": 3.0, "y": 2.0 },
+ { "label": "F", "matrix": [2, 4], "x": 4.0, "y": 2.0 },
+ { "label": "G", "matrix": [2, 5], "x": 5.0, "y": 2.0 },
+ { "label": "H", "matrix": [2, 6], "x": 6.0, "y": 2.0 },
+ { "label": "J", "matrix": [2, 7], "x": 7.0, "y": 2.0 },
+ { "label": "K", "matrix": [2, 8], "x": 8.0, "y": 2.0 },
+ { "label": "L", "matrix": [2, 9], "x": 9.0, "y": 2.0 },
+ { "label": ";", "matrix": [2, 10], "x": 10.0, "y": 2.0 },
+ { "label": "'", "matrix": [2, 11], "x": 11.0, "y": 2.0 },
+ { "label": "Shift", "matrix": [3, 0], "x": 0.0, "y": 3.0 },
+ { "label": "Z", "matrix": [3, 1], "x": 1.0, "y": 3.0 },
+ { "label": "X", "matrix": [3, 2], "x": 2.0, "y": 3.0 },
+ { "label": "C", "matrix": [3, 3], "x": 3.0, "y": 3.0 },
+ { "label": "V", "matrix": [3, 4], "x": 4.0, "y": 3.0 },
+ { "label": "B", "matrix": [3, 5], "x": 5.0, "y": 3.0 },
+ { "label": "N", "matrix": [3, 6], "x": 6.0, "y": 3.0 },
+ { "label": "M", "matrix": [3, 7], "x": 7.0, "y": 3.0 },
+ { "label": ",", "matrix": [3, 8], "x": 8.0, "y": 3.0 },
+ { "label": ".", "matrix": [3, 9], "x": 9.0, "y": 3.0 },
+ { "label": "/", "matrix": [3, 10], "x": 10.0, "y": 3.0 },
+ { "label": "Return", "matrix": [3, 11], "x": 11.0, "y": 3.0 },
+ { "matrix": [4, 0], "x": 0.0, "y": 4.0 },
+ { "label": "Ctrl", "matrix": [4, 1], "x": 1.0, "y": 4.0 },
+ { "label": "Alt", "matrix": [4, 2], "x": 2.0, "y": 4.0 },
+ { "label": "Super", "matrix": [4, 3], "x": 3.0, "y": 4.0 },
+ { "label": "Lower", "matrix": [4, 4], "x": 4.0, "y": 4.0 },
+ { "matrix": [4, 5], "x": 5.0, "y": 4.0 },
+ { "matrix": [4, 6], "x": 6.0, "y": 4.0 },
+ { "label": "Raise", "matrix": [4, 7], "x": 7.0, "y": 4.0 },
+ { "label": "&larr;", "matrix": [4, 8], "x": 8.0, "y": 4.0 },
+ { "label": "&darr;", "matrix": [4, 9], "x": 9.0, "y": 4.0 },
+ { "label": "&uarr;", "matrix": [4, 10], "x": 10.0, "y": 4.0 },
+ { "label": "&rarr;", "matrix": [4, 11], "x": 11.0, "y": 4.0 }
+ ]
+ }
+ }
+}
diff --git a/keyboards/cannonkeys/ortho60v2/keymaps/default/keymap.c b/keyboards/cannonkeys/ortho60v2/keymaps/default/keymap.c
new file mode 100644
index 0000000000..1f042bdd20
--- /dev/null
+++ b/keyboards/cannonkeys/ortho60v2/keymaps/default/keymap.c
@@ -0,0 +1,99 @@
+/*
+Copyright 2012,2013 Jun Wako <wakojun@gmail.com>
+
+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
+
+
+// Each layer gets a name for readability, which is then used in the keymap matrix below.
+// The underscores don't mean anything - you can have a layer called STUFF or any other name.
+// Layer names don't all need to be of the same length, obviously, and you can also skip them
+// entirely and just use numbers.
+enum custom_layers {
+ _BASE,
+ _RAISE,
+ _LOWER,
+};
+
+enum custom_keycodes {
+ QWERTY = SAFE_RANGE,
+ LOWER,
+ RAISE
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+/* Qwerty
+ * ,-----------------------------------------------------------------------------------.
+ * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Tab | Q | W | E | R | T | Y | U | I | O | P | Del |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | Esc | A | S | D | F | G | H | J | K | L | ; | " |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_BASE] = LAYOUT_ortho_5x12(
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL,
+ KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT,
+ BL_TOGG, KC_LCTL, KC_LALT, KC_LGUI, MO(_LOWER), KC_SPC, KC_SPC, MO(_RAISE), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
+),
+/* Lower
+ * ,-----------------------------------------------------------------------------------.
+ * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Del |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | Next | Vol- | Vol+ | Play |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_LOWER] = LAYOUT_ortho_5x12(
+ KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC,
+ KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL,
+ KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
+ _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,S(KC_NUHS),S(KC_NUBS),KC_HOME, KC_END, _______,
+ QK_BOOT, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
+),
+
+/* Raise
+ * ,-----------------------------------------------------------------------------------.
+ * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / | | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | Next | Vol- | Vol+ | Play |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_RAISE] = LAYOUT_ortho_5x12(
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL,
+ KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
+ _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______,
+ RGB_TOG, RGB_MOD, BL_INC, BL_DEC, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
+)
+};
diff --git a/keyboards/cannonkeys/ortho60v2/keymaps/via/keymap.c b/keyboards/cannonkeys/ortho60v2/keymaps/via/keymap.c
new file mode 100644
index 0000000000..8d0060d015
--- /dev/null
+++ b/keyboards/cannonkeys/ortho60v2/keymaps/via/keymap.c
@@ -0,0 +1,53 @@
+/*
+Copyright 2012,2013 Jun Wako <wakojun@gmail.com>
+
+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] = {
+
+[0] = LAYOUT_ortho_5x12(
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL,
+ KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT,
+ BL_TOGG, KC_LCTL, KC_LALT, KC_LGUI, MO(1), KC_SPC, KC_SPC, MO(2), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
+),
+
+[1] = LAYOUT_ortho_5x12(
+ KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC,
+ KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL,
+ KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
+ _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,S(KC_NUHS),S(KC_NUBS),KC_HOME, KC_END, _______,
+ QK_BOOT, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
+),
+
+[2] = LAYOUT_ortho_5x12(
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL,
+ KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
+ _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______,
+ RGB_TOG, RGB_MOD, BL_INC, BL_DEC, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
+),
+
+[3] = LAYOUT_ortho_5x12(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+)
+};
diff --git a/keyboards/xelus/xs60/keymaps/via/rules.mk b/keyboards/cannonkeys/ortho60v2/keymaps/via/rules.mk
index 1e5b99807c..1e5b99807c 100644
--- a/keyboards/xelus/xs60/keymaps/via/rules.mk
+++ b/keyboards/cannonkeys/ortho60v2/keymaps/via/rules.mk
diff --git a/keyboards/cannonkeys/ortho60v2/mcuconf.h b/keyboards/cannonkeys/ortho60v2/mcuconf.h
new file mode 100644
index 0000000000..533c3f1e23
--- /dev/null
+++ b/keyboards/cannonkeys/ortho60v2/mcuconf.h
@@ -0,0 +1,9 @@
+// Copyright 2022 Andrew Kannan
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#pragma once
+
+#include_next "mcuconf.h"
+
+#undef RP_PWM_USE_PWM6
+#define RP_PWM_USE_PWM6 TRUE
diff --git a/keyboards/cannonkeys/ortho60v2/ortho60v2.c b/keyboards/cannonkeys/ortho60v2/ortho60v2.c
new file mode 100644
index 0000000000..0fc9239ee8
--- /dev/null
+++ b/keyboards/cannonkeys/ortho60v2/ortho60v2.c
@@ -0,0 +1,31 @@
+/*
+Copyright 2022 CannonKeys
+
+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 "ortho60v2.h"
+
+#ifdef ENCODER_ENABLE
+bool encoder_update_kb(uint8_t index, bool clockwise) {
+ if (!encoder_update_user(index, clockwise)) {
+ return false;
+ }
+ if (clockwise) {
+ tap_code_delay(KC_VOLU, 10);
+ } else {
+ tap_code_delay(KC_VOLD, 10);
+ }
+ return true;
+}
+#endif
diff --git a/keyboards/cannonkeys/ortho60v2/ortho60v2.h b/keyboards/cannonkeys/ortho60v2/ortho60v2.h
new file mode 100644
index 0000000000..a9ca3d7e47
--- /dev/null
+++ b/keyboards/cannonkeys/ortho60v2/ortho60v2.h
@@ -0,0 +1,19 @@
+/*
+Copyright 2022 CannonKeys
+
+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"
diff --git a/keyboards/cannonkeys/ortho60v2/readme.md b/keyboards/cannonkeys/ortho60v2/readme.md
new file mode 100644
index 0000000000..e02e0f0914
--- /dev/null
+++ b/keyboards/cannonkeys/ortho60v2/readme.md
@@ -0,0 +1,22 @@
+# Ortho60 v2
+
+A 5x12 Ortholinear keyboard powered by an onboard RP2040
+
+* Keyboard Maintainer: [Andrew Kannan](https://github.com/awkannan1)
+* Hardware Supported: RP2040
+* Hardware Availability: [CannonKeys](https://cannonkeys.com)
+
+Make example for this keyboard (after setting up your build environment):
+
+ make cannonkeys/ortho60v2:default
+
+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).
+
+
+## Bootloader
+
+Enter the bootloader in 3 ways:
+
+* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard
+* **Physical reset button**: Swap the boot switch on the back of the PCB to "1" and hit the reset button. Or double tap the reset button quickly while the boot switch is set to "0".
+* **Keycode in layout**: Press the key mapped to `RESET` if it is available
diff --git a/keyboards/cannonkeys/ortho60v2/rules.mk b/keyboards/cannonkeys/ortho60v2/rules.mk
new file mode 100644
index 0000000000..59f8593f18
--- /dev/null
+++ b/keyboards/cannonkeys/ortho60v2/rules.mk
@@ -0,0 +1,2 @@
+EEPROM_DRIVER = wear_leveling
+WEAR_LEVELING_DRIVER = rp2040_flash
diff --git a/keyboards/creatkeebs/glacier/readme.md b/keyboards/creatkeebs/glacier/readme.md
index 0a38629863..0f13b6857d 100644
--- a/keyboards/creatkeebs/glacier/readme.md
+++ b/keyboards/creatkeebs/glacier/readme.md
@@ -16,7 +16,7 @@ A 80% keyboard
Enter the bootloader in 2 ways:
-* Physical reset button: Press the `QK_BOOT` button on the back of the PCB.
+* Physical reset button: Press the `RESET` button on the back of the PCB.
* Keycode in layout: Press the key mapped to `QK_BOOT` if it is available.
### Building the Firmware
diff --git a/keyboards/creatkeebs/thera/readme.md b/keyboards/creatkeebs/thera/readme.md
index 2f78a154fd..2990f9a3b0 100644
--- a/keyboards/creatkeebs/thera/readme.md
+++ b/keyboards/creatkeebs/thera/readme.md
@@ -18,7 +18,7 @@ A 75% keyboard
Enter the bootloader in 2 ways:
-* Physical reset button: Press the `QK_BOOT` button on the back of the PCB.
+* Physical reset button: Press the `RESET` button on the back of the PCB.
* Keycode in layout: Press the key mapped to `QK_BOOT` if it is available.
### Building the Firmware
diff --git a/keyboards/gmmk/pro/rev1/ansi/keymaps/andrebrait/rules.mk b/keyboards/gmmk/pro/rev1/ansi/keymaps/andrebrait/rules.mk
index 8983ba87c3..d5942a2e90 100644
--- a/keyboards/gmmk/pro/rev1/ansi/keymaps/andrebrait/rules.mk
+++ b/keyboards/gmmk/pro/rev1/ansi/keymaps/andrebrait/rules.mk
@@ -2,3 +2,22 @@
# Disabling MouseKey because it breaks my KVM switch
MOUSEKEY_ENABLE = no
+
+# Cherry MX-style switches and diodes are not susceptible to noise, no need for noise-resistant algorithms.
+# This significantly reduces latency.
+#
+# The matrix scan frequency seems to be around 1820 Hz, so even sym_defer_g would perform ok,
+# but the "defer" part would mean we would wait DEBOUNCE ms before sending any events.
+# Using "asym_eager_defer_pk" does not seem to benefit us in anything.
+# The GMMK Pro has more then enough system resources for a per-key algorithm.
+# Using an "eager" algorithm leads to extremely low latency while also reducing the chances of chattering
+# due to it's "post-event" debouncing (of sorts).
+#
+# I have observed zero chattering or double-keypress issues on my Gateron Yellow switches.
+# Most chattering issues on the GMMK Pro seem to be related to its proprietary hot-swap sockets anyway.
+DEBOUNCE_TYPE = sym_eager_pk
+
+# Useful for debugging
+# CONSOLE_ENABLE = yes
+# DEBUG_MATRIX_SCAN_RATE_ENABLE = yes
+# DEBUG_MATRIX_SCAN_RATE = yes
diff --git a/keyboards/handwired/axon/readme.md b/keyboards/handwired/axon/readme.md
index d48297b4f7..ca422130ef 100644
--- a/keyboards/handwired/axon/readme.md
+++ b/keyboards/handwired/axon/readme.md
@@ -15,8 +15,8 @@ Make example for this keyboard (after setting up your build environment):
## To reset into bootloader mode:
1. While plugged in, press and hold `BOOT` switch
-2. While holding `BOOT`, press `QK_BOOT` and hold it for a second or two
-3. Release `QK_BOOT`
+2. While holding `BOOT`, press `RESET` and hold it for a second or two
+3. Release `RESET`
4. Release `BOOT`
5. The keyboard should now be recognized as a USBasp programmer device.
diff --git a/keyboards/handwired/jscotto/scotto9/info.json b/keyboards/handwired/jscotto/scotto9/info.json
index 09ae9eea77..d29ccc3fd1 100644
--- a/keyboards/handwired/jscotto/scotto9/info.json
+++ b/keyboards/handwired/jscotto/scotto9/info.json
@@ -31,12 +31,12 @@
"layout": [
{ "matrix": [0, 0], "x": 0, "y": 0 },
{ "matrix": [0, 1], "x": 1, "y": 0 },
- { "matrix": [0, 2], "x": 2, "y": 0 }
+ { "matrix": [0, 2], "x": 2, "y": 0 },
// Row 2
{ "matrix": [1, 0], "x": 0, "y": 1 },
{ "matrix": [1, 1], "x": 1, "y": 1 },
- { "matrix": [1, 2], "x": 2, "y": 1 }
+ { "matrix": [1, 2], "x": 2, "y": 1 },
// Row 3
{ "matrix": [2, 0], "x": 0, "y": 2 },
diff --git a/keyboards/handwired/jscotto/scottostarter/info.json b/keyboards/handwired/jscotto/scottostarter/info.json
index 5bc3c14cc7..08bccff0d3 100644
--- a/keyboards/handwired/jscotto/scottostarter/info.json
+++ b/keyboards/handwired/jscotto/scottostarter/info.json
@@ -87,8 +87,8 @@
{ "matrix": [4, 2], "x": 2, "y": 4},
{ "matrix": [4, 4], "x": 4, "y": 4},
{ "matrix": [4, 7], "x": 7, "y": 4},
- { "matrix": [4, 8], "x": 8, "y": 4 }
- { "matrix": [4, 9], "x": 9, "y": 4 }
+ { "matrix": [4, 8], "x": 8, "y": 4 },
+ { "matrix": [4, 9], "x": 9, "y": 4 },
{ "matrix": [4, 10], "x": 10, "y": 4 }
]
}
diff --git a/keyboards/handwired/swiftrax/digicarp65/readme.md b/keyboards/handwired/swiftrax/digicarp65/readme.md
index 34e0c0b755..a10c1b567a 100644
--- a/keyboards/handwired/swiftrax/digicarp65/readme.md
+++ b/keyboards/handwired/swiftrax/digicarp65/readme.md
@@ -17,5 +17,5 @@ See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_to
Enter the bootloader in 3 ways:
* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (top left key)and plug in the keyboard
-* **Physical reset button**: Briefly short the pad on the back of the PCB labeled QK_BOOT
+* **Physical reset button**: Briefly short the pad on the back of the PCB labeled `RESET`
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available
diff --git a/keyboards/idobao/id75/v1/config.h b/keyboards/idobao/id75/v1/config.h
index 0bb05a810c..82e7d705ee 100644
--- a/keyboards/idobao/id75/v1/config.h
+++ b/keyboards/idobao/id75/v1/config.h
@@ -45,7 +45,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define RGB_DI_PIN F0
#ifdef RGB_DI_PIN
- // RGBLIGHT_ANIMATIONS
#define RGBLIGHT_EFFECT_ALTERNATING
#define RGBLIGHT_EFFECT_BREATHING
#define RGBLIGHT_EFFECT_CHRISTMAS
diff --git a/keyboards/idobao/id80/v2/config.h b/keyboards/idobao/id80/v2/config.h
index a007cff40c..57f26aee57 100644
--- a/keyboards/idobao/id80/v2/config.h
+++ b/keyboards/idobao/id80/v2/config.h
@@ -71,7 +71,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define RGBLIGHT_LIMIT_VAL 180 /* The maximum brightness level */
#define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */
- // RGBLIGHT_ANIMATIONS
#define RGBLIGHT_EFFECT_ALTERNATING
#define RGBLIGHT_EFFECT_BREATHING
#define RGBLIGHT_EFFECT_CHRISTMAS
diff --git a/keyboards/idobao/id87/v1/config.h b/keyboards/idobao/id87/v1/config.h
index 6c2d6fc9ce..11372855c0 100644
--- a/keyboards/idobao/id87/v1/config.h
+++ b/keyboards/idobao/id87/v1/config.h
@@ -50,7 +50,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define RGB_DI_PIN E2
#ifdef RGB_DI_PIN
- // RGBLIGHT_ANIMATIONS
#define RGBLIGHT_EFFECT_ALTERNATING
#define RGBLIGHT_EFFECT_BREATHING
#define RGBLIGHT_EFFECT_CHRISTMAS
diff --git a/keyboards/idobao/montex/v1/config.h b/keyboards/idobao/montex/v1/config.h
index fe1ea61d35..3d1a614e8a 100644
--- a/keyboards/idobao/montex/v1/config.h
+++ b/keyboards/idobao/montex/v1/config.h
@@ -46,7 +46,6 @@
#define RGB_DI_PIN B1
#ifdef RGB_DI_PIN
- // RGBLIGHT_ANIMATIONS
#define RGBLIGHT_EFFECT_ALTERNATING
#define RGBLIGHT_EFFECT_BREATHING
#define RGBLIGHT_EFFECT_CHRISTMAS
diff --git a/keyboards/kbdfans/kbdpad/mk3/info.json b/keyboards/kbdfans/kbdpad/mk3/info.json
index 2faabc311c..a22c82c681 100644
--- a/keyboards/kbdfans/kbdpad/mk3/info.json
+++ b/keyboards/kbdfans/kbdpad/mk3/info.json
@@ -47,7 +47,7 @@
"max_brightness": 128
},
"rgblight": {
- "pin": "F5",
+ "pin": "F5"
},
"usb": {
"device_version": "3.0.0",
diff --git a/keyboards/keebio/nyquist/keymaps/danielhklein/keymap.c b/keyboards/keebio/nyquist/keymaps/danielhklein/keymap.c
index 00f0bb3ced..a65fc3b688 100644
--- a/keyboards/keebio/nyquist/keymaps/danielhklein/keymap.c
+++ b/keyboards/keebio/nyquist/keymaps/danielhklein/keymap.c
@@ -36,7 +36,6 @@ enum custom_keycodes {
// Underglow setup
#define RGBLIGHT_SLEEP
-#define RGBLIGHT_ANIMATIONS
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
diff --git a/keyboards/keyboardio/atreus/keymaps/replicaJunction/config.h b/keyboards/keyboardio/atreus/keymaps/replicaJunction/config.h
deleted file mode 100644
index a02f9a95db..0000000000
--- a/keyboards/keyboardio/atreus/keymaps/replicaJunction/config.h
+++ /dev/null
@@ -1,51 +0,0 @@
-/* Copyright 2021 Joshua T.
- *
- * 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
-
-// Do not allow one macro to contain the other macro
-#define DYNAMIC_MACRO_NO_NESTING
-
-// "THE most important tap hold configuration setting"
-// https://precondition.github.io/home-row-mods#ignore-mod-tap-interrupt
-// https://docs.qmk.fm/#/tap_hold?id=ignore-mod-tap-interrupt
-#define IGNORE_MOD_TAP_INTERRUPT
-
-// This one is a style choice. Play with it both on and off to see which
-// one suits you better.
-// https://precondition.github.io/home-row-mods#permissive-hold
-// https://docs.qmk.fm/#/tap_hold?id=permissive-hold
-#define PERMISSIVE_HOLD
-
-// If you press a dual-role key for longer than TAPPING_TERM, then
-// release it without pressing another key, without this setting nothing
-// would happen. With this setting, it sends the key's tap function.
-// https://precondition.github.io/home-row-mods#retro-tapping
-#define RETRO_TAPPING
-
-// Disable some unused features to save space
-#undef LOCKING_SUPPORT_ENABLE
-#undef LOCKING_RESYNC_ENABLE
-
-/////
-// Flags for stuff in my userspace
-
-#define USER_INCLUDE_GAMING_LAYER
-#define USER_INCLUDE_MACRO_LAYER
-
-// "Super Alt-Tab"
-// https://docs.qmk.fm/#/feature_macros?id=super-alt%E2%86%AFtab
-#define USER_SUPER_ALT_TAB_TIMEOUT 500
diff --git a/keyboards/keyboardio/atreus/keymaps/replicaJunction/keymap.c b/keyboards/keyboardio/atreus/keymaps/replicaJunction/keymap.c
deleted file mode 100644
index 5607f8d0d9..0000000000
--- a/keyboards/keyboardio/atreus/keymaps/replicaJunction/keymap.c
+++ /dev/null
@@ -1,94 +0,0 @@
-/* Copyright 2021 Joshua T.
- *
- * 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
-#include "replicaJunction.h"
-
-#define BSP_SYM LT(L_SYMBOLS, KC_BSPC)
-#define SPC_NAV LT(L_NAVIGATION, KC_SPC)
-#define EQL_FUN LT(L_FN, KC_EQL)
-
-#define ESC_SFT LSFT_T(KC_ESC)
-#define TAB_SFT RSFT_T(KC_TAB)
-
-#define DF_TYPE DF(L_BASE)
-#define DF_GAME DF(L_GAMING)
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
-[L_BASE] = LAYOUT(
- KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_SCLN,
- KC_A, KC_R, KC_S, KC_T, KC_G, KC_M, KC_N, KC_E, KC_I, KC_O,
- KC_Z, KC_X, KC_C, KC_D, KC_V, SALTTAB,KC_BSLS,KC_K, KC_H, KC_COMM,KC_DOT, KC_SLSH,
- KC_ESC, KC_LGUI,KC_TAB, ESC_SFT,BSP_SYM,CTL_DEL,ALT_ENT,SPC_NAV,TAB_SFT,KC_MINS,KC_QUOT,EQL_FUN
-),
-
-[L_GAMING] = LAYOUT(
- _______,_______,_______,_______,_______, _______,_______,_______,_______,_______,
- _______,_______,_______,_______,_______, _______,_______,_______,_______,_______,
- _______,_______,KC_C, KC_D, _______,_______,QK_LOCK,_______,_______,_______,_______,_______,
- _______,KC_TAB, KC_LALT,KC_LSFT,KC_SPC, KC_LCTL,KC_LALT,KC_BSPC,KC_BTN1,KC_BTN2,KC_BTN3,_______
-),
-
-[L_NUMBERS] = LAYOUT(
- _______,_______,_______,_______,_______, KC_HASH,KC_7, KC_8, KC_9, KC_SLSH,
- _______,_______,_______,_______,_______, KC_PLUS,KC_4, KC_5, KC_6, KC_ASTR,
- _______,_______,_______,_______,_______,_______,_______,KC_MINS,KC_1, KC_2, KC_3, KC_BSLS,
- _______,_______,_______,_______,_______,_______,_______,_______,KC_0, KC_0, KC_DOT, KC_ENT
-),
-
-[L_SYMBOLS] = LAYOUT(
- KC_AT, KC_LT, KC_DLR, KC_GT, XXXXXXX, XXXXXXX,KC_LBRC,KC_UNDS,KC_RBRC,XXXXXXX,
- KC_BSLS,KC_LPRN,KC_DQUO,KC_RPRN,KC_HASH, KC_PERC,KC_LCBR,KC_EQL, KC_RCBR,KC_PIPE,
- KC_EXLM,KC_COLN,KC_ASTR,KC_PLUS,XXXXXXX,_______,_______,XXXXXXX,KC_AMPR,KC_CIRC,KC_TILD,KC_GRV,
- _______,_______,_______,_______,ooooooo,_______,_______,ooooooo,CAPWORD,_______,_______,_______
-),
-
-[L_NAVIGATION] = LAYOUT(
- OS_UNDO,OS_CUT, OS_PAST,OS_COPY,OS_SALL, KC_PGUP,KC_HOME,KC_UP, KC_END, KC_DEL,
- KC_LGUI,KC_LALT,KC_LSFT,KC_LCTL,_______, KC_PGDN,KC_LEFT,KC_DOWN,KC_RGHT,KC_BSPC,
- WIN_V, _______,_______,OS_FIND,SEARCH, _______,_______,_______,SFT_TAB,KC_TAB, KC_APP, KC_PSCR,
- _______,_______,_______,NUMWORD,ooooooo,_______,_______,ooooooo,_______,_______,_______,_______
-),
-
-[L_FN] = LAYOUT(
- _______,_______,_______,_______,_______, KC_VOLU,KC_F9, KC_F10, KC_F11, KC_F12,
- _______,_______,_______,_______,_______, KC_MUTE,KC_F5, KC_F6, KC_F7, KC_F8,
- _______,K_SECR1,K_SECR2,K_SECR3,K_SECR4,MS_JIGL,QK_BOOT, KC_VOLD,KC_F1, KC_F2, KC_F3, KC_F4,
- DF_TYPE,DF_GAME,_______,_______,_______,KC_LCTL,KC_LALT,_______,_______,_______,_______,ooooooo
-),
-
-[L_MACROS] = LAYOUT(
- QK_MAKE,_______,DM_REC2,DM_REC1,DM_RSTP, _______,SHEBANG,_______,_______,_______,
- QK_FLSH,_______,DM_PLY2,DM_PLY1,_______, PRG_NE, PRG_EQ, PRG_GEQ,PRG_LEQ,PRG_ARR,
- QK_VERS,_______,_______,_______,_______,_______,_______,_______,PS_ITEM,FS_PIPE,_______,FS_ARR,
- _______,_______,_______,_______,ooooooo,_______,_______,ooooooo,_______,_______,_______,_______
-)
-
-
-// Template
-// [L_FUNC] = LAYOUT(
-// _______,_______,_______,_______,_______, _______,_______,_______,_______,_______,
-// _______,_______,_______,_______,_______, _______,_______,_______,_______,_______,
-// _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,
-// _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______
-// ),
-
-};
-
-layer_state_t layer_state_set_user(layer_state_t state) {
- return update_tri_layer_state(state, L_SYMBOLS, L_NAVIGATION, L_MACROS);
-}
diff --git a/keyboards/keyboardio/atreus/keymaps/replicaJunction/readme.md b/keyboards/keyboardio/atreus/keymaps/replicaJunction/readme.md
deleted file mode 100644
index 88f948a94f..0000000000
--- a/keyboards/keyboardio/atreus/keymaps/replicaJunction/readme.md
+++ /dev/null
@@ -1,6 +0,0 @@
-replicaJunction - Keyboardio Atreus
-===================================
-
-A 44-key layout designed for daily programming usage and occasional, light gaming.
-
-Most of the interesting logic in this is defined and described in [my userspace](../../../../../users/replicaJunction/readme.md), so check that out if you're interested in how things work. The CAPSWORD and NUMWORD features are especially important for a keyboard this size.
diff --git a/keyboards/keyboardio/atreus/keymaps/replicaJunction/rules.mk b/keyboards/keyboardio/atreus/keymaps/replicaJunction/rules.mk
deleted file mode 100644
index 7e0b3c9cac..0000000000
--- a/keyboards/keyboardio/atreus/keymaps/replicaJunction/rules.mk
+++ /dev/null
@@ -1,29 +0,0 @@
-# Userspace options
-USER_CAPS_WORD_ENABLE = yes
-USER_MOUSE_JIGGLE_ENABLE = yes
-USER_NUM_WORD_ENABLE = yes
-USER_SECRETS_ENABLE = yes
-USER_SUPER_ALT_TAB_ENABLE = yes
-
-DYNAMIC_MACRO_ENABLE = yes
-
-# Extra features that are nice but takes space. Enable only if they're
-# used in the layout.
-WPM_ENABLE = no
-# EXTRAKEY_ENABLE = no # For volume keys and similar
-# MOUSEKEY_ENABLE = no # Them mouse keys yo
-KEY_OVERRIDE_ENABLE = no
-LEADER_ENABLE = no
-TAP_DANCE_ENABLE = no
-# RGBLIGHT_ENABLE = no # Keyboard RGB underglow
-RGB_MATRIX_ENABLE = no
-
-# Features I definitely don't care aboud
-LTO_ENABLE = yes
-CONSOLE_ENABLE = no
-VERBOSE = no
-DEBUG_MATRIX_SCAN_RATE = no
-DEBUG_MATRIX = no
-MAGIC_ENABLE = no
-SPACE_CADET_ENABLE = no
-GRAVE_ESC_ENABLE = no
diff --git a/keyboards/kprepublic/bm16a/bm16a.h b/keyboards/kprepublic/bm16a/bm16a.h
deleted file mode 100644
index cf8bab4730..0000000000
--- a/keyboards/kprepublic/bm16a/bm16a.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/* Copyright 2019
- *
- * 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"
-
-/* This a shortcut to help you visually see your layout.
- *
- * The first section contains all of the arguments representing the physical
- * layout of the board and position of the keys.
- *
- * The second converts the arguments into a two-dimensional array which
- * represents the switch matrix.
- */
-#define LAYOUT_ortho_4x4( \
- K01, K02, K03, K04, \
- K11, K12, K13, K14, \
- K21, K22, K23, K24, \
- K31, K32, K33, K34 \
-) \
-{ \
- { K01, K02, K03, K04 }, \
- { K11, K12, K13, K14 }, \
- { K21, K22, K23, K24 }, \
- { K31, K32, K33, K34 } \
-}
diff --git a/keyboards/kprepublic/bm16a/config.h b/keyboards/kprepublic/bm16a/config.h
deleted file mode 100644
index e5cc440d25..0000000000
--- a/keyboards/kprepublic/bm16a/config.h
+++ /dev/null
@@ -1,128 +0,0 @@
-/* Copyright 2019
- *
- * 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 "config_common.h"
-
-/* key matrix size */
-#define MATRIX_ROWS 4
-#define MATRIX_COLS 4
-
-/*
- * Keyboard Matrix Assignments
- *
- * Change this to how you wired your keyboard
- * COLS: AVR pins used for columns, left to right
- * ROWS: AVR pins used for rows, top to bottom
- * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
- * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
- *
-*/
-#define MATRIX_ROW_PINS { D3, D5, D1, D2}
-#define MATRIX_COL_PINS { D6, D4, D7, B4}
-
-/* COL2ROW, ROW2COL*/
-#define DIODE_DIRECTION COL2ROW
-
-/*
- * Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN.
- */
-//#define SOFT_SERIAL_PIN D0 // or D1, D2, D3, E6
-
-#define BACKLIGHT_PIN B6
-// #define BACKLIGHT_BREATHING
-#define BACKLIGHT_LEVELS 5
-
-#define RGB_DI_PIN E2
-#define RGBLED_NUM 4
-#define RGBLIGHT_EFFECT_BREATHING
-#define RGBLIGHT_EFFECT_RAINBOW_MOOD
-#define RGBLIGHT_EFFECT_RAINBOW_SWIRL
-#define RGBLIGHT_EFFECT_SNAKE
-#define RGBLIGHT_EFFECT_KNIGHT
-#define RGBLIGHT_EFFECT_CHRISTMAS
-#define RGBLIGHT_EFFECT_STATIC_GRADIENT
-#define RGBLIGHT_EFFECT_RGB_TEST
-#define RGBLIGHT_EFFECT_ALTERNATING
-#define RGBLIGHT_EFFECT_TWINKLE
-// #ifdef RGB_DI_PIN
-// #define RGBLED_NUM 16
-// #define RGBLIGHT_HUE_STEP 8
-// #define RGBLIGHT_SAT_STEP 8
-// #define RGBLIGHT_VAL_STEP 8
-// #define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */
-// #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */
-// #endif
-
-/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
-#define DEBOUNCE 5
-
-/* define if matrix has ghost (lacks anti-ghosting diodes) */
-//#define MATRIX_HAS_GHOST
-
-/* number of backlight levels */
-
-/* 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
-
-/* If defined, GRAVE_ESC will always act as ESC when CTRL is held.
- * This is userful for the Windows task manager shortcut (ctrl+shift+esc).
- */
-// #define GRAVE_ESC_CTRL_OVERRIDE
-
-/*
- * Force NKRO
- *
- * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
- * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
- * makefile for this to work.)
- *
- * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
- * until the next keyboard reset.
- *
- * NKRO may prevent your keystrokes from being detected in the BIOS, but it is
- * fully operational during normal computer usage.
- *
- * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
- * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by
- * bootmagic, NKRO mode will always be enabled until it is toggled again during a
- * power-up.
- *
- */
-//#define FORCE_NKRO
-
-/*
- * Feature disable options
- * These options are also useful to firmware size reduction.
- */
-
-/* disable debug print */
-//#define NO_DEBUG
-
-/* disable print */
-//#define NO_PRINT
-
-/* disable action features */
-//#define NO_ACTION_LAYER
-//#define NO_ACTION_TAPPING
-//#define NO_ACTION_ONESHOT
-
-/* Bootmagic Lite key configuration */
-// #define BOOTMAGIC_LITE_ROW 0
-// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/kprepublic/bm16a/info.json b/keyboards/kprepublic/bm16a/info.json
deleted file mode 100644
index 6c616e11d1..0000000000
--- a/keyboards/kprepublic/bm16a/info.json
+++ /dev/null
@@ -1,33 +0,0 @@
-{
- "keyboard_name": "bm16a",
- "manufacturer": "KPrepublic",
- "url": "",
- "maintainer": "qmk",
- "usb": {
- "vid": "0x4B50",
- "pid": "0x016A",
- "device_version": "0.0.1"
- },
- "layouts": {
- "LAYOUT_ortho_4x4": {
- "layout": [
- {"x":0, "y":0},
- {"x":1, "y":0},
- {"x":2, "y":0},
- {"x":3, "y":0},
- {"x":0, "y":1},
- {"x":1, "y":1},
- {"x":2, "y":1},
- {"x":3, "y":1},
- {"x":0, "y":2},
- {"x":1, "y":2},
- {"x":2, "y":2},
- {"x":3, "y":2},
- {"x":0, "y":3},
- {"x":1, "y":3},
- {"x":2, "y":3},
- {"x":3, "y":3}
- ]
- }
- }
- }
diff --git a/keyboards/kprepublic/bm16a/v1/info.json b/keyboards/kprepublic/bm16a/v1/info.json
new file mode 100644
index 0000000000..6c700b37b8
--- /dev/null
+++ b/keyboards/kprepublic/bm16a/v1/info.json
@@ -0,0 +1,75 @@
+{
+ "keyboard_name": "bm16a",
+ "manufacturer": "KPrepublic",
+ "url": "",
+ "maintainer": "qmk",
+ "usb": {
+ "vid": "0x4B50",
+ "pid": "0x016A",
+ "device_version": "0.0.1"
+ },
+ "processor": "atmega32u4",
+ "bootloader": "atmel-dfu",
+ "features": {
+ "bootmagic": true,
+ "mousekey": true,
+ "extrakey": true,
+ "console": false,
+ "command": false,
+ "nkro": true,
+ "backlight": true,
+ "rgblight": true,
+ "audio": false
+ },
+ "matrix_pins": {
+ "rows": ["D3", "D5", "D1", "D2"],
+ "cols": ["D6", "D4", "D7", "B4"]
+ },
+ "diode_direction": "COL2ROW",
+ "backlight": {
+ "pin": "B6",
+ "levels": 5
+ },
+ "rgblight": {
+ "pin": "E2",
+ "led_count": 4,
+ "animations": {
+ "breathing": true,
+ "rainbow_mood": true,
+ "rainbow_swirl": true,
+ "snake": true,
+ "knight": true,
+ "christmas": true,
+ "static_gradient": true,
+ "rgb_test": true,
+ "alternating": true,
+ "twinkle": true
+ }
+ },
+ "community_layouts": ["ortho_4x4"],
+ "layouts": {
+ "LAYOUT_ortho_4x4": {
+ "layout": [
+ {"matrix": [0, 0], "x": 0, "y": 0},
+ {"matrix": [0, 1], "x": 1, "y": 0},
+ {"matrix": [0, 2], "x": 2, "y": 0},
+ {"matrix": [0, 3], "x": 3, "y": 0},
+
+ {"matrix": [1, 0], "x": 0, "y": 1},
+ {"matrix": [1, 1], "x": 1, "y": 1},
+ {"matrix": [1, 2], "x": 2, "y": 1},
+ {"matrix": [1, 3], "x": 3, "y": 1},
+
+ {"matrix": [2, 0], "x": 0, "y": 2},
+ {"matrix": [2, 1], "x": 1, "y": 2},
+ {"matrix": [2, 2], "x": 2, "y": 2},
+ {"matrix": [2, 3], "x": 3, "y": 2},
+
+ {"matrix": [3, 0], "x": 0, "y": 3},
+ {"matrix": [3, 1], "x": 1, "y": 3},
+ {"matrix": [3, 2], "x": 2, "y": 3},
+ {"matrix": [3, 3], "x": 3, "y": 3}
+ ]
+ }
+ }
+}
diff --git a/keyboards/kprepublic/bm16a/keymaps/default/keymap.c b/keyboards/kprepublic/bm16a/v1/keymaps/default/keymap.c
index 0255603d33..0255603d33 100644
--- a/keyboards/kprepublic/bm16a/keymaps/default/keymap.c
+++ b/keyboards/kprepublic/bm16a/v1/keymaps/default/keymap.c
diff --git a/keyboards/kprepublic/bm16a/keymaps/default/readme.md b/keyboards/kprepublic/bm16a/v1/keymaps/default/readme.md
index f356f2cca0..f356f2cca0 100644
--- a/keyboards/kprepublic/bm16a/keymaps/default/readme.md
+++ b/keyboards/kprepublic/bm16a/v1/keymaps/default/readme.md
diff --git a/keyboards/kprepublic/bm16a/keymaps/factory/keymap.c b/keyboards/kprepublic/bm16a/v1/keymaps/factory/keymap.c
index 08f3476266..08f3476266 100644
--- a/keyboards/kprepublic/bm16a/keymaps/factory/keymap.c
+++ b/keyboards/kprepublic/bm16a/v1/keymaps/factory/keymap.c
diff --git a/keyboards/kprepublic/bm16a/keymaps/factory/readme.md b/keyboards/kprepublic/bm16a/v1/keymaps/factory/readme.md
index 11c952366e..11c952366e 100644
--- a/keyboards/kprepublic/bm16a/keymaps/factory/readme.md
+++ b/keyboards/kprepublic/bm16a/v1/keymaps/factory/readme.md
diff --git a/keyboards/kprepublic/bm16a/keymaps/via/keymap.c b/keyboards/kprepublic/bm16a/v1/keymaps/via/keymap.c
index 8b41b08dfe..8b41b08dfe 100644
--- a/keyboards/kprepublic/bm16a/keymaps/via/keymap.c
+++ b/keyboards/kprepublic/bm16a/v1/keymaps/via/keymap.c
diff --git a/keyboards/kprepublic/bm16a/keymaps/via/readme.md b/keyboards/kprepublic/bm16a/v1/keymaps/via/readme.md
index b381108759..b381108759 100644
--- a/keyboards/kprepublic/bm16a/keymaps/via/readme.md
+++ b/keyboards/kprepublic/bm16a/v1/keymaps/via/readme.md
diff --git a/keyboards/kprepublic/bm16a/keymaps/via/rules.mk b/keyboards/kprepublic/bm16a/v1/keymaps/via/rules.mk
index 36b7ba9cbc..36b7ba9cbc 100644
--- a/keyboards/kprepublic/bm16a/keymaps/via/rules.mk
+++ b/keyboards/kprepublic/bm16a/v1/keymaps/via/rules.mk
diff --git a/keyboards/kprepublic/bm16a/readme.md b/keyboards/kprepublic/bm16a/v1/readme.md
index b1c111b74b..d24a879505 100644
--- a/keyboards/kprepublic/bm16a/readme.md
+++ b/keyboards/kprepublic/bm16a/v1/readme.md
@@ -10,6 +10,6 @@ A 16 key macropad, with USB C, RGB underglow and backlight.
Make example for this keyboard (after setting up your build environment):
- make kprepublic/bm16a:default
+ make kprepublic/bm16a/v1:default
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/kprepublic/bm16a/v1/rules.mk b/keyboards/kprepublic/bm16a/v1/rules.mk
new file mode 100644
index 0000000000..6e7633bfe0
--- /dev/null
+++ b/keyboards/kprepublic/bm16a/v1/rules.mk
@@ -0,0 +1 @@
+# This file intentionally left blank
diff --git a/keyboards/kprepublic/bm16a/v2/config.h b/keyboards/kprepublic/bm16a/v2/config.h
new file mode 100644
index 0000000000..f4ac9e7a3b
--- /dev/null
+++ b/keyboards/kprepublic/bm16a/v2/config.h
@@ -0,0 +1,12 @@
+// Copyright 2022 fauxpark (@fauxpark)
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#pragma once
+
+#define RGB_DI_PIN B9
+#define RGB_MATRIX_LED_COUNT 16
+
+#define WS2812_PWM_DRIVER PWMD4
+#define WS2812_PWM_CHANNEL 4
+#define WS2812_DMA_STREAM STM32_DMA1_STREAM7
+#define WS2812_DMA_CHANNEL 7
diff --git a/keyboards/kprepublic/bm16a/v2/halconf.h b/keyboards/kprepublic/bm16a/v2/halconf.h
new file mode 100644
index 0000000000..da579a54a5
--- /dev/null
+++ b/keyboards/kprepublic/bm16a/v2/halconf.h
@@ -0,0 +1,8 @@
+// Copyright 2022 fauxpark (@fauxpark)
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#pragma once
+
+#define HAL_USE_PWM TRUE
+
+#include_next <halconf.h>
diff --git a/keyboards/kprepublic/bm16a/v2/info.json b/keyboards/kprepublic/bm16a/v2/info.json
new file mode 100644
index 0000000000..39b7ef6758
--- /dev/null
+++ b/keyboards/kprepublic/bm16a/v2/info.json
@@ -0,0 +1,120 @@
+{
+ "manufacturer": "kprepublic",
+ "keyboard_name": "BM16v2",
+ "maintainer": "qmk",
+ "bootloader": "stm32duino",
+ "diode_direction": "COL2ROW",
+ "features": {
+ "bootmagic": true,
+ "command": false,
+ "console": false,
+ "extrakey": true,
+ "mousekey": true,
+ "nkro": true,
+ "rgb_matrix": true
+ },
+ "matrix_pins": {
+ "cols": ["B1", "A3", "B0", "B4"],
+ "rows": ["A8", "A9", "B5", "B3"]
+ },
+ "processor": "STM32F103", // GD32F303CCT6
+ "url": "",
+ "usb": {
+ "device_version": "0.0.2",
+ "pid": "0x016C",
+ "vid": "0x4B50"
+ },
+ "layouts": {
+ "LAYOUT_ortho_4x4": {
+ "layout": [
+ {"matrix": [0, 0], "x": 0, "y": 0},
+ {"matrix": [0, 1], "x": 1, "y": 0},
+ {"matrix": [0, 2], "x": 2, "y": 0},
+ {"matrix": [0, 3], "x": 3, "y": 0},
+
+ {"matrix": [1, 0], "x": 0, "y": 1},
+ {"matrix": [1, 1], "x": 1, "y": 1},
+ {"matrix": [1, 2], "x": 2, "y": 1},
+ {"matrix": [1, 3], "x": 3, "y": 1},
+
+ {"matrix": [2, 0], "x": 0, "y": 2},
+ {"matrix": [2, 1], "x": 1, "y": 2},
+ {"matrix": [2, 2], "x": 2, "y": 2},
+ {"matrix": [2, 3], "x": 3, "y": 2},
+
+ {"matrix": [3, 0], "x": 0, "y": 3},
+ {"matrix": [3, 1], "x": 1, "y": 3},
+ {"matrix": [3, 2], "x": 2, "y": 3},
+ {"matrix": [3, 3], "x": 3, "y": 3}
+ ]
+ }
+ },
+ "community_layouts": ["ortho_4x4"],
+ "rgb_matrix": {
+ "driver": "WS2812",
+ "animations": {
+ "alphas_mods": true,
+ "gradient_up_down": true,
+ "gradient_left_right": true,
+ "breathing": true,
+ "band_sat": true,
+ "band_val": true,
+ "band_pinwheel_sat": true,
+ "band_pinwheel_val": true,
+ "band_spiral_sat": true,
+ "band_spiral_val": true,
+ "cycle_all": true,
+ "cycle_left_right": true,
+ "cycle_up_down": true,
+ "cycle_out_in": true,
+ "cycle_out_in_dual": true,
+ "rainbow_moving_chevron": true,
+ "cycle_pinwheel": true,
+ "cycle_spiral": true,
+ "dual_beacon": true,
+ "rainbow_beacon": true,
+ "rainbow_pinwheels": true,
+ "raindrops": true,
+ "jellybean_raindrops": true,
+ "hue_breathing": true,
+ "hue_pendulum": true,
+ "hue_wave": true,
+ "pixel_fractal": true,
+ "pixel_flow": true,
+ "pixel_rain": true,
+ "solid_reactive_simple": true,
+ "solid_reactive": true,
+ "solid_reactive_wide": true,
+ "solid_reactive_multiwide": true,
+ "solid_reactive_cross": true,
+ "solid_reactive_multicross": true,
+ "solid_reactive_nexus": true,
+ "solid_reactive_multinexus": true,
+ "splash": true,
+ "multisplash": true,
+ "solid_splash": true,
+ "solid_multisplash": true
+ },
+ "layout": [
+ {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4},
+ {"matrix": [0, 1], "x": 75, "y": 0, "flags": 4},
+ {"matrix": [0, 2], "x": 149, "y": 0, "flags": 4},
+ {"matrix": [0, 3], "x": 224, "y": 0, "flags": 4},
+
+ {"matrix": [1, 0], "x": 0, "y": 21, "flags": 4},
+ {"matrix": [1, 1], "x": 75, "y": 21, "flags": 4},
+ {"matrix": [1, 2], "x": 149, "y": 21, "flags": 4},
+ {"matrix": [1, 3], "x": 224, "y": 21, "flags": 4},
+
+ {"matrix": [2, 0], "x": 0, "y": 43, "flags": 4},
+ {"matrix": [2, 1], "x": 75, "y": 43, "flags": 4},
+ {"matrix": [2, 2], "x": 149, "y": 43, "flags": 4},
+ {"matrix": [2, 3], "x": 224, "y": 43, "flags": 4},
+
+ {"matrix": [3, 0], "x": 0, "y": 64, "flags": 4},
+ {"matrix": [3, 1], "x": 75, "y": 64, "flags": 4},
+ {"matrix": [3, 2], "x": 149, "y": 64, "flags": 4},
+ {"matrix": [3, 3], "x": 224, "y": 64, "flags": 4},
+ ]
+ }
+}
diff --git a/keyboards/kprepublic/bm16a/v2/keymaps/default/keymap.c b/keyboards/kprepublic/bm16a/v2/keymaps/default/keymap.c
new file mode 100644
index 0000000000..0cb2b68fb9
--- /dev/null
+++ b/keyboards/kprepublic/bm16a/v2/keymaps/default/keymap.c
@@ -0,0 +1,19 @@
+// Copyright 2022 fauxpark (@fauxpark)
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [0] = LAYOUT_ortho_4x4(
+ KC_P7, KC_P8, KC_P9, KC_PMNS,
+ KC_P4, KC_P5, KC_P6, KC_PPLS,
+ KC_P1, KC_P2, KC_P3, KC_PENT,
+ KC_P0, KC_PDOT, KC_SPC, MO(1)
+ ),
+ [1] = LAYOUT_ortho_4x4(
+ QK_BOOT, KC_PAST, KC_PSLS, _______,
+ RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD,
+ RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD,
+ _______, _______, _______, _______
+ )
+};
diff --git a/keyboards/kprepublic/bm16a/v2/mcuconf.h b/keyboards/kprepublic/bm16a/v2/mcuconf.h
new file mode 100644
index 0000000000..493b83b87c
--- /dev/null
+++ b/keyboards/kprepublic/bm16a/v2/mcuconf.h
@@ -0,0 +1,9 @@
+// Copyright 2022 fauxpark (@fauxpark)
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#pragma once
+
+#include_next <mcuconf.h>
+
+#undef STM32_PWM_USE_TIM4
+#define STM32_PWM_USE_TIM4 TRUE
diff --git a/keyboards/kprepublic/bm16a/v2/readme.md b/keyboards/kprepublic/bm16a/v2/readme.md
new file mode 100644
index 0000000000..0af553f126
--- /dev/null
+++ b/keyboards/kprepublic/bm16a/v2/readme.md
@@ -0,0 +1,27 @@
+# BM16A V2
+
+![bm16v2](https://i.imgur.com/3nr7bSoh.png)
+
+A 16 key macropad, with USB-C and per-key RGB.
+
+* Keyboard Maintainer: QMK Community
+* Hardware Supported: BM16A PCB (`BM16V2-ARM`)
+* Hardware Availability: [KPrepublic](https://kprepublic.com/collections/bm16/products/bm16a-16-keys-custom-mechanical-keyboard-pcb-plate-programmed-numpad-layouts-qmk-firmware-with-rgb-bottom-underglow-alps-mx)
+
+Make example for this keyboard (after setting up your build environment):
+
+ make kprepublic/bm16v2:default
+
+Flashing example for this keyboard:
+
+ make kprepublic/bm16a/v2:default:flash
+
+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).
+
+## Bootloader
+
+Enter the bootloader in 3 ways:
+
+* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard
+* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead
+* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available
diff --git a/keyboards/kprepublic/bm16a/v2/rules.mk b/keyboards/kprepublic/bm16a/v2/rules.mk
new file mode 100644
index 0000000000..c1285e300c
--- /dev/null
+++ b/keyboards/kprepublic/bm16a/v2/rules.mk
@@ -0,0 +1 @@
+WS2812_DRIVER = pwm
diff --git a/keyboards/late9/readme.md b/keyboards/late9/readme.md
index 93e5a40823..1d85e788fb 100644
--- a/keyboards/late9/readme.md
+++ b/keyboards/late9/readme.md
@@ -20,7 +20,7 @@ Flashing example for this keyboard:
make late9/rev1:default:flash
-When asked by the terminal, short with a metal wire the pins on the backside of the board highlighted as `RST` (one is the `QK_BOOT` and the other one is `GROUND`) to enter the bootloader and let the OS detects the device.
+When asked by the terminal, short with a metal wire the pins on the backside of the board highlighted as `RST` (one is the `RESET` and the other one is `GROUND`) to enter the bootloader and let the OS detects the device.
After installing this firmware you can use Bootmagic to enter the bootloader while plugging in your LATE-9. By default it's the button on the upper-left of the keyboard.
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 [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
diff --git a/keyboards/linworks/fave65h/readme.md b/keyboards/linworks/fave65h/readme.md
index 09649fa860..7a95f65ac5 100644
--- a/keyboards/linworks/fave65h/readme.md
+++ b/keyboards/linworks/fave65h/readme.md
@@ -17,7 +17,7 @@ Make example for this keyboard (after setting up your build environment):
## Bootloader Enter the bootloader in 3 ways:
* **Bootmagic reset**: Hold down the key ESC key and plug in the keyboard (Top Left most switch)
-* **Physical reset short**: Briefly short the 2 pads labelled QK_BOOT on the back of the PCB
+* **Physical reset short**: Briefly short the 2 pads labelled `RESET` on the back of the PCB
* **Keycode in layout**: Press the B key on layer 1 which is mapped to `QK_BOOT`
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/linworks/fave84h/readme.md b/keyboards/linworks/fave84h/readme.md
index 22ce5fd428..dab29f6766 100644
--- a/keyboards/linworks/fave84h/readme.md
+++ b/keyboards/linworks/fave84h/readme.md
@@ -19,5 +19,5 @@ See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_to
## Bootloader Enter the bootloader in 3 ways:
* **Bootmagic reset**: Hold down the key ESC key and plug in the keyboard (Top Left most switch)
-* **Physical reset short**: Briefly short the 2 pads labelled QK_BOOT on the back of the PCB
+* **Physical reset short**: Briefly short the 2 pads labelled `RESET` on the back of the PCB
* **Keycode in layout**: Press the B key on layer 1 which is mapped to `QK_BOOT`
diff --git a/keyboards/linworks/fave87h/readme.md b/keyboards/linworks/fave87h/readme.md
index bda921a61b..f06d8458c0 100644
--- a/keyboards/linworks/fave87h/readme.md
+++ b/keyboards/linworks/fave87h/readme.md
@@ -19,5 +19,5 @@ See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_to
## Bootloader Enter the bootloader in 3 ways:
* **Bootmagic reset**: Hold down the key ESC key and plug in the keyboard (Top Left most switch)
-* **Physical reset short**: Briefly short the 2 pads labelled QK_BOOT on the back of the PCB
+* **Physical reset short**: Briefly short the 2 pads labelled `RESET` on the back of the PCB
* **Keycode in layout**: Press the B key on layer 1 which is mapped to `QK_BOOT`
diff --git a/keyboards/mechanickeys/miniashen40/readme.md b/keyboards/mechanickeys/miniashen40/readme.md
index c61398ba1a..67753d37bd 100644
--- a/keyboards/mechanickeys/miniashen40/readme.md
+++ b/keyboards/mechanickeys/miniashen40/readme.md
@@ -32,7 +32,7 @@ Enter the bootloader in 3 ways:
* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard
* **Physical**:
1. Press and hold `BOOT` switch
- 2. Tap `QK_BOOT` switch
+ 2. Tap `RESET` switch
3. Release `BOOT` switch
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available
diff --git a/keyboards/moonlander/config.h b/keyboards/moonlander/config.h
index 7db3a184fa..9aff554ace 100644
--- a/keyboards/moonlander/config.h
+++ b/keyboards/moonlander/config.h
@@ -76,7 +76,7 @@
#define DRIVER_1_LED_TOTAL 36
#define DRIVER_2_LED_TOTAL 36
#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
-#define RGB_MATRIX_CENTER { 125, 26 }
+#define RGB_MATRIX_CENTER { 120, 36 }
#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 175
#define RGB_MATRIX_FRAMEBUFFER_EFFECTS
#define RGB_MATRIX_KEYPRESSES
diff --git a/keyboards/moonlander/moonlander.c b/keyboards/moonlander/moonlander.c
index 2d6b1f037b..83b5997b53 100644
--- a/keyboards/moonlander/moonlander.c
+++ b/keyboards/moonlander/moonlander.c
@@ -264,50 +264,54 @@ const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
};
led_config_t g_led_config = { {
- { 0, 5, 10, 15, 20, 25, 29 },
- { 1, 6, 11, 16, 21, 26, 30 },
- { 2, 7, 12, 17, 22, 27, 31 },
- { 3, 8, 13, 18, 23, 28, NO_LED },
- { 4, 9, 14, 19, 24, NO_LED, NO_LED },
- { 32, 33, 34, 35, NO_LED, NO_LED, NO_LED },
- { 65, 61, 56, 51, 46, 41, 36 },
- { 66, 62, 57, 52, 47, 42, 37 },
- { 67, 63, 58, 53, 48, 43, 38 },
- { NO_LED, 64, 59, 54, 49, 44, 39 },
- { NO_LED, NO_LED, 60, 55, 50, 45, 40 },
- { NO_LED, NO_LED, NO_LED, 71, 70, 69, 68 },
+ { 0, 5, 10, 15, 20, 25, 29 },
+ { 1, 6, 11, 16, 21, 26, 30 },
+ { 2, 7, 12, 17, 22, 27, 31 },
+ { 3, 8, 13, 18, 23, 28, NO_LED },
+ { 4, 9, 14, 19, 24, NO_LED, NO_LED },
+ { 32, 33, 34, 35, NO_LED, NO_LED, NO_LED },
+ { 65, 61, 56, 51, 46, 41, 36 },
+ { 66, 62, 57, 52, 47, 42, 37 },
+ { 67, 63, 58, 53, 48, 43, 38 },
+ { NO_LED, 64, 59, 54, 49, 44, 39 },
+ { NO_LED, NO_LED, 60, 55, 50, 45, 40 },
+ { NO_LED, NO_LED, NO_LED, 71, 70, 69, 68 }
}, {
- { 0, 0 }, { 0, 12 }, { 0, 25 }, { 0, 38 }, { 0, 51 },
- { 17, 0 }, { 17, 12 }, { 17, 25 }, { 17, 38 }, { 17, 51 },
- { 34, 0 }, { 34, 12 }, { 34, 25 }, { 34, 38 }, { 34, 51 },
- { 51, 0 }, { 51, 12 }, { 51, 25 }, { 51, 38 }, { 51, 51 },
- { 68, 0 }, { 68, 12 }, { 68, 25 }, { 68, 38 }, { 68, 51 },
- { 86, 0 }, { 86, 12 }, { 86, 25 }, { 86, 38 },
- { 105, 0 }, { 105, 12 }, { 105, 25 },
- { 90, 55 }, { 105, 68 }, { 116, 86 }, { 116, 59 },
-
- { 250, 0 }, { 250, 12 }, { 250, 25 }, { 250, 38 }, { 250, 51 },
- { 233, 0 }, { 233, 12 }, { 233, 25 }, { 233, 38 }, { 233, 51 },
- { 216, 0 }, { 216, 12 }, { 216, 25 }, { 216, 38 }, { 216, 51 },
- { 198, 0 }, { 198, 12 }, { 198, 25 }, { 198, 38 }, { 198, 51 },
- { 181, 0 }, { 181, 12 }, { 181, 25 }, { 181, 38 }, { 181, 51 },
- { 163, 0 }, { 163, 12 }, { 163, 25 }, { 163, 38 },
- { 146, 0 }, { 146, 12 }, { 146, 25 },
- { 161, 55 }, { 161, 68 }, { 146, 86 }, { 131, 59 }
-
+ { 0, 4}, { 0, 20}, { 0, 36}, { 0, 52}, { 0, 68},
+ { 16, 3}, { 16, 19}, { 16, 35}, { 16, 51}, { 16, 67},
+ { 32, 1}, { 32, 17}, { 32, 33}, { 32, 49}, { 32, 65},
+ { 48, 0}, { 48, 16}, { 48, 32}, { 48, 48}, { 48, 64},
+ { 64, 1}, { 64, 17}, { 64, 33}, { 64, 49}, { 64, 65},
+ { 80, 3}, { 80, 19}, { 80, 35}, { 80, 51},
+ { 96, 4}, { 96, 20}, { 96, 36},
+ { 88, 69}, {100, 80}, {112, 91}, {108, 69},
+
+ {240, 4}, {240, 20}, {240, 36}, {240, 52}, {240, 68},
+ {224, 3}, {224, 19}, {224, 35}, {224, 51}, {224, 67},
+ {208, 1}, {208, 17}, {208, 33}, {208, 49}, {208, 65},
+ {192, 0}, {192, 16}, {192, 32}, {192, 48}, {192, 64},
+ {176, 1}, {176, 17}, {176, 33}, {176, 49}, {176, 65},
+ {160, 3}, {160, 19}, {160, 35}, {160, 51},
+ {144, 4}, {144, 20}, {144, 36},
+ {152, 69}, {140, 80}, {128, 91}, {132, 69}
}, {
- 1, 1, 1, 1, 1, 4,
- 4, 4, 4, 1, 4, 4,
- 4, 4, 1, 4, 4, 4,
- 4, 1, 4, 4, 4, 4,
- 1, 4, 4, 4, 4, 4,
- 4, 4, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 4,
- 4, 4, 4, 1, 4, 4,
- 4, 4, 1, 4, 4, 4,
- 4, 1, 4, 4, 4, 4,
- 1, 4, 4, 4, 4, 4,
- 4, 4, 1, 1, 1, 1
+ 1, 1, 1, 1, 1,
+ 4, 4, 4, 4, 1,
+ 4, 4, 4, 4, 1,
+ 4, 4, 4, 4, 1,
+ 4, 4, 4, 4, 1,
+ 4, 4, 4, 4,
+ 1, 1, 1,
+ 1, 1, 1, 1,
+
+ 1, 1, 1, 1, 1,
+ 4, 4, 4, 4, 1,
+ 4, 4, 4, 4, 1,
+ 4, 4, 4, 4, 1,
+ 4, 4, 4, 4, 1,
+ 4, 4, 4, 4,
+ 1, 1, 1,
+ 1, 1, 1, 1
} };
// clang-format on
diff --git a/keyboards/moonlander/moonlander.h b/keyboards/moonlander/moonlander.h
index 19618a9e2a..96e0b0ff14 100644
--- a/keyboards/moonlander/moonlander.h
+++ b/keyboards/moonlander/moonlander.h
@@ -59,6 +59,34 @@ extern bool mcp23018_leds[];
{ KC_NO, KC_NO, ka2, ka3, ka4, ka5, ka6 }, \
{ KC_NO, KC_NO, KC_NO, kb3, kb4, kb5, kb6 } \
}
+
+#define LED_LAYOUT_moonlander( \
+ l00, l01, l02, l03, l04, l05, l06, l60, l61, l62, l63, l64, l65, l66, \
+ l10, l11, l12, l13, l14, l15, l16, l70, l71, l72, l73, l74, l75, l76, \
+ l20, l21, l22, l23, l24, l25, l26, l80, l81, l82, l83, l84, l85, l86, \
+ l30, l31, l32, l33, l34, l35, l91, l92, l93, l94, l95, l96, \
+ l40, l41, l42, l43, l44, l53, lb3, la2, la3, la4, la5, la6, \
+ l50, l51, l52, lb4, lb5, lb6 \
+) \
+{ \
+ l00, l10, l20, l30, l40, \
+ l01, l11, l21, l31, l41, \
+ l02, l12, l22, l32, l42, \
+ l03, l13, l23, l33, l43, \
+ l04, l14, l24, l34, l44, \
+ l05, l15, l25, l35, \
+ l06, l16, l26, \
+ l50, l51, l52, l53, \
+\
+ l66, l76, l86, l96, la6, \
+ l65, l75, l85, l95, la5, \
+ l64, l74, l84, l94, la4, \
+ l63, l73, l83, l93, la3, \
+ l62, l72, l82, l92, la2, \
+ l61, l71, l81, l91, \
+ l60, l70, l80, \
+ lb6, lb5, lb4, lb3 \
+}
// clang-format on
enum planck_ez_keycodes {
diff --git a/keyboards/neopad/readme.md b/keyboards/neopad/readme.md
index 6d2bd8a288..9e83e9bb6d 100644
--- a/keyboards/neopad/readme.md
+++ b/keyboards/neopad/readme.md
@@ -19,7 +19,7 @@ Flashing example for this keyboard:
make neopad/rev1:default:flash
-When asked by the terminal, press the dedicated `QK_BOOT` button (the one above the 2 LEDs) to enter the bootloader and let the OS detects the device.
+When asked by the terminal, press the dedicated `RESET` button (the one above the 2 LEDs) to enter the bootloader and let the OS detects the device.
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 [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
diff --git a/keyboards/pearlboards/atlas/readme.md b/keyboards/pearlboards/atlas/readme.md
index 5161dd2a55..3631df8a29 100644
--- a/keyboards/pearlboards/atlas/readme.md
+++ b/keyboards/pearlboards/atlas/readme.md
@@ -18,5 +18,5 @@ See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_to
Enter the bootloader in 2 ways:
-* **Physical reset button**: Briefly press the button on the back of the PCB labeled "QK_BOOT"
+* **Physical reset button**: Briefly press the button on the back of the PCB labeled `RESET`
* **Keycode in layout**: Press the key mapped to `QK_BOOT` in conjunction with the key mapped to `MO(1))`
diff --git a/keyboards/pearlboards/pandora/readme.md b/keyboards/pearlboards/pandora/readme.md
index 2ac1d8acbc..c90311507d 100644
--- a/keyboards/pearlboards/pandora/readme.md
+++ b/keyboards/pearlboards/pandora/readme.md
@@ -15,3 +15,10 @@ Make example for this keyboard (after setting up your build environment):
make pearlboards/pandora:default
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).
+
+## Bootloader
+
+Enter the bootloader in 2 ways:
+
+* **Physical reset button**: Briefly press the button on the back of the PCB labeled `RESET`
+* **Keycode in layout**: Press the key mapped to `QK_BOOT` in conjunction with the key mapped to `MO(1))`
diff --git a/keyboards/pearlboards/pearl/readme.md b/keyboards/pearlboards/pearl/readme.md
index e12d59c8b0..8a8d2b9a3b 100644
--- a/keyboards/pearlboards/pearl/readme.md
+++ b/keyboards/pearlboards/pearl/readme.md
@@ -18,5 +18,5 @@ See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_to
Enter the bootloader in 2 ways:
-* **Physical reset button**: Briefly press the button on the front left of the PCB labeled "QK_BOOT"
+* **Physical reset button**: Briefly press the button on the front left of the PCB labeled `RESET`
* **Keycode in layout**: Press the key mapped to `QK_BOOT` in conjunction with the key mapped to `MO(1))`
diff --git a/keyboards/pearlboards/zeus/readme.md b/keyboards/pearlboards/zeus/readme.md
index 2db71d3c64..b8217e81c1 100644
--- a/keyboards/pearlboards/zeus/readme.md
+++ b/keyboards/pearlboards/zeus/readme.md
@@ -18,5 +18,5 @@ See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_to
Enter the bootloader in 2 ways:
-* **Physical reset button**: Briefly press the button on the back of the PCB labeled "QK_BOOT"
+* **Physical reset button**: Briefly press the button on the back of the PCB labeled `RESET`
* **Keycode in layout**: Press the key mapped to `QK_BOOT` in conjunction with the key mapped to `MO(1))`
diff --git a/keyboards/pearlboards/zeuspad/readme.md b/keyboards/pearlboards/zeuspad/readme.md
index 690af89b79..b64be5261a 100644
--- a/keyboards/pearlboards/zeuspad/readme.md
+++ b/keyboards/pearlboards/zeuspad/readme.md
@@ -18,5 +18,5 @@ See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_to
Enter the bootloader in 2 ways:
-* **Physical reset button**: Briefly press the button on the front of the PCB labeled "QK_BOOT"
+* **Physical reset button**: Briefly press the button on the front of the PCB labeled `RESET`
* **Keycode in layout**: Press the key mapped to `QK_BOOT` in conjunction with the key mapped to `MO(1))`
diff --git a/keyboards/polycarbdiet/s20/readme.md b/keyboards/polycarbdiet/s20/readme.md
index e40f999a1c..eee783a4ff 100644
--- a/keyboards/polycarbdiet/s20/readme.md
+++ b/keyboards/polycarbdiet/s20/readme.md
@@ -17,7 +17,7 @@ Flashing example for this keyboard:
make polycarbdiet/s20:default:flash
**Reset Method:**
-- Press the `QK_BOOT` button on the under side of the PCB
+- Press the `RESET` button on the under side of the PCB
**Bootloader Method:**
- Hold down the key located at `K00`, commonly programmed as `ESC`, while plugging in the keyboard.
diff --git a/keyboards/ramonimbao/mona/v1_1/readme.md b/keyboards/ramonimbao/mona/v1_1/readme.md
index 17ae6012bd..b28fedd76c 100644
--- a/keyboards/ramonimbao/mona/v1_1/readme.md
+++ b/keyboards/ramonimbao/mona/v1_1/readme.md
@@ -7,7 +7,7 @@ A gummy-worm o-ring mount 60% marble keyboard. Now with ALPS/MX, Caps Lock LED,
* Keyboard Maintainer: [Ramon Imbao](https://github.com/ramonimbao)
* Hardware Supported: ATmega32u4
-To get to the bootloader, with the USB cable plugged in, press the `QK_BOOT` button on the back of the PCB.
+To get to the bootloader, with the USB cable plugged in, press the `RESET` button on the back of the PCB.
Make example for this keyboard (after setting up your build environment):
diff --git a/keyboards/ramonimbao/mona/v32a/readme.md b/keyboards/ramonimbao/mona/v32a/readme.md
index f9a730691f..61a3deefaa 100644
--- a/keyboards/ramonimbao/mona/v32a/readme.md
+++ b/keyboards/ramonimbao/mona/v32a/readme.md
@@ -7,7 +7,7 @@ A gummy-worm o-ring mount 60% marble keyboard. Now with ALPS/MX, Caps Lock LED,
* Keyboard Maintainer: [Ramon Imbao](https://github.com/ramonimbao)
* Hardware Supported: ATmega32A
-To get to the bootloader, with the USB cable plugged in, press the `QK_BOOT` button on the back of the PCB.
+To get to the bootloader, with the USB cable plugged in, press the `RESET` button on the back of the PCB.
Make example for this keyboard (after setting up your build environment):
diff --git a/keyboards/ryanskidmore/rskeys100/readme.md b/keyboards/ryanskidmore/rskeys100/readme.md
index 3100e74f2d..4be465dbde 100644
--- a/keyboards/ryanskidmore/rskeys100/readme.md
+++ b/keyboards/ryanskidmore/rskeys100/readme.md
@@ -19,4 +19,4 @@ See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_to
## Bootloader
-To enter the bootloader, press the `QK_BOOT` button on your daughterboard PCB while it's plugged in. \ No newline at end of file
+To enter the bootloader, press the `RESET` button on your daughterboard PCB while it's plugged in. \ No newline at end of file
diff --git a/keyboards/ryloo_studio/m0110/readme.md b/keyboards/ryloo_studio/m0110/readme.md
index 8729ef6319..78a59f0e62 100755
--- a/keyboards/ryloo_studio/m0110/readme.md
+++ b/keyboards/ryloo_studio/m0110/readme.md
@@ -16,9 +16,9 @@ Flashing example for this keyboard:
Putting the Keyboard in Bootloader Mode:
-The shipped PCB did not come with a reset button. To put the PCB in bootloader mode: locate the 2 `QK_BOOT` pins in the back of the PCB and short them with a conductive wire or tweezer.
+The shipped PCB did not come with a reset button. To put the PCB in bootloader mode: locate the 2 `RESET` pins in the back of the PCB and short them with a conductive wire or tweezer.
-![Ryloo Studio M0110 PCB QK_BOOT pins location](https://i.imgur.com/QJWmpqF.jpeg)
+![Ryloo Studio M0110 PCB RESET pins location](https://i.imgur.com/QJWmpqF.jpeg)
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/studiokestra/bourgeau/readme.md b/keyboards/studiokestra/bourgeau/readme.md
index b0a0bb2a89..16f87618e0 100644
--- a/keyboards/studiokestra/bourgeau/readme.md
+++ b/keyboards/studiokestra/bourgeau/readme.md
@@ -11,7 +11,7 @@ Compact 75% universal hotswap PCB with USB-C that supports a fixed 6.25U bottom
There are 3 ways to put the board in bootloader mode:
- Hold the top-left key (typically `Esc`) while plugging in the USB cable, OR
-- While the PCB is plugged into the PC, press the physical `QK_BOOT` button on the back of the board, OR
+- While the PCB is plugged into the PC, press the physical `RESET` button on the back of the board, OR
- With the default layout, toggle Layer 1 and press the `ESC` key.
## Compiling Firmware
diff --git a/keyboards/studiokestra/cascade/readme.md b/keyboards/studiokestra/cascade/readme.md
index e217b3edea..db55844ed1 100644
--- a/keyboards/studiokestra/cascade/readme.md
+++ b/keyboards/studiokestra/cascade/readme.md
@@ -11,7 +11,7 @@
There are 3 ways to put the board in bootloader mode:
- Hold the top-left key (typically `Esc`) while plugging in the USB cable, OR
-- While the PCB is plugged into the PC, press the physical `QK_BOOT` button on the back of the board, OR
+- While the PCB is plugged into the PC, press the physical `RESET` button on the back of the board, OR
- With the default layout, toggle Layer 1 and press the `ESC` key.
## Compiling Firmware
diff --git a/keyboards/studiokestra/galatea/readme.md b/keyboards/studiokestra/galatea/readme.md
index 08a6eae011..1268c596bf 100644
--- a/keyboards/studiokestra/galatea/readme.md
+++ b/keyboards/studiokestra/galatea/readme.md
@@ -13,7 +13,7 @@ TKL H87/88c compatible PCB with support for the most common layouts.
There are 3 ways to put the board in bootloader mode:
- Hold the top-left key (typically `Esc`) while plugging in the USB cable, OR
-- While the PCB is plugged into the PC, press the physical `QK_BOOT` button on the back of the board, OR
+- While the PCB is plugged into the PC, press the physical `RESET` button on the back of the board, OR
- With the default layout, toggle Layer 1 and press the `R` key.
## Compiling Firmware
diff --git a/keyboards/studiokestra/nue/readme.md b/keyboards/studiokestra/nue/readme.md
index f29f27be22..42e72902e4 100644
--- a/keyboards/studiokestra/nue/readme.md
+++ b/keyboards/studiokestra/nue/readme.md
@@ -11,7 +11,7 @@
There are 3 ways to put the board in bootloader mode:
- Hold the top-left key (typically `Esc`) while plugging in the USB cable, OR
-- While the PCB is plugged into the PC, press the physical `QK_BOOT` button on the back of the board, OR
+- While the PCB is plugged into the PC, press the physical `RESET` button on the back of the board, OR
- With the default layout, toggle Layer 1 and press the `R` key.
## Compiling Firmware
diff --git a/keyboards/xelus/xs60/config.h b/keyboards/xelus/xs60/hotswap/config.h
index a61cd22e53..5604b8139b 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,17 +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
@@ -50,3 +39,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..e16b675902
--- /dev/null
+++ b/keyboards/xelus/xs60/hotswap/info.json
@@ -0,0 +1,83 @@
+{
+ "keyboard_name": "XS60 Hotswap",
+ "manufacturer": "Xelus",
+ "url": "",
+ "maintainer": "Xelus22",
+ "usb": {
+ "vid": "0x5845",
+ "pid": "0x5861",
+ "device_version": "0.0.1"
+ },
+ "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/hotswap/keymaps/via/rules.mk b/keyboards/xelus/xs60/hotswap/keymaps/via/rules.mk
new file mode 100644
index 0000000000..1e5b99807c
--- /dev/null
+++ b/keyboards/xelus/xs60/hotswap/keymaps/via/rules.mk
@@ -0,0 +1 @@
+VIA_ENABLE = yes
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/kprepublic/bm16a/rules.mk b/keyboards/xelus/xs60/hotswap/rules.mk
index 325564a154..a013327f56 100644
--- a/keyboards/kprepublic/bm16a/rules.mk
+++ b/keyboards/xelus/xs60/hotswap/rules.mk
@@ -1,8 +1,8 @@
# MCU name
-MCU = atmega32u4
+MCU = STM32L422
# Bootloader selection
-BOOTLOADER = atmel-dfu
+BOOTLOADER = stm32-dfu
# Build Options
# change yes to no to disable
@@ -10,11 +10,18 @@ BOOTLOADER = atmel-dfu
BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
MOUSEKEY_ENABLE = yes # Mouse keys
EXTRAKEY_ENABLE = yes # Audio control and System control
-CONSOLE_ENABLE = no # Console for debug
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = yes # Enable N-Key Rollover
-BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
-RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
AUDIO_ENABLE = no # Audio output
-LAYOUTS = ortho_4x4
+EEPROM_DRIVER = i2c
+
+RGBLIGHT_ENABLE = yes
+WS2812_DRIVER = bitbang
+
+LTO_ENABLE = yes
+OPT = 2
+
+# LAYOUTS = LAYOUT_60_ansi_tsangan_split_rshift
diff --git a/keyboards/xelus/xs60/soldered/config.h b/keyboards/xelus/xs60/soldered/config.h
new file mode 100644
index 0000000000..bb97900a03
--- /dev/null
+++ b/keyboards/xelus/xs60/soldered/config.h
@@ -0,0 +1,50 @@
+/* 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
+
+/* 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
+
+// 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/xs60/soldered/halconf.h b/keyboards/xelus/xs60/soldered/halconf.h
new file mode 100644
index 0000000000..b494afca7f
--- /dev/null
+++ b/keyboards/xelus/xs60/soldered/halconf.h
@@ -0,0 +1,22 @@
+/* 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
+
+#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..c44aaca642 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,11 @@
"pid": "0x5860",
"device_version": "0.0.1"
},
+ "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_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/xs60/soldered/keymaps/via/config.h b/keyboards/xelus/xs60/soldered/keymaps/via/config.h
new file mode 100644
index 0000000000..965c516a63
--- /dev/null
+++ b/keyboards/xelus/xs60/soldered/keymaps/via/config.h
@@ -0,0 +1,19 @@
+/* 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
+
+// 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/rules.mk b/keyboards/xelus/xs60/soldered/rules.mk
index 65c7d981ef..17919eff22 100644
--- a/keyboards/xelus/xs60/rules.mk
+++ b/keyboards/xelus/xs60/soldered/rules.mk
@@ -18,6 +18,9 @@ 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
diff --git a/keyboards/xiudi/xd75/keymaps/replicajunction/config.h b/keyboards/xiudi/xd75/keymaps/replicajunction/config.h
deleted file mode 100644
index a02f9a95db..0000000000
--- a/keyboards/xiudi/xd75/keymaps/replicajunction/config.h
+++ /dev/null
@@ -1,51 +0,0 @@
-/* Copyright 2021 Joshua T.
- *
- * 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
-
-// Do not allow one macro to contain the other macro
-#define DYNAMIC_MACRO_NO_NESTING
-
-// "THE most important tap hold configuration setting"
-// https://precondition.github.io/home-row-mods#ignore-mod-tap-interrupt
-// https://docs.qmk.fm/#/tap_hold?id=ignore-mod-tap-interrupt
-#define IGNORE_MOD_TAP_INTERRUPT
-
-// This one is a style choice. Play with it both on and off to see which
-// one suits you better.
-// https://precondition.github.io/home-row-mods#permissive-hold
-// https://docs.qmk.fm/#/tap_hold?id=permissive-hold
-#define PERMISSIVE_HOLD
-
-// If you press a dual-role key for longer than TAPPING_TERM, then
-// release it without pressing another key, without this setting nothing
-// would happen. With this setting, it sends the key's tap function.
-// https://precondition.github.io/home-row-mods#retro-tapping
-#define RETRO_TAPPING
-
-// Disable some unused features to save space
-#undef LOCKING_SUPPORT_ENABLE
-#undef LOCKING_RESYNC_ENABLE
-
-/////
-// Flags for stuff in my userspace
-
-#define USER_INCLUDE_GAMING_LAYER
-#define USER_INCLUDE_MACRO_LAYER
-
-// "Super Alt-Tab"
-// https://docs.qmk.fm/#/feature_macros?id=super-alt%E2%86%AFtab
-#define USER_SUPER_ALT_TAB_TIMEOUT 500
diff --git a/keyboards/xiudi/xd75/keymaps/replicajunction/keymap.c b/keyboards/xiudi/xd75/keymaps/replicajunction/keymap.c
deleted file mode 100644
index 06e048e9f9..0000000000
--- a/keyboards/xiudi/xd75/keymaps/replicajunction/keymap.c
+++ /dev/null
@@ -1,138 +0,0 @@
-/* Copyright 2021 Joshua T.
- *
- * 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
-#include "replicaJunction.h"
-
-// enum additional_keyboard_layers {
-// L_RGB = _LAYER_SAFE_RANGE
-// };
-
-#define BSP_SYM LT(L_SYMBOLS, KC_BSPC)
-#define SPC_NAV LT(L_NAVIGATION, KC_SPC)
-#define ESC_NUM LT(L_NUMBERS, KC_ESC)
-#define MO_FN MO(L_FN)
-#define MO_MAC MO(L_MACROS)
-
-#define DF_TYPE DF(L_BASE)
-#define DF_GAME DF(L_GAMING)
-
-#define ESC_SFT LSFT_T(KC_ESC)
-#define TAB_SFT RSFT_T(KC_TAB)
-
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [L_BASE] = LAYOUT_ortho_5x15(
- KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_MINS, KC_GRV, KC_EQL, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
- KC_EQL, KC_Q, KC_W, KC_F, KC_P, KC_B, KC_LBRC, KC_BSLS, KC_RBRC, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSLS,
- KC_MINS, KC_A, KC_R, KC_S, KC_T, KC_G, SALTTAB, KC_UP, KC_END, KC_M, KC_N, KC_E, KC_I, KC_O, KC_QUOT,
- NUMWORD, KC_Z, KC_X, KC_C, KC_D, KC_V, KC_LEFT, KC_DOWN, KC_RGHT, KC_K, KC_H, KC_COMM, KC_DOT, KC_SLSH, CAPWORD,
- KC_LCTL, KC_LGUI, KC_LALT, MO_FN, ESC_SFT, BSP_SYM, CTL_DEL, KC_ENT, ALT_ENT, SPC_NAV, TAB_SFT, MO_FN, KC_RALT, KC_RGUI, KC_RCTL
- ),
-
-
- [L_GAMING] = LAYOUT_ortho_5x15(
- KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_MINS, KC_GRV, KC_EQL, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC, KC_BSLS, KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_QUOT,
- KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_HOME, KC_DEL, KC_PGUP, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT,
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_END, KC_UP, KC_PGDN, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
- KC_LCTL, KC_LCTL, KC_LALT, KC_LSFT, KC_SPC, KC_LALT, KC_LEFT, KC_DOWN, KC_RGHT, KC_BSPC, KC_SPC, MO_FN, KC_RALT, KC_RGUI, KC_RCTL
- ),
-
-
- // [L_QWERTY] = LAYOUT_ortho_5x15(
- // KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_MINS, KC_GRV, KC_EQL, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
- // KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC, KC_BSLS, KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_QUOT,
- // KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_HOME, KC_DEL, KC_PGUP, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT,
- // KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_END, KC_UP, KC_PGDN, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
- // KC_LCTL, KC_LGUI, KC_LALT, MO(_FN), KC_SPC, KC_SPC, KC_LEFT, KC_DOWN, KC_RGHT, KC_SPC, KC_SPC, MO(_FN), KC_RALT, KC_RGUI, KC_RCTL
- // ),
-
-
- // [L_CURSOR] = LAYOUT_ortho_5x15(
- // _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- // _______, _______, _______, _______, _______, _______, _______, _______, _______, OS_SALL, OS_COPY, OS_PAST, OS_CUT, OS_UNDO, _______,
- // _______, KC_LGUI, KC_LALT, KC_LSFT, KC_LCTL, _______, _______, _______, SEARCH, SALTTAB, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______,
- // _______, KC_RGUI, KC_RALT, KC_RSFT, KC_RCTL, _______, _______, _______, _______, OS_FIND, KC_HOME, KC_PGDN, KC_PGUP, KC_END, _______,
- // _______, _______, _______, _______, _______, ooooooo, _______, _______, _______, SPC_NAV, _______, _______, _______, _______, _______
- // ),
-
-
- [L_NUMBERS] = LAYOUT_ortho_5x15(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_NUM, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_HASH, KC_P7, KC_P8, KC_P9, KC_PSLS, SFT_TAB,
- _______, KC_LGUI, KC_LALT, KC_LSFT, KC_LCTL, _______, _______, _______, _______, KC_PPLS, KC_P4, KC_P5, KC_P6, KC_PAST, KC_TAB,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PMNS, KC_P1, KC_P2, KC_P3, KC_BSLS, KC_EQL,
- _______, _______, _______, _______, ooooooo, _______, _______, _______, _______, _______, KC_P0, KC_P0, KC_PDOT, KC_PENT, _______
- ),
-
-
- [L_SYMBOLS] = LAYOUT_ortho_5x15(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, KC_AT, KC_LT, KC_DLR, KC_GT, XXXXXXX, _______, _______, _______, XXXXXXX, KC_LBRC, KC_UNDS, KC_RBRC, XXXXXXX, _______,
- _______, KC_BSLS, KC_LPRN, KC_DQUO, KC_RPRN, KC_HASH, _______, _______, _______, KC_PERC, KC_LCBR, KC_EQL, KC_RCBR, KC_PIPE, _______,
- _______, KC_EXLM, KC_COLN, KC_ASTR, KC_PLUS, XXXXXXX, _______, _______, _______, XXXXXXX, KC_AMPR, KC_CIRC, KC_TILD, KC_GRV, _______,
- _______, _______, _______, _______, _______, ooooooo, _______, _______, _______, ooooooo, _______, _______, _______, _______, _______
- ),
-
-
- [L_NAVIGATION] = LAYOUT_ortho_5x15(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, OS_UNDO, OS_CUT, OS_PAST, OS_COPY, OS_SALL, _______, _______, _______, KC_PGUP, KC_HOME, KC_UP, KC_END, KC_DEL, _______,
- _______, KC_LGUI, KC_LALT, KC_LSFT, KC_LCTL, _______, _______, _______, _______, KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, KC_BSPC, _______,
- _______, WIN_V, _______, _______, OS_FIND, SEARCH, _______, _______, _______, _______, SFT_TAB, KC_TAB, KC_APP, KC_PSCR, _______,
- _______, _______, _______, _______, _______, ooooooo, _______, _______, _______, ooooooo, _______, _______, _______, _______, _______
- ),
-
-
- [L_FN] = LAYOUT_ortho_5x15(
- DF_TYPE, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______, MS_JIGL, _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
- DF_GAME, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, _______, _______, _______, _______, KC_VOLU, _______, _______, _______, _______, KC_F12,
- _______, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, KC_CAPS, QK_BOOT, _______, KC_MUTE, _______, _______, _______, _______, _______,
- _______, RGB_M_P, RGB_M_B, _______, _______, _______, _______, _______, _______, KC_VOLD, K_SECR1, K_SECR2, K_SECR3, K_SECR4, _______,
- _______, _______, _______, ooooooo, _______, _______, _______, _______, _______, _______, _______, ooooooo, _______, _______, _______
- ),
-
-
- [L_MACROS] = LAYOUT_ortho_5x15(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, QK_MAKE, _______, DM_REC2, DM_REC1, _______, _______, _______, _______, _______, SHEBANG, _______, _______, _______, _______,
- _______, QK_FLSH, _______, DM_PLY2, DM_PLY1, DM_RSTP, _______, _______, _______, PRG_NE, PRG_EQ, PRG_GEQ, PRG_LEQ, PRG_ARR, _______,
- _______, QK_VERS, _______, _______, _______, _______, _______, _______, _______, _______, PS_ITEM, FS_PIPE, _______, FS_ARR, _______,
- _______, _______, _______, _______, ooooooo, _______, _______, _______, _______, ooooooo, _______, _______, _______, _______, _______
- )
-
- // [_FN] = LAYOUT_ortho_5x15( /* FUNCTION */
- // _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_NUM, KC_SLSH, KC_ASTR, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
- // KC_MSEL, KC_CALC, KC_MYCM, KC_MAIL, RGB_HUD, RGB_HUI, KC_P7, KC_P8, KC_P9, KC_MINS, _______, _______, KC_PSCR, KC_SCRL, KC_F12,
- // KC_MPRV, KC_MPLY, KC_MNXT, KC_MSTP, RGB_SAD, RGB_SAI, KC_P4, KC_P5, KC_P6, KC_PLUS, _______, QK_BOOT, _______, _______, _______,
- // KC_VOLD, KC_MUTE, KC_VOLU, KC_APP, RGB_VAD, RGB_VAI, KC_P1, KC_P2, KC_P3, KC_PENT, _______, _______, _______, _______, _______,
- // _______, _______, RGB_TOG, ooooooo, RGB_RMOD,RGB_MOD, KC_P0, _______, KC_PDOT, KC_PENT, KC_PENT, ooooooo, _______, _______, _______
- // )
-
- // // Template
- // [_LAYER] = LAYOUT_ortho_5x15(
- // _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- // _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- // _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- // _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- // _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- // ),
-};
-
-layer_state_t layer_state_set_user(layer_state_t state) {
- return update_tri_layer_state(state, L_SYMBOLS, L_NAVIGATION, L_MACROS);
-}
diff --git a/keyboards/xiudi/xd75/keymaps/replicajunction/readme.md b/keyboards/xiudi/xd75/keymaps/replicajunction/readme.md
deleted file mode 100644
index 980a2f7272..0000000000
--- a/keyboards/xiudi/xd75/keymaps/replicajunction/readme.md
+++ /dev/null
@@ -1,5 +0,0 @@
-# replicaJunction - XD75 layout
-
-As a longtime ortho user, I prefer the "pseudo-split" keymap, where the center 3 columns are used for other purposes. This leaves 6 columns on each side to used like a split Preonic.
-
-Most of the goodies in this layout are defined in [my userspace folder](../../../../users/replicaJunction/readme.md). Better explanations of the interesting features are provided there.
diff --git a/keyboards/xiudi/xd75/keymaps/replicajunction/rules.mk b/keyboards/xiudi/xd75/keymaps/replicajunction/rules.mk
deleted file mode 100644
index 7e0b3c9cac..0000000000
--- a/keyboards/xiudi/xd75/keymaps/replicajunction/rules.mk
+++ /dev/null
@@ -1,29 +0,0 @@
-# Userspace options
-USER_CAPS_WORD_ENABLE = yes
-USER_MOUSE_JIGGLE_ENABLE = yes
-USER_NUM_WORD_ENABLE = yes
-USER_SECRETS_ENABLE = yes
-USER_SUPER_ALT_TAB_ENABLE = yes
-
-DYNAMIC_MACRO_ENABLE = yes
-
-# Extra features that are nice but takes space. Enable only if they're
-# used in the layout.
-WPM_ENABLE = no
-# EXTRAKEY_ENABLE = no # For volume keys and similar
-# MOUSEKEY_ENABLE = no # Them mouse keys yo
-KEY_OVERRIDE_ENABLE = no
-LEADER_ENABLE = no
-TAP_DANCE_ENABLE = no
-# RGBLIGHT_ENABLE = no # Keyboard RGB underglow
-RGB_MATRIX_ENABLE = no
-
-# Features I definitely don't care aboud
-LTO_ENABLE = yes
-CONSOLE_ENABLE = no
-VERBOSE = no
-DEBUG_MATRIX_SCAN_RATE = no
-DEBUG_MATRIX = no
-MAGIC_ENABLE = no
-SPACE_CADET_ENABLE = no
-GRAVE_ESC_ENABLE = no
diff --git a/keyboards/ydkb/just60/readme.md b/keyboards/ydkb/just60/readme.md
index 76eee5dced..1fe05bd3ea 100644
--- a/keyboards/ydkb/just60/readme.md
+++ b/keyboards/ydkb/just60/readme.md
@@ -2,7 +2,7 @@
Just60 keyboard produced by Yang. The keyboard comes with a custom Mass Storage Device bootloader and a TMK based firmware from ydkb.io.
-To use a QMK based firmware, you might want to install a QMK bootloader. The PCB exposes 6 pins for ISP(In-System Programming), and they are located just under the ATMega32U4 chip. From left to right, the pins are `VCC`, `SCLK`, `MOSI`, `MISO`, `QK_BOOT`, `GND`. The `GND` is the square one. You could program the flash with any AVR programmer, or a Raspberry Pi with `avrdude`.
+To use a QMK based firmware, you might want to install a QMK bootloader. The PCB exposes 6 pins for ISP(In-System Programming), and they are located just under the ATMega32U4 chip. From left to right, the pins are `VCC`, `SCLK`, `MOSI`, `MISO`, `RESET`, `GND`. The `GND` is the square one. You could program the flash with any AVR programmer, or a Raspberry Pi with `avrdude`.
Backlight LEDs and Bluetooth are not working yet.