aboutsummaryrefslogtreecommitdiff
path: root/keyboards
diff options
context:
space:
mode:
Diffstat (limited to 'keyboards')
-rw-r--r--keyboards/1upkeyboards/pi50/config.h1
-rw-r--r--keyboards/1upkeyboards/pi50/pi50.c45
-rw-r--r--keyboards/boardsource/lulu/readme.md6
-rw-r--r--keyboards/bolsa/damapad/keyboard.json26
-rw-r--r--keyboards/cannonkeys/satisfaction75/rules.mk2
-rw-r--r--keyboards/converter/adb_usb/rules.mk2
-rw-r--r--keyboards/converter/sun_usb/rules.mk2
-rw-r--r--keyboards/converter/usb_usb/rules.mk2
-rw-r--r--keyboards/dailycraft/bat43/info.json3
-rw-r--r--keyboards/dailycraft/claw44/rev1/keyboard.json3
-rw-r--r--keyboards/dailycraft/sandbox/rev1/keyboard.json3
-rw-r--r--keyboards/dailycraft/sandbox/rev2/keyboard.json3
-rw-r--r--keyboards/dailycraft/wings42/rev1/keyboard.json3
-rw-r--r--keyboards/dailycraft/wings42/rev1_extkeys/keyboard.json3
-rw-r--r--keyboards/dailycraft/wings42/rev2/keyboard.json3
-rw-r--r--keyboards/delikeeb/flatbread60/keyboard.json3
-rw-r--r--keyboards/delikeeb/vaneela/keyboard.json3
-rw-r--r--keyboards/delikeeb/vaneelaex/keyboard.json3
-rw-r--r--keyboards/deltasplit75/v2/keyboard.json3
-rw-r--r--keyboards/dm9records/ergoinu/keyboard.json3
-rw-r--r--keyboards/doodboard/duckboard/keyboard.json3
-rw-r--r--keyboards/doodboard/duckboard_r2/keyboard.json3
-rw-r--r--keyboards/draculad/keyboard.json3
-rw-r--r--keyboards/drhigsby/bkf/keyboard.json3
-rw-r--r--keyboards/drhigsby/dubba175/keyboard.json3
-rw-r--r--keyboards/drhigsby/ogurec/info.json3
-rw-r--r--keyboards/drhigsby/packrat/keyboard.json3
-rw-r--r--keyboards/dumbo/keyboard.json3
-rw-r--r--keyboards/dumbpad/v0x/keyboard.json3
-rw-r--r--keyboards/dumbpad/v0x_dualencoder/keyboard.json3
-rw-r--r--keyboards/dumbpad/v0x_right/keyboard.json3
-rw-r--r--keyboards/dumbpad/v1x/keyboard.json3
-rw-r--r--keyboards/dumbpad/v1x_dualencoder/keyboard.json3
-rw-r--r--keyboards/dumbpad/v1x_oled/keyboard.json3
-rw-r--r--keyboards/dumbpad/v1x_right/keyboard.json3
-rw-r--r--keyboards/dumbpad/v3x/keyboard.json3
-rw-r--r--keyboards/durgod/dgk6x/rules.mk2
-rw-r--r--keyboards/earth_rover/keyboard.json3
-rw-r--r--keyboards/eco/info.json3
-rw-r--r--keyboards/elephant42/keyboard.json3
-rw-r--r--keyboards/emajesty/eiri/keyboard.json3
-rw-r--r--keyboards/emptystring/nqg/keyboard.json3
-rw-r--r--keyboards/ergodox_ez/rules.mk2
-rw-r--r--keyboards/ergoslab/rev1/keyboard.json3
-rw-r--r--keyboards/ergotravel/rev1/keyboard.json3
-rw-r--r--keyboards/evancookaudio/sleepingdinosaur/keyboard.json3
-rw-r--r--keyboards/evancookaudio/tenpad/keyboard.json3
-rw-r--r--keyboards/ferris/0_2/rules.mk2
-rw-r--r--keyboards/ffkeebs/puca/keyboard.json3
-rw-r--r--keyboards/flehrad/numbrero/keyboard.json3
-rw-r--r--keyboards/flehrad/snagpad/keyboard.json3
-rw-r--r--keyboards/flehrad/tradestation/keyboard.json3
-rw-r--r--keyboards/for_science/keyboard.json3
-rw-r--r--keyboards/fr4/southpaw75/keyboard.json3
-rw-r--r--keyboards/fr4/unix60/keyboard.json3
-rw-r--r--keyboards/fractal/keyboard.json3
-rw-r--r--keyboards/free_willy/keyboard.json3
-rw-r--r--keyboards/fungo/rev1/keyboard.json3
-rw-r--r--keyboards/funky40/keyboard.json3
-rw-r--r--keyboards/gl516/a52gl/keyboard.json3
-rw-r--r--keyboards/gl516/j73gl/keyboard.json3
-rw-r--r--keyboards/gl516/n51gl/keyboard.json3
-rw-r--r--keyboards/gmmk/gmmk2/p65/ansi/ansi.c40
-rw-r--r--keyboards/gmmk/gmmk2/p65/iso/iso.c40
-rw-r--r--keyboards/gowla/keyboard.json3
-rw-r--r--keyboards/halfcliff/keyboard.json3
-rw-r--r--keyboards/handwired/dygma/raise/rules.mk2
-rw-r--r--keyboards/handwired/franky36/keyboard.json4
-rw-r--r--keyboards/handwired/wwa/soyuz/keyboard.json10
-rw-r--r--keyboards/handwired/wwa/soyuz/keymaps/default/keymap.c10
-rw-r--r--keyboards/handwired/wwa/soyuz/keymaps/default/rules.mk1
-rw-r--r--keyboards/handwired/wwa/soyuz/readme.md2
-rw-r--r--keyboards/handwired/yodadistro/macro/keyboard.json33
-rw-r--r--keyboards/handwired/yodadistro/macro/keymaps/default/keymap.json11
-rw-r--r--keyboards/handwired/yodadistro/macro/readme.md25
-rw-r--r--keyboards/helix/pico/rules.mk2
-rw-r--r--keyboards/helix/rev2/rules.mk2
-rw-r--r--keyboards/helix/rules.mk2
-rw-r--r--keyboards/hifumi/keyboard.json3
-rw-r--r--keyboards/horizon/keyboard.json3
-rw-r--r--keyboards/ibm/model_m/mschwingen/rules.mk2
-rw-r--r--keyboards/ibnuda/alicia_cook/keyboard.json3
-rw-r--r--keyboards/ibnuda/gurindam/keyboard.json3
-rw-r--r--keyboards/ibnuda/squiggle/rev1/keyboard.json3
-rw-r--r--keyboards/inland/kb83/kb83.c6
-rw-r--r--keyboards/inland/kb83/keyboard.json2
-rw-r--r--keyboards/inland/kb83/keymaps/default/keymap.c8
-rw-r--r--keyboards/inland/kb83/keymaps/default/rules.mk1
-rw-r--r--keyboards/ivndbt/late9/rev1/keyboard.json3
-rwxr-xr-xkeyboards/ivndbt/neopad/rev1/keyboard.json3
-rw-r--r--keyboards/jiran/info.json3
-rw-r--r--keyboards/jorne/rev1/keyboard.json3
-rw-r--r--keyboards/keebio/quefrency/rev1/keyboard.json5
-rw-r--r--keyboards/latincompass/latinpad/keyboard.json3
-rw-r--r--keyboards/lets_split/info.json3
-rw-r--r--keyboards/lfkeyboards/smk65/revf/keyboard.json2
-rw-r--r--keyboards/lily58/glow_enc/keyboard.json3
-rw-r--r--keyboards/lily58/light/keyboard.json3
-rw-r--r--keyboards/lily58/rev1/keyboard.json3
-rw-r--r--keyboards/lime/rev1/keyboard.json3
-rw-r--r--keyboards/machkeyboards/mach3/keyboard.json3
-rw-r--r--keyboards/makrosu/keyboard.json3
-rw-r--r--keyboards/manta60/keyboard.json3
-rw-r--r--keyboards/maple_computing/6ball/keyboard.json3
-rw-r--r--keyboards/maple_computing/christmas_tree/v2017/keyboard.json3
-rw-r--r--keyboards/maple_computing/launchpad/keymaps/default_rgb/config.h18
-rw-r--r--keyboards/maple_computing/launchpad/keymaps/default_rgb/keymap.c76
-rw-r--r--keyboards/maple_computing/launchpad/keymaps/default_rgb/readme.md41
-rw-r--r--keyboards/maple_computing/launchpad/keymaps/default_rgb/rules.mk1
-rw-r--r--keyboards/maple_computing/launchpad/rev1/keyboard.json3
-rw-r--r--keyboards/maple_computing/minidox/rev1/keyboard.json3
-rw-r--r--keyboards/marksard/leftover30/keyboard.json3
-rw-r--r--keyboards/marksard/rhymestone/rev1/keyboard.json3
-rw-r--r--keyboards/maxipad/promicro/keyboard.json3
-rw-r--r--keyboards/mechwild/mercutio/keyboard.json337
-rw-r--r--keyboards/mechwild/mercutio/keymaps/default/keymap.c24
-rw-r--r--keyboards/mechwild/mercutio/keymaps/default_625u_space/keymap.c10
-rw-r--r--keyboards/mechwild/mokulua/mirrored/keyboard.json3
-rw-r--r--keyboards/mechwild/mokulua/standard/keyboard.json3
-rw-r--r--keyboards/mechwild/murphpad/keyboard.json3
-rw-r--r--keyboards/mechwild/sugarglider/rules.mk2
-rw-r--r--keyboards/mechwild/sugarglider/wide_oled/rules.mk2
-rw-r--r--keyboards/meow48/keyboard.json3
-rw-r--r--keyboards/merge/uc1/keyboard.json3
-rw-r--r--keyboards/minimacro5/keyboard.json3
-rw-r--r--keyboards/mint60/keyboard.json3
-rw-r--r--keyboards/mixi/keyboard.json3
-rw-r--r--keyboards/montsinger/rewind/keyboard.json3
-rw-r--r--keyboards/morizon/keyboard.json3
-rw-r--r--keyboards/mountainblocks/mb17/keyboard.json3
-rw-r--r--keyboards/nacly/sodium42/keyboard.json3
-rw-r--r--keyboards/nacly/sodium50/keyboard.json3
-rw-r--r--keyboards/nacly/sodium62/keyboard.json3
-rw-r--r--keyboards/nacly/splitreus62/keyboard.json3
-rw-r--r--keyboards/nacly/ua62/keyboard.json3
-rw-r--r--keyboards/newgame40/keyboard.json3
-rw-r--r--keyboards/nightly_boards/n9/keyboard.json3
-rw-r--r--keyboards/nightly_boards/ph_arisu/keyboard.json3
-rwxr-xr-xkeyboards/novelkeys/nk65/rules.mk2
-rw-r--r--keyboards/np12/keyboard.json3
-rw-r--r--keyboards/numatreus/keyboard.json3
-rw-r--r--keyboards/obosob/arch_36/keyboard.json3
-rw-r--r--keyboards/obosob/steal_this_keyboard/keyboard.json3
-rw-r--r--keyboards/ocean/addon/keyboard.json3
-rw-r--r--keyboards/ocean/gin_v2/keyboard.json3
-rw-r--r--keyboards/ocean/slamz/keyboard.json3
-rw-r--r--keyboards/ocean/stealth/keyboard.json3
-rw-r--r--keyboards/ocean/sus/keyboard.json3
-rw-r--r--keyboards/ocean/wang_ergo/keyboard.json3
-rw-r--r--keyboards/ocean/wang_v2/keyboard.json3
-rw-r--r--keyboards/ocean/yuri/keyboard.json3
-rw-r--r--keyboards/om60/keyboard.json3
-rw-r--r--keyboards/omkbd/ergodash/info.json3
-rw-r--r--keyboards/omkbd/runner3680/info.json3
-rw-r--r--keyboards/orthodox/rev1/keyboard.json3
-rw-r--r--keyboards/orthodox/rev3/keyboard.json3
-rw-r--r--keyboards/pabile/p18/keyboard.json3
-rw-r--r--keyboards/pabile/p20/ver1/keyboard.json3
-rw-r--r--keyboards/pabile/p20/ver2/keyboard.json3
-rw-r--r--keyboards/pabile/p40/keyboard.json3
-rw-r--r--keyboards/pabile/p40_ortho/keyboard.json3
-rw-r--r--keyboards/pabile/p42/keyboard.json3
-rw-r--r--keyboards/peej/tripel/info.json3
-rw-r--r--keyboards/peranekofactory/tone/rev1/keyboard.json3
-rw-r--r--keyboards/peranekofactory/tone/rev2/keyboard.json3
-rw-r--r--keyboards/pica40/rev1/keyboard.json3
-rw-r--r--keyboards/pimentoso/paddino02/rev1/keyboard.json3
-rw-r--r--keyboards/pimentoso/paddino02/rev2/left/keyboard.json3
-rw-r--r--keyboards/pimentoso/paddino02/rev2/right/keyboard.json3
-rw-r--r--keyboards/pimentoso/touhoupad/keyboard.json3
-rw-r--r--keyboards/pinky/3/keyboard.json3
-rw-r--r--keyboards/pinky/4/keyboard.json3
-rw-r--r--keyboards/plum47/keyboard.json3
-rw-r--r--keyboards/psuieee/pluto12/keyboard.json3
-rw-r--r--keyboards/pteron36/keyboard.json3
-rw-r--r--keyboards/rainkeebs/rainkeeb/keyboard.json3
-rw-r--r--keyboards/rart/rart4x4/keyboard.json3
-rw-r--r--keyboards/rart/rart67m/keyboard.json3
-rw-r--r--keyboards/rart/rartlite/keyboard.json3
-rw-r--r--keyboards/rart/rartpad/keyboard.json3
-rw-r--r--keyboards/rate/pistachio_mp/keyboard.json3
-rw-r--r--keyboards/recompile_keys/choco60/rev1/keyboard.json3
-rw-r--r--keyboards/recompile_keys/cocoa40/keyboard.json3
-rw-r--r--keyboards/recompile_keys/nomu30/rev1/keyboard.json3
-rw-r--r--keyboards/rect44/keyboard.json3
-rw-r--r--keyboards/redox/rules.mk2
-rw-r--r--keyboards/redox_media/keyboard.json3
-rwxr-xr-xkeyboards/reviung/reviung34/keyboard.json3
-rw-r--r--keyboards/reviung/reviung39/keyboard.json3
-rw-r--r--keyboards/reviung/reviung41/keyboard.json3
-rw-r--r--keyboards/reviung/reviung5/keyboard.json3
-rw-r--r--keyboards/reviung/reviung53/keyboard.json3
-rw-r--r--keyboards/rgbkb/zen/rev1/keyboard.json3
-rw-r--r--keyboards/rgbkb/zen/rev2/keyboard.json3
-rw-r--r--keyboards/rpiguy9907/southpaw66/keyboard.json3
-rw-r--r--keyboards/rura66/rev1/keyboard.json3
-rw-r--r--keyboards/ryanbaekr/rb1/keyboard.json3
-rw-r--r--keyboards/silakka54/keyboard.json3
-rw-r--r--keyboards/sirius/uni660/rev2/rules.mk2
-rw-r--r--keyboards/splitkb/elora/rev1/myriad.c124
-rw-r--r--keyboards/togkey/pad/keyboard.json52
-rw-r--r--keyboards/togkey/pad/keymaps/default/keymap.c11
-rw-r--r--keyboards/togkey/pad/readme.md27
-rw-r--r--keyboards/togkey/pad_plus/config.h10
-rw-r--r--keyboards/togkey/pad_plus/keyboard.json63
-rw-r--r--keyboards/togkey/pad_plus/keymaps/default/keymap.c30
-rw-r--r--keyboards/togkey/pad_plus/pad_plus.c731
-rw-r--r--keyboards/togkey/pad_plus/readme.md27
-rw-r--r--keyboards/trnthsn/s6xtyfs/config.h23
-rw-r--r--keyboards/trnthsn/s6xtyfs/halconf.h22
-rw-r--r--keyboards/trnthsn/s6xtyfs/info.json742
-rw-r--r--keyboards/trnthsn/s6xtyfs/keymaps/default/keymap.c40
-rw-r--r--keyboards/trnthsn/s6xtyfs/mcuconf.h23
-rw-r--r--keyboards/trnthsn/s6xtyfs/readme.md27
-rw-r--r--keyboards/trnthsn/s6xtyfs/s6xtyfs.c24
-rw-r--r--keyboards/trnthsn/s6xtyfs/stm32f072/keyboard.json4
-rw-r--r--keyboards/trnthsn/s6xtyfs/stm32f103/keyboard.json4
-rw-r--r--keyboards/tzarc/djinn/config.h2
-rw-r--r--keyboards/tzarc/djinn/graphics/theme_djinn_default.c51
-rw-r--r--keyboards/tzarc/djinn/rules.mk2
-rw-r--r--keyboards/tzarc/ghoul/rules.mk2
-rw-r--r--keyboards/winry/winry25tc/keyboard.json4
-rw-r--r--keyboards/wiredin/protagonist/pro_h/config.h24
-rw-r--r--keyboards/wiredin/protagonist/pro_h/halconf.h22
-rw-r--r--keyboards/wiredin/protagonist/pro_h/keyboard.json372
-rw-r--r--keyboards/wiredin/protagonist/pro_h/keymaps/default/keymap.c33
-rw-r--r--keyboards/wiredin/protagonist/pro_h/mcuconf.h22
-rw-r--r--keyboards/wiredin/protagonist/pro_s/config.h27
-rw-r--r--keyboards/wiredin/protagonist/pro_s/halconf.h22
-rw-r--r--keyboards/wiredin/protagonist/pro_s/keyboard.json703
-rw-r--r--keyboards/wiredin/protagonist/pro_s/keymaps/default/keymap.c33
-rw-r--r--keyboards/wiredin/protagonist/pro_s/mcuconf.h25
-rw-r--r--keyboards/wiredin/protagonist/readme.md29
-rw-r--r--keyboards/ymdk/id75/keymaps/default/keymap.json2
234 files changed, 3887 insertions, 756 deletions
diff --git a/keyboards/1upkeyboards/pi50/config.h b/keyboards/1upkeyboards/pi50/config.h
index e20a9854a5..8d40ecdaec 100644
--- a/keyboards/1upkeyboards/pi50/config.h
+++ b/keyboards/1upkeyboards/pi50/config.h
@@ -8,3 +8,4 @@
#define I2C_DRIVER I2CD1
#define OLED_BRIGHTNESS 128
#define OLED_FONT_H "keyboards/1upkeyboards/pi50/lib/glcdfont.c"
+#define RGB_MATRIX_MODE_NAME_ENABLE
diff --git a/keyboards/1upkeyboards/pi50/pi50.c b/keyboards/1upkeyboards/pi50/pi50.c
index cc0cdbe333..c55b2669ef 100644
--- a/keyboards/1upkeyboards/pi50/pi50.c
+++ b/keyboards/1upkeyboards/pi50/pi50.c
@@ -18,49 +18,6 @@
#include <ctype.h>
#include <stdio.h>
-#if defined(RGB_MATRIX_EFFECT)
-# undef RGB_MATRIX_EFFECT
-#endif // defined(RGB_MATRIX_EFFECT)
-
-#define RGB_MATRIX_EFFECT(x) RGB_MATRIX_EFFECT_##x,
-enum {
- RGB_MATRIX_EFFECT_NONE,
-#include "rgb_matrix_effects.inc"
-#undef RGB_MATRIX_EFFECT
-#ifdef RGB_MATRIX_CUSTOM_KB
-# include "rgb_matrix_kb.inc"
-#endif
-#ifdef RGB_MATRIX_CUSTOM_USER
-# include "rgb_matrix_user.inc"
-#endif
-#if defined(COMMUNITY_MODULES_ENABLE) && __has_include("rgb_matrix_community_modules.inc")
-# include "rgb_matrix_community_modules.inc"
-#endif
-};
-
-#define RGB_MATRIX_EFFECT(x) \
- case RGB_MATRIX_EFFECT_##x: \
- return #x;
-const char* rgb_matrix_name(uint8_t effect) {
- switch (effect) {
- case RGB_MATRIX_EFFECT_NONE:
- return "NONE";
-#include "rgb_matrix_effects.inc"
-#undef RGB_MATRIX_EFFECT
-#ifdef RGB_MATRIX_CUSTOM_KB
-# include "rgb_matrix_kb.inc"
-#endif
-#ifdef RGB_MATRIX_CUSTOM_USER
-# include "rgb_matrix_user.inc"
-#endif
-#if defined(COMMUNITY_MODULES_ENABLE) && __has_include("rgb_matrix_community_modules.inc")
-# include "rgb_matrix_community_modules.inc"
-#endif
- default:
- return "UNKNOWN";
- }
-}
-
#ifdef OLED_ENABLE
static uint32_t oled_logo_timer = 0;
@@ -154,7 +111,7 @@ void user_oled_magic(void) {
oled_write_P(led_state.num_lock ? PSTR("Num(x) ") : PSTR("Num( ) "), false);
oled_write_P(led_state.scroll_lock ? PSTR("Scrl(x)") : PSTR("Scrl( )"), false);
- char *mode_name = strdup(rgb_matrix_name(rgb_matrix_get_mode()));
+ char *mode_name = strdup(rgb_matrix_get_mode_name(rgb_matrix_get_mode()));
if (mode_name != NULL) {
int len = strlen(mode_name);
bool capitalize_next = true;
diff --git a/keyboards/boardsource/lulu/readme.md b/keyboards/boardsource/lulu/readme.md
index a1c184eaac..9304a0fa8d 100644
--- a/keyboards/boardsource/lulu/readme.md
+++ b/keyboards/boardsource/lulu/readme.md
@@ -6,8 +6,8 @@ The lulu is what the ergo community has needed for a long time, a high-end aesth
* Keyboard Maintainer: [Boardsource](https://github.com/daysgobye)
-* Hardware Supported: lulu v1
-* Hardware Availability: this keyboard is available from the [Boardsource store](https://boardsource.xyz/store/61d0b772319a1f3cc53ba2fb)
+* Hardware Supported: lulu v1/v2, lily pad v2
+* Hardware Availability: this keyboard is available from the [Boardsource store](https://boardsource.xyz/products/lily-pad-pcb)
Make example for this keyboard (after setting up your build environment):
@@ -21,7 +21,7 @@ Flashing example for this keyboard:
make boardsource/lulu/avr:default:flash
-Compile `rp2040` firmware if you purchased PCB in lulu group buy (integrated microcontroller).
+Compile `rp2040` firmware if you purchased PCB in lulu group buy or lily pad (integrated microcontroller).
Compile `avr` firmware if your PCB uses a drop-in microcontroller like Pro Micro.
diff --git a/keyboards/bolsa/damapad/keyboard.json b/keyboards/bolsa/damapad/keyboard.json
index b48e8c3586..1a31316f9c 100644
--- a/keyboards/bolsa/damapad/keyboard.json
+++ b/keyboards/bolsa/damapad/keyboard.json
@@ -30,13 +30,13 @@
"layouts": {
"LAYOUT_wkl": {
"layout": [
- {"matrix": [0, 0], "x": 5.25, "y": 0},
+ {"matrix": [0, 0], "x": 0, "y": 0.25},
+ {"matrix": [0, 1], "x": 1, "y": 0.25},
+ {"matrix": [0, 2], "x": 2, "y": 0.25},
+ {"matrix": [0, 3], "x": 3, "y": 0.25},
+ {"matrix": [0, 4], "x": 4, "y": 0.25},
- {"matrix": [0, 1], "x": 0, "y": 0.25},
- {"matrix": [0, 2], "x": 1, "y": 0.25},
- {"matrix": [0, 3], "x": 2, "y": 0.25},
- {"matrix": [0, 4], "x": 3, "y": 0.25},
- {"matrix": [0, 5], "x": 4, "y": 0.25},
+ {"matrix": [0, 5], "x": 5.25, "y": 0},
{"matrix": [1, 0], "x": 0, "y": 1.25},
{"matrix": [1, 1], "x": 1, "y": 1.25},
@@ -55,13 +55,13 @@
},
"LAYOUT_bar": {
"layout": [
- {"matrix": [0, 0], "x": 5.25, "y": 0},
+ {"matrix": [0, 0], "x": 0, "y": 0.25},
+ {"matrix": [0, 1], "x": 1, "y": 0.25},
+ {"matrix": [0, 2], "x": 2, "y": 0.25},
+ {"matrix": [0, 3], "x": 3, "y": 0.25},
+ {"matrix": [0, 4], "x": 4, "y": 0.25},
- {"matrix": [0, 1], "x": 0, "y": 0.25},
- {"matrix": [0, 2], "x": 1, "y": 0.25},
- {"matrix": [0, 3], "x": 2, "y": 0.25},
- {"matrix": [0, 4], "x": 3, "y": 0.25},
- {"matrix": [0, 5], "x": 4, "y": 0.25},
+ {"matrix": [0, 5], "x": 5.25, "y": 0},
{"matrix": [1, 0], "x": 0, "y": 1.25},
{"matrix": [1, 1], "x": 1, "y": 1.25},
@@ -71,7 +71,7 @@
{"matrix": [1, 5], "x": 5.25, "y": 1.25},
- {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 2.75},
+ {"matrix": [2, 1], "x": 0, "y": 2.25, "w": 2.75},
{"matrix": [2, 3], "x": 2.75, "y": 2.25, "w": 2.25},
{"matrix": [2, 5], "x": 5.25, "y": 2.25}
diff --git a/keyboards/cannonkeys/satisfaction75/rules.mk b/keyboards/cannonkeys/satisfaction75/rules.mk
index c92469d1bd..25eebb9054 100644
--- a/keyboards/cannonkeys/satisfaction75/rules.mk
+++ b/keyboards/cannonkeys/satisfaction75/rules.mk
@@ -5,5 +5,3 @@ VPATH += keyboards/cannonkeys/lib/satisfaction75
SRC += satisfaction_encoder.c \
satisfaction_oled.c \
satisfaction_core.c
-
-DEFAULT_FOLDER = cannonkeys/satisfaction75/rev1 \ No newline at end of file
diff --git a/keyboards/converter/adb_usb/rules.mk b/keyboards/converter/adb_usb/rules.mk
index 28df56c337..b4a73249dd 100644
--- a/keyboards/converter/adb_usb/rules.mk
+++ b/keyboards/converter/adb_usb/rules.mk
@@ -3,5 +3,3 @@ CUSTOM_MATRIX = yes
SRC += matrix.c adb.c led.c
# OPT_DEFS += -DADB_MOUSE_ENABLE -DMOUSE_ENABLE
-
-DEFAULT_FOLDER = converter/adb_usb/rev1
diff --git a/keyboards/converter/sun_usb/rules.mk b/keyboards/converter/sun_usb/rules.mk
index d3ec00c5d5..0268798cc0 100644
--- a/keyboards/converter/sun_usb/rules.mk
+++ b/keyboards/converter/sun_usb/rules.mk
@@ -3,5 +3,3 @@ CUSTOM_MATRIX = yes
SRC += matrix.c led.c
UART_DRIVER_REQUIRED = yes
-
-DEFAULT_FOLDER = converter/sun_usb/type5
diff --git a/keyboards/converter/usb_usb/rules.mk b/keyboards/converter/usb_usb/rules.mk
index 1e278514f6..682fa821ef 100644
--- a/keyboards/converter/usb_usb/rules.mk
+++ b/keyboards/converter/usb_usb/rules.mk
@@ -1,5 +1,3 @@
CUSTOM_MATRIX = yes
SRC += custom_matrix.cpp
-
-DEFAULT_FOLDER = converter/usb_usb/hasu
diff --git a/keyboards/dailycraft/bat43/info.json b/keyboards/dailycraft/bat43/info.json
index 90e14e3434..a8b6f83792 100644
--- a/keyboards/dailycraft/bat43/info.json
+++ b/keyboards/dailycraft/bat43/info.json
@@ -18,6 +18,5 @@
"rows": ["E6", "D7", "C6", "D4", "F7", "F6", "F5", "F4"]
},
"diode_direction": "COL2ROW",
- "processor": "atmega32u4",
- "bootloader": "caterina"
+ "development_board": "promicro"
}
diff --git a/keyboards/dailycraft/claw44/rev1/keyboard.json b/keyboards/dailycraft/claw44/rev1/keyboard.json
index 2391bc262f..c10fa57cb3 100644
--- a/keyboards/dailycraft/claw44/rev1/keyboard.json
+++ b/keyboards/dailycraft/claw44/rev1/keyboard.json
@@ -18,8 +18,7 @@
"pin": "D2"
}
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"features": {
"bootmagic": false,
"mousekey": false,
diff --git a/keyboards/dailycraft/sandbox/rev1/keyboard.json b/keyboards/dailycraft/sandbox/rev1/keyboard.json
index 50a114457d..19e4e924b2 100644
--- a/keyboards/dailycraft/sandbox/rev1/keyboard.json
+++ b/keyboards/dailycraft/sandbox/rev1/keyboard.json
@@ -12,8 +12,7 @@
"rows": ["B5", "B4"]
},
"diode_direction": "COL2ROW",
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"features": {
"bootmagic": true,
"mousekey": true,
diff --git a/keyboards/dailycraft/sandbox/rev2/keyboard.json b/keyboards/dailycraft/sandbox/rev2/keyboard.json
index b1991cf56c..d94593cced 100644
--- a/keyboards/dailycraft/sandbox/rev2/keyboard.json
+++ b/keyboards/dailycraft/sandbox/rev2/keyboard.json
@@ -18,8 +18,7 @@
"pin": "D2"
}
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"features": {
"bootmagic": true,
"mousekey": true,
diff --git a/keyboards/dailycraft/wings42/rev1/keyboard.json b/keyboards/dailycraft/wings42/rev1/keyboard.json
index 307b675d06..3f71586581 100644
--- a/keyboards/dailycraft/wings42/rev1/keyboard.json
+++ b/keyboards/dailycraft/wings42/rev1/keyboard.json
@@ -18,8 +18,7 @@
"pin": "D2"
}
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"features": {
"bootmagic": true,
"mousekey": true,
diff --git a/keyboards/dailycraft/wings42/rev1_extkeys/keyboard.json b/keyboards/dailycraft/wings42/rev1_extkeys/keyboard.json
index ef5b4331b1..a3ea3c2b45 100644
--- a/keyboards/dailycraft/wings42/rev1_extkeys/keyboard.json
+++ b/keyboards/dailycraft/wings42/rev1_extkeys/keyboard.json
@@ -18,8 +18,7 @@
"pin": "D2"
}
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"features": {
"bootmagic": true,
"mousekey": true,
diff --git a/keyboards/dailycraft/wings42/rev2/keyboard.json b/keyboards/dailycraft/wings42/rev2/keyboard.json
index 4d41f54f3b..7ed0fb9967 100644
--- a/keyboards/dailycraft/wings42/rev2/keyboard.json
+++ b/keyboards/dailycraft/wings42/rev2/keyboard.json
@@ -24,8 +24,7 @@
{ "pin_a": "B6", "pin_b": "B2" }
]
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"features": {
"bootmagic": true,
"encoder": true,
diff --git a/keyboards/delikeeb/flatbread60/keyboard.json b/keyboards/delikeeb/flatbread60/keyboard.json
index eabb301dc0..2536df862d 100644
--- a/keyboards/delikeeb/flatbread60/keyboard.json
+++ b/keyboards/delikeeb/flatbread60/keyboard.json
@@ -46,8 +46,7 @@
"rows": ["F6", "B1", "B3", "B2", "B6"]
},
"diode_direction": "COL2ROW",
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT_ortho_5x12": {
"layout": [
diff --git a/keyboards/delikeeb/vaneela/keyboard.json b/keyboards/delikeeb/vaneela/keyboard.json
index 8e30581e70..7a467a59aa 100644
--- a/keyboards/delikeeb/vaneela/keyboard.json
+++ b/keyboards/delikeeb/vaneela/keyboard.json
@@ -25,8 +25,7 @@
"rows": ["F6", "F7", "B3", "B2", "B6"]
},
"diode_direction": "COL2ROW",
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT_ortho_5x12": {
"layout": [
diff --git a/keyboards/delikeeb/vaneelaex/keyboard.json b/keyboards/delikeeb/vaneelaex/keyboard.json
index 1890c860e6..295ad722b5 100644
--- a/keyboards/delikeeb/vaneelaex/keyboard.json
+++ b/keyboards/delikeeb/vaneelaex/keyboard.json
@@ -25,8 +25,7 @@
"rows": ["D3", "D2", "D1", "D0", "B2", "B6"]
},
"diode_direction": "COL2ROW",
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT_ss_6x12": {
"layout": [
diff --git a/keyboards/deltasplit75/v2/keyboard.json b/keyboards/deltasplit75/v2/keyboard.json
index 031d2b9185..efd4217f13 100644
--- a/keyboards/deltasplit75/v2/keyboard.json
+++ b/keyboards/deltasplit75/v2/keyboard.json
@@ -24,8 +24,7 @@
"ws2812": {
"pin": "D3"
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"features": {
"bootmagic": false,
"mousekey": true,
diff --git a/keyboards/dm9records/ergoinu/keyboard.json b/keyboards/dm9records/ergoinu/keyboard.json
index 0e124d1a21..05150f5e06 100644
--- a/keyboards/dm9records/ergoinu/keyboard.json
+++ b/keyboards/dm9records/ergoinu/keyboard.json
@@ -25,8 +25,7 @@
"ws2812": {
"pin": "B6"
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"features": {
"bootmagic": true,
"mousekey": true,
diff --git a/keyboards/doodboard/duckboard/keyboard.json b/keyboards/doodboard/duckboard/keyboard.json
index 7e88a22e10..b5f07ead98 100644
--- a/keyboards/doodboard/duckboard/keyboard.json
+++ b/keyboards/doodboard/duckboard/keyboard.json
@@ -37,8 +37,7 @@
"ws2812": {
"pin": "D3"
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/doodboard/duckboard_r2/keyboard.json b/keyboards/doodboard/duckboard_r2/keyboard.json
index 6cbf51bcb4..cffb2904e3 100644
--- a/keyboards/doodboard/duckboard_r2/keyboard.json
+++ b/keyboards/doodboard/duckboard_r2/keyboard.json
@@ -40,8 +40,7 @@
"bootmagic": {
"matrix": [0, 1]
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/draculad/keyboard.json b/keyboards/draculad/keyboard.json
index c72bda7c38..9c21b2a97d 100644
--- a/keyboards/draculad/keyboard.json
+++ b/keyboards/draculad/keyboard.json
@@ -48,8 +48,7 @@
"pin": "D2"
}
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"features": {
"bootmagic": false,
"mousekey": true,
diff --git a/keyboards/drhigsby/bkf/keyboard.json b/keyboards/drhigsby/bkf/keyboard.json
index 76808f93de..17f1adc364 100644
--- a/keyboards/drhigsby/bkf/keyboard.json
+++ b/keyboards/drhigsby/bkf/keyboard.json
@@ -31,8 +31,7 @@
{"pin_a": "F4", "pin_b": "F5"}
]
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT_625uC": {
"layout": [
diff --git a/keyboards/drhigsby/dubba175/keyboard.json b/keyboards/drhigsby/dubba175/keyboard.json
index 0f395d10ff..f1d55d1855 100644
--- a/keyboards/drhigsby/dubba175/keyboard.json
+++ b/keyboards/drhigsby/dubba175/keyboard.json
@@ -25,8 +25,7 @@
"rows": ["B1", "B3", "B2", "B5"]
},
"diode_direction": "COL2ROW",
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/drhigsby/ogurec/info.json b/keyboards/drhigsby/ogurec/info.json
index 7e65e924e2..bc43e1563a 100644
--- a/keyboards/drhigsby/ogurec/info.json
+++ b/keyboards/drhigsby/ogurec/info.json
@@ -25,6 +25,5 @@
"rows": ["F6", "B6", "B2"]
},
"diode_direction": "COL2ROW",
- "processor": "atmega32u4",
- "bootloader": "caterina"
+ "development_board": "promicro"
}
diff --git a/keyboards/drhigsby/packrat/keyboard.json b/keyboards/drhigsby/packrat/keyboard.json
index b41b383aee..8713ec034d 100644
--- a/keyboards/drhigsby/packrat/keyboard.json
+++ b/keyboards/drhigsby/packrat/keyboard.json
@@ -31,8 +31,7 @@
{"pin_a": "F5", "pin_b": "F4"}
]
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT_3uc": {
"layout": [
diff --git a/keyboards/dumbo/keyboard.json b/keyboards/dumbo/keyboard.json
index 8026f22790..4f8f04c06c 100644
--- a/keyboards/dumbo/keyboard.json
+++ b/keyboards/dumbo/keyboard.json
@@ -32,8 +32,7 @@
"pin": "D2"
}
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"features": {
"bootmagic": false,
"mousekey": true,
diff --git a/keyboards/dumbpad/v0x/keyboard.json b/keyboards/dumbpad/v0x/keyboard.json
index f0cecd8063..9d25d80494 100644
--- a/keyboards/dumbpad/v0x/keyboard.json
+++ b/keyboards/dumbpad/v0x/keyboard.json
@@ -15,8 +15,7 @@
"bootmagic": {
"matrix": [3, 0]
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"features": {
"bootmagic": true,
"mousekey": true,
diff --git a/keyboards/dumbpad/v0x_dualencoder/keyboard.json b/keyboards/dumbpad/v0x_dualencoder/keyboard.json
index 71b501cedd..0754f301b7 100644
--- a/keyboards/dumbpad/v0x_dualencoder/keyboard.json
+++ b/keyboards/dumbpad/v0x_dualencoder/keyboard.json
@@ -16,8 +16,7 @@
"bootmagic": {
"matrix": [3, 0]
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"features": {
"bootmagic": true,
"mousekey": true,
diff --git a/keyboards/dumbpad/v0x_right/keyboard.json b/keyboards/dumbpad/v0x_right/keyboard.json
index 883f2f785d..f581dd8e87 100644
--- a/keyboards/dumbpad/v0x_right/keyboard.json
+++ b/keyboards/dumbpad/v0x_right/keyboard.json
@@ -15,8 +15,7 @@
"bootmagic": {
"matrix": [3, 4]
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"features": {
"bootmagic": true,
"mousekey": true,
diff --git a/keyboards/dumbpad/v1x/keyboard.json b/keyboards/dumbpad/v1x/keyboard.json
index 9ab78e1a9f..c78bbfef04 100644
--- a/keyboards/dumbpad/v1x/keyboard.json
+++ b/keyboards/dumbpad/v1x/keyboard.json
@@ -15,8 +15,7 @@
"bootmagic": {
"matrix": [3, 0]
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"features": {
"bootmagic": true,
"mousekey": true,
diff --git a/keyboards/dumbpad/v1x_dualencoder/keyboard.json b/keyboards/dumbpad/v1x_dualencoder/keyboard.json
index f3aeafe625..413d1970a0 100644
--- a/keyboards/dumbpad/v1x_dualencoder/keyboard.json
+++ b/keyboards/dumbpad/v1x_dualencoder/keyboard.json
@@ -16,8 +16,7 @@
"bootmagic": {
"matrix": [3, 0]
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"features": {
"bootmagic": true,
"mousekey": true,
diff --git a/keyboards/dumbpad/v1x_oled/keyboard.json b/keyboards/dumbpad/v1x_oled/keyboard.json
index 3a437699b8..6547b9ca39 100644
--- a/keyboards/dumbpad/v1x_oled/keyboard.json
+++ b/keyboards/dumbpad/v1x_oled/keyboard.json
@@ -13,8 +13,7 @@
{"pin_a": "E6", "pin_b": "D7"}
]
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"features": {
"bootmagic": false,
"mousekey": false,
diff --git a/keyboards/dumbpad/v1x_right/keyboard.json b/keyboards/dumbpad/v1x_right/keyboard.json
index 583d60bc5d..b9a62f2e69 100644
--- a/keyboards/dumbpad/v1x_right/keyboard.json
+++ b/keyboards/dumbpad/v1x_right/keyboard.json
@@ -15,8 +15,7 @@
"bootmagic": {
"matrix": [3, 4]
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"features": {
"bootmagic": true,
"mousekey": true,
diff --git a/keyboards/dumbpad/v3x/keyboard.json b/keyboards/dumbpad/v3x/keyboard.json
index 7ea29cd9ad..58b8da5b3a 100644
--- a/keyboards/dumbpad/v3x/keyboard.json
+++ b/keyboards/dumbpad/v3x/keyboard.json
@@ -55,8 +55,7 @@
"ws2812": {
"pin": "D1"
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"features": {
"bootmagic": true,
"mousekey": false,
diff --git a/keyboards/durgod/dgk6x/rules.mk b/keyboards/durgod/dgk6x/rules.mk
index 597f5bbcf9..c74ac83e91 100644
--- a/keyboards/durgod/dgk6x/rules.mk
+++ b/keyboards/durgod/dgk6x/rules.mk
@@ -1,4 +1,2 @@
# Do not put the microcontroller into power saving mode
NO_SUSPEND_POWER_DOWN = yes
-
-DEFAULT_FOLDER=durgod/dgk6x/hades_ansi
diff --git a/keyboards/earth_rover/keyboard.json b/keyboards/earth_rover/keyboard.json
index 516585ca24..b3f5d2bae4 100644
--- a/keyboards/earth_rover/keyboard.json
+++ b/keyboards/earth_rover/keyboard.json
@@ -25,8 +25,7 @@
"rows": ["D4", "C6", "D7", "E6"]
},
"diode_direction": "COL2ROW",
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/eco/info.json b/keyboards/eco/info.json
index f62d91a01f..a234ea2399 100644
--- a/keyboards/eco/info.json
+++ b/keyboards/eco/info.json
@@ -6,8 +6,7 @@
"vid": "0x1337",
"pid": "0x6006"
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"qmk": {
"locking": {
"enabled": true,
diff --git a/keyboards/elephant42/keyboard.json b/keyboards/elephant42/keyboard.json
index d1d321623e..60b135b086 100644
--- a/keyboards/elephant42/keyboard.json
+++ b/keyboards/elephant42/keyboard.json
@@ -54,8 +54,7 @@
"ws2812": {
"pin": "D3"
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"features": {
"bootmagic": true,
"mousekey": false,
diff --git a/keyboards/emajesty/eiri/keyboard.json b/keyboards/emajesty/eiri/keyboard.json
index 2ad711bf9e..3dd0ab0888 100644
--- a/keyboards/emajesty/eiri/keyboard.json
+++ b/keyboards/emajesty/eiri/keyboard.json
@@ -19,8 +19,7 @@
"rows": ["B4", "B5", "B2", "B6"]
},
"diode_direction": "COL2ROW",
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/emptystring/nqg/keyboard.json b/keyboards/emptystring/nqg/keyboard.json
index 17116704c7..226ab34303 100644
--- a/keyboards/emptystring/nqg/keyboard.json
+++ b/keyboards/emptystring/nqg/keyboard.json
@@ -18,8 +18,7 @@
"rows": ["B6", "B2", "B3", "B1"]
},
"diode_direction": "COL2ROW",
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/ergodox_ez/rules.mk b/keyboards/ergodox_ez/rules.mk
index 187d9dd8e2..9c0392f5d0 100644
--- a/keyboards/ergodox_ez/rules.mk
+++ b/keyboards/ergodox_ez/rules.mk
@@ -14,5 +14,3 @@ AUDIO_SUPPORTED = no
BACKLIGHT_SUPPORTED = no
MOUSE_SHARED_EP = no
-
-DEFAULT_FOLDER = ergodox_ez/base
diff --git a/keyboards/ergoslab/rev1/keyboard.json b/keyboards/ergoslab/rev1/keyboard.json
index 0d017d7a97..59e3e038e9 100644
--- a/keyboards/ergoslab/rev1/keyboard.json
+++ b/keyboards/ergoslab/rev1/keyboard.json
@@ -25,8 +25,7 @@
"ws2812": {
"pin": "D3"
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"features": {
"bootmagic": false,
"mousekey": true,
diff --git a/keyboards/ergotravel/rev1/keyboard.json b/keyboards/ergotravel/rev1/keyboard.json
index 0c34bf04bd..803653fb70 100644
--- a/keyboards/ergotravel/rev1/keyboard.json
+++ b/keyboards/ergotravel/rev1/keyboard.json
@@ -25,8 +25,7 @@
"ws2812": {
"pin": "D3"
},
- "bootloader": "caterina",
- "processor": "atmega32u4",
+ "development_board": "promicro",
"features": {
"bootmagic": false,
"mousekey": true,
diff --git a/keyboards/evancookaudio/sleepingdinosaur/keyboard.json b/keyboards/evancookaudio/sleepingdinosaur/keyboard.json
index c6b77a26c8..4bedb82481 100644
--- a/keyboards/evancookaudio/sleepingdinosaur/keyboard.json
+++ b/keyboards/evancookaudio/sleepingdinosaur/keyboard.json
@@ -21,8 +21,7 @@
"rows": ["D1", "D0", "D4", "C6", "D7"]
},
"diode_direction": "COL2ROW",
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/evancookaudio/tenpad/keyboard.json b/keyboards/evancookaudio/tenpad/keyboard.json
index 46107a1c9b..c52556b4f4 100644
--- a/keyboards/evancookaudio/tenpad/keyboard.json
+++ b/keyboards/evancookaudio/tenpad/keyboard.json
@@ -21,8 +21,7 @@
"rows": ["D0", "D1"]
},
"diode_direction": "COL2ROW",
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT_ortho_2x5": {
"layout": [
diff --git a/keyboards/ferris/0_2/rules.mk b/keyboards/ferris/0_2/rules.mk
index 11b9d33a69..c04c3c92ed 100644
--- a/keyboards/ferris/0_2/rules.mk
+++ b/keyboards/ferris/0_2/rules.mk
@@ -2,5 +2,3 @@ CUSTOM_MATRIX = lite
SRC += matrix.c
I2C_DRIVER_REQUIRED = yes
-
-DEFAULT_FOLDER = ferris/0_2/base
diff --git a/keyboards/ffkeebs/puca/keyboard.json b/keyboards/ffkeebs/puca/keyboard.json
index e79032593a..3e3acdb1e1 100644
--- a/keyboards/ffkeebs/puca/keyboard.json
+++ b/keyboards/ffkeebs/puca/keyboard.json
@@ -54,8 +54,7 @@
"ws2812": {
"pin": "D4"
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layout_aliases": {
"LAYOUT": "LAYOUT_all"
},
diff --git a/keyboards/flehrad/numbrero/keyboard.json b/keyboards/flehrad/numbrero/keyboard.json
index ac21bb0fbb..353712358a 100644
--- a/keyboards/flehrad/numbrero/keyboard.json
+++ b/keyboards/flehrad/numbrero/keyboard.json
@@ -24,8 +24,7 @@
"rows": ["F6", "B5", "B4", "E6", "F7"]
},
"diode_direction": "COL2ROW",
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layout_aliases": {
"LAYOUT_numbrero_numpad": "LAYOUT_numpad",
"LAYOUT_numbrero_ortho": "LAYOUT_ortho"
diff --git a/keyboards/flehrad/snagpad/keyboard.json b/keyboards/flehrad/snagpad/keyboard.json
index d1a2f3ddee..641e6efedd 100644
--- a/keyboards/flehrad/snagpad/keyboard.json
+++ b/keyboards/flehrad/snagpad/keyboard.json
@@ -24,8 +24,7 @@
"rows": ["D1", "D0", "D4", "C6", "D7"]
},
"diode_direction": "COL2ROW",
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"community_layouts": ["ortho_5x4", "numpad_5x4"],
"layouts": {
"LAYOUT_ortho_5x4": {
diff --git a/keyboards/flehrad/tradestation/keyboard.json b/keyboards/flehrad/tradestation/keyboard.json
index b753ce2f8e..55b75c4d51 100644
--- a/keyboards/flehrad/tradestation/keyboard.json
+++ b/keyboards/flehrad/tradestation/keyboard.json
@@ -24,8 +24,7 @@
"rows": ["D1", "C6", "D4", "D0"]
},
"diode_direction": "COL2ROW",
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"community_layouts": ["ortho_4x4"],
"layout_aliases": {
"LAYOUT_tradestation": "LAYOUT_4x2u"
diff --git a/keyboards/for_science/keyboard.json b/keyboards/for_science/keyboard.json
index 5ae7808d42..62718933cd 100644
--- a/keyboards/for_science/keyboard.json
+++ b/keyboards/for_science/keyboard.json
@@ -26,8 +26,7 @@
"rows": ["D4", "D7", "E6", "B4", "B5"]
},
"diode_direction": "ROW2COL",
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT_split_4x5_3": {
"layout": [
diff --git a/keyboards/fr4/southpaw75/keyboard.json b/keyboards/fr4/southpaw75/keyboard.json
index dc919b2ee4..c5d5094c96 100644
--- a/keyboards/fr4/southpaw75/keyboard.json
+++ b/keyboards/fr4/southpaw75/keyboard.json
@@ -25,8 +25,7 @@
"rows": ["D3", "D2", "D1", "D0", "D4", "C6", "D7", "E6", "B4"]
},
"diode_direction": "COL2ROW",
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/fr4/unix60/keyboard.json b/keyboards/fr4/unix60/keyboard.json
index 97da97dd0e..7f7bc3fbc7 100644
--- a/keyboards/fr4/unix60/keyboard.json
+++ b/keyboards/fr4/unix60/keyboard.json
@@ -19,8 +19,7 @@
"rows": ["D3", "D2", "D1", "D0", "D4", "C6", "D7"]
},
"diode_direction": "COL2ROW",
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"community_layouts": [
"60_hhkb"
],
diff --git a/keyboards/fractal/keyboard.json b/keyboards/fractal/keyboard.json
index 1e322e63b4..38a8bf4593 100644
--- a/keyboards/fractal/keyboard.json
+++ b/keyboards/fractal/keyboard.json
@@ -13,8 +13,7 @@
"rows": ["B1", "F7", "F6", "F5", "F4"]
},
"diode_direction": "COL2ROW",
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"features": {
"bootmagic": true,
"mousekey": true,
diff --git a/keyboards/free_willy/keyboard.json b/keyboards/free_willy/keyboard.json
index 815f5808f5..d6d7d2d155 100644
--- a/keyboards/free_willy/keyboard.json
+++ b/keyboards/free_willy/keyboard.json
@@ -19,8 +19,7 @@
"rows": ["F4", "F5", "F6", "F7"]
},
"diode_direction": "COL2ROW",
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/fungo/rev1/keyboard.json b/keyboards/fungo/rev1/keyboard.json
index 0b0abec8e7..e494bce0ad 100644
--- a/keyboards/fungo/rev1/keyboard.json
+++ b/keyboards/fungo/rev1/keyboard.json
@@ -40,8 +40,7 @@
"resync": true
}
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"debounce": 3,
"tapping": {
"toggle": 3
diff --git a/keyboards/funky40/keyboard.json b/keyboards/funky40/keyboard.json
index 0658fc4974..856a9262f0 100644
--- a/keyboards/funky40/keyboard.json
+++ b/keyboards/funky40/keyboard.json
@@ -24,8 +24,7 @@
"rows": ["D4", "C6", "B4", "B5"]
},
"diode_direction": "COL2ROW",
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/gl516/a52gl/keyboard.json b/keyboards/gl516/a52gl/keyboard.json
index ad4921f635..4167f7ffc1 100644
--- a/keyboards/gl516/a52gl/keyboard.json
+++ b/keyboards/gl516/a52gl/keyboard.json
@@ -8,8 +8,7 @@
"pid": "0xE8D1",
"device_version": "0.0.1"
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"features": {
"bootmagic": true,
"mousekey": true,
diff --git a/keyboards/gl516/j73gl/keyboard.json b/keyboards/gl516/j73gl/keyboard.json
index 5fba198a71..06f1a8d763 100644
--- a/keyboards/gl516/j73gl/keyboard.json
+++ b/keyboards/gl516/j73gl/keyboard.json
@@ -26,8 +26,7 @@
"ws2812": {
"pin": "D3"
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"features": {
"bootmagic": true,
"mousekey": true,
diff --git a/keyboards/gl516/n51gl/keyboard.json b/keyboards/gl516/n51gl/keyboard.json
index c1ea4ab579..388541c23a 100644
--- a/keyboards/gl516/n51gl/keyboard.json
+++ b/keyboards/gl516/n51gl/keyboard.json
@@ -31,8 +31,7 @@
{"pin_a": "D7", "pin_b": "E6", "resolution": 3}
]
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"features": {
"bootmagic": true,
"mousekey": true,
diff --git a/keyboards/gmmk/gmmk2/p65/ansi/ansi.c b/keyboards/gmmk/gmmk2/p65/ansi/ansi.c
index d1f01fc8cb..b3ac9906db 100644
--- a/keyboards/gmmk/gmmk2/p65/ansi/ansi.c
+++ b/keyboards/gmmk/gmmk2/p65/ansi/ansi.c
@@ -204,26 +204,26 @@ led_config_t g_led_config = {{
{196, 64}, // 65 Down
{210, 64}, // 66 Right
- {0, 0}, // 69 LED 1
- {0, 7}, // 70 LED 2
- {0, 14}, // 71 LED 3
- {0, 21}, // 72 LED 4
- {0, 28}, // 73 LED 5
- {0, 35}, // 74 LED 6
- {0, 42}, // 75 LED 7
- {0, 49}, // 76 LED 8
- {0, 56}, // 77 LED 9
- {0, 64}, // 78 LED 10
- {224, 0 }, // 79 LED 11
- {224, 7 }, // 80 LED 12
- {224, 14}, // 81 LED 13
- {224, 21}, // 82 LED 14
- {224, 28}, // 83 LED 15
- {224, 35}, // 84 LED 16
- {224, 42}, // 85 LED 17
- {224, 49}, // 86 LED 18
- {224, 56}, // 87 LED 19
- {224, 64}, // 88 LED 20
+ {224, 0 }, // 69 LED 1
+ {224, 7 }, // 70 LED 2
+ {224, 14}, // 71 LED 3
+ {224, 21}, // 72 LED 4
+ {224, 28}, // 73 LED 5
+ {224, 35}, // 74 LED 6
+ {224, 42}, // 75 LED 7
+ {224, 49}, // 76 LED 8
+ {224, 56}, // 77 LED 9
+ {224, 64}, // 78 LED 10
+ {0, 0 }, // 79 LED 11
+ {0, 7 }, // 80 LED 12
+ {0, 14}, // 81 LED 13
+ {0, 21}, // 82 LED 14
+ {0, 28}, // 83 LED 15
+ {0, 35}, // 84 LED 16
+ {0, 42}, // 85 LED 17
+ {0, 49}, // 86 LED 18
+ {0, 56}, // 87 LED 19
+ {0, 64}, // 88 LED 20
}, {
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
diff --git a/keyboards/gmmk/gmmk2/p65/iso/iso.c b/keyboards/gmmk/gmmk2/p65/iso/iso.c
index 2be5285394..abadaccd34 100644
--- a/keyboards/gmmk/gmmk2/p65/iso/iso.c
+++ b/keyboards/gmmk/gmmk2/p65/iso/iso.c
@@ -206,26 +206,26 @@ led_config_t g_led_config = {{
{196, 64}, // 66 Down
{210, 64}, // 67 Right
- {0, 0}, // 68 LED 1
- {0, 7}, // 69 LED 2
- {0, 14}, // 70 LED 3
- {0, 21}, // 71 LED 4
- {0, 28}, // 72 LED 5
- {0, 35}, // 73 LED 6
- {0, 42}, // 74 LED 7
- {0, 49}, // 75 LED 8
- {0, 56}, // 76 LED 9
- {0, 64}, // 77 LED 10
- {224, 0 }, // 78 LED 11
- {224, 7 }, // 79 LED 12
- {224, 14}, // 80 LED 13
- {224, 21}, // 81 LED 14
- {224, 28}, // 82 LED 15
- {224, 35}, // 83 LED 16
- {224, 42}, // 84 LED 17
- {224, 49}, // 85 LED 18
- {224, 56}, // 86 LED 19
- {224, 64}, // 87 LED 20
+ {224, 0 }, // 68 LED 1
+ {224, 7 }, // 69 LED 2
+ {224, 14}, // 70 LED 3
+ {224, 21}, // 71 LED 4
+ {224, 28}, // 72 LED 5
+ {224, 35}, // 73 LED 6
+ {224, 42}, // 74 LED 7
+ {224, 49}, // 75 LED 8
+ {224, 56}, // 76 LED 9
+ {224, 64}, // 77 LED 10
+ {0, 0 }, // 78 LED 11
+ {0, 7 }, // 79 LED 12
+ {0, 14}, // 80 LED 13
+ {0, 21}, // 81 LED 14
+ {0, 28}, // 82 LED 15
+ {0, 35}, // 83 LED 16
+ {0, 42}, // 84 LED 17
+ {0, 49}, // 85 LED 18
+ {0, 56}, // 86 LED 19
+ {0, 64}, // 87 LED 20
}, {
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
diff --git a/keyboards/gowla/keyboard.json b/keyboards/gowla/keyboard.json
index f4f0b96838..0922862146 100644
--- a/keyboards/gowla/keyboard.json
+++ b/keyboards/gowla/keyboard.json
@@ -19,8 +19,7 @@
"rows": ["D1", "D0", "D4"]
},
"diode_direction": "ROW2COL",
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT_ortho_3x3": {
"layout": [
diff --git a/keyboards/halfcliff/keyboard.json b/keyboards/halfcliff/keyboard.json
index 7d780c016a..3cc2b0de33 100644
--- a/keyboards/halfcliff/keyboard.json
+++ b/keyboards/halfcliff/keyboard.json
@@ -29,8 +29,7 @@
"ws2812": {
"pin": "D3"
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"features": {
"bootmagic": false,
"mousekey": false,
diff --git a/keyboards/handwired/dygma/raise/rules.mk b/keyboards/handwired/dygma/raise/rules.mk
index cd02f80200..195edabcae 100644
--- a/keyboards/handwired/dygma/raise/rules.mk
+++ b/keyboards/handwired/dygma/raise/rules.mk
@@ -7,5 +7,3 @@ CUSTOM_MATRIX = lite
I2C_DRIVER_REQUIRED = yes
SRC += matrix.c
-
-DEFAULT_FOLDER = handwired/dygma/raise/ansi
diff --git a/keyboards/handwired/franky36/keyboard.json b/keyboards/handwired/franky36/keyboard.json
index 038fc1eb67..871e6abf9d 100644
--- a/keyboards/handwired/franky36/keyboard.json
+++ b/keyboards/handwired/franky36/keyboard.json
@@ -23,8 +23,8 @@
"url": "https://github.com/avdyushin/franky36",
"usb": {
"device_version": "0.2.0",
- "pid": "0x0001",
- "vid": "0xFEED"
+ "pid": "0x3336",
+ "vid": "0x1209"
},
"community_layouts": ["split_3x5_3"],
"layouts": {
diff --git a/keyboards/handwired/wwa/soyuz/keyboard.json b/keyboards/handwired/wwa/soyuz/keyboard.json
index 4b3a015a35..b922af10a2 100644
--- a/keyboards/handwired/wwa/soyuz/keyboard.json
+++ b/keyboards/handwired/wwa/soyuz/keyboard.json
@@ -8,7 +8,8 @@
"bootmagic": true,
"extrakey": true,
"mousekey": true,
- "nkro": true
+ "nkro": true,
+ "encoder" : true
},
"matrix_pins": {
"cols": ["GP0", "GP1", "GP2", "GP3", "GP4", "GP5", "GP6"],
@@ -20,6 +21,13 @@
"pid": "0x0004",
"vid": "0x5757"
},
+ "encoder": {
+ "rotary": [
+ {"pin_a": "GP16", "pin_b": "GP17"},
+ {"pin_a": "GP18", "pin_b": "GP19"},
+ {"pin_a": "GP20", "pin_b": "GP21"}
+ ]
+ },
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/handwired/wwa/soyuz/keymaps/default/keymap.c b/keyboards/handwired/wwa/soyuz/keymaps/default/keymap.c
index af0eb592dc..c1d75ffc54 100644
--- a/keyboards/handwired/wwa/soyuz/keymaps/default/keymap.c
+++ b/keyboards/handwired/wwa/soyuz/keymaps/default/keymap.c
@@ -3,11 +3,17 @@
#include QMK_KEYBOARD_H
-
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT(
KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10,
KC_F11, KC_F12, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17,
KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24
)
-}; \ No newline at end of file
+};
+
+
+#if defined(ENCODER_MAP_ENABLE)
+const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
+ [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
+};
+#endif
diff --git a/keyboards/handwired/wwa/soyuz/keymaps/default/rules.mk b/keyboards/handwired/wwa/soyuz/keymaps/default/rules.mk
new file mode 100644
index 0000000000..ee32568148
--- /dev/null
+++ b/keyboards/handwired/wwa/soyuz/keymaps/default/rules.mk
@@ -0,0 +1 @@
+ENCODER_MAP_ENABLE = yes
diff --git a/keyboards/handwired/wwa/soyuz/readme.md b/keyboards/handwired/wwa/soyuz/readme.md
index 69f8ef9d76..01a3b60dfe 100644
--- a/keyboards/handwired/wwa/soyuz/readme.md
+++ b/keyboards/handwired/wwa/soyuz/readme.md
@@ -2,7 +2,7 @@
![soyuz](https://i.imgur.com/KwwORGSh.jpeg)
-21 Key and 3 MIDI Potentiometers Macro Keyboard
+21 Key, 3 Encoder
* Keyboard Maintainer: [spacehangover](https://github.com/spacehangover)
* Hardware Supported: RP2040 Handwired
diff --git a/keyboards/handwired/yodadistro/macro/keyboard.json b/keyboards/handwired/yodadistro/macro/keyboard.json
new file mode 100644
index 0000000000..f0a03453b4
--- /dev/null
+++ b/keyboards/handwired/yodadistro/macro/keyboard.json
@@ -0,0 +1,33 @@
+{
+ "manufacturer": "Raspberry Pi",
+ "keyboard_name": "KBP 8-Key Macro Pad",
+ "maintainer": "yodadistro",
+ "bootloader": "rp2040",
+ "diode_direction": "COL2ROW",
+ "matrix_pins": {
+ "direct": [
+ ["GP3", "GP5", "GP7", "GP9"],
+ ["GP2", "GP4", "GP6", "GP8"]
+ ]
+ },
+ "processor": "RP2040",
+ "usb": {
+ "device_version": "1.0.0",
+ "pid": "0x2044",
+ "vid": "0x1209"
+ },
+ "layouts": {
+ "LAYOUT": {
+ "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}
+ ]
+ }
+ }
+}
diff --git a/keyboards/handwired/yodadistro/macro/keymaps/default/keymap.json b/keyboards/handwired/yodadistro/macro/keymaps/default/keymap.json
new file mode 100644
index 0000000000..5f5ccb88b0
--- /dev/null
+++ b/keyboards/handwired/yodadistro/macro/keymaps/default/keymap.json
@@ -0,0 +1,11 @@
+{
+ "keyboard": "handwired/yodadistro/macro",
+ "keymap": "default",
+ "layout": "LAYOUT",
+ "layers": [
+ [
+ "KC_A", "KC_B", "KC_C", "KC_D",
+ "KC_E", "KC_F", "KC_G", "KC_H"
+ ]
+ ]
+}
diff --git a/keyboards/handwired/yodadistro/macro/readme.md b/keyboards/handwired/yodadistro/macro/readme.md
new file mode 100644
index 0000000000..ceda19acba
--- /dev/null
+++ b/keyboards/handwired/yodadistro/macro/readme.md
@@ -0,0 +1,25 @@
+# Yoda Distro
+
+![YodaDistro](https://i.imgur.com/W2xnKjF.jpeg)
+
+Scratch made direct wire pin 8-Key (4x2) Macro Pad using a Raspberry Pi Pico (2040).
+
+* Keyboard Maintainer: [YodaDistro](https://github.com/YodaDistro)
+* Hardware Supported: Raspberry Pi Pico (2040)
+* Hardware Availability: 3D Printed Design (https://github.com/YodaDistro/MacroPad)
+
+Make example for this keyboard (after setting up your build environment):
+
+ make handwired/yodadistro/macro:default
+
+Flashing example for this keyboard:
+
+ make handwired/yodadistro/macro: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
+
+* **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 \ No newline at end of file
diff --git a/keyboards/helix/pico/rules.mk b/keyboards/helix/pico/rules.mk
index 449df9caa6..e18b8fb0c4 100644
--- a/keyboards/helix/pico/rules.mk
+++ b/keyboards/helix/pico/rules.mk
@@ -3,5 +3,3 @@ LED_BACK_ENABLE = no # LED backlight (Enable WS2812 RGB underlight.)
LED_UNDERGLOW_ENABLE = no # LED underglow (Enable WS2812 RGB underlight.)
LED_ANIMATIONS = yes # LED animations
IOS_DEVICE_ENABLE = no # connect to IOS device (iPad,iPhone)
-
-DEFAULT_FOLDER = helix/pico/base
diff --git a/keyboards/helix/rev2/rules.mk b/keyboards/helix/rev2/rules.mk
index 4f830403f4..e827ae111f 100644
--- a/keyboards/helix/rev2/rules.mk
+++ b/keyboards/helix/rev2/rules.mk
@@ -7,5 +7,3 @@ LED_BACK_ENABLE = no # LED backlight (Enable WS2812 RGB underlight.)
LED_UNDERGLOW_ENABLE = no # LED underglow (Enable WS2812 RGB underlight.)
LED_ANIMATIONS = yes # LED animations
IOS_DEVICE_ENABLE = no # connect to IOS device (iPad,iPhone)
-
-DEFAULT_FOLDER = helix/rev2/base
diff --git a/keyboards/helix/rules.mk b/keyboards/helix/rules.mk
index f743d48d0e..a2f233cf91 100644
--- a/keyboards/helix/rules.mk
+++ b/keyboards/helix/rules.mk
@@ -1,3 +1 @@
-DEFAULT_FOLDER = helix/rev2
-
HELIX_TOP_DIR := $(patsubst %/,%,$(dir $(lastword $(MAKEFILE_LIST))))
diff --git a/keyboards/hifumi/keyboard.json b/keyboards/hifumi/keyboard.json
index 320c14a2be..e859ceef69 100644
--- a/keyboards/hifumi/keyboard.json
+++ b/keyboards/hifumi/keyboard.json
@@ -39,8 +39,7 @@
"ws2812": {
"pin": "D3"
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/horizon/keyboard.json b/keyboards/horizon/keyboard.json
index 8dabea33a3..cb70b74470 100644
--- a/keyboards/horizon/keyboard.json
+++ b/keyboards/horizon/keyboard.json
@@ -26,8 +26,7 @@
"rows": ["D3", "D2", "D1", "F4"]
},
"diode_direction": "COL2ROW",
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/ibm/model_m/mschwingen/rules.mk b/keyboards/ibm/model_m/mschwingen/rules.mk
index 65761bcf9a..e9091cdbae 100644
--- a/keyboards/ibm/model_m/mschwingen/rules.mk
+++ b/keyboards/ibm/model_m/mschwingen/rules.mk
@@ -5,5 +5,3 @@ UART_DRIVER_REQUIRED = yes
SPI_DRIVER_REQUIRED = yes
OPT_DEFS += -DSLEEP_LED_ENABLE
-
-DEFAULT_FOLDER = ibm/model_m/mschwingen/led_wired
diff --git a/keyboards/ibnuda/alicia_cook/keyboard.json b/keyboards/ibnuda/alicia_cook/keyboard.json
index ba9e22f63b..d8a98f92ed 100644
--- a/keyboards/ibnuda/alicia_cook/keyboard.json
+++ b/keyboards/ibnuda/alicia_cook/keyboard.json
@@ -19,8 +19,7 @@
"rows": ["D2", "D3", "F4", "F5"]
},
"diode_direction": "COL2ROW",
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT_all": {
"layout": [
diff --git a/keyboards/ibnuda/gurindam/keyboard.json b/keyboards/ibnuda/gurindam/keyboard.json
index f136c8ecb2..72fdba4f7f 100644
--- a/keyboards/ibnuda/gurindam/keyboard.json
+++ b/keyboards/ibnuda/gurindam/keyboard.json
@@ -43,8 +43,7 @@
"rows": ["B5", "B4", "E6", "D7", "C6", "D4", "D0", "D1", "D2"]
},
"diode_direction": "COL2ROW",
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/ibnuda/squiggle/rev1/keyboard.json b/keyboards/ibnuda/squiggle/rev1/keyboard.json
index 41061674a9..e614da39bd 100644
--- a/keyboards/ibnuda/squiggle/rev1/keyboard.json
+++ b/keyboards/ibnuda/squiggle/rev1/keyboard.json
@@ -19,8 +19,7 @@
"pin": "D0"
}
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"features": {
"bootmagic": false,
"mousekey": false,
diff --git a/keyboards/inland/kb83/kb83.c b/keyboards/inland/kb83/kb83.c
index 41a3ad8df7..07d8bdbdb4 100644
--- a/keyboards/inland/kb83/kb83.c
+++ b/keyboards/inland/kb83/kb83.c
@@ -313,11 +313,7 @@ bool dip_switch_update_kb(uint8_t index, bool active) {
return false;
}
if (index == 0) {
- default_layer_set(1UL << (active ? 2 : 0));
- }
- if(active){
- keymap_config.no_gui = 0;
- eeconfig_update_keymap(&keymap_config);
+ default_layer_set(1UL << (active ? MAC_B : WIN_B));
}
return true;
}
diff --git a/keyboards/inland/kb83/keyboard.json b/keyboards/inland/kb83/keyboard.json
index 4c82a557ee..2920da52e1 100644
--- a/keyboards/inland/kb83/keyboard.json
+++ b/keyboards/inland/kb83/keyboard.json
@@ -60,7 +60,7 @@
},
"encoder": {
"rotary": [
- {"pin_a": "B14", "pin_b": "B13", "resolution": 4}
+ {"pin_a": "B13", "pin_b": "B14", "resolution": 4}
]
},
"qmk": {
diff --git a/keyboards/inland/kb83/keymaps/default/keymap.c b/keyboards/inland/kb83/keymaps/default/keymap.c
index a564e4e4e1..df7df65678 100644
--- a/keyboards/inland/kb83/keymaps/default/keymap.c
+++ b/keyboards/inland/kb83/keymaps/default/keymap.c
@@ -64,10 +64,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
#if defined(ENCODER_MAP_ENABLE)
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
- [WIN_B] = { ENCODER_CCW_CW(KC_VOLU, KC_VOLD) },
- [WIN_FN] = { ENCODER_CCW_CW(RM_SATU, RM_SATD) },
- [MAC_B] = { ENCODER_CCW_CW(KC_VOLU, KC_VOLD) },
- [MAC_FN] = { ENCODER_CCW_CW(RM_SATU, RM_SATD) },
+ [WIN_B] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
+ [WIN_FN] = { ENCODER_CCW_CW(RM_SATD, RM_SATU) },
+ [MAC_B] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
+ [MAC_FN] = { ENCODER_CCW_CW(RM_SATD, RM_SATU) },
};
#endif
diff --git a/keyboards/inland/kb83/keymaps/default/rules.mk b/keyboards/inland/kb83/keymaps/default/rules.mk
new file mode 100644
index 0000000000..ee32568148
--- /dev/null
+++ b/keyboards/inland/kb83/keymaps/default/rules.mk
@@ -0,0 +1 @@
+ENCODER_MAP_ENABLE = yes
diff --git a/keyboards/ivndbt/late9/rev1/keyboard.json b/keyboards/ivndbt/late9/rev1/keyboard.json
index a9bc229588..523ae83492 100644
--- a/keyboards/ivndbt/late9/rev1/keyboard.json
+++ b/keyboards/ivndbt/late9/rev1/keyboard.json
@@ -24,8 +24,7 @@
"nkro": true,
"oled": true
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/ivndbt/neopad/rev1/keyboard.json b/keyboards/ivndbt/neopad/rev1/keyboard.json
index a07852acf0..f40f06549b 100755
--- a/keyboards/ivndbt/neopad/rev1/keyboard.json
+++ b/keyboards/ivndbt/neopad/rev1/keyboard.json
@@ -28,8 +28,7 @@
{"pin_a": "D4", "pin_b": "C6"}
]
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"tapping": {
"toggle": 2
},
diff --git a/keyboards/jiran/info.json b/keyboards/jiran/info.json
index b06266ec8c..00c4239781 100644
--- a/keyboards/jiran/info.json
+++ b/keyboards/jiran/info.json
@@ -19,6 +19,5 @@
"pin": "D1"
}
},
- "processor": "atmega32u4",
- "bootloader": "caterina"
+ "development_board": "promicro"
}
diff --git a/keyboards/jorne/rev1/keyboard.json b/keyboards/jorne/rev1/keyboard.json
index 4e905e4bfc..7fffc8be02 100644
--- a/keyboards/jorne/rev1/keyboard.json
+++ b/keyboards/jorne/rev1/keyboard.json
@@ -32,8 +32,7 @@
"ws2812": {
"pin": "D3"
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"features": {
"bootmagic": false,
"mousekey": true,
diff --git a/keyboards/keebio/quefrency/rev1/keyboard.json b/keyboards/keebio/quefrency/rev1/keyboard.json
index 73f6d0d660..00eef3f661 100644
--- a/keyboards/keebio/quefrency/rev1/keyboard.json
+++ b/keyboards/keebio/quefrency/rev1/keyboard.json
@@ -63,8 +63,11 @@
"build": {
"lto": true
},
+ "layout_aliases": {
+ "LAYOUT": "LAYOUT_60"
+ },
"layouts": {
- "LAYOUT": {
+ "LAYOUT_60": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0},
diff --git a/keyboards/latincompass/latinpad/keyboard.json b/keyboards/latincompass/latinpad/keyboard.json
index 2efc370ad3..3b4563b1ca 100644
--- a/keyboards/latincompass/latinpad/keyboard.json
+++ b/keyboards/latincompass/latinpad/keyboard.json
@@ -65,8 +65,7 @@
"ws2812": {
"pin": "D3"
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/lets_split/info.json b/keyboards/lets_split/info.json
index 9152226cab..dc46a7eb66 100644
--- a/keyboards/lets_split/info.json
+++ b/keyboards/lets_split/info.json
@@ -1,6 +1,5 @@
{
"maintainer": "qmk",
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"community_layouts": ["ortho_4x12"]
}
diff --git a/keyboards/lfkeyboards/smk65/revf/keyboard.json b/keyboards/lfkeyboards/smk65/revf/keyboard.json
index 4e8a44d3bc..1dd58441fc 100644
--- a/keyboards/lfkeyboards/smk65/revf/keyboard.json
+++ b/keyboards/lfkeyboards/smk65/revf/keyboard.json
@@ -133,7 +133,7 @@
{"matrix": [2, 10], "x": 10.75, "y": 2},
{"matrix": [2, 11], "x": 11.75, "y": 2},
{"matrix": [2, 12], "x": 12.75, "y": 2},
- {"matrix": [1, 14], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
+ {"matrix": [2, 14], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
{"matrix": [2, 15], "x": 15, "y": 2},
{"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
diff --git a/keyboards/lily58/glow_enc/keyboard.json b/keyboards/lily58/glow_enc/keyboard.json
index 9f7a2760aa..63ee5b6a99 100644
--- a/keyboards/lily58/glow_enc/keyboard.json
+++ b/keyboards/lily58/glow_enc/keyboard.json
@@ -44,8 +44,7 @@
"max_brightness": 120,
"split_count": [36, 36]
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"build": {
"lto": true
},
diff --git a/keyboards/lily58/light/keyboard.json b/keyboards/lily58/light/keyboard.json
index 0eadf11eb6..738a9418a6 100644
--- a/keyboards/lily58/light/keyboard.json
+++ b/keyboards/lily58/light/keyboard.json
@@ -45,8 +45,7 @@
"max_brightness": 120,
"split_count": [35, 35]
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"build": {
"lto": true
},
diff --git a/keyboards/lily58/rev1/keyboard.json b/keyboards/lily58/rev1/keyboard.json
index 3488b0e2b5..f23d4dbaa1 100644
--- a/keyboards/lily58/rev1/keyboard.json
+++ b/keyboards/lily58/rev1/keyboard.json
@@ -27,8 +27,7 @@
"ws2812": {
"pin": "D3"
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/lime/rev1/keyboard.json b/keyboards/lime/rev1/keyboard.json
index 50fc82ae19..b61a91a0da 100644
--- a/keyboards/lime/rev1/keyboard.json
+++ b/keyboards/lime/rev1/keyboard.json
@@ -42,8 +42,7 @@
"qmk": {
"tap_keycode_delay": 10
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"features": {
"bootmagic": false,
"mousekey": false,
diff --git a/keyboards/machkeyboards/mach3/keyboard.json b/keyboards/machkeyboards/mach3/keyboard.json
index 126845a37d..383f4a738e 100644
--- a/keyboards/machkeyboards/mach3/keyboard.json
+++ b/keyboards/machkeyboards/mach3/keyboard.json
@@ -26,8 +26,7 @@
"levels": 5,
"breathing": true
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT_3x3": {
"layout": [
diff --git a/keyboards/makrosu/keyboard.json b/keyboards/makrosu/keyboard.json
index e79a03f475..1e83c20aa7 100644
--- a/keyboards/makrosu/keyboard.json
+++ b/keyboards/makrosu/keyboard.json
@@ -34,8 +34,7 @@
"bootmagic": {
"matrix": [0, 5]
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/manta60/keyboard.json b/keyboards/manta60/keyboard.json
index 007f015379..84af2a2752 100644
--- a/keyboards/manta60/keyboard.json
+++ b/keyboards/manta60/keyboard.json
@@ -53,8 +53,7 @@
"ws2812": {
"pin": "D3"
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/maple_computing/6ball/keyboard.json b/keyboards/maple_computing/6ball/keyboard.json
index 335294e51e..f68f2ec8ba 100644
--- a/keyboards/maple_computing/6ball/keyboard.json
+++ b/keyboards/maple_computing/6ball/keyboard.json
@@ -38,8 +38,7 @@
"rows": ["F5"]
},
"diode_direction": "COL2ROW",
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/maple_computing/christmas_tree/v2017/keyboard.json b/keyboards/maple_computing/christmas_tree/v2017/keyboard.json
index d2ebc781d6..6682c574c9 100644
--- a/keyboards/maple_computing/christmas_tree/v2017/keyboard.json
+++ b/keyboards/maple_computing/christmas_tree/v2017/keyboard.json
@@ -8,8 +8,7 @@
"pid": "0x3070",
"device_version": "20.1.7"
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"features": {
"backlight": true,
"bootmagic": false,
diff --git a/keyboards/maple_computing/launchpad/keymaps/default_rgb/config.h b/keyboards/maple_computing/launchpad/keymaps/default_rgb/config.h
deleted file mode 100644
index c50e010375..0000000000
--- a/keyboards/maple_computing/launchpad/keymaps/default_rgb/config.h
+++ /dev/null
@@ -1,18 +0,0 @@
-#pragma once
-
-/* Underlight Configuration */
-#define WS2812_DI_PIN F4
-#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
-#define RGBLIGHT_LED_COUNT 2 // Number of LEDs
-#define RGBLIGHT_HUE_STEP 10
-#define RGBLIGHT_SAT_STEP 17
-#define RGBLIGHT_VAL_STEP 17
diff --git a/keyboards/maple_computing/launchpad/keymaps/default_rgb/keymap.c b/keyboards/maple_computing/launchpad/keymaps/default_rgb/keymap.c
deleted file mode 100644
index 0b2335af98..0000000000
--- a/keyboards/maple_computing/launchpad/keymaps/default_rgb/keymap.c
+++ /dev/null
@@ -1,76 +0,0 @@
-// Below layout is based upon /u/That-Canadian's planck layout
-#include QMK_KEYBOARD_H
-
-extern keymap_config_t keymap_config;
-
-// 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 layer_names {
- _QWERTY,
- _RGB,
- _FUNC
-};
-
-// Defines for task manager and such
-#define CALTDEL LCTL(LALT(KC_DEL))
-#define TSKMGR LCTL(LSFT(KC_ESC))
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- /* Qwerty
- * ,-------------.
- * | 1 | 2 |
- * |------+------|
- * | 3 | 4 |
- * |------+------|
- * | 5 | 6 |
- * |------+------|
- * | FUNC | RGB |
- * `-------------'
- */
- [_QWERTY] = LAYOUT(
- KC_1, KC_2,
- KC_3, KC_4,
- KC_5, KC_6,
- MO(_FUNC), TG(_RGB)
- ),
-
- /* RGB
- * ,-------------.
- * | Mode-| Mode+|
- * |------+------|
- * | HUE- | HUE+ |
- * |------+------|
- * | SAT- | SAT+ |
- * |------+------|
- * |RGBTOG| |
- * `-------------'
- */
- [_RGB] = LAYOUT(
- UG_PREV, UG_NEXT,
- UG_HUED, UG_HUEU,
- UG_SATD, UG_SATU,
- UG_TOGG, KC_TRNS
- ),
-
- /* Function
- * ,-------------.
- * | Q |CALDEL|
- * |------+------|
- * | A |TSKMGR|
- * |------+------|
- * | Z | X |
- * |------+------|
- * | | C |
- * `-------------'
- */
- [_FUNC] = LAYOUT(
- KC_Q, CALTDEL,
- KC_A, TSKMGR,
- KC_Z, KC_X,
- _______, KC_C
- )
-
-};
diff --git a/keyboards/maple_computing/launchpad/keymaps/default_rgb/readme.md b/keyboards/maple_computing/launchpad/keymaps/default_rgb/readme.md
deleted file mode 100644
index 3f15ff9bc3..0000000000
--- a/keyboards/maple_computing/launchpad/keymaps/default_rgb/readme.md
+++ /dev/null
@@ -1,41 +0,0 @@
-# Launch Pad
-
-![Launch Pad](https://i.imgur.com/WVTe0Ku.png)
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
-
-A budget-minded, 4-8 key macro-pad with built in legs, plate & case.
-
-Supports MX & Alps switches. 2x 1u or 1x 2u supported for each row.
-
-Supports 2u PCB-Mount stabilizers.
-
-Runs off of 1x Pro Micro & 8x diodes (1n4148).
-
-Optional "Reset" switch can be used on the PCB.
-
-A fantastic project for beginners to learn to solder, veteran's of the hobby who want to add an easy macro-pad to their collection, and everyone in between.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
-
-Make example for this keyboard (after setting up your build environment):
-
- make launchpad/rev1:default
-
-See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information.
-
-# Under Glow
-
-![Underglow](https://i.imgur.com/3zFIOmu.jpg)
-
-SpaceCat now provides an underglow add-on kit. Please refer to the picture above for wiring.
-
-Make example for this keyboard (after setting up your build environment):
-
- make launchpad/rev1:default_rgb
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
-
-Due to PCB tolerance issues outside of our control, the snap-apart legs included on the PCB may need extra padding to prevent a small amount of wobbling once placed properly. We have included small, clear, and semi-permanent "glue dots" in each order (PCB Only -and- Full Kit) to help with this. You may also use plastic wrap, tape, Elmer's glue, hot glue, rubber cement, etc. We advise against using anything more "permanent" in case you wish to make changes to your Launch Pad in the future. It is also best to attach legs after all of your soldering and building is finished, to get the most accurate feel for your Launch Pad.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
diff --git a/keyboards/maple_computing/launchpad/keymaps/default_rgb/rules.mk b/keyboards/maple_computing/launchpad/keymaps/default_rgb/rules.mk
deleted file mode 100644
index 1e3cebb145..0000000000
--- a/keyboards/maple_computing/launchpad/keymaps/default_rgb/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-RGBLIGHT_ENABLE = yes
diff --git a/keyboards/maple_computing/launchpad/rev1/keyboard.json b/keyboards/maple_computing/launchpad/rev1/keyboard.json
index 272a2eef6d..9f7a23c7c8 100644
--- a/keyboards/maple_computing/launchpad/rev1/keyboard.json
+++ b/keyboards/maple_computing/launchpad/rev1/keyboard.json
@@ -30,8 +30,7 @@
"rows": ["C6", "B1", "B3", "D7"]
},
"diode_direction": "COL2ROW",
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"features": {
"bootmagic": false,
"mousekey": false,
diff --git a/keyboards/maple_computing/minidox/rev1/keyboard.json b/keyboards/maple_computing/minidox/rev1/keyboard.json
index 340a8bd39e..a11c2d94e6 100644
--- a/keyboards/maple_computing/minidox/rev1/keyboard.json
+++ b/keyboards/maple_computing/minidox/rev1/keyboard.json
@@ -18,8 +18,7 @@
"pin": "D0"
}
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"features": {
"bootmagic": false,
"mousekey": true,
diff --git a/keyboards/marksard/leftover30/keyboard.json b/keyboards/marksard/leftover30/keyboard.json
index 1b1131d6fc..9983935f66 100644
--- a/keyboards/marksard/leftover30/keyboard.json
+++ b/keyboards/marksard/leftover30/keyboard.json
@@ -56,8 +56,7 @@
"ws2812": {
"pin": "D3"
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT_all": {
"layout": [
diff --git a/keyboards/marksard/rhymestone/rev1/keyboard.json b/keyboards/marksard/rhymestone/rev1/keyboard.json
index 3fe23d6d94..aaff1515e0 100644
--- a/keyboards/marksard/rhymestone/rev1/keyboard.json
+++ b/keyboards/marksard/rhymestone/rev1/keyboard.json
@@ -44,8 +44,7 @@
"static_gradient": true
}
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"features": {
"bootmagic": false,
"mousekey": false,
diff --git a/keyboards/maxipad/promicro/keyboard.json b/keyboards/maxipad/promicro/keyboard.json
index 1499162155..d48a1c9d11 100644
--- a/keyboards/maxipad/promicro/keyboard.json
+++ b/keyboards/maxipad/promicro/keyboard.json
@@ -4,6 +4,5 @@
"rows": ["B6", "B2", "B3", "B1", "F7"]
},
"diode_direction": "COL2ROW",
- "processor": "atmega32u4",
- "bootloader": "caterina"
+ "development_board": "promicro"
}
diff --git a/keyboards/mechwild/mercutio/keyboard.json b/keyboards/mechwild/mercutio/keyboard.json
index d0b7d51029..58ff0b216e 100644
--- a/keyboards/mechwild/mercutio/keyboard.json
+++ b/keyboards/mechwild/mercutio/keyboard.json
@@ -1,12 +1,14 @@
{
- "keyboard_name": "Mercutio",
"manufacturer": "MechWild",
- "url": "mechwild.com",
+ "keyboard_name": "Mercutio",
"maintainer": "kylemccreery",
- "usb": {
- "vid": "0x6D77",
- "pid": "0x1703",
- "device_version": "1.0.0"
+ "bootloader": "usbasploader",
+ "bootloader_instructions": "Hold down the BOOT button, then tap the RESET button.",
+ "diode_direction": "COL2ROW",
+ "encoder": {
+ "rotary": [
+ {"pin_a": "B4", "pin_b": "B5"}
+ ]
},
"features": {
"bootmagic": true,
@@ -20,26 +22,72 @@
"cols": ["B0", "D7", "D6", "D5", "B1", "B2", "B3"],
"rows": ["D0", "D1", "D4", "C3", "C0", "C1", "C2"]
},
- "diode_direction": "COL2ROW",
- "encoder": {
- "rotary": [
- {"pin_a": "B4", "pin_b": "B5"}
- ]
- },
+ "processor": "atmega328p",
"qmk": {
- "tap_keycode_delay": 10,
"locking": {
"enabled": true,
"resync": true
- }
+ },
+ "tap_keycode_delay": 10
+ },
+ "url": "https://mechwild.com",
+ "usb": {
+ "device_version": "1.0.0",
+ "pid": "0x1703",
+ "vid": "0x6D77"
},
- "processor": "atmega328p",
- "bootloader": "usbasploader",
"layouts": {
+ "LAYOUT_625u_space": {
+ "layout": [
+ {"label": "Mute", "matrix": [4, 2], "x": 12, "y": 0, "encoder": 0},
+ {"label": "Tab", "matrix": [0, 0], "x": 0, "y": 1, "w": 1.5},
+ {"label": "Q", "matrix": [0, 1], "x": 1.5, "y": 1},
+ {"label": "W", "matrix": [0, 2], "x": 2.5, "y": 1},
+ {"label": "E", "matrix": [0, 3], "x": 3.5, "y": 1},
+ {"label": "R", "matrix": [0, 4], "x": 4.5, "y": 1},
+ {"label": "T", "matrix": [0, 5], "x": 5.5, "y": 1},
+ {"label": "Y", "matrix": [0, 6], "x": 6.5, "y": 1},
+ {"label": "U", "matrix": [4, 6], "x": 7.5, "y": 1},
+ {"label": "I", "matrix": [4, 5], "x": 8.5, "y": 1},
+ {"label": "O", "matrix": [4, 4], "x": 9.5, "y": 1},
+ {"label": "P", "matrix": [4, 3], "x": 10.5, "y": 1},
+ {"label": "Backspace", "matrix": [5, 2], "x": 11.5, "y": 1, "w": 1.5},
+ {"label": "Fn", "matrix": [1, 0], "x": 0, "y": 2, "w": 1.75},
+ {"label": "A", "matrix": [1, 1], "x": 1.75, "y": 2},
+ {"label": "S", "matrix": [1, 2], "x": 2.75, "y": 2},
+ {"label": "D", "matrix": [1, 3], "x": 3.75, "y": 2},
+ {"label": "F", "matrix": [1, 4], "x": 4.75, "y": 2},
+ {"label": "G", "matrix": [1, 5], "x": 5.75, "y": 2},
+ {"label": "H", "matrix": [1, 6], "x": 6.75, "y": 2},
+ {"label": "J", "matrix": [5, 6], "x": 7.75, "y": 2},
+ {"label": "K", "matrix": [5, 5], "x": 8.75, "y": 2},
+ {"label": "L", "matrix": [5, 4], "x": 9.75, "y": 2},
+ {"label": "'", "matrix": [4, 1], "x": 10.75, "y": 2},
+ {"label": "Enter", "matrix": [5, 3], "x": 11.75, "y": 2, "w": 1.25},
+ {"label": "Shift", "matrix": [2, 0], "x": 0, "y": 3, "w": 1.25},
+ {"label": "/", "matrix": [2, 1], "x": 1.25, "y": 3},
+ {"label": "Z", "matrix": [6, 1], "x": 2.25, "y": 3},
+ {"label": "X", "matrix": [2, 3], "x": 3.25, "y": 3},
+ {"label": "C", "matrix": [2, 4], "x": 4.25, "y": 3},
+ {"label": "V", "matrix": [2, 5], "x": 5.25, "y": 3},
+ {"label": "B", "matrix": [2, 6], "x": 6.25, "y": 3},
+ {"label": "N", "matrix": [6, 6], "x": 7.25, "y": 3},
+ {"label": "M", "matrix": [6, 5], "x": 8.25, "y": 3},
+ {"label": ",", "matrix": [6, 4], "x": 9.25, "y": 3},
+ {"label": ".", "matrix": [6, 3], "x": 10.25, "y": 3},
+ {"label": "Shift", "matrix": [6, 2], "x": 11.25, "y": 3, "w": 1.75},
+ {"label": "Ctrl", "matrix": [3, 0], "x": 0, "y": 4, "w": 1.25},
+ {"label": "GUI", "matrix": [5, 1], "x": 1.25, "y": 4},
+ {"label": "Alt", "matrix": [3, 1], "x": 2.25, "y": 4, "w": 1.25},
+ {"label": "Space", "matrix": [3, 5], "x": 3.25, "y": 4, "w": 6.25},
+ {"label": "Alt", "matrix": [3, 3], "x": 9.5, "y": 4, "w": 1.25},
+ {"label": "Fn2", "matrix": [3, 2], "x": 10.75, "y": 4},
+ {"label": "Ctrl", "matrix": [2, 2], "x": 11.75, "y": 4, "w": 1.25}
+ ]
+ },
"LAYOUT_all": {
"layout": [
- {"label": "Mute", "matrix": [4, 2], "x": 12, "y": 0},
-
+ {"label": "Mute", "matrix": [4, 2], "x": 12, "y": 0, "encoder": 0},
{"label": "Tab", "matrix": [0, 0], "x": 0, "y": 1, "w": 1.5},
{"label": "Q", "matrix": [0, 1], "x": 1.5, "y": 1},
{"label": "W", "matrix": [0, 2], "x": 2.5, "y": 1},
@@ -52,7 +100,6 @@
{"label": "O", "matrix": [4, 4], "x": 9.5, "y": 1},
{"label": "P", "matrix": [4, 3], "x": 10.5, "y": 1},
{"label": "Backspace", "matrix": [5, 2], "x": 11.5, "y": 1, "w": 1.5},
-
{"label": "Fn", "matrix": [1, 0], "x": 0, "y": 2, "w": 1.75},
{"label": "A", "matrix": [1, 1], "x": 1.75, "y": 2},
{"label": "S", "matrix": [1, 2], "x": 2.75, "y": 2},
@@ -65,7 +112,6 @@
{"label": "L", "matrix": [5, 4], "x": 9.75, "y": 2},
{"label": "'", "matrix": [4, 1], "x": 10.75, "y": 2},
{"label": "Enter", "matrix": [5, 3], "x": 11.75, "y": 2, "w": 1.25},
-
{"label": "Shift", "matrix": [2, 0], "x": 0, "y": 3, "w": 1.25},
{"label": "/", "matrix": [2, 1], "x": 1.25, "y": 3},
{"label": "Z", "matrix": [6, 1], "x": 2.25, "y": 3},
@@ -78,7 +124,6 @@
{"label": ",", "matrix": [6, 4], "x": 9.25, "y": 3},
{"label": ".", "matrix": [6, 3], "x": 10.25, "y": 3},
{"label": "Shift", "matrix": [6, 2], "x": 11.25, "y": 3, "w": 1.75},
-
{"label": "Ctrl", "matrix": [3, 0], "x": 0, "y": 4, "w": 1.25},
{"label": "GUI", "matrix": [5, 1], "x": 1.25, "y": 4},
{"label": "Alt", "matrix": [3, 1], "x": 2.25, "y": 4, "w": 1.25},
@@ -90,10 +135,9 @@
{"label": "Ctrl", "matrix": [2, 2], "x": 11.75, "y": 4, "w": 1.25}
]
},
- "LAYOUT_625u_space": {
+ "LAYOUT_full_enter": {
"layout": [
- {"label": "Mute", "matrix": [4, 2], "x": 12, "y": 0},
-
+ {"label": "Mute", "matrix": [4, 2], "x": 12, "y": 0, "encoder": 0},
{"label": "Tab", "matrix": [0, 0], "x": 0, "y": 1, "w": 1.5},
{"label": "Q", "matrix": [0, 1], "x": 1.5, "y": 1},
{"label": "W", "matrix": [0, 2], "x": 2.5, "y": 1},
@@ -106,7 +150,6 @@
{"label": "O", "matrix": [4, 4], "x": 9.5, "y": 1},
{"label": "P", "matrix": [4, 3], "x": 10.5, "y": 1},
{"label": "Backspace", "matrix": [5, 2], "x": 11.5, "y": 1, "w": 1.5},
-
{"label": "Fn", "matrix": [1, 0], "x": 0, "y": 2, "w": 1.75},
{"label": "A", "matrix": [1, 1], "x": 1.75, "y": 2},
{"label": "S", "matrix": [1, 2], "x": 2.75, "y": 2},
@@ -117,9 +160,7 @@
{"label": "J", "matrix": [5, 6], "x": 7.75, "y": 2},
{"label": "K", "matrix": [5, 5], "x": 8.75, "y": 2},
{"label": "L", "matrix": [5, 4], "x": 9.75, "y": 2},
- {"label": "'", "matrix": [4, 1], "x": 10.75, "y": 2},
- {"label": "Enter", "matrix": [5, 3], "x": 11.75, "y": 2, "w": 1.25},
-
+ {"label": "Enter", "matrix": [5, 3], "x": 10.75, "y": 2, "w": 2.25},
{"label": "Shift", "matrix": [2, 0], "x": 0, "y": 3, "w": 1.25},
{"label": "/", "matrix": [2, 1], "x": 1.25, "y": 3},
{"label": "Z", "matrix": [6, 1], "x": 2.25, "y": 3},
@@ -132,7 +173,197 @@
{"label": ",", "matrix": [6, 4], "x": 9.25, "y": 3},
{"label": ".", "matrix": [6, 3], "x": 10.25, "y": 3},
{"label": "Shift", "matrix": [6, 2], "x": 11.25, "y": 3, "w": 1.75},
-
+ {"label": "Ctrl", "matrix": [3, 0], "x": 0, "y": 4, "w": 1.25},
+ {"label": "GUI", "matrix": [5, 1], "x": 1.25, "y": 4},
+ {"label": "Alt", "matrix": [3, 1], "x": 2.25, "y": 4, "w": 1.25},
+ {"label": "Space", "matrix": [3, 4], "x": 3.5, "y": 4, "w": 2.25},
+ {"label": "Space", "matrix": [3, 5], "x": 5.75, "y": 4},
+ {"label": "Space", "matrix": [3, 6], "x": 6.75, "y": 4, "w": 2.75},
+ {"label": "Alt", "matrix": [3, 3], "x": 9.5, "y": 4, "w": 1.25},
+ {"label": "Fn2", "matrix": [3, 2], "x": 10.75, "y": 4},
+ {"label": "Ctrl", "matrix": [2, 2], "x": 11.75, "y": 4, "w": 1.25}
+ ]
+ },
+ "LAYOUT_full_enter_625u_space": {
+ "layout": [
+ {"label": "Mute", "matrix": [4, 2], "x": 12, "y": 0, "encoder": 0},
+ {"label": "Tab", "matrix": [0, 0], "x": 0, "y": 1, "w": 1.5},
+ {"label": "Q", "matrix": [0, 1], "x": 1.5, "y": 1},
+ {"label": "W", "matrix": [0, 2], "x": 2.5, "y": 1},
+ {"label": "E", "matrix": [0, 3], "x": 3.5, "y": 1},
+ {"label": "R", "matrix": [0, 4], "x": 4.5, "y": 1},
+ {"label": "T", "matrix": [0, 5], "x": 5.5, "y": 1},
+ {"label": "Y", "matrix": [0, 6], "x": 6.5, "y": 1},
+ {"label": "U", "matrix": [4, 6], "x": 7.5, "y": 1},
+ {"label": "I", "matrix": [4, 5], "x": 8.5, "y": 1},
+ {"label": "O", "matrix": [4, 4], "x": 9.5, "y": 1},
+ {"label": "P", "matrix": [4, 3], "x": 10.5, "y": 1},
+ {"label": "Backspace", "matrix": [5, 2], "x": 11.5, "y": 1, "w": 1.5},
+ {"label": "Fn", "matrix": [1, 0], "x": 0, "y": 2, "w": 1.75},
+ {"label": "A", "matrix": [1, 1], "x": 1.75, "y": 2},
+ {"label": "S", "matrix": [1, 2], "x": 2.75, "y": 2},
+ {"label": "D", "matrix": [1, 3], "x": 3.75, "y": 2},
+ {"label": "F", "matrix": [1, 4], "x": 4.75, "y": 2},
+ {"label": "G", "matrix": [1, 5], "x": 5.75, "y": 2},
+ {"label": "H", "matrix": [1, 6], "x": 6.75, "y": 2},
+ {"label": "J", "matrix": [5, 6], "x": 7.75, "y": 2},
+ {"label": "K", "matrix": [5, 5], "x": 8.75, "y": 2},
+ {"label": "L", "matrix": [5, 4], "x": 9.75, "y": 2},
+ {"label": "Enter", "matrix": [5, 3], "x": 10.75, "y": 2, "w": 2.25},
+ {"label": "Shift", "matrix": [2, 0], "x": 0, "y": 3, "w": 1.25},
+ {"label": "/", "matrix": [2, 1], "x": 1.25, "y": 3},
+ {"label": "Z", "matrix": [6, 1], "x": 2.25, "y": 3},
+ {"label": "X", "matrix": [2, 3], "x": 3.25, "y": 3},
+ {"label": "C", "matrix": [2, 4], "x": 4.25, "y": 3},
+ {"label": "V", "matrix": [2, 5], "x": 5.25, "y": 3},
+ {"label": "B", "matrix": [2, 6], "x": 6.25, "y": 3},
+ {"label": "N", "matrix": [6, 6], "x": 7.25, "y": 3},
+ {"label": "M", "matrix": [6, 5], "x": 8.25, "y": 3},
+ {"label": ",", "matrix": [6, 4], "x": 9.25, "y": 3},
+ {"label": ".", "matrix": [6, 3], "x": 10.25, "y": 3},
+ {"label": "Shift", "matrix": [6, 2], "x": 11.25, "y": 3, "w": 1.75},
+ {"label": "Ctrl", "matrix": [3, 0], "x": 0, "y": 4, "w": 1.25},
+ {"label": "GUI", "matrix": [5, 1], "x": 1.25, "y": 4},
+ {"label": "Alt", "matrix": [3, 1], "x": 2.25, "y": 4},
+ {"label": "Space", "matrix": [3, 5], "x": 3.25, "y": 4, "w": 6.25},
+ {"label": "Alt", "matrix": [3, 3], "x": 9.5, "y": 4, "w": 1.25},
+ {"label": "Fn2", "matrix": [3, 2], "x": 10.75, "y": 4},
+ {"label": "Ctrl", "matrix": [2, 2], "x": 11.75, "y": 4, "w": 1.25}
+ ]
+ },
+ "LAYOUT_full_enter_full_lshift_625u_space": {
+ "layout": [
+ {"label": "Mute", "matrix": [4, 2], "x": 12, "y": 0, "encoder": 0},
+ {"label": "Tab", "matrix": [0, 0], "x": 0, "y": 1, "w": 1.5},
+ {"label": "Q", "matrix": [0, 1], "x": 1.5, "y": 1},
+ {"label": "W", "matrix": [0, 2], "x": 2.5, "y": 1},
+ {"label": "E", "matrix": [0, 3], "x": 3.5, "y": 1},
+ {"label": "R", "matrix": [0, 4], "x": 4.5, "y": 1},
+ {"label": "T", "matrix": [0, 5], "x": 5.5, "y": 1},
+ {"label": "Y", "matrix": [0, 6], "x": 6.5, "y": 1},
+ {"label": "U", "matrix": [4, 6], "x": 7.5, "y": 1},
+ {"label": "I", "matrix": [4, 5], "x": 8.5, "y": 1},
+ {"label": "O", "matrix": [4, 4], "x": 9.5, "y": 1},
+ {"label": "P", "matrix": [4, 3], "x": 10.5, "y": 1},
+ {"label": "Backspace", "matrix": [5, 2], "x": 11.5, "y": 1, "w": 1.5},
+ {"label": "Fn", "matrix": [1, 0], "x": 0, "y": 2, "w": 1.75},
+ {"label": "A", "matrix": [1, 1], "x": 1.75, "y": 2},
+ {"label": "S", "matrix": [1, 2], "x": 2.75, "y": 2},
+ {"label": "D", "matrix": [1, 3], "x": 3.75, "y": 2},
+ {"label": "F", "matrix": [1, 4], "x": 4.75, "y": 2},
+ {"label": "G", "matrix": [1, 5], "x": 5.75, "y": 2},
+ {"label": "H", "matrix": [1, 6], "x": 6.75, "y": 2},
+ {"label": "J", "matrix": [5, 6], "x": 7.75, "y": 2},
+ {"label": "K", "matrix": [5, 5], "x": 8.75, "y": 2},
+ {"label": "L", "matrix": [5, 4], "x": 9.75, "y": 2},
+ {"label": "Enter", "matrix": [5, 3], "x": 10.75, "y": 2, "w": 2.25},
+ {"label": "Shift", "matrix": [2, 0], "x": 0, "y": 3, "w": 2.25},
+ {"label": "Z", "matrix": [6, 1], "x": 2.25, "y": 3},
+ {"label": "X", "matrix": [2, 3], "x": 3.25, "y": 3},
+ {"label": "C", "matrix": [2, 4], "x": 4.25, "y": 3},
+ {"label": "V", "matrix": [2, 5], "x": 5.25, "y": 3},
+ {"label": "B", "matrix": [2, 6], "x": 6.25, "y": 3},
+ {"label": "N", "matrix": [6, 6], "x": 7.25, "y": 3},
+ {"label": "M", "matrix": [6, 5], "x": 8.25, "y": 3},
+ {"label": ",", "matrix": [6, 4], "x": 9.25, "y": 3},
+ {"label": ".", "matrix": [6, 3], "x": 10.25, "y": 3},
+ {"label": "Shift", "matrix": [6, 2], "x": 11.25, "y": 3, "w": 1.75},
+ {"label": "Ctrl", "matrix": [3, 0], "x": 0, "y": 4, "w": 1.25},
+ {"label": "GUI", "matrix": [5, 1], "x": 1.25, "y": 4},
+ {"label": "Alt", "matrix": [3, 1], "x": 2.25, "y": 4, "w": 1.25},
+ {"label": "Space", "matrix": [3, 5], "x": 3.25, "y": 4, "w": 6.25},
+ {"label": "Alt", "matrix": [3, 3], "x": 9.5, "y": 4, "w": 1.25},
+ {"label": "Fn2", "matrix": [3, 2], "x": 10.75, "y": 4},
+ {"label": "Ctrl", "matrix": [2, 2], "x": 11.75, "y": 4, "w": 1.25}
+ ]
+ },
+ "LAYOUT_full_lshift": {
+ "layout": [
+ {"label": "Mute", "matrix": [4, 2], "x": 12, "y": 0, "encoder": 0},
+ {"label": "Tab", "matrix": [0, 0], "x": 0, "y": 1, "w": 1.5},
+ {"label": "Q", "matrix": [0, 1], "x": 1.5, "y": 1},
+ {"label": "W", "matrix": [0, 2], "x": 2.5, "y": 1},
+ {"label": "E", "matrix": [0, 3], "x": 3.5, "y": 1},
+ {"label": "R", "matrix": [0, 4], "x": 4.5, "y": 1},
+ {"label": "T", "matrix": [0, 5], "x": 5.5, "y": 1},
+ {"label": "Y", "matrix": [0, 6], "x": 6.5, "y": 1},
+ {"label": "U", "matrix": [4, 6], "x": 7.5, "y": 1},
+ {"label": "I", "matrix": [4, 5], "x": 8.5, "y": 1},
+ {"label": "O", "matrix": [4, 4], "x": 9.5, "y": 1},
+ {"label": "P", "matrix": [4, 3], "x": 10.5, "y": 1},
+ {"label": "Backspace", "matrix": [5, 2], "x": 11.5, "y": 1, "w": 1.5},
+ {"label": "Fn", "matrix": [1, 0], "x": 0, "y": 2, "w": 1.75},
+ {"label": "A", "matrix": [1, 1], "x": 1.75, "y": 2},
+ {"label": "S", "matrix": [1, 2], "x": 2.75, "y": 2},
+ {"label": "D", "matrix": [1, 3], "x": 3.75, "y": 2},
+ {"label": "F", "matrix": [1, 4], "x": 4.75, "y": 2},
+ {"label": "G", "matrix": [1, 5], "x": 5.75, "y": 2},
+ {"label": "H", "matrix": [1, 6], "x": 6.75, "y": 2},
+ {"label": "J", "matrix": [5, 6], "x": 7.75, "y": 2},
+ {"label": "K", "matrix": [5, 5], "x": 8.75, "y": 2},
+ {"label": "L", "matrix": [5, 4], "x": 9.75, "y": 2},
+ {"label": "'", "matrix": [4, 1], "x": 10.75, "y": 2},
+ {"label": "Enter", "matrix": [5, 3], "x": 11.75, "y": 2, "w": 1.25},
+ {"label": "Shift", "matrix": [2, 0], "x": 0, "y": 3, "w": 2.25},
+ {"label": "Z", "matrix": [6, 1], "x": 2.25, "y": 3},
+ {"label": "X", "matrix": [2, 3], "x": 3.25, "y": 3},
+ {"label": "C", "matrix": [2, 4], "x": 4.25, "y": 3},
+ {"label": "V", "matrix": [2, 5], "x": 5.25, "y": 3},
+ {"label": "B", "matrix": [2, 6], "x": 6.25, "y": 3},
+ {"label": "N", "matrix": [6, 6], "x": 7.25, "y": 3},
+ {"label": "M", "matrix": [6, 5], "x": 8.25, "y": 3},
+ {"label": ",", "matrix": [6, 4], "x": 9.25, "y": 3},
+ {"label": ".", "matrix": [6, 3], "x": 10.25, "y": 3},
+ {"label": "Shift", "matrix": [6, 2], "x": 11.25, "y": 3, "w": 1.75},
+ {"label": "Ctrl", "matrix": [3, 0], "x": 0, "y": 4, "w": 1.25},
+ {"label": "GUI", "matrix": [5, 1], "x": 1.25, "y": 4},
+ {"label": "Alt", "matrix": [3, 1], "x": 2.25, "y": 4, "w": 1.25},
+ {"label": "Space", "matrix": [3, 4], "x": 3.5, "y": 4, "w": 2.25},
+ {"label": "Space", "matrix": [3, 5], "x": 5.75, "y": 4},
+ {"label": "Space", "matrix": [3, 6], "x": 6.75, "y": 4, "w": 2.75},
+ {"label": "Alt", "matrix": [3, 3], "x": 9.5, "y": 4, "w": 1.25},
+ {"label": "Fn2", "matrix": [3, 2], "x": 10.75, "y": 4},
+ {"label": "Ctrl", "matrix": [2, 2], "x": 11.75, "y": 4, "w": 1.25}
+ ]
+ },
+ "LAYOUT_full_lshift_625u_space": {
+ "layout": [
+ {"label": "Mute", "matrix": [4, 2], "x": 12, "y": 0, "encoder": 0},
+ {"label": "Tab", "matrix": [0, 0], "x": 0, "y": 1, "w": 1.5},
+ {"label": "Q", "matrix": [0, 1], "x": 1.5, "y": 1},
+ {"label": "W", "matrix": [0, 2], "x": 2.5, "y": 1},
+ {"label": "E", "matrix": [0, 3], "x": 3.5, "y": 1},
+ {"label": "R", "matrix": [0, 4], "x": 4.5, "y": 1},
+ {"label": "T", "matrix": [0, 5], "x": 5.5, "y": 1},
+ {"label": "Y", "matrix": [0, 6], "x": 6.5, "y": 1},
+ {"label": "U", "matrix": [4, 6], "x": 7.5, "y": 1},
+ {"label": "I", "matrix": [4, 5], "x": 8.5, "y": 1},
+ {"label": "O", "matrix": [4, 4], "x": 9.5, "y": 1},
+ {"label": "P", "matrix": [4, 3], "x": 10.5, "y": 1},
+ {"label": "Backspace", "matrix": [5, 2], "x": 11.5, "y": 1, "w": 1.5},
+ {"label": "Fn", "matrix": [1, 0], "x": 0, "y": 2, "w": 1.75},
+ {"label": "A", "matrix": [1, 1], "x": 1.75, "y": 2},
+ {"label": "S", "matrix": [1, 2], "x": 2.75, "y": 2},
+ {"label": "D", "matrix": [1, 3], "x": 3.75, "y": 2},
+ {"label": "F", "matrix": [1, 4], "x": 4.75, "y": 2},
+ {"label": "G", "matrix": [1, 5], "x": 5.75, "y": 2},
+ {"label": "H", "matrix": [1, 6], "x": 6.75, "y": 2},
+ {"label": "J", "matrix": [5, 6], "x": 7.75, "y": 2},
+ {"label": "K", "matrix": [5, 5], "x": 8.75, "y": 2},
+ {"label": "L", "matrix": [5, 4], "x": 9.75, "y": 2},
+ {"label": "'", "matrix": [4, 1], "x": 10.75, "y": 2},
+ {"label": "Enter", "matrix": [5, 3], "x": 11.75, "y": 2, "w": 1.25},
+ {"label": "Shift", "matrix": [2, 0], "x": 0, "y": 3, "w": 2.25},
+ {"label": "Z", "matrix": [6, 1], "x": 2.25, "y": 3},
+ {"label": "X", "matrix": [2, 3], "x": 3.25, "y": 3},
+ {"label": "C", "matrix": [2, 4], "x": 4.25, "y": 3},
+ {"label": "V", "matrix": [2, 5], "x": 5.25, "y": 3},
+ {"label": "B", "matrix": [2, 6], "x": 6.25, "y": 3},
+ {"label": "N", "matrix": [6, 6], "x": 7.25, "y": 3},
+ {"label": "M", "matrix": [6, 5], "x": 8.25, "y": 3},
+ {"label": ",", "matrix": [6, 4], "x": 9.25, "y": 3},
+ {"label": ".", "matrix": [6, 3], "x": 10.25, "y": 3},
+ {"label": "Shift", "matrix": [6, 2], "x": 11.25, "y": 3, "w": 1.75},
{"label": "Ctrl", "matrix": [3, 0], "x": 0, "y": 4, "w": 1.25},
{"label": "GUI", "matrix": [5, 1], "x": 1.25, "y": 4},
{"label": "Alt", "matrix": [3, 1], "x": 2.25, "y": 4},
@@ -141,6 +372,54 @@
{"label": "Fn2", "matrix": [3, 2], "x": 10.75, "y": 4},
{"label": "Ctrl", "matrix": [2, 2], "x": 11.75, "y": 4, "w": 1.25}
]
+ },
+ "LAYOUT_full_lshift_full_enter": {
+ "layout": [
+ {"label": "Mute", "matrix": [4, 2], "x": 12, "y": 0, "encoder": 0},
+ {"label": "Tab", "matrix": [0, 0], "x": 0, "y": 1, "w": 1.5},
+ {"label": "Q", "matrix": [0, 1], "x": 1.5, "y": 1},
+ {"label": "W", "matrix": [0, 2], "x": 2.5, "y": 1},
+ {"label": "E", "matrix": [0, 3], "x": 3.5, "y": 1},
+ {"label": "R", "matrix": [0, 4], "x": 4.5, "y": 1},
+ {"label": "T", "matrix": [0, 5], "x": 5.5, "y": 1},
+ {"label": "Y", "matrix": [0, 6], "x": 6.5, "y": 1},
+ {"label": "U", "matrix": [4, 6], "x": 7.5, "y": 1},
+ {"label": "I", "matrix": [4, 5], "x": 8.5, "y": 1},
+ {"label": "O", "matrix": [4, 4], "x": 9.5, "y": 1},
+ {"label": "P", "matrix": [4, 3], "x": 10.5, "y": 1},
+ {"label": "Backspace", "matrix": [5, 2], "x": 11.5, "y": 1, "w": 1.5},
+ {"label": "Fn", "matrix": [1, 0], "x": 0, "y": 2, "w": 1.75},
+ {"label": "A", "matrix": [1, 1], "x": 1.75, "y": 2},
+ {"label": "S", "matrix": [1, 2], "x": 2.75, "y": 2},
+ {"label": "D", "matrix": [1, 3], "x": 3.75, "y": 2},
+ {"label": "F", "matrix": [1, 4], "x": 4.75, "y": 2},
+ {"label": "G", "matrix": [1, 5], "x": 5.75, "y": 2},
+ {"label": "H", "matrix": [1, 6], "x": 6.75, "y": 2},
+ {"label": "J", "matrix": [5, 6], "x": 7.75, "y": 2},
+ {"label": "K", "matrix": [5, 5], "x": 8.75, "y": 2},
+ {"label": "L", "matrix": [5, 4], "x": 9.75, "y": 2},
+ {"label": "Enter", "matrix": [5, 3], "x": 10.75, "y": 2, "w": 2.25},
+ {"label": "Shift", "matrix": [2, 0], "x": 0, "y": 3, "w": 2.25},
+ {"label": "Z", "matrix": [6, 1], "x": 2.25, "y": 3},
+ {"label": "X", "matrix": [2, 3], "x": 3.25, "y": 3},
+ {"label": "C", "matrix": [2, 4], "x": 4.25, "y": 3},
+ {"label": "V", "matrix": [2, 5], "x": 5.25, "y": 3},
+ {"label": "B", "matrix": [2, 6], "x": 6.25, "y": 3},
+ {"label": "N", "matrix": [6, 6], "x": 7.25, "y": 3},
+ {"label": "M", "matrix": [6, 5], "x": 8.25, "y": 3},
+ {"label": ",", "matrix": [6, 4], "x": 9.25, "y": 3},
+ {"label": ".", "matrix": [6, 3], "x": 10.25, "y": 3},
+ {"label": "Shift", "matrix": [6, 2], "x": 11.25, "y": 3, "w": 1.75},
+ {"label": "Ctrl", "matrix": [3, 0], "x": 0, "y": 4, "w": 1.25},
+ {"label": "GUI", "matrix": [5, 1], "x": 1.25, "y": 4},
+ {"label": "Alt", "matrix": [3, 1], "x": 2.25, "y": 4, "w": 1.25},
+ {"label": "Space", "matrix": [3, 4], "x": 3.5, "y": 4, "w": 2.25},
+ {"label": "Space", "matrix": [3, 5], "x": 5.75, "y": 4},
+ {"label": "Space", "matrix": [3, 6], "x": 6.75, "y": 4, "w": 2.75},
+ {"label": "Alt", "matrix": [3, 3], "x": 9.5, "y": 4, "w": 1.25},
+ {"label": "Fn2", "matrix": [3, 2], "x": 10.75, "y": 4},
+ {"label": "Ctrl", "matrix": [2, 2], "x": 11.75, "y": 4, "w": 1.25}
+ ]
}
}
}
diff --git a/keyboards/mechwild/mercutio/keymaps/default/keymap.c b/keyboards/mechwild/mercutio/keymaps/default/keymap.c
index 9d5d174c60..bf6b96b8be 100644
--- a/keyboards/mechwild/mercutio/keymaps/default/keymap.c
+++ b/keyboards/mechwild/mercutio/keymaps/default/keymap.c
@@ -26,24 +26,17 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[1] = LAYOUT_all(
KC_TRNS,
- KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL,
- KC_TRNS, KC_TRNS, KC_GRV, KC_BSLS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LBRC, KC_RBRC, KC_SCLN, KC_TRNS, KC_QUOT,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MINS, KC_EQL, KC_SLSH, KC_UP,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_TRNS, KC_END, KC_LEFT, KC_DOWN, KC_RIGHT ),
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL,
+ KC_TRNS, KC_TRNS, KC_GRV, KC_BSLS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LBRC, KC_RBRC, KC_SCLN, KC_TRNS, KC_QUOT,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MINS, KC_EQL, KC_SLSH, KC_UP,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_TRNS, KC_END, KC_LEFT, KC_DOWN, KC_RIGHT ),
[2] = LAYOUT_all(
KC_TRNS,
- KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_TRNS,
- KC_CAPS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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_all(
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS )
+ KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_TRNS,
+ KC_CAPS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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 ENCODER_MAP_ENABLE
@@ -51,6 +44,5 @@ const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
[0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
[1] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
[2] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
- [3] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
};
#endif
diff --git a/keyboards/mechwild/mercutio/keymaps/default_625u_space/keymap.c b/keyboards/mechwild/mercutio/keymaps/default_625u_space/keymap.c
index a4cd13134c..b76479a5b9 100644
--- a/keyboards/mechwild/mercutio/keymaps/default_625u_space/keymap.c
+++ b/keyboards/mechwild/mercutio/keymaps/default_625u_space/keymap.c
@@ -36,13 +36,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______,
KC_CAPS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______ ),
-
- [3] = LAYOUT_625u_space(
- _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______ )
};
@@ -50,7 +43,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
[0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
[1] = { ENCODER_CCW_CW(_______, _______) },
- [2] = { ENCODER_CCW_CW(_______, _______) },
- [3] = { ENCODER_CCW_CW(_______, _______) },
+ [2] = { ENCODER_CCW_CW(_______, _______) }
};
#endif
diff --git a/keyboards/mechwild/mokulua/mirrored/keyboard.json b/keyboards/mechwild/mokulua/mirrored/keyboard.json
index dc66c0c53a..e76314f869 100644
--- a/keyboards/mechwild/mokulua/mirrored/keyboard.json
+++ b/keyboards/mechwild/mokulua/mirrored/keyboard.json
@@ -61,8 +61,7 @@
"ws2812": {
"pin": "B6"
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layout_aliases": {
"LAYOUT_mirrored": "LAYOUT"
},
diff --git a/keyboards/mechwild/mokulua/standard/keyboard.json b/keyboards/mechwild/mokulua/standard/keyboard.json
index f3eccd921f..e9c81c7e6d 100644
--- a/keyboards/mechwild/mokulua/standard/keyboard.json
+++ b/keyboards/mechwild/mokulua/standard/keyboard.json
@@ -61,8 +61,7 @@
"ws2812": {
"pin": "B6"
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layout_aliases": {
"LAYOUT_standard": "LAYOUT"
},
diff --git a/keyboards/mechwild/murphpad/keyboard.json b/keyboards/mechwild/murphpad/keyboard.json
index 8ab90bd937..a79810afd7 100644
--- a/keyboards/mechwild/murphpad/keyboard.json
+++ b/keyboards/mechwild/murphpad/keyboard.json
@@ -59,8 +59,7 @@
"ws2812": {
"pin": "F4"
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/mechwild/sugarglider/rules.mk b/keyboards/mechwild/sugarglider/rules.mk
index a01a95a868..73a141ac91 100644
--- a/keyboards/mechwild/sugarglider/rules.mk
+++ b/keyboards/mechwild/sugarglider/rules.mk
@@ -7,5 +7,3 @@ CUSTOM_MATRIX = lite
VPATH += drivers/gpio
SRC += mcp23018.c matrix.c
I2C_DRIVER_REQUIRED = yes
-
-DEFAULT_FOLDER = mechwild/sugarglider/wide_oled
diff --git a/keyboards/mechwild/sugarglider/wide_oled/rules.mk b/keyboards/mechwild/sugarglider/wide_oled/rules.mk
index 23e6cab873..a77f1a8af2 100644
--- a/keyboards/mechwild/sugarglider/wide_oled/rules.mk
+++ b/keyboards/mechwild/sugarglider/wide_oled/rules.mk
@@ -2,5 +2,3 @@
# change yes to no to disable
#
WIDE_OLED_ENABLE = yes
-
-DEFAULT_FOLDER = mechwild/sugarglider/wide_oled/f401
diff --git a/keyboards/meow48/keyboard.json b/keyboards/meow48/keyboard.json
index 7861555648..f3b1453547 100644
--- a/keyboards/meow48/keyboard.json
+++ b/keyboards/meow48/keyboard.json
@@ -43,8 +43,7 @@
"rows": ["D4", "C6", "D7", "E6", "B4", "B5", "F4", "F5"]
},
"diode_direction": "COL2ROW",
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/merge/uc1/keyboard.json b/keyboards/merge/uc1/keyboard.json
index 496b9a6b5f..4d0393399f 100644
--- a/keyboards/merge/uc1/keyboard.json
+++ b/keyboards/merge/uc1/keyboard.json
@@ -48,8 +48,7 @@
{"pin_a": "F5", "pin_b": "F6"}
]
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/minimacro5/keyboard.json b/keyboards/minimacro5/keyboard.json
index 033bc1e85a..b868a3b058 100644
--- a/keyboards/minimacro5/keyboard.json
+++ b/keyboards/minimacro5/keyboard.json
@@ -34,8 +34,7 @@
{"pin_a": "C6", "pin_b": "E6", "resolution": 2}
]
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"features": {
"bootmagic": false,
"encoder": true,
diff --git a/keyboards/mint60/keyboard.json b/keyboards/mint60/keyboard.json
index 1bb54aebd9..9e581ce7b8 100644
--- a/keyboards/mint60/keyboard.json
+++ b/keyboards/mint60/keyboard.json
@@ -51,8 +51,7 @@
"ws2812": {
"pin": "D3"
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/mixi/keyboard.json b/keyboards/mixi/keyboard.json
index a08d54b883..bde1eb6390 100644
--- a/keyboards/mixi/keyboard.json
+++ b/keyboards/mixi/keyboard.json
@@ -35,8 +35,7 @@
{"pin_a": "B1", "pin_b": "B3"}
]
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"features": {
"bootmagic": false,
"command": true,
diff --git a/keyboards/montsinger/rewind/keyboard.json b/keyboards/montsinger/rewind/keyboard.json
index ddb6ab6496..46468d4c67 100644
--- a/keyboards/montsinger/rewind/keyboard.json
+++ b/keyboards/montsinger/rewind/keyboard.json
@@ -27,8 +27,7 @@
"rows": ["B5", "B4", "D2", "D3", "B2"]
},
"diode_direction": "ROW2COL",
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT_ortho_5x10": {
"layout": [
diff --git a/keyboards/morizon/keyboard.json b/keyboards/morizon/keyboard.json
index 13999e5753..1b3dba08d4 100644
--- a/keyboards/morizon/keyboard.json
+++ b/keyboards/morizon/keyboard.json
@@ -26,8 +26,7 @@
"rows": ["D3", "D2", "D1", "D0", "D4", "C6", "D7", "E6", "B4", "B5"]
},
"diode_direction": "COL2ROW",
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/mountainblocks/mb17/keyboard.json b/keyboards/mountainblocks/mb17/keyboard.json
index 9103f7775f..d8ef466def 100644
--- a/keyboards/mountainblocks/mb17/keyboard.json
+++ b/keyboards/mountainblocks/mb17/keyboard.json
@@ -26,8 +26,7 @@
"rows": ["F4", "B1", "B3", "B2", "B6"]
},
"diode_direction": "COL2ROW",
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT_numpad_5x4": {
"layout": [
diff --git a/keyboards/nacly/sodium42/keyboard.json b/keyboards/nacly/sodium42/keyboard.json
index a1d7b65ab3..97b6a837c5 100644
--- a/keyboards/nacly/sodium42/keyboard.json
+++ b/keyboards/nacly/sodium42/keyboard.json
@@ -35,8 +35,7 @@
"pin": "D3"
}
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/nacly/sodium50/keyboard.json b/keyboards/nacly/sodium50/keyboard.json
index e41495755f..dd1604c480 100644
--- a/keyboards/nacly/sodium50/keyboard.json
+++ b/keyboards/nacly/sodium50/keyboard.json
@@ -35,8 +35,7 @@
"pin": "D3"
}
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/nacly/sodium62/keyboard.json b/keyboards/nacly/sodium62/keyboard.json
index ab16bf45fa..64cb488159 100644
--- a/keyboards/nacly/sodium62/keyboard.json
+++ b/keyboards/nacly/sodium62/keyboard.json
@@ -36,8 +36,7 @@
"pin": "D3"
}
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/nacly/splitreus62/keyboard.json b/keyboards/nacly/splitreus62/keyboard.json
index d356578690..567cb6d6db 100644
--- a/keyboards/nacly/splitreus62/keyboard.json
+++ b/keyboards/nacly/splitreus62/keyboard.json
@@ -42,8 +42,7 @@
"ws2812": {
"pin": "B1"
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/nacly/ua62/keyboard.json b/keyboards/nacly/ua62/keyboard.json
index 0bf01308f5..85fbbd431c 100644
--- a/keyboards/nacly/ua62/keyboard.json
+++ b/keyboards/nacly/ua62/keyboard.json
@@ -26,8 +26,7 @@
"rows": ["D3", "D2", "D1", "D0", "D4"]
},
"diode_direction": "ROW2COL",
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/newgame40/keyboard.json b/keyboards/newgame40/keyboard.json
index ad59f2bcd0..62c567cb40 100644
--- a/keyboards/newgame40/keyboard.json
+++ b/keyboards/newgame40/keyboard.json
@@ -39,8 +39,7 @@
"ws2812": {
"pin": "F6"
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"community_layouts": ["ortho_4x10"],
"layouts": {
"LAYOUT_ortho_4x10": {
diff --git a/keyboards/nightly_boards/n9/keyboard.json b/keyboards/nightly_boards/n9/keyboard.json
index e3d8a3be84..f99ff31258 100644
--- a/keyboards/nightly_boards/n9/keyboard.json
+++ b/keyboards/nightly_boards/n9/keyboard.json
@@ -46,8 +46,7 @@
"ws2812": {
"pin": "F5"
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/nightly_boards/ph_arisu/keyboard.json b/keyboards/nightly_boards/ph_arisu/keyboard.json
index afcbdd905a..7d64536c1a 100644
--- a/keyboards/nightly_boards/ph_arisu/keyboard.json
+++ b/keyboards/nightly_boards/ph_arisu/keyboard.json
@@ -25,8 +25,7 @@
"rows": ["D3", "D2", "D1", "D0", "D4", "C6", "D7", "E6", "B4", "B5"]
},
"diode_direction": "COL2ROW",
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/novelkeys/nk65/rules.mk b/keyboards/novelkeys/nk65/rules.mk
index c0d789a5a6..3b7a32713c 100755
--- a/keyboards/novelkeys/nk65/rules.mk
+++ b/keyboards/novelkeys/nk65/rules.mk
@@ -11,5 +11,3 @@ SRC = keyboards/wilba_tech/wt_main.c \
keyboards/wilba_tech/wt_rgb_backlight.c \
drivers/led/issi/is31fl3733.c \
quantum/color.c
-
-DEFAULT_FOLDER = novelkeys/nk65/base
diff --git a/keyboards/np12/keyboard.json b/keyboards/np12/keyboard.json
index 435f2db3b7..d12307f117 100644
--- a/keyboards/np12/keyboard.json
+++ b/keyboards/np12/keyboard.json
@@ -25,8 +25,7 @@
{"pin_a": "F4", "pin_b": "F5"}
]
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/numatreus/keyboard.json b/keyboards/numatreus/keyboard.json
index 3441a769e1..5a9df0f429 100644
--- a/keyboards/numatreus/keyboard.json
+++ b/keyboards/numatreus/keyboard.json
@@ -33,8 +33,7 @@
"led_count": 6,
"max_brightness": 200
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/obosob/arch_36/keyboard.json b/keyboards/obosob/arch_36/keyboard.json
index 791c08d3f1..661d335daa 100644
--- a/keyboards/obosob/arch_36/keyboard.json
+++ b/keyboards/obosob/arch_36/keyboard.json
@@ -34,8 +34,7 @@
"ws2812": {
"pin": "D3"
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"community_layouts": ["split_3x5_3"],
"layouts": {
"LAYOUT_split_3x5_3": {
diff --git a/keyboards/obosob/steal_this_keyboard/keyboard.json b/keyboards/obosob/steal_this_keyboard/keyboard.json
index 4865f54283..60abd1ecf9 100644
--- a/keyboards/obosob/steal_this_keyboard/keyboard.json
+++ b/keyboards/obosob/steal_this_keyboard/keyboard.json
@@ -8,8 +8,7 @@
"pid": "0x50AD",
"device_version": "0.0.1"
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"features": {
"bootmagic": false,
"extrakey": true,
diff --git a/keyboards/ocean/addon/keyboard.json b/keyboards/ocean/addon/keyboard.json
index 0793a7082a..671c04cba0 100644
--- a/keyboards/ocean/addon/keyboard.json
+++ b/keyboards/ocean/addon/keyboard.json
@@ -19,8 +19,7 @@
"rows": ["C6", "D7", "E6", "B4", "B5"]
},
"diode_direction": "ROW2COL",
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/ocean/gin_v2/keyboard.json b/keyboards/ocean/gin_v2/keyboard.json
index d20aa5916f..08a7f29b8c 100644
--- a/keyboards/ocean/gin_v2/keyboard.json
+++ b/keyboards/ocean/gin_v2/keyboard.json
@@ -18,8 +18,7 @@
"rows": ["D1", "D0", "D4", "C6", "D7", "E6", "B4", "B5"]
},
"diode_direction": "ROW2COL",
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/ocean/slamz/keyboard.json b/keyboards/ocean/slamz/keyboard.json
index cf3ed54426..65bc91eebe 100644
--- a/keyboards/ocean/slamz/keyboard.json
+++ b/keyboards/ocean/slamz/keyboard.json
@@ -18,8 +18,7 @@
"rows": ["D2", "D1", "D0", "D4"]
},
"diode_direction": "ROW2COL",
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/ocean/stealth/keyboard.json b/keyboards/ocean/stealth/keyboard.json
index a15d2fffac..0f0070de63 100644
--- a/keyboards/ocean/stealth/keyboard.json
+++ b/keyboards/ocean/stealth/keyboard.json
@@ -18,8 +18,7 @@
"rows": ["D1"]
},
"diode_direction": "ROW2COL",
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/ocean/sus/keyboard.json b/keyboards/ocean/sus/keyboard.json
index 3ac426f6aa..ebbb247035 100644
--- a/keyboards/ocean/sus/keyboard.json
+++ b/keyboards/ocean/sus/keyboard.json
@@ -19,8 +19,7 @@
"rows": ["B5", "B4", "E6", "D7"]
},
"diode_direction": "ROW2COL",
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT_ortho_4x3": {
"layout": [
diff --git a/keyboards/ocean/wang_ergo/keyboard.json b/keyboards/ocean/wang_ergo/keyboard.json
index d552028bc6..e32f21d802 100644
--- a/keyboards/ocean/wang_ergo/keyboard.json
+++ b/keyboards/ocean/wang_ergo/keyboard.json
@@ -18,8 +18,7 @@
"rows": ["F4", "F5", "F6", "F7"]
},
"diode_direction": "ROW2COL",
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layout_aliases": {
"LAYOUT": "LAYOUT_all"
},
diff --git a/keyboards/ocean/wang_v2/keyboard.json b/keyboards/ocean/wang_v2/keyboard.json
index 79ef6b3697..e64345db2f 100644
--- a/keyboards/ocean/wang_v2/keyboard.json
+++ b/keyboards/ocean/wang_v2/keyboard.json
@@ -18,8 +18,7 @@
"rows": ["F4", "F5", "F6", "F7"]
},
"diode_direction": "ROW2COL",
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/ocean/yuri/keyboard.json b/keyboards/ocean/yuri/keyboard.json
index aeb4cd895d..fee89b9de7 100644
--- a/keyboards/ocean/yuri/keyboard.json
+++ b/keyboards/ocean/yuri/keyboard.json
@@ -19,8 +19,7 @@
"rows": ["F4", "F5", "F6", "F7"]
},
"diode_direction": "ROW2COL",
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/om60/keyboard.json b/keyboards/om60/keyboard.json
index 08eb898b01..d91f28f8af 100644
--- a/keyboards/om60/keyboard.json
+++ b/keyboards/om60/keyboard.json
@@ -49,8 +49,7 @@
"ws2812": {
"pin": "D3"
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/omkbd/ergodash/info.json b/keyboards/omkbd/ergodash/info.json
index 306a3970bb..18138dd692 100644
--- a/keyboards/omkbd/ergodash/info.json
+++ b/keyboards/omkbd/ergodash/info.json
@@ -1,6 +1,5 @@
{
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"split": {
"enabled": true
}
diff --git a/keyboards/omkbd/runner3680/info.json b/keyboards/omkbd/runner3680/info.json
index c626b2e3b4..e06cb1243c 100644
--- a/keyboards/omkbd/runner3680/info.json
+++ b/keyboards/omkbd/runner3680/info.json
@@ -1,6 +1,5 @@
{
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"features": {
"bootmagic": false,
"extrakey": false,
diff --git a/keyboards/orthodox/rev1/keyboard.json b/keyboards/orthodox/rev1/keyboard.json
index 0444009f2b..bd08fc19d2 100644
--- a/keyboards/orthodox/rev1/keyboard.json
+++ b/keyboards/orthodox/rev1/keyboard.json
@@ -17,8 +17,7 @@
"pin": "D0"
}
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/orthodox/rev3/keyboard.json b/keyboards/orthodox/rev3/keyboard.json
index 61d8281f55..411df12f98 100644
--- a/keyboards/orthodox/rev3/keyboard.json
+++ b/keyboards/orthodox/rev3/keyboard.json
@@ -17,8 +17,7 @@
"pin": "D0"
}
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/pabile/p18/keyboard.json b/keyboards/pabile/p18/keyboard.json
index bf3380038a..12b7006680 100644
--- a/keyboards/pabile/p18/keyboard.json
+++ b/keyboards/pabile/p18/keyboard.json
@@ -27,8 +27,7 @@
{"pin_a": "F6", "pin_b": "F5"}
]
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/pabile/p20/ver1/keyboard.json b/keyboards/pabile/p20/ver1/keyboard.json
index 3e3a16a6d9..2cc5fed1ee 100644
--- a/keyboards/pabile/p20/ver1/keyboard.json
+++ b/keyboards/pabile/p20/ver1/keyboard.json
@@ -22,8 +22,7 @@
{"pin_a": "F7", "pin_b": "B1"}
]
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT_numpad_5x4": {
"layout": [
diff --git a/keyboards/pabile/p20/ver2/keyboard.json b/keyboards/pabile/p20/ver2/keyboard.json
index cdacbf3aec..b82959af7a 100644
--- a/keyboards/pabile/p20/ver2/keyboard.json
+++ b/keyboards/pabile/p20/ver2/keyboard.json
@@ -15,8 +15,7 @@
"rows": ["C6", "D7", "E6", "B4", "B5"]
},
"diode_direction": "COL2ROW",
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT_numpad_5x4": {
"layout": [
diff --git a/keyboards/pabile/p40/keyboard.json b/keyboards/pabile/p40/keyboard.json
index fbe4896687..de4eca82ac 100644
--- a/keyboards/pabile/p40/keyboard.json
+++ b/keyboards/pabile/p40/keyboard.json
@@ -20,8 +20,7 @@
"rows": ["F6", "B3", "B2", "B6"]
},
"diode_direction": "COL2ROW",
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"community_layouts": ["ortho_4x10"],
"layouts": {
"LAYOUT_ortho_4x10": {
diff --git a/keyboards/pabile/p40_ortho/keyboard.json b/keyboards/pabile/p40_ortho/keyboard.json
index 3e5d9ea504..838c58235c 100644
--- a/keyboards/pabile/p40_ortho/keyboard.json
+++ b/keyboards/pabile/p40_ortho/keyboard.json
@@ -19,8 +19,7 @@
"rows": ["D1", "D0", "F4", "F5"]
},
"diode_direction": "COL2ROW",
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT_ortho_4x10": {
"layout": [
diff --git a/keyboards/pabile/p42/keyboard.json b/keyboards/pabile/p42/keyboard.json
index 42c8964332..8311becdfc 100644
--- a/keyboards/pabile/p42/keyboard.json
+++ b/keyboards/pabile/p42/keyboard.json
@@ -20,8 +20,7 @@
"rows": ["D1", "D0", "D4", "C6"]
},
"diode_direction": "COL2ROW",
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/peej/tripel/info.json b/keyboards/peej/tripel/info.json
index 7a5c12461a..e716e20cfe 100644
--- a/keyboards/peej/tripel/info.json
+++ b/keyboards/peej/tripel/info.json
@@ -20,6 +20,5 @@
"rows": ["C6", "D4", "D0", "B4", "E6", "D7", "D1", "D2", "D3"]
},
"diode_direction": "COL2ROW",
- "processor": "atmega32u4",
- "bootloader": "caterina"
+ "development_board": "promicro"
}
diff --git a/keyboards/peranekofactory/tone/rev1/keyboard.json b/keyboards/peranekofactory/tone/rev1/keyboard.json
index fb7b41b27a..9e9f7013c2 100644
--- a/keyboards/peranekofactory/tone/rev1/keyboard.json
+++ b/keyboards/peranekofactory/tone/rev1/keyboard.json
@@ -27,8 +27,7 @@
},
"tap_keycode_delay": 100
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"matrix_pins": {
"direct": [
["D4", "C6", "D7", "E6", "F6", "F7", "B1", "B3"]
diff --git a/keyboards/peranekofactory/tone/rev2/keyboard.json b/keyboards/peranekofactory/tone/rev2/keyboard.json
index fb7b41b27a..9e9f7013c2 100644
--- a/keyboards/peranekofactory/tone/rev2/keyboard.json
+++ b/keyboards/peranekofactory/tone/rev2/keyboard.json
@@ -27,8 +27,7 @@
},
"tap_keycode_delay": 100
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"matrix_pins": {
"direct": [
["D4", "C6", "D7", "E6", "F6", "F7", "B1", "B3"]
diff --git a/keyboards/pica40/rev1/keyboard.json b/keyboards/pica40/rev1/keyboard.json
index 85c2221a13..a616a2e497 100644
--- a/keyboards/pica40/rev1/keyboard.json
+++ b/keyboards/pica40/rev1/keyboard.json
@@ -1,6 +1,5 @@
{
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"diode_direction": "COL2ROW",
"matrix_pins": {
"cols": ["D2", "B5", "B4", "E6", "D7"],
diff --git a/keyboards/pimentoso/paddino02/rev1/keyboard.json b/keyboards/pimentoso/paddino02/rev1/keyboard.json
index b0fddff9d3..30ac2a9a06 100644
--- a/keyboards/pimentoso/paddino02/rev1/keyboard.json
+++ b/keyboards/pimentoso/paddino02/rev1/keyboard.json
@@ -24,8 +24,7 @@
"rows": ["D1", "D0", "D4"]
},
"diode_direction": "ROW2COL",
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/pimentoso/paddino02/rev2/left/keyboard.json b/keyboards/pimentoso/paddino02/rev2/left/keyboard.json
index f89552220d..ff9687b2b1 100644
--- a/keyboards/pimentoso/paddino02/rev2/left/keyboard.json
+++ b/keyboards/pimentoso/paddino02/rev2/left/keyboard.json
@@ -24,8 +24,7 @@
"rows": ["D0", "D4", "D1"]
},
"diode_direction": "COL2ROW",
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/pimentoso/paddino02/rev2/right/keyboard.json b/keyboards/pimentoso/paddino02/rev2/right/keyboard.json
index 1148564a05..006eca8794 100644
--- a/keyboards/pimentoso/paddino02/rev2/right/keyboard.json
+++ b/keyboards/pimentoso/paddino02/rev2/right/keyboard.json
@@ -24,8 +24,7 @@
"rows": ["F4", "F6", "F5"]
},
"diode_direction": "COL2ROW",
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/pimentoso/touhoupad/keyboard.json b/keyboards/pimentoso/touhoupad/keyboard.json
index fed01eb5a6..5407d49e59 100644
--- a/keyboards/pimentoso/touhoupad/keyboard.json
+++ b/keyboards/pimentoso/touhoupad/keyboard.json
@@ -35,8 +35,7 @@
"rows": ["D4"]
},
"diode_direction": "COL2ROW",
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/pinky/3/keyboard.json b/keyboards/pinky/3/keyboard.json
index f02b6c72d0..9ca44c26f3 100644
--- a/keyboards/pinky/3/keyboard.json
+++ b/keyboards/pinky/3/keyboard.json
@@ -17,8 +17,7 @@
"pin": "D2"
}
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layout_aliases": {
"LAYOUT": "LAYOUT_split_3x7_4"
},
diff --git a/keyboards/pinky/4/keyboard.json b/keyboards/pinky/4/keyboard.json
index 68b1dcb14c..bc651638ac 100644
--- a/keyboards/pinky/4/keyboard.json
+++ b/keyboards/pinky/4/keyboard.json
@@ -17,8 +17,7 @@
"pin": "D2"
}
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layout_aliases": {
"LAYOUT": "LAYOUT_split_4x7_4"
},
diff --git a/keyboards/plum47/keyboard.json b/keyboards/plum47/keyboard.json
index 2c6e009300..00efab2c28 100644
--- a/keyboards/plum47/keyboard.json
+++ b/keyboards/plum47/keyboard.json
@@ -2,7 +2,7 @@
"manufacturer": "Masayuki Takagi",
"keyboard_name": "plum47",
"maintainer": "awh-tokyo",
- "bootloader": "caterina",
+ "development_board": "promicro",
"diode_direction": "COL2ROW",
"features": {
"bootmagic": true,
@@ -14,7 +14,6 @@
"cols": ["F4", "F5", "F6", "F7", "B1", "B3", "B2", "B6", "B5", "B4", "E6", "D7"],
"rows": ["D1", "D0", "D4", "C6"]
},
- "processor": "atmega32u4",
"url": "ihttps://github.com/takagi/plum47_buildguide",
"usb": {
"device_version": "1.0.0",
diff --git a/keyboards/psuieee/pluto12/keyboard.json b/keyboards/psuieee/pluto12/keyboard.json
index 02db5bc0a1..815c3b5949 100644
--- a/keyboards/psuieee/pluto12/keyboard.json
+++ b/keyboards/psuieee/pluto12/keyboard.json
@@ -31,8 +31,7 @@
{"pin_a": "B6", "pin_b": "B2"}
]
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/pteron36/keyboard.json b/keyboards/pteron36/keyboard.json
index 783e1e8db0..5daca888e9 100644
--- a/keyboards/pteron36/keyboard.json
+++ b/keyboards/pteron36/keyboard.json
@@ -54,8 +54,7 @@
"ws2812": {
"pin": "B6"
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"community_layouts": ["split_3x5_3"],
"layouts": {
"LAYOUT_split_3x5_3": {
diff --git a/keyboards/rainkeebs/rainkeeb/keyboard.json b/keyboards/rainkeebs/rainkeeb/keyboard.json
index 2d4a2ac5b9..b14ea45dde 100644
--- a/keyboards/rainkeebs/rainkeeb/keyboard.json
+++ b/keyboards/rainkeebs/rainkeeb/keyboard.json
@@ -32,8 +32,7 @@
{"pin_a": "B2", "pin_b": "B6"}
]
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/rart/rart4x4/keyboard.json b/keyboards/rart/rart4x4/keyboard.json
index a18e4a4606..13d7ca3345 100644
--- a/keyboards/rart/rart4x4/keyboard.json
+++ b/keyboards/rart/rart4x4/keyboard.json
@@ -54,8 +54,7 @@
{"pin_a": "D7", "pin_b": "E6"}
]
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"community_layouts": ["ortho_4x4"],
"layouts": {
"LAYOUT_ortho_4x4": {
diff --git a/keyboards/rart/rart67m/keyboard.json b/keyboards/rart/rart67m/keyboard.json
index bade7834fd..a9ab73ce57 100644
--- a/keyboards/rart/rart67m/keyboard.json
+++ b/keyboards/rart/rart67m/keyboard.json
@@ -26,8 +26,7 @@
"rows": ["D3", "D2", "D4", "F6", "B3", "B4", "B2", "B5"]
},
"diode_direction": "COL2ROW",
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layout_aliases": {
"LAYOUT_all": "LAYOUT"
},
diff --git a/keyboards/rart/rartlite/keyboard.json b/keyboards/rart/rartlite/keyboard.json
index df9180d622..48325bf391 100644
--- a/keyboards/rart/rartlite/keyboard.json
+++ b/keyboards/rart/rartlite/keyboard.json
@@ -29,8 +29,7 @@
"num_lock": "F6",
"on_state": 0
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT_right_numpad": {
"layout": [
diff --git a/keyboards/rart/rartpad/keyboard.json b/keyboards/rart/rartpad/keyboard.json
index cc3f7120d2..70195fc4bf 100644
--- a/keyboards/rart/rartpad/keyboard.json
+++ b/keyboards/rart/rartpad/keyboard.json
@@ -57,8 +57,7 @@
"twinkle": true
}
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"community_layouts": ["ortho_5x4", "numpad_5x4"],
"layouts": {
"LAYOUT_ortho_5x4": {
diff --git a/keyboards/rate/pistachio_mp/keyboard.json b/keyboards/rate/pistachio_mp/keyboard.json
index 71e3244523..cea6190b84 100644
--- a/keyboards/rate/pistachio_mp/keyboard.json
+++ b/keyboards/rate/pistachio_mp/keyboard.json
@@ -39,8 +39,7 @@
{"pin_a": "F4", "pin_b": "F5"}
]
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/recompile_keys/choco60/rev1/keyboard.json b/keyboards/recompile_keys/choco60/rev1/keyboard.json
index 4e5a8903bd..6c0b363011 100644
--- a/keyboards/recompile_keys/choco60/rev1/keyboard.json
+++ b/keyboards/recompile_keys/choco60/rev1/keyboard.json
@@ -19,6 +19,5 @@
"pin": "D3"
}
},
- "processor": "atmega32u4",
- "bootloader": "caterina"
+ "development_board": "promicro"
}
diff --git a/keyboards/recompile_keys/cocoa40/keyboard.json b/keyboards/recompile_keys/cocoa40/keyboard.json
index 9fad026ea7..a576e54551 100644
--- a/keyboards/recompile_keys/cocoa40/keyboard.json
+++ b/keyboards/recompile_keys/cocoa40/keyboard.json
@@ -28,8 +28,7 @@
"pin": "D2"
}
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/recompile_keys/nomu30/rev1/keyboard.json b/keyboards/recompile_keys/nomu30/rev1/keyboard.json
index 01afb9fe7d..8865eb0535 100644
--- a/keyboards/recompile_keys/nomu30/rev1/keyboard.json
+++ b/keyboards/recompile_keys/nomu30/rev1/keyboard.json
@@ -10,6 +10,5 @@
"rows": ["D1", "D0", "D4"]
},
"diode_direction": "COL2ROW",
- "processor": "atmega32u4",
- "bootloader": "caterina"
+ "development_board": "promicro"
}
diff --git a/keyboards/rect44/keyboard.json b/keyboards/rect44/keyboard.json
index c863bec9a3..7e0202cde7 100644
--- a/keyboards/rect44/keyboard.json
+++ b/keyboards/rect44/keyboard.json
@@ -37,8 +37,7 @@
"rows": ["D3", "D2", "F5", "F4"]
},
"diode_direction": "COL2ROW",
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT_all": {
"layout": [
diff --git a/keyboards/redox/rules.mk b/keyboards/redox/rules.mk
index a2f52752e0..4df55cd220 100644
--- a/keyboards/redox/rules.mk
+++ b/keyboards/redox/rules.mk
@@ -1,5 +1,3 @@
-DEFAULT_FOLDER = redox/rev1/base
-
# Disable unsupported hardware
AUDIO_SUPPORTED = no
BACKLIGHT_SUPPORTED = no
diff --git a/keyboards/redox_media/keyboard.json b/keyboards/redox_media/keyboard.json
index dba5657ea2..145d9116ca 100644
--- a/keyboards/redox_media/keyboard.json
+++ b/keyboards/redox_media/keyboard.json
@@ -36,8 +36,7 @@
"pin": "D0"
}
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/reviung/reviung34/keyboard.json b/keyboards/reviung/reviung34/keyboard.json
index 7495b7cc9d..d7e6fe422a 100755
--- a/keyboards/reviung/reviung34/keyboard.json
+++ b/keyboards/reviung/reviung34/keyboard.json
@@ -26,8 +26,7 @@
"rows": ["F4", "F5", "F6", "F7"]
},
"diode_direction": "COL2ROW",
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"community_layouts": [
"split_3x5_2"
],
diff --git a/keyboards/reviung/reviung39/keyboard.json b/keyboards/reviung/reviung39/keyboard.json
index e18c1c163e..b57100d1eb 100644
--- a/keyboards/reviung/reviung39/keyboard.json
+++ b/keyboards/reviung/reviung39/keyboard.json
@@ -49,8 +49,7 @@
"rows": ["F4", "F5", "F6", "F7", "B1", "B3", "B2"]
},
"diode_direction": "COL2ROW",
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layout_aliases": {
"LAYOUT_reviung39": "LAYOUT"
},
diff --git a/keyboards/reviung/reviung41/keyboard.json b/keyboards/reviung/reviung41/keyboard.json
index b44827c3d2..f0ad524da2 100644
--- a/keyboards/reviung/reviung41/keyboard.json
+++ b/keyboards/reviung/reviung41/keyboard.json
@@ -49,8 +49,7 @@
"rows": ["F4", "F5", "F6", "F7", "B1", "B3", "B2"]
},
"diode_direction": "COL2ROW",
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layout_aliases": {
"LAYOUT_reviung41": "LAYOUT"
},
diff --git a/keyboards/reviung/reviung5/keyboard.json b/keyboards/reviung/reviung5/keyboard.json
index 7e7101c0ab..014cbb288a 100644
--- a/keyboards/reviung/reviung5/keyboard.json
+++ b/keyboards/reviung/reviung5/keyboard.json
@@ -53,8 +53,7 @@
{"pin_a": "D0", "pin_b": "D1"}
]
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layout_aliases": {
"LAYOUT_reviung5": "LAYOUT"
},
diff --git a/keyboards/reviung/reviung53/keyboard.json b/keyboards/reviung/reviung53/keyboard.json
index 15f896e7d4..0468912f82 100644
--- a/keyboards/reviung/reviung53/keyboard.json
+++ b/keyboards/reviung/reviung53/keyboard.json
@@ -47,8 +47,7 @@
"rows": ["D0", "D4", "C6", "D7", "E6", "B4", "B5"]
},
"diode_direction": "COL2ROW",
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layout_aliases": {
"LAYOUT_reviung53": "LAYOUT"
},
diff --git a/keyboards/rgbkb/zen/rev1/keyboard.json b/keyboards/rgbkb/zen/rev1/keyboard.json
index b35381f607..94164016bb 100644
--- a/keyboards/rgbkb/zen/rev1/keyboard.json
+++ b/keyboards/rgbkb/zen/rev1/keyboard.json
@@ -38,8 +38,7 @@
"ws2812": {
"pin": "D1"
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/rgbkb/zen/rev2/keyboard.json b/keyboards/rgbkb/zen/rev2/keyboard.json
index 917274f186..d34fd7afb1 100644
--- a/keyboards/rgbkb/zen/rev2/keyboard.json
+++ b/keyboards/rgbkb/zen/rev2/keyboard.json
@@ -56,8 +56,7 @@
"ws2812": {
"pin": "B6"
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/rpiguy9907/southpaw66/keyboard.json b/keyboards/rpiguy9907/southpaw66/keyboard.json
index c751ee6d8e..980d217806 100644
--- a/keyboards/rpiguy9907/southpaw66/keyboard.json
+++ b/keyboards/rpiguy9907/southpaw66/keyboard.json
@@ -35,8 +35,7 @@
"tapping": {
"term": 400
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/rura66/rev1/keyboard.json b/keyboards/rura66/rev1/keyboard.json
index cb9ad6f29a..3dc41aabd4 100644
--- a/keyboards/rura66/rev1/keyboard.json
+++ b/keyboards/rura66/rev1/keyboard.json
@@ -55,8 +55,7 @@
"ws2812": {
"pin": "D3"
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/ryanbaekr/rb1/keyboard.json b/keyboards/ryanbaekr/rb1/keyboard.json
index a7222869e0..8b1b1a5a82 100644
--- a/keyboards/ryanbaekr/rb1/keyboard.json
+++ b/keyboards/ryanbaekr/rb1/keyboard.json
@@ -7,8 +7,7 @@
"pid": "0x0001",
"device_version": "0.0.3"
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"features": {
"bootmagic": true,
"extrakey": true,
diff --git a/keyboards/silakka54/keyboard.json b/keyboards/silakka54/keyboard.json
index e1ad9aac9e..f04b67d3aa 100644
--- a/keyboards/silakka54/keyboard.json
+++ b/keyboards/silakka54/keyboard.json
@@ -14,6 +14,9 @@
"enabled": true,
"serial": {
"driver": "vendor"
+ },
+ "transport": {
+ "watchdog": true
}
},
"matrix_pins": {
diff --git a/keyboards/sirius/uni660/rev2/rules.mk b/keyboards/sirius/uni660/rev2/rules.mk
index c03b052c56..18d234d62a 100644
--- a/keyboards/sirius/uni660/rev2/rules.mk
+++ b/keyboards/sirius/uni660/rev2/rules.mk
@@ -3,5 +3,3 @@ CUSTOM_MATRIX = lite
# project specific files
SRC += matrix.c
UART_DRIVER_REQUIRED = yes
-
-DEFAULT_FOLDER = sirius/uni660/rev2/ansi
diff --git a/keyboards/splitkb/elora/rev1/myriad.c b/keyboards/splitkb/elora/rev1/myriad.c
index 8bb6054df9..0263821b81 100644
--- a/keyboards/splitkb/elora/rev1/myriad.c
+++ b/keyboards/splitkb/elora/rev1/myriad.c
@@ -9,10 +9,10 @@
#include "analog.h"
typedef struct __attribute__((__packed__)) {
- char magic_numbers[3];
- uint8_t version_major;
- uint8_t version_minor;
- uint8_t version_patch;
+ char magic_numbers[3];
+ uint8_t version_major;
+ uint8_t version_minor;
+ uint8_t version_patch;
uint32_t checksum;
uint16_t payload_length;
} myriad_header_t;
@@ -20,34 +20,36 @@ typedef struct __attribute__((__packed__)) {
typedef struct __attribute__((__packed__)) {
uint16_t vendor_id;
uint16_t product_id;
- uint8_t revision;
+ uint8_t revision;
} identity_record_t;
static bool myriad_reader(uint8_t *data, uint16_t length) {
- const uint8_t eeprom_address = 0x50; // 1010 000 - NOT shifted for R/W bit
- const uint16_t i2c_timeout = 100; // in milliseconds
+ const uint8_t eeprom_address = 0x50; // 1010 000 - NOT shifted for R/W bit
+ const uint16_t i2c_timeout = 100; // in milliseconds
- uint8_t num_pages = (length / 256) + 1;
+ uint8_t num_pages = (length / 256) + 1;
uint8_t last_page_size = length % 256;
for (int i = 0; i < num_pages; i++) {
- uint8_t reg = 0; // We always start on a page boundary, so this is always zero
+ uint8_t reg = 0; // We always start on a page boundary, so this is always zero
uint16_t read_length;
if (i == num_pages - 1) {
read_length = last_page_size;
} else {
read_length = 256;
}
- i2c_status_t s = i2c_read_register((eeprom_address + i) << 1, reg, &(data[i*256]), read_length, i2c_timeout);
- if (s != I2C_STATUS_SUCCESS) { return false; }
+ i2c_status_t s = i2c_read_register((eeprom_address + i) << 1, reg, &(data[i * 256]), read_length, i2c_timeout);
+ if (s != I2C_STATUS_SUCCESS) {
+ return false;
+ }
}
return true;
}
static bool verify_header(myriad_header_t *header) {
- char magic_numbers[] = {'M', 'Y', 'R'};
- uint8_t version_major = 1;
- uint16_t version_minor = 0;
+ char magic_numbers[] = {'M', 'Y', 'R'};
+ uint8_t version_major = 1;
+ uint16_t version_minor = 0;
for (int i = 0; i < sizeof(magic_numbers); i++) {
// Check that the header starts with 'MYR', indicating that this is indeed a Myriad card.
@@ -82,16 +84,15 @@ static bool verify_checksum(uint8_t *data, uint16_t length, uint32_t checksum) {
const uint32_t MOD_ADLER = 65521;
uint32_t a = 1, b = 0;
- size_t index;
-
+ size_t index;
+
// Process each byte of the data in order
- for (index = 0; index < length; ++index)
- {
+ for (index = 0; index < length; ++index) {
a = (a + data[index]) % MOD_ADLER;
b = (b + a) % MOD_ADLER;
}
uint32_t calculated = ((b << 16) | a);
-
+
return calculated == checksum;
}
@@ -108,9 +109,9 @@ static int16_t locate_entry(uint8_t entry_type, uint8_t entry_data_length, uint8
while (offset < maximum) {
if (data[offset] == entry_type) {
// Type matches!
- if (data[offset+1] == entry_data_length) {
+ if (data[offset + 1] == entry_data_length) {
// We found what we are looking for, so return payload reference.
- return offset+2;
+ return offset + 2;
} else {
// The entry is the wrong length?
return -2;
@@ -118,7 +119,7 @@ static int16_t locate_entry(uint8_t entry_type, uint8_t entry_data_length, uint8
} else {
// No type match, so skip this one
// We skip the type byte, the length byte, and any potential data (with length stored in the length byte)
- offset += 2 + data[offset+1];
+ offset += 2 + data[offset + 1];
}
}
@@ -127,13 +128,15 @@ static int16_t locate_entry(uint8_t entry_type, uint8_t entry_data_length, uint8
}
static bool read_card_identity(uint8_t *data, uint16_t length, identity_record_t *record) {
- const uint8_t identity_type = 0x01;
+ const uint8_t identity_type = 0x01;
const uint8_t entry_data_length = sizeof(identity_record_t);
- int16_t result = locate_entry(identity_type, entry_data_length, data, 0, length);
- if (result < 0) { return false; }
+ int16_t result = locate_entry(identity_type, entry_data_length, data, 0, length);
+ if (result < 0) {
+ return false;
+ }
for (int i = 0; i < sizeof(identity_record_t); i++) {
- ((uint8_t*)record)[i] = data[result + i];
+ ((uint8_t *)record)[i] = data[result + i];
}
return true;
}
@@ -141,27 +144,37 @@ static bool read_card_identity(uint8_t *data, uint16_t length, identity_record_t
static myriad_card_t _detect_myriad(void) {
gpio_set_pin_input(MYRIAD_PRESENT);
wait_ms(100);
- // The pin has an external pull-up, and a Myriad card shorts it to ground.
- #ifndef MYRIAD_OVERRIDE_PRESENCE
+// The pin has an external pull-up, and a Myriad card shorts it to ground.
+#ifndef MYRIAD_OVERRIDE_PRESENCE
if (gpio_read_pin(MYRIAD_PRESENT)) {
return NONE;
}
- #endif
+#endif
// Attempt to read header
myriad_header_t header;
- if (!myriad_reader((uint8_t*)&header, sizeof(header))) { return INVALID; }
- if (!verify_header(&header)) { return INVALID; }
+ if (!myriad_reader((uint8_t *)&header, sizeof(header))) {
+ return INVALID;
+ }
+ if (!verify_header(&header)) {
+ return INVALID;
+ }
// Now that we have determined that the header is valid
// and we know the payload length, read the entire thing
- uint8_t data[2048]; // Guaranteed to be large enough.
- uint16_t data_size = sizeof(header)+header.payload_length;
- if (!myriad_reader(data, data_size)) { return INVALID; }
- if (!verify_checksum(data, data_size, header.checksum)) { return INVALID; }
+ uint8_t data[2048]; // Guaranteed to be large enough.
+ uint16_t data_size = sizeof(header) + header.payload_length;
+ if (!myriad_reader(data, data_size)) {
+ return INVALID;
+ }
+ if (!verify_checksum(data, data_size, header.checksum)) {
+ return INVALID;
+ }
identity_record_t identity;
- if (!read_card_identity(data, data_size, &identity)) { return INVALID; }
+ if (!read_card_identity(data, data_size, &identity)) {
+ return INVALID;
+ }
if (identity.vendor_id == 0x0001 && identity.product_id == 0x0001) {
return SKB_ENCODER;
@@ -201,7 +214,7 @@ static void myr_encoder_init(void) {
}
static uint16_t myr_joystick_timer;
-static void myr_joystick_init(void) {
+static void myr_joystick_init(void) {
gpio_set_pin_input_high(MYRIAD_GPIO1); // Press
myr_joystick_timer = timer_read();
@@ -235,7 +248,7 @@ static myriad_card_t myriad_card_init(void) {
bool myriad_hook_matrix(matrix_row_t current_matrix[]) {
myriad_card_t card = myriad_card_init();
- uint8_t word = 0;
+ uint8_t word = 0;
if (card == SKB_SWITCHES) {
word |= ((!gpio_read_pin(MYRIAD_GPIO3)) & 1) << 0;
@@ -252,7 +265,7 @@ bool myriad_hook_matrix(matrix_row_t current_matrix[]) {
// 5 bytes of on-board keys, so we are the 6th
bool matrix_has_changed = current_matrix[5] ^ word;
- current_matrix[5] = word;
+ current_matrix[5] = word;
return matrix_has_changed;
}
@@ -261,16 +274,20 @@ static pin_t encoders_pad_a[NUM_ENCODERS_MAX_PER_SIDE];
static pin_t encoders_pad_b[NUM_ENCODERS_MAX_PER_SIDE];
uint8_t myriad_hook_encoder(uint8_t index, bool pad_b) {
- if (myriad_card_init() != SKB_ENCODER) { return 0; }
+ if (myriad_card_init() != SKB_ENCODER) {
+ return 0;
+ }
// 3 onboard encoders, so we are number 4
- pin_t pin = pad_b ? encoders_pad_b[index] : encoders_pad_a[index];
+ pin_t pin = pad_b ? encoders_pad_b[index] : encoders_pad_a[index];
encoders_pad_a[3] = MYRIAD_GPIO2;
encoders_pad_b[3] = MYRIAD_GPIO3;
return gpio_read_pin(pin) ? 1 : 0;
}
report_mouse_t pointing_device_driver_get_report(report_mouse_t mouse_report) {
- if (myriad_card_init() != SKB_JOYSTICK) { return mouse_report; }
+ if (myriad_card_init() != SKB_JOYSTICK) {
+ return mouse_report;
+ }
if (timer_elapsed(myr_joystick_timer) < 10) {
wait_ms(2);
@@ -286,10 +303,10 @@ report_mouse_t pointing_device_driver_get_report(report_mouse_t mouse_report) {
// Create a dead zone in the middle where the mouse doesn't move
const int16_t dead_zone = 10;
- if ((y < 0 && y > -1*dead_zone) || (y > 0 && y < dead_zone)) {
+ if ((y < 0 && y > -1 * dead_zone) || (y > 0 && y < dead_zone)) {
y = 0;
}
- if ((x < 0 && x > -1*dead_zone) || (x > 0 && x < dead_zone)) {
+ if ((x < 0 && x > -1 * dead_zone) || (x > 0 && x < dead_zone)) {
x = 0;
}
@@ -298,10 +315,18 @@ report_mouse_t pointing_device_driver_get_report(report_mouse_t mouse_report) {
y = abs(y) * y / 5000;
// Clamp final value to make sure we don't under/overflow
- if (y < -127) { y = -127; }
- if (y > 127) { y = 127; }
- if (x < -127) { x = -127; }
- if (x > 127) { x = 127; }
+ if (y < -127) {
+ y = -127;
+ }
+ if (y > 127) {
+ y = 127;
+ }
+ if (x < -127) {
+ x = -127;
+ }
+ if (x > 127) {
+ x = 127;
+ }
mouse_report.x = x;
mouse_report.y = y;
@@ -309,7 +334,8 @@ report_mouse_t pointing_device_driver_get_report(report_mouse_t mouse_report) {
return mouse_report;
}
-void pointing_device_driver_init(void) {
+bool pointing_device_driver_init(void) {
gpio_set_pin_input(MYRIAD_ADC1); // Y
gpio_set_pin_input(MYRIAD_ADC2); // X
+ return true;
} \ No newline at end of file
diff --git a/keyboards/togkey/pad/keyboard.json b/keyboards/togkey/pad/keyboard.json
new file mode 100644
index 0000000000..f93346deb6
--- /dev/null
+++ b/keyboards/togkey/pad/keyboard.json
@@ -0,0 +1,52 @@
+{
+ "manufacturer": "TogKey",
+ "keyboard_name": "Pad",
+ "maintainer": "togkey86",
+ "development_board": "promicro_rp2040",
+ "diode_direction": "COL2ROW",
+ "features": {
+ "bootmagic": true,
+ "extrakey": true,
+ "rgblight": true
+ },
+ "matrix_pins": {
+ "cols": ["GP2", "GP3", "GP4"],
+ "rows": ["GP5", "GP6"]
+ },
+ "rgblight": {
+ "animations": {
+ "alternating": true,
+ "breathing": true,
+ "christmas": true,
+ "knight": true,
+ "rainbow_mood": true,
+ "rainbow_swirl": true,
+ "snake": true,
+ "static_gradient": true,
+ "twinkle": true
+ },
+ "hue_steps": 10,
+ "led_count": 5
+ },
+ "url": "https://togkey.com/products/togkey-pad",
+ "usb": {
+ "device_version": "1.0.0",
+ "pid": "0x8686",
+ "vid": "0xFEED"
+ },
+ "ws2812": {
+ "driver": "vendor",
+ "pin": "GP7"
+ },
+ "layouts": {
+ "LAYOUT": {
+ "layout": [
+ {"matrix": [0, 0], "x": 0.5, "y": 0},
+ {"matrix": [0, 1], "x": 1.5, "y": 0},
+ {"matrix": [1, 0], "x": 0, "y": 1},
+ {"matrix": [1, 1], "x": 1, "y": 1},
+ {"matrix": [1, 2], "x": 2, "y": 1}
+ ]
+ }
+ }
+}
diff --git a/keyboards/togkey/pad/keymaps/default/keymap.c b/keyboards/togkey/pad/keymaps/default/keymap.c
new file mode 100644
index 0000000000..4c55f41e69
--- /dev/null
+++ b/keyboards/togkey/pad/keymaps/default/keymap.c
@@ -0,0 +1,11 @@
+// Copyright 2025 TogKey
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [0] = LAYOUT(
+ KC_VOLD, KC_VOLU,
+ KC_MPRV, KC_MPLY, KC_MNXT
+ )
+};
diff --git a/keyboards/togkey/pad/readme.md b/keyboards/togkey/pad/readme.md
new file mode 100644
index 0000000000..3c34876970
--- /dev/null
+++ b/keyboards/togkey/pad/readme.md
@@ -0,0 +1,27 @@
+# pad
+
+![pad](https://i.imgur.com/KMS1btN.jpeg)
+
+A simple 5-Key Macropad based off an RP2040 and custom PCB.
+
+* Keyboard Maintainer: [Jon Henry](https://github.com/togkey86)
+* Hardware Supported: TogKey Pad PCB, RP2040 Pro Micro Development Board
+* Hardware Availability: (https://togkey.com)
+
+Make example for this keyboard (after setting up your build environment):
+
+ make togkey/pad:default
+
+Flashing example for this keyboard:
+
+ make togkey/pad: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/togkey/pad_plus/config.h b/keyboards/togkey/pad_plus/config.h
new file mode 100644
index 0000000000..525f02feb0
--- /dev/null
+++ b/keyboards/togkey/pad_plus/config.h
@@ -0,0 +1,10 @@
+// Copyright 2025 TogKey
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#pragma once
+
+//OLED
+#define OLED_DISPLAY_128X64
+#define I2C_DRIVER I2CD1
+#define I2C1_SDA_PIN GP2
+#define I2C1_SCL_PIN GP3
diff --git a/keyboards/togkey/pad_plus/keyboard.json b/keyboards/togkey/pad_plus/keyboard.json
new file mode 100644
index 0000000000..ca5eabf902
--- /dev/null
+++ b/keyboards/togkey/pad_plus/keyboard.json
@@ -0,0 +1,63 @@
+{
+ "manufacturer": "TogKey",
+ "keyboard_name": "Pad Plus",
+ "maintainer": "togkey86",
+ "development_board": "promicro_rp2040",
+ "diode_direction": "COL2ROW",
+ "encoder": {
+ "rotary": [
+ {"pin_a": "GP28", "pin_b": "GP29", "resolution": 2}
+ ]
+ },
+ "features": {
+ "bootmagic": true,
+ "encoder": true,
+ "extrakey": true,
+ "mousekey": true,
+ "oled": true,
+ "rgblight": true
+ },
+ "matrix_pins": {
+ "cols": ["GP4", "GP5", "GP6"],
+ "rows": ["GP26", "GP22", "GP20"]
+ },
+
+ "rgblight": {
+ "animations": {
+ "alternating": true,
+ "breathing": true,
+ "christmas": true,
+ "knight": true,
+ "rainbow_mood": true,
+ "rainbow_swirl": true,
+ "snake": true,
+ "static_gradient": true,
+ "twinkle": true
+ },
+ "hue_steps": 10,
+ "led_count": 3
+ },
+ "url": "https://togkey.com/products/togkey-pad-plus",
+ "usb": {
+ "device_version": "1.0.0",
+ "pid": "0x8687",
+ "vid": "0xFEED"
+ },
+ "ws2812": {
+ "driver": "vendor",
+ "pin": "GP27"
+ },
+ "layouts": {
+ "LAYOUT": {
+ "layout": [
+ {"matrix": [0, 2], "x": 2, "y": 0},
+ {"matrix": [1, 0], "x": 0, "y": 1},
+ {"matrix": [1, 1], "x": 1, "y": 1},
+ {"matrix": [1, 2], "x": 2, "y": 1},
+ {"matrix": [2, 0], "x": 0, "y": 2},
+ {"matrix": [2, 1], "x": 1, "y": 2},
+ {"matrix": [2, 2], "x": 2, "y": 2}
+ ]
+ }
+ }
+}
diff --git a/keyboards/togkey/pad_plus/keymaps/default/keymap.c b/keyboards/togkey/pad_plus/keymaps/default/keymap.c
new file mode 100644
index 0000000000..3d1979b2e1
--- /dev/null
+++ b/keyboards/togkey/pad_plus/keymaps/default/keymap.c
@@ -0,0 +1,30 @@
+// Copyright 2025 TogKey
+// SPDX-License-Identifier: GPL-2.0-or-later6
+
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [0] = LAYOUT(
+ TO(1),
+ KC_VOLD, KC_MUTE, KC_VOLU,
+ KC_MPRV, KC_MPLY, KC_MNXT
+ ),
+
+ [1] = LAYOUT(
+ TO(2),
+ KC_1, KC_2, KC_3,
+ KC_4, KC_5, KC_6
+ ),
+
+ [2] = LAYOUT(
+ TO(3),
+ KC_A, KC_B, KC_C,
+ KC_D, KC_E, KC_F
+ ),
+
+ [3] = LAYOUT(
+ TO(0),
+ KC_J, KC_K, KC_L,
+ KC_M, KC_N, KC_O
+ )
+};
diff --git a/keyboards/togkey/pad_plus/pad_plus.c b/keyboards/togkey/pad_plus/pad_plus.c
new file mode 100644
index 0000000000..c1db5edfe6
--- /dev/null
+++ b/keyboards/togkey/pad_plus/pad_plus.c
@@ -0,0 +1,731 @@
+// Copyright 2025 TogKey
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include "quantum.h"
+
+#if defined(OLED_ENABLE)
+oled_rotation_t oled_init_kb(oled_rotation_t rotation) {
+ return OLED_ROTATION_180;
+}
+
+static const char image_layer_1[] PROGMEM = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xE0, 0xE0, 0xE0, 0xE0, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0xFC, 0xFC, 0xFC, 0xFC, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0x8F, 0x8F, 0x70, 0xFC, 0xFE, 0xFE,
+ 0xCF, 0x8F, 0x8F, 0x8F, 0xFE, 0xFE,
+ 0xFC, 0x78, 0xF8, 0xFC, 0xFE, 0xFF,
+ 0x8F, 0x8F, 0x8F, 0xCE, 0xFF, 0xFF,
+ 0xFF, 0xFE, 0x00, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0xF8, 0xFC, 0xFE, 0xDF, 0x8F,
+ 0x07, 0x23, 0xFC, 0xFE, 0xFE, 0xFF,
+ 0xB7, 0xB7, 0xBF, 0xBE, 0xBE, 0xB8,
+ 0x07, 0x1F, 0x3F, 0xFE, 0xFC, 0xF0,
+ 0xF0, 0xFE, 0xFF, 0x3F, 0x0F, 0x03,
+ 0xC0, 0xC0, 0xC0, 0x80, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x03,
+ 0x03, 0x07, 0x07, 0x03, 0x00, 0x01,
+ 0x03, 0x03, 0x03, 0x07, 0x07, 0x03,
+ 0x03, 0x03, 0x01, 0x00, 0x00, 0x39,
+ 0x7B, 0x7B, 0x77, 0x77, 0x73, 0x7B,
+ 0x7F, 0x3F, 0x1F, 0x07, 0x00, 0x03,
+ 0x03, 0x03, 0x03, 0x00, 0x01, 0x03,
+ 0x03, 0x03, 0x03, 0x02, 0x00, 0x01,
+ 0x03, 0x03, 0x07, 0x07, 0x03, 0x03,
+ 0x03, 0x01, 0x00, 0x60, 0x78, 0x7E,
+ 0x7F, 0x3F, 0x0F, 0x03, 0x00, 0x00,
+ 0x00, 0x00, 0x03, 0x07, 0x07, 0x03,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0xF0, 0xF8, 0xF8, 0xF8,
+ 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8,
+ 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8,
+ 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8,
+ 0xF8, 0xF8, 0xF8, 0xF8, 0xF0, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0xE0, 0xF0,
+ 0x78, 0x38, 0x38, 0x38, 0x38, 0x38,
+ 0x38, 0x38, 0x38, 0x38, 0x38, 0x38,
+ 0x38, 0x38, 0x38, 0x38, 0x38, 0x38,
+ 0x38, 0x38, 0x38, 0x38, 0x38, 0xF0,
+ 0xF0, 0xC0, 0x00, 0x00, 0x00, 0x00,
+ 0xC0, 0xF0, 0xF0, 0x38, 0x38, 0x38,
+ 0x38, 0x38, 0x38, 0x38, 0x38, 0x38,
+ 0x38, 0x38, 0x38, 0x38, 0x38, 0x38,
+ 0x38, 0x38, 0x38, 0x38, 0x38, 0x38,
+ 0x38, 0x78, 0xF0, 0xE0, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0xF0, 0xF0, 0x38,
+ 0x38, 0x38, 0x38, 0x38, 0x38, 0x38,
+ 0x38, 0x38, 0x38, 0x38, 0x38, 0x38,
+ 0x38, 0x38, 0x38, 0x38, 0x38, 0x38,
+ 0x38, 0x38, 0x38, 0x38, 0xF0, 0xF0,
+ 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF,
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0xFF, 0xBF, 0x9F, 0xDF, 0x0F,
+ 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x60, 0x70,
+ 0x30, 0x30, 0x30, 0xF0, 0xF0, 0xC0,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00,
+ 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x20, 0x70, 0x70, 0x30, 0x30, 0xF0,
+ 0xF0, 0xE0, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF,
+ 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0xC0, 0xE0,
+ 0xF0, 0xF0, 0xF0, 0xF0, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xBF, 0xBF,
+ 0xBF, 0x80, 0x80, 0xBF, 0xBF, 0xFF,
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x40,
+ 0xF0, 0xF8, 0xFC, 0xEE, 0xEF, 0xE7,
+ 0xE3, 0xC1, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF,
+ 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF,
+ 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x70, 0x70, 0xE7, 0xE7,
+ 0xE7, 0xEF, 0xFF, 0x7C, 0x10, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x1C, 0x1F,
+ 0x1F, 0x1B, 0x18, 0xFF, 0xFF, 0x7F,
+ 0x18, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00,
+ 0x00, 0x00, 0x7F, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x7F, 0x7F,
+ 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0,
+ 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0,
+ 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0,
+ 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xFF,
+ 0x7F, 0x1F, 0x00, 0x00, 0x00, 0x00,
+ 0x1F, 0x7F, 0xFF, 0xE0, 0xE0, 0xE0,
+ 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0,
+ 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0,
+ 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0,
+ 0xE0, 0xE0, 0x7F, 0x7F, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x7F, 0xFF, 0xE0,
+ 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0,
+ 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0,
+ 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0,
+ 0xE0, 0xE0, 0xE0, 0xE0, 0xFF, 0x7F,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+};
+
+static const char image_layer_2[] PROGMEM = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xE0, 0xE0, 0xE0, 0xE0, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0xFC, 0xFC, 0xFC, 0xFC, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0x8F, 0x8F, 0x70, 0xFC, 0xFE, 0xFE,
+ 0xCF, 0x8F, 0x8F, 0x8F, 0xFE, 0xFE,
+ 0xFC, 0x78, 0xF8, 0xFC, 0xFE, 0xFF,
+ 0x8F, 0x8F, 0x8F, 0xCE, 0xFF, 0xFF,
+ 0xFF, 0xFE, 0x00, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0xF8, 0xFC, 0xFE, 0xDF, 0x8F,
+ 0x07, 0x23, 0xFC, 0xFE, 0xFE, 0xFF,
+ 0xB7, 0xB7, 0xBF, 0xBE, 0xBE, 0xB8,
+ 0x07, 0x1F, 0x3F, 0xFE, 0xFC, 0xF0,
+ 0xF0, 0xFE, 0xFF, 0x3F, 0x0F, 0x03,
+ 0xC0, 0xC0, 0xC0, 0x80, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x03,
+ 0x03, 0x07, 0x07, 0x03, 0x00, 0x01,
+ 0x03, 0x03, 0x03, 0x07, 0x07, 0x03,
+ 0x03, 0x03, 0x01, 0x00, 0x00, 0x39,
+ 0x7B, 0x7B, 0x77, 0x77, 0x73, 0x7B,
+ 0x7F, 0x3F, 0x1F, 0x07, 0x00, 0x03,
+ 0x03, 0x03, 0x03, 0x00, 0x01, 0x03,
+ 0x03, 0x03, 0x03, 0x02, 0x00, 0x01,
+ 0x03, 0x03, 0x07, 0x07, 0x03, 0x03,
+ 0x03, 0x01, 0x00, 0x60, 0x78, 0x7E,
+ 0x7F, 0x3F, 0x0F, 0x03, 0x00, 0x00,
+ 0x00, 0x00, 0x03, 0x07, 0x07, 0x03,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0xF0, 0xF8, 0x38, 0x38,
+ 0x38, 0x38, 0x38, 0x38, 0x38, 0x38,
+ 0x38, 0x38, 0x38, 0x38, 0x38, 0x38,
+ 0x38, 0x38, 0x38, 0x38, 0x38, 0x38,
+ 0x38, 0x38, 0x38, 0xF8, 0xF0, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0xE0, 0xF0,
+ 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8,
+ 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8,
+ 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8,
+ 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF0,
+ 0xF0, 0xC0, 0x00, 0x00, 0x00, 0x00,
+ 0xC0, 0xF0, 0xF0, 0x38, 0x38, 0x38,
+ 0x38, 0x38, 0x38, 0x38, 0x38, 0x38,
+ 0x38, 0x38, 0x38, 0x38, 0x38, 0x38,
+ 0x38, 0x38, 0x38, 0x38, 0x38, 0x38,
+ 0x38, 0x78, 0xF0, 0xE0, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0xF0, 0xF0, 0x38,
+ 0x38, 0x38, 0x38, 0x38, 0x38, 0x38,
+ 0x38, 0x38, 0x38, 0x38, 0x38, 0x38,
+ 0x38, 0x38, 0x38, 0x38, 0x38, 0x38,
+ 0x38, 0x38, 0x38, 0x38, 0xF0, 0xF0,
+ 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x60, 0x60, 0xF0, 0xF0,
+ 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF,
+ 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xDF, 0xDF,
+ 0xCF, 0xCF, 0xCF, 0x1F, 0x1F, 0xFF,
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00,
+ 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x20, 0x70, 0x70, 0x30, 0x30, 0xF0,
+ 0xF0, 0xE0, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF,
+ 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0xC0, 0xE0,
+ 0xF0, 0xF0, 0xF0, 0xF0, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
+ 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0xE0, 0xE0,
+ 0xFF, 0xFF, 0xFF, 0xE0, 0xE0, 0xC0,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0x9F, 0x87, 0xB7, 0xB3, 0xB9, 0xBC,
+ 0xBE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF,
+ 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x70, 0x70, 0xE7, 0xE7,
+ 0xE7, 0xEF, 0xFF, 0x7C, 0x10, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x1C, 0x1F,
+ 0x1F, 0x1B, 0x18, 0xFF, 0xFF, 0x7F,
+ 0x18, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00,
+ 0x00, 0x00, 0x3F, 0x7F, 0x60, 0x60,
+ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
+ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
+ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
+ 0x60, 0x60, 0x60, 0x7F, 0x3F, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x7F, 0xFF,
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0x7F, 0x3F, 0x00, 0x00, 0x00, 0x00,
+ 0x1F, 0x7F, 0xFF, 0xE0, 0xE0, 0xE0,
+ 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0,
+ 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0,
+ 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0,
+ 0xE0, 0xE0, 0x7F, 0x7F, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x7F, 0xFF, 0xE0,
+ 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0,
+ 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0,
+ 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0,
+ 0xE0, 0xE0, 0xE0, 0xE0, 0xFF, 0x7F,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+};
+
+static const char image_layer_3[] PROGMEM = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xE0, 0xE0, 0xE0, 0xE0, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0xFC, 0xFC, 0xFC, 0xFC, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0x8F, 0x8F, 0x70, 0xFC, 0xFE, 0xFE,
+ 0xCF, 0x8F, 0x8F, 0x8F, 0xFE, 0xFE,
+ 0xFC, 0x78, 0xF8, 0xFC, 0xFE, 0xFF,
+ 0x8F, 0x8F, 0x8F, 0xCE, 0xFF, 0xFF,
+ 0xFF, 0xFE, 0x00, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0xF8, 0xFC, 0xFE, 0xDF, 0x8F,
+ 0x07, 0x23, 0xFC, 0xFE, 0xFE, 0xFF,
+ 0xB7, 0xB7, 0xBF, 0xBE, 0xBE, 0xB8,
+ 0x07, 0x1F, 0x3F, 0xFE, 0xFC, 0xF0,
+ 0xF0, 0xFE, 0xFF, 0x3F, 0x0F, 0x03,
+ 0xC0, 0xC0, 0xC0, 0x80, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x03,
+ 0x03, 0x07, 0x07, 0x03, 0x00, 0x01,
+ 0x03, 0x03, 0x03, 0x07, 0x07, 0x03,
+ 0x03, 0x03, 0x01, 0x00, 0x00, 0x39,
+ 0x7B, 0x7B, 0x77, 0x77, 0x73, 0x7B,
+ 0x7F, 0x3F, 0x1F, 0x07, 0x00, 0x03,
+ 0x03, 0x03, 0x03, 0x00, 0x01, 0x03,
+ 0x03, 0x03, 0x03, 0x02, 0x00, 0x01,
+ 0x03, 0x03, 0x07, 0x07, 0x03, 0x03,
+ 0x03, 0x01, 0x00, 0x60, 0x78, 0x7E,
+ 0x7F, 0x3F, 0x0F, 0x03, 0x00, 0x00,
+ 0x00, 0x00, 0x03, 0x07, 0x07, 0x03,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0xF0, 0xF8, 0x38, 0x38,
+ 0x38, 0x38, 0x38, 0x38, 0x38, 0x38,
+ 0x38, 0x38, 0x38, 0x38, 0x38, 0x38,
+ 0x38, 0x38, 0x38, 0x38, 0x38, 0x38,
+ 0x38, 0x38, 0x38, 0xF8, 0xF0, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0xE0, 0xF0,
+ 0x78, 0x38, 0x38, 0x38, 0x38, 0x38,
+ 0x38, 0x38, 0x38, 0x38, 0x38, 0x38,
+ 0x38, 0x38, 0x38, 0x38, 0x38, 0x38,
+ 0x38, 0x38, 0x38, 0x38, 0x38, 0xF0,
+ 0xF0, 0xC0, 0x00, 0x00, 0x00, 0x00,
+ 0xC0, 0xF0, 0xF0, 0xF8, 0xF8, 0xF8,
+ 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8,
+ 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8,
+ 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8,
+ 0xF8, 0xF8, 0xF0, 0xE0, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0xF0, 0xF0, 0x38,
+ 0x38, 0x38, 0x38, 0x38, 0x38, 0x38,
+ 0x38, 0x38, 0x38, 0x38, 0x38, 0x38,
+ 0x38, 0x38, 0x38, 0x38, 0x38, 0x38,
+ 0x38, 0x38, 0x38, 0x38, 0xF0, 0xF0,
+ 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x60, 0x60, 0xF0, 0xF0,
+ 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF,
+ 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x60, 0x70,
+ 0x30, 0x30, 0x30, 0xF0, 0xF0, 0xC0,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00,
+ 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0x9F, 0xDF, 0xEF, 0xCF, 0xCF,
+ 0x1F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF,
+ 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0xC0, 0xE0,
+ 0xF0, 0xF0, 0xF0, 0xF0, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
+ 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0xE0, 0xE0,
+ 0xFF, 0xFF, 0xFF, 0xE0, 0xE0, 0xC0,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x40,
+ 0xF0, 0xF8, 0xFC, 0xEE, 0xEF, 0xE7,
+ 0xE3, 0xC1, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF,
+ 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF,
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0xFF, 0xDF, 0x8F, 0xBF, 0xBD,
+ 0xBD, 0xB8, 0x82, 0xC7, 0xFF, 0xFF,
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x1C, 0x1F,
+ 0x1F, 0x1B, 0x18, 0xFF, 0xFF, 0x7F,
+ 0x18, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00,
+ 0x00, 0x00, 0x3F, 0x7F, 0x60, 0x60,
+ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
+ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
+ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
+ 0x60, 0x60, 0x60, 0x7F, 0x3F, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x7F, 0x7F,
+ 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0,
+ 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0,
+ 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0,
+ 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xFF,
+ 0x7F, 0x1F, 0x00, 0x00, 0x00, 0x00,
+ 0x3F, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0xFF, 0xFF, 0x7F, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x7F, 0xFF, 0xE0,
+ 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0,
+ 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0,
+ 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0,
+ 0xE0, 0xE0, 0xE0, 0xE0, 0xFF, 0x7F,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+};
+
+static const char image_layer_4[] PROGMEM = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xE0, 0xE0, 0xE0, 0xE0, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0xFC, 0xFC, 0xFC, 0xFC, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0x8F, 0x8F, 0x70, 0xFC, 0xFE, 0xFE,
+ 0xCF, 0x8F, 0x8F, 0x8F, 0xFE, 0xFE,
+ 0xFC, 0x78, 0xF8, 0xFC, 0xFE, 0xFF,
+ 0x8F, 0x8F, 0x8F, 0xCE, 0xFF, 0xFF,
+ 0xFF, 0xFE, 0x00, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0xF8, 0xFC, 0xFE, 0xDF, 0x8F,
+ 0x07, 0x23, 0xFC, 0xFE, 0xFE, 0xFF,
+ 0xB7, 0xB7, 0xBF, 0xBE, 0xBE, 0xB8,
+ 0x07, 0x1F, 0x3F, 0xFE, 0xFC, 0xF0,
+ 0xF0, 0xFE, 0xFF, 0x3F, 0x0F, 0x03,
+ 0xC0, 0xC0, 0xC0, 0x80, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x03,
+ 0x03, 0x07, 0x07, 0x03, 0x00, 0x01,
+ 0x03, 0x03, 0x03, 0x07, 0x07, 0x03,
+ 0x03, 0x03, 0x01, 0x00, 0x00, 0x39,
+ 0x7B, 0x7B, 0x77, 0x77, 0x73, 0x7B,
+ 0x7F, 0x3F, 0x1F, 0x07, 0x00, 0x03,
+ 0x03, 0x03, 0x03, 0x00, 0x01, 0x03,
+ 0x03, 0x03, 0x03, 0x02, 0x00, 0x01,
+ 0x03, 0x03, 0x07, 0x07, 0x03, 0x03,
+ 0x03, 0x01, 0x00, 0x60, 0x78, 0x7E,
+ 0x7F, 0x3F, 0x0F, 0x03, 0x00, 0x00,
+ 0x00, 0x00, 0x03, 0x07, 0x07, 0x03,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0xF0, 0xF8, 0x38, 0x38,
+ 0x38, 0x38, 0x38, 0x38, 0x38, 0x38,
+ 0x38, 0x38, 0x38, 0x38, 0x38, 0x38,
+ 0x38, 0x38, 0x38, 0x38, 0x38, 0x38,
+ 0x38, 0x38, 0x38, 0xF8, 0xF0, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0xE0, 0xF0,
+ 0x78, 0x38, 0x38, 0x38, 0x38, 0x38,
+ 0x38, 0x38, 0x38, 0x38, 0x38, 0x38,
+ 0x38, 0x38, 0x38, 0x38, 0x38, 0x38,
+ 0x38, 0x38, 0x38, 0x38, 0x38, 0xF0,
+ 0xF0, 0xC0, 0x00, 0x00, 0x00, 0x00,
+ 0xC0, 0xF0, 0xF0, 0x38, 0x38, 0x38,
+ 0x38, 0x38, 0x38, 0x38, 0x38, 0x38,
+ 0x38, 0x38, 0x38, 0x38, 0x38, 0x38,
+ 0x38, 0x38, 0x38, 0x38, 0x38, 0x38,
+ 0x38, 0x78, 0xF0, 0xE0, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0xF0, 0xF0, 0xF8,
+ 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8,
+ 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8,
+ 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8,
+ 0xF8, 0xF8, 0xF8, 0xF8, 0xF0, 0xF0,
+ 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x60, 0x60, 0xF0, 0xF0,
+ 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF,
+ 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x60, 0x70,
+ 0x30, 0x30, 0x30, 0xF0, 0xF0, 0xC0,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00,
+ 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x20, 0x70, 0x70, 0x30, 0x30, 0xF0,
+ 0xF0, 0xE0, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF,
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F,
+ 0x9F, 0x0F, 0x0F, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
+ 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0xE0, 0xE0,
+ 0xFF, 0xFF, 0xFF, 0xE0, 0xE0, 0xC0,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x40,
+ 0xF0, 0xF8, 0xFC, 0xEE, 0xEF, 0xE7,
+ 0xE3, 0xC1, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF,
+ 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF,
+ 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x70, 0x70, 0xE7, 0xE7,
+ 0xE7, 0xEF, 0xFF, 0x7C, 0x10, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xE7, 0xE1,
+ 0xE4, 0xEF, 0xEF, 0x80, 0x80, 0xE7,
+ 0xEF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00,
+ 0x00, 0x00, 0x3F, 0x7F, 0x60, 0x60,
+ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
+ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
+ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
+ 0x60, 0x60, 0x60, 0x7F, 0x3F, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x7F, 0x7F,
+ 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0,
+ 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0,
+ 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0,
+ 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xFF,
+ 0x7F, 0x1F, 0x00, 0x00, 0x00, 0x00,
+ 0x1F, 0x7F, 0xFF, 0xE0, 0xE0, 0xE0,
+ 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0,
+ 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0,
+ 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0,
+ 0xE0, 0xE0, 0x7F, 0x7F, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x7F, 0xFF, 0xFF,
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+};
+
+bool oled_task_kb(void) {
+ if (!oled_task_user()) {
+ return false;
+ }
+
+ switch (get_highest_layer(layer_state)) {
+ case 0:
+ oled_write_raw_P(image_layer_1, sizeof(image_layer_1));
+ break;
+ case 1:
+ oled_write_raw_P(image_layer_2, sizeof(image_layer_2));
+ break;
+ case 2:
+ oled_write_raw_P(image_layer_3, sizeof(image_layer_3));
+ break;
+ case 3:
+ oled_write_raw_P(image_layer_4, sizeof(image_layer_4));
+ break;
+ default:
+ oled_write_ln_P(PSTR("Undefined"), false);
+ }
+
+ return false;
+}
+#endif
diff --git a/keyboards/togkey/pad_plus/readme.md b/keyboards/togkey/pad_plus/readme.md
new file mode 100644
index 0000000000..99512f07e7
--- /dev/null
+++ b/keyboards/togkey/pad_plus/readme.md
@@ -0,0 +1,27 @@
+# pad_plus
+
+![pad_plus](https://i.imgur.com/9g3gNMZ.jpeg)
+
+A 6-Key Macropad featuring a Oled Screen and Rotary Encoder based off an RP2040 and custom PCB.
+
+* Keyboard Maintainer: [Jon Henry](https://github.com/togkey86)
+* Hardware Supported: TogKey Pad Plus PCB, RP2040 Development Board
+* Hardware Availability: (https://togkey.com)
+
+Make example for this keyboard (after setting up your build environment):
+
+ make togkey/pad_plus:default
+
+Flashing example for this keyboard:
+
+ make togkey/pad_plus: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/trnthsn/s6xtyfs/config.h b/keyboards/trnthsn/s6xtyfs/config.h
new file mode 100644
index 0000000000..5e5c1eb155
--- /dev/null
+++ b/keyboards/trnthsn/s6xtyfs/config.h
@@ -0,0 +1,23 @@
+/*
+Copyright 2025 Tyson.Keebs
+
+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 WS2812_SPI_DRIVER SPID2
+#define WS2812_SPI_MOSI_PAL_MODE 0
+#define WS2812_SPI_SCK_PAL_MODE 0
+#define WS2812_SPI_SCK_PIN B13
diff --git a/keyboards/trnthsn/s6xtyfs/halconf.h b/keyboards/trnthsn/s6xtyfs/halconf.h
new file mode 100644
index 0000000000..737b1927a3
--- /dev/null
+++ b/keyboards/trnthsn/s6xtyfs/halconf.h
@@ -0,0 +1,22 @@
+/*
+Copyright 2025 Tyson.Keebs
+
+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_SPI TRUE
+
+#include_next <halconf.h>
diff --git a/keyboards/trnthsn/s6xtyfs/info.json b/keyboards/trnthsn/s6xtyfs/info.json
new file mode 100644
index 0000000000..132c1a4e97
--- /dev/null
+++ b/keyboards/trnthsn/s6xtyfs/info.json
@@ -0,0 +1,742 @@
+{
+ "manufacturer": "Tyson.Keebs",
+ "keyboard_name": "S6xty Tsangan",
+ "maintainer": "trnthsn",
+ "diode_direction": "COL2ROW",
+ "features": {
+ "bootmagic": true,
+ "extrakey": true,
+ "mousekey": true,
+ "nkro": true,
+ "rgblight": true
+ },
+ "indicators": {
+ "caps_lock": "B0"
+ },
+ "matrix_pins": {
+ "cols": ["A10", "A9", "A8", "B14", "B12", "A6", "B9", "B8", "B7", "B6", "B5", "B4", "B3", "A15"],
+ "rows": ["C13", "C14", "C15", "A1", "B1"]
+ },
+ "rgblight": {
+ "animations": {
+ "alternating": true,
+ "breathing": true,
+ "christmas": true,
+ "knight": true,
+ "rainbow_mood": true,
+ "rainbow_swirl": true,
+ "snake": true,
+ "static_gradient": true,
+ "twinkle": true
+ },
+ "default": {
+ "animation": "rainbow_swirl"
+ },
+ "layers": {
+ "enabled": true,
+ "override_rgb": false
+ },
+ "led_count": 28,
+ "sleep": true
+ },
+ "url": "",
+ "usb": {
+ "device_version": "1.0.0",
+ "pid": "0x3666",
+ "vid": "0x5453"
+ },
+ "ws2812": {
+ "driver": "spi",
+ "pin": "B15"
+ },
+ "community_layouts": ["60_ansi_tsangan", "60_ansi_tsangan_split_bs_rshift", "60_ansi_wkl", "60_ansi_wkl_split_bs_rshift", "60_hhkb", "60_iso_tsangan", "60_iso_tsangan_split_bs_rshift", "60_iso_wkl", "60_iso_wkl_split_bs_rshift"],
+ "layouts": {
+ "LAYOUT_all": {
+ "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": [0, 4], "x": 4, "y": 0},
+ {"matrix": [0, 5], "x": 5, "y": 0},
+ {"matrix": [0, 6], "x": 6, "y": 0},
+ {"matrix": [0, 7], "x": 7, "y": 0},
+ {"matrix": [0, 8], "x": 8, "y": 0},
+ {"matrix": [0, 9], "x": 9, "y": 0},
+ {"matrix": [0, 10], "x": 10, "y": 0},
+ {"matrix": [0, 11], "x": 11, "y": 0},
+ {"matrix": [0, 12], "x": 12, "y": 0},
+ {"matrix": [2, 12], "x": 13, "y": 0},
+ {"matrix": [0, 13], "x": 14, "y": 0},
+
+ {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+ {"matrix": [1, 1], "x": 1.5, "y": 1},
+ {"matrix": [1, 2], "x": 2.5, "y": 1},
+ {"matrix": [1, 3], "x": 3.5, "y": 1},
+ {"matrix": [1, 4], "x": 4.5, "y": 1},
+ {"matrix": [1, 5], "x": 5.5, "y": 1},
+ {"matrix": [1, 6], "x": 6.5, "y": 1},
+ {"matrix": [1, 7], "x": 7.5, "y": 1},
+ {"matrix": [1, 8], "x": 8.5, "y": 1},
+ {"matrix": [1, 9], "x": 9.5, "y": 1},
+ {"matrix": [1, 10], "x": 10.5, "y": 1},
+ {"matrix": [1, 11], "x": 11.5, "y": 1},
+ {"matrix": [1, 12], "x": 12.5, "y": 1},
+ {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
+
+ {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+ {"matrix": [2, 1], "x": 1.75, "y": 2},
+ {"matrix": [2, 2], "x": 2.75, "y": 2},
+ {"matrix": [2, 3], "x": 3.75, "y": 2},
+ {"matrix": [2, 4], "x": 4.75, "y": 2},
+ {"matrix": [2, 5], "x": 5.75, "y": 2},
+ {"matrix": [2, 6], "x": 6.75, "y": 2},
+ {"matrix": [2, 7], "x": 7.75, "y": 2},
+ {"matrix": [2, 8], "x": 8.75, "y": 2},
+ {"matrix": [2, 9], "x": 9.75, "y": 2},
+ {"matrix": [2, 10], "x": 10.75, "y": 2},
+ {"matrix": [2, 11], "x": 11.75, "y": 2},
+ {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
+
+ {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
+ {"matrix": [3, 1], "x": 0, "y": 3},
+ {"matrix": [3, 2], "x": 2.25, "y": 3},
+ {"matrix": [3, 3], "x": 3.25, "y": 3},
+ {"matrix": [3, 4], "x": 4.25, "y": 3},
+ {"matrix": [3, 5], "x": 5.25, "y": 3},
+ {"matrix": [3, 6], "x": 6.25, "y": 3},
+ {"matrix": [3, 7], "x": 7.25, "y": 3},
+ {"matrix": [3, 8], "x": 8.25, "y": 3},
+ {"matrix": [3, 9], "x": 9.25, "y": 3},
+ {"matrix": [3, 10], "x": 10.25, "y": 3},
+ {"matrix": [3, 11], "x": 11.25, "y": 3},
+ {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
+ {"matrix": [3, 13], "x": 14, "y": 3},
+
+ {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
+ {"matrix": [4, 1], "x": 1.5, "y": 4},
+ {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
+ {"matrix": [4, 7], "x": 4, "y": 4, "w": 7},
+ {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
+ {"matrix": [4, 12], "x": 12.5, "y": 4},
+ {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}
+ ]
+ },
+ "LAYOUT_60_ansi_tsangan": {
+ "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": [0, 4], "x": 4, "y": 0},
+ {"matrix": [0, 5], "x": 5, "y": 0},
+ {"matrix": [0, 6], "x": 6, "y": 0},
+ {"matrix": [0, 7], "x": 7, "y": 0},
+ {"matrix": [0, 8], "x": 8, "y": 0},
+ {"matrix": [0, 9], "x": 9, "y": 0},
+ {"matrix": [0, 10], "x": 10, "y": 0},
+ {"matrix": [0, 11], "x": 11, "y": 0},
+ {"matrix": [0, 12], "x": 12, "y": 0},
+ {"matrix": [0, 13], "x": 13, "y": 0, "w": 2},
+
+ {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+ {"matrix": [1, 1], "x": 1.5, "y": 1},
+ {"matrix": [1, 2], "x": 2.5, "y": 1},
+ {"matrix": [1, 3], "x": 3.5, "y": 1},
+ {"matrix": [1, 4], "x": 4.5, "y": 1},
+ {"matrix": [1, 5], "x": 5.5, "y": 1},
+ {"matrix": [1, 6], "x": 6.5, "y": 1},
+ {"matrix": [1, 7], "x": 7.5, "y": 1},
+ {"matrix": [1, 8], "x": 8.5, "y": 1},
+ {"matrix": [1, 9], "x": 9.5, "y": 1},
+ {"matrix": [1, 10], "x": 10.5, "y": 1},
+ {"matrix": [1, 11], "x": 11.5, "y": 1},
+ {"matrix": [1, 12], "x": 12.5, "y": 1},
+ {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
+
+ {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+ {"matrix": [2, 1], "x": 1.75, "y": 2},
+ {"matrix": [2, 2], "x": 2.75, "y": 2},
+ {"matrix": [2, 3], "x": 3.75, "y": 2},
+ {"matrix": [2, 4], "x": 4.75, "y": 2},
+ {"matrix": [2, 5], "x": 5.75, "y": 2},
+ {"matrix": [2, 6], "x": 6.75, "y": 2},
+ {"matrix": [2, 7], "x": 7.75, "y": 2},
+ {"matrix": [2, 8], "x": 8.75, "y": 2},
+ {"matrix": [2, 9], "x": 9.75, "y": 2},
+ {"matrix": [2, 10], "x": 10.75, "y": 2},
+ {"matrix": [2, 11], "x": 11.75, "y": 2},
+ {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
+
+ {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
+ {"matrix": [3, 2], "x": 2.25, "y": 3},
+ {"matrix": [3, 3], "x": 3.25, "y": 3},
+ {"matrix": [3, 4], "x": 4.25, "y": 3},
+ {"matrix": [3, 5], "x": 5.25, "y": 3},
+ {"matrix": [3, 6], "x": 6.25, "y": 3},
+ {"matrix": [3, 7], "x": 7.25, "y": 3},
+ {"matrix": [3, 8], "x": 8.25, "y": 3},
+ {"matrix": [3, 9], "x": 9.25, "y": 3},
+ {"matrix": [3, 10], "x": 10.25, "y": 3},
+ {"matrix": [3, 11], "x": 11.25, "y": 3},
+ {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75},
+
+ {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
+ {"matrix": [4, 1], "x": 1.5, "y": 4},
+ {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
+ {"matrix": [4, 7], "x": 4, "y": 4, "w": 7},
+ {"matrix": [4, 10], "x": 11, "y": 4, "w": 1.5},
+ {"matrix": [4, 12], "x": 12.5, "y": 4},
+ {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}
+ ]
+ },
+ "LAYOUT_60_ansi_tsangan_split_bs_rshift": {
+ "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": [0, 4], "x": 4, "y": 0},
+ {"matrix": [0, 5], "x": 5, "y": 0},
+ {"matrix": [0, 6], "x": 6, "y": 0},
+ {"matrix": [0, 7], "x": 7, "y": 0},
+ {"matrix": [0, 8], "x": 8, "y": 0},
+ {"matrix": [0, 9], "x": 9, "y": 0},
+ {"matrix": [0, 10], "x": 10, "y": 0},
+ {"matrix": [0, 11], "x": 11, "y": 0},
+ {"matrix": [0, 12], "x": 12, "y": 0},
+ {"matrix": [2, 12], "x": 13, "y": 0},
+ {"matrix": [0, 13], "x": 14, "y": 0},
+
+ {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+ {"matrix": [1, 1], "x": 1.5, "y": 1},
+ {"matrix": [1, 2], "x": 2.5, "y": 1},
+ {"matrix": [1, 3], "x": 3.5, "y": 1},
+ {"matrix": [1, 4], "x": 4.5, "y": 1},
+ {"matrix": [1, 5], "x": 5.5, "y": 1},
+ {"matrix": [1, 6], "x": 6.5, "y": 1},
+ {"matrix": [1, 7], "x": 7.5, "y": 1},
+ {"matrix": [1, 8], "x": 8.5, "y": 1},
+ {"matrix": [1, 9], "x": 9.5, "y": 1},
+ {"matrix": [1, 10], "x": 10.5, "y": 1},
+ {"matrix": [1, 11], "x": 11.5, "y": 1},
+ {"matrix": [1, 12], "x": 12.5, "y": 1},
+ {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
+
+ {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+ {"matrix": [2, 1], "x": 1.75, "y": 2},
+ {"matrix": [2, 2], "x": 2.75, "y": 2},
+ {"matrix": [2, 3], "x": 3.75, "y": 2},
+ {"matrix": [2, 4], "x": 4.75, "y": 2},
+ {"matrix": [2, 5], "x": 5.75, "y": 2},
+ {"matrix": [2, 6], "x": 6.75, "y": 2},
+ {"matrix": [2, 7], "x": 7.75, "y": 2},
+ {"matrix": [2, 8], "x": 8.75, "y": 2},
+ {"matrix": [2, 9], "x": 9.75, "y": 2},
+ {"matrix": [2, 10], "x": 10.75, "y": 2},
+ {"matrix": [2, 11], "x": 11.75, "y": 2},
+ {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
+
+ {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
+ {"matrix": [3, 2], "x": 2.25, "y": 3},
+ {"matrix": [3, 3], "x": 3.25, "y": 3},
+ {"matrix": [3, 4], "x": 4.25, "y": 3},
+ {"matrix": [3, 5], "x": 5.25, "y": 3},
+ {"matrix": [3, 6], "x": 6.25, "y": 3},
+ {"matrix": [3, 7], "x": 7.25, "y": 3},
+ {"matrix": [3, 8], "x": 8.25, "y": 3},
+ {"matrix": [3, 9], "x": 9.25, "y": 3},
+ {"matrix": [3, 10], "x": 10.25, "y": 3},
+ {"matrix": [3, 11], "x": 11.25, "y": 3},
+ {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
+ {"matrix": [3, 13], "x": 14, "y": 3},
+
+ {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
+ {"matrix": [4, 1], "x": 1.5, "y": 4},
+ {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
+ {"matrix": [4, 7], "x": 4, "y": 4, "w": 7},
+ {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
+ {"matrix": [4, 12], "x": 12.5, "y": 4},
+ {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}
+ ]
+ },
+ "LAYOUT_60_ansi_wkl": {
+ "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": [0, 4], "x": 4, "y": 0},
+ {"matrix": [0, 5], "x": 5, "y": 0},
+ {"matrix": [0, 6], "x": 6, "y": 0},
+ {"matrix": [0, 7], "x": 7, "y": 0},
+ {"matrix": [0, 8], "x": 8, "y": 0},
+ {"matrix": [0, 9], "x": 9, "y": 0},
+ {"matrix": [0, 10], "x": 10, "y": 0},
+ {"matrix": [0, 11], "x": 11, "y": 0},
+ {"matrix": [0, 12], "x": 12, "y": 0},
+ {"matrix": [0, 13], "x": 13, "y": 0, "w": 2},
+
+ {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+ {"matrix": [1, 1], "x": 1.5, "y": 1},
+ {"matrix": [1, 2], "x": 2.5, "y": 1},
+ {"matrix": [1, 3], "x": 3.5, "y": 1},
+ {"matrix": [1, 4], "x": 4.5, "y": 1},
+ {"matrix": [1, 5], "x": 5.5, "y": 1},
+ {"matrix": [1, 6], "x": 6.5, "y": 1},
+ {"matrix": [1, 7], "x": 7.5, "y": 1},
+ {"matrix": [1, 8], "x": 8.5, "y": 1},
+ {"matrix": [1, 9], "x": 9.5, "y": 1},
+ {"matrix": [1, 10], "x": 10.5, "y": 1},
+ {"matrix": [1, 11], "x": 11.5, "y": 1},
+ {"matrix": [1, 12], "x": 12.5, "y": 1},
+ {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
+
+ {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+ {"matrix": [2, 1], "x": 1.75, "y": 2},
+ {"matrix": [2, 2], "x": 2.75, "y": 2},
+ {"matrix": [2, 3], "x": 3.75, "y": 2},
+ {"matrix": [2, 4], "x": 4.75, "y": 2},
+ {"matrix": [2, 5], "x": 5.75, "y": 2},
+ {"matrix": [2, 6], "x": 6.75, "y": 2},
+ {"matrix": [2, 7], "x": 7.75, "y": 2},
+ {"matrix": [2, 8], "x": 8.75, "y": 2},
+ {"matrix": [2, 9], "x": 9.75, "y": 2},
+ {"matrix": [2, 10], "x": 10.75, "y": 2},
+ {"matrix": [2, 11], "x": 11.75, "y": 2},
+ {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
+
+ {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
+ {"matrix": [3, 2], "x": 2.25, "y": 3},
+ {"matrix": [3, 3], "x": 3.25, "y": 3},
+ {"matrix": [3, 4], "x": 4.25, "y": 3},
+ {"matrix": [3, 5], "x": 5.25, "y": 3},
+ {"matrix": [3, 6], "x": 6.25, "y": 3},
+ {"matrix": [3, 7], "x": 7.25, "y": 3},
+ {"matrix": [3, 8], "x": 8.25, "y": 3},
+ {"matrix": [3, 9], "x": 9.25, "y": 3},
+ {"matrix": [3, 10], "x": 10.25, "y": 3},
+ {"matrix": [3, 11], "x": 11.25, "y": 3},
+ {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75},
+
+ {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
+ {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
+ {"matrix": [4, 7], "x": 4, "y": 4, "w": 7},
+ {"matrix": [4, 10], "x": 11, "y": 4, "w": 1.5},
+ {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}
+ ]
+ },
+ "LAYOUT_60_ansi_wkl_split_bs_rshift": {
+ "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": [0, 4], "x": 4, "y": 0},
+ {"matrix": [0, 5], "x": 5, "y": 0},
+ {"matrix": [0, 6], "x": 6, "y": 0},
+ {"matrix": [0, 7], "x": 7, "y": 0},
+ {"matrix": [0, 8], "x": 8, "y": 0},
+ {"matrix": [0, 9], "x": 9, "y": 0},
+ {"matrix": [0, 10], "x": 10, "y": 0},
+ {"matrix": [0, 11], "x": 11, "y": 0},
+ {"matrix": [0, 12], "x": 12, "y": 0},
+ {"matrix": [2, 12], "x": 13, "y": 0},
+ {"matrix": [0, 13], "x": 14, "y": 0},
+
+ {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+ {"matrix": [1, 1], "x": 1.5, "y": 1},
+ {"matrix": [1, 2], "x": 2.5, "y": 1},
+ {"matrix": [1, 3], "x": 3.5, "y": 1},
+ {"matrix": [1, 4], "x": 4.5, "y": 1},
+ {"matrix": [1, 5], "x": 5.5, "y": 1},
+ {"matrix": [1, 6], "x": 6.5, "y": 1},
+ {"matrix": [1, 7], "x": 7.5, "y": 1},
+ {"matrix": [1, 8], "x": 8.5, "y": 1},
+ {"matrix": [1, 9], "x": 9.5, "y": 1},
+ {"matrix": [1, 10], "x": 10.5, "y": 1},
+ {"matrix": [1, 11], "x": 11.5, "y": 1},
+ {"matrix": [1, 12], "x": 12.5, "y": 1},
+ {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
+
+ {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+ {"matrix": [2, 1], "x": 1.75, "y": 2},
+ {"matrix": [2, 2], "x": 2.75, "y": 2},
+ {"matrix": [2, 3], "x": 3.75, "y": 2},
+ {"matrix": [2, 4], "x": 4.75, "y": 2},
+ {"matrix": [2, 5], "x": 5.75, "y": 2},
+ {"matrix": [2, 6], "x": 6.75, "y": 2},
+ {"matrix": [2, 7], "x": 7.75, "y": 2},
+ {"matrix": [2, 8], "x": 8.75, "y": 2},
+ {"matrix": [2, 9], "x": 9.75, "y": 2},
+ {"matrix": [2, 10], "x": 10.75, "y": 2},
+ {"matrix": [2, 11], "x": 11.75, "y": 2},
+ {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
+
+ {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
+ {"matrix": [3, 2], "x": 2.25, "y": 3},
+ {"matrix": [3, 3], "x": 3.25, "y": 3},
+ {"matrix": [3, 4], "x": 4.25, "y": 3},
+ {"matrix": [3, 5], "x": 5.25, "y": 3},
+ {"matrix": [3, 6], "x": 6.25, "y": 3},
+ {"matrix": [3, 7], "x": 7.25, "y": 3},
+ {"matrix": [3, 8], "x": 8.25, "y": 3},
+ {"matrix": [3, 9], "x": 9.25, "y": 3},
+ {"matrix": [3, 10], "x": 10.25, "y": 3},
+ {"matrix": [3, 11], "x": 11.25, "y": 3},
+ {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
+ {"matrix": [3, 13], "x": 14, "y": 3},
+
+ {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
+ {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
+ {"matrix": [4, 7], "x": 4, "y": 4, "w": 7},
+ {"matrix": [4, 10], "x": 11, "y": 4, "w": 1.5},
+ {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}
+ ]
+ },
+ "LAYOUT_60_hhkb": {
+ "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": [0, 4], "x": 4, "y": 0},
+ {"matrix": [0, 5], "x": 5, "y": 0},
+ {"matrix": [0, 6], "x": 6, "y": 0},
+ {"matrix": [0, 7], "x": 7, "y": 0},
+ {"matrix": [0, 8], "x": 8, "y": 0},
+ {"matrix": [0, 9], "x": 9, "y": 0},
+ {"matrix": [0, 10], "x": 10, "y": 0},
+ {"matrix": [0, 11], "x": 11, "y": 0},
+ {"matrix": [0, 12], "x": 12, "y": 0},
+ {"matrix": [2, 12], "x": 13, "y": 0},
+ {"matrix": [0, 13], "x": 14, "y": 0},
+
+ {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+ {"matrix": [1, 1], "x": 1.5, "y": 1},
+ {"matrix": [1, 2], "x": 2.5, "y": 1},
+ {"matrix": [1, 3], "x": 3.5, "y": 1},
+ {"matrix": [1, 4], "x": 4.5, "y": 1},
+ {"matrix": [1, 5], "x": 5.5, "y": 1},
+ {"matrix": [1, 6], "x": 6.5, "y": 1},
+ {"matrix": [1, 7], "x": 7.5, "y": 1},
+ {"matrix": [1, 8], "x": 8.5, "y": 1},
+ {"matrix": [1, 9], "x": 9.5, "y": 1},
+ {"matrix": [1, 10], "x": 10.5, "y": 1},
+ {"matrix": [1, 11], "x": 11.5, "y": 1},
+ {"matrix": [1, 12], "x": 12.5, "y": 1},
+ {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
+
+ {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+ {"matrix": [2, 1], "x": 1.75, "y": 2},
+ {"matrix": [2, 2], "x": 2.75, "y": 2},
+ {"matrix": [2, 3], "x": 3.75, "y": 2},
+ {"matrix": [2, 4], "x": 4.75, "y": 2},
+ {"matrix": [2, 5], "x": 5.75, "y": 2},
+ {"matrix": [2, 6], "x": 6.75, "y": 2},
+ {"matrix": [2, 7], "x": 7.75, "y": 2},
+ {"matrix": [2, 8], "x": 8.75, "y": 2},
+ {"matrix": [2, 9], "x": 9.75, "y": 2},
+ {"matrix": [2, 10], "x": 10.75, "y": 2},
+ {"matrix": [2, 11], "x": 11.75, "y": 2},
+ {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
+
+ {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
+ {"matrix": [3, 2], "x": 2.25, "y": 3},
+ {"matrix": [3, 3], "x": 3.25, "y": 3},
+ {"matrix": [3, 4], "x": 4.25, "y": 3},
+ {"matrix": [3, 5], "x": 5.25, "y": 3},
+ {"matrix": [3, 6], "x": 6.25, "y": 3},
+ {"matrix": [3, 7], "x": 7.25, "y": 3},
+ {"matrix": [3, 8], "x": 8.25, "y": 3},
+ {"matrix": [3, 9], "x": 9.25, "y": 3},
+ {"matrix": [3, 10], "x": 10.25, "y": 3},
+ {"matrix": [3, 11], "x": 11.25, "y": 3},
+ {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
+ {"matrix": [3, 13], "x": 14, "y": 3},
+
+ {"matrix": [4, 1], "x": 1.5, "y": 4},
+ {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
+ {"matrix": [4, 7], "x": 4, "y": 4, "w": 7},
+ {"matrix": [4, 10], "x": 11, "y": 4, "w": 1.5},
+ {"matrix": [4, 12], "x": 12.5, "y": 4}
+ ]
+ },
+ "LAYOUT_60_iso_tsangan": {
+ "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": [0, 4], "x": 4, "y": 0},
+ {"matrix": [0, 5], "x": 5, "y": 0},
+ {"matrix": [0, 6], "x": 6, "y": 0},
+ {"matrix": [0, 7], "x": 7, "y": 0},
+ {"matrix": [0, 8], "x": 8, "y": 0},
+ {"matrix": [0, 9], "x": 9, "y": 0},
+ {"matrix": [0, 10], "x": 10, "y": 0},
+ {"matrix": [0, 11], "x": 11, "y": 0},
+ {"matrix": [0, 12], "x": 12, "y": 0},
+ {"matrix": [0, 13], "x": 13, "y": 0, "w": 2},
+
+ {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+ {"matrix": [1, 1], "x": 1.5, "y": 1},
+ {"matrix": [1, 2], "x": 2.5, "y": 1},
+ {"matrix": [1, 3], "x": 3.5, "y": 1},
+ {"matrix": [1, 4], "x": 4.5, "y": 1},
+ {"matrix": [1, 5], "x": 5.5, "y": 1},
+ {"matrix": [1, 6], "x": 6.5, "y": 1},
+ {"matrix": [1, 7], "x": 7.5, "y": 1},
+ {"matrix": [1, 8], "x": 8.5, "y": 1},
+ {"matrix": [1, 9], "x": 9.5, "y": 1},
+ {"matrix": [1, 10], "x": 10.5, "y": 1},
+ {"matrix": [1, 11], "x": 11.5, "y": 1},
+ {"matrix": [1, 12], "x": 12.5, "y": 1},
+
+ {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+ {"matrix": [2, 1], "x": 1.75, "y": 2},
+ {"matrix": [2, 2], "x": 2.75, "y": 2},
+ {"matrix": [2, 3], "x": 3.75, "y": 2},
+ {"matrix": [2, 4], "x": 4.75, "y": 2},
+ {"matrix": [2, 5], "x": 5.75, "y": 2},
+ {"matrix": [2, 6], "x": 6.75, "y": 2},
+ {"matrix": [2, 7], "x": 7.75, "y": 2},
+ {"matrix": [2, 8], "x": 8.75, "y": 2},
+ {"matrix": [2, 9], "x": 9.75, "y": 2},
+ {"matrix": [2, 10], "x": 10.75, "y": 2},
+ {"matrix": [2, 11], "x": 11.75, "y": 2},
+ {"matrix": [1, 13], "x": 12.75, "y": 2},
+ {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h":2},
+
+ {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
+ {"matrix": [3, 1], "x": 1.25, "y": 3},
+ {"matrix": [3, 2], "x": 2.25, "y": 3},
+ {"matrix": [3, 3], "x": 3.25, "y": 3},
+ {"matrix": [3, 4], "x": 4.25, "y": 3},
+ {"matrix": [3, 5], "x": 5.25, "y": 3},
+ {"matrix": [3, 6], "x": 6.25, "y": 3},
+ {"matrix": [3, 7], "x": 7.25, "y": 3},
+ {"matrix": [3, 8], "x": 8.25, "y": 3},
+ {"matrix": [3, 9], "x": 9.25, "y": 3},
+ {"matrix": [3, 10], "x": 10.25, "y": 3},
+ {"matrix": [3, 11], "x": 11.25, "y": 3},
+ {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75},
+
+ {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
+ {"matrix": [4, 1], "x": 1.5, "y": 4},
+ {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
+ {"matrix": [4, 7], "x": 4, "y": 4, "w": 7},
+ {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
+ {"matrix": [4, 12], "x": 12.5, "y": 4},
+ {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}
+ ]
+ },
+ "LAYOUT_60_iso_tsangan_split_bs_rshift": {
+ "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": [0, 4], "x": 4, "y": 0},
+ {"matrix": [0, 5], "x": 5, "y": 0},
+ {"matrix": [0, 6], "x": 6, "y": 0},
+ {"matrix": [0, 7], "x": 7, "y": 0},
+ {"matrix": [0, 8], "x": 8, "y": 0},
+ {"matrix": [0, 9], "x": 9, "y": 0},
+ {"matrix": [0, 10], "x": 10, "y": 0},
+ {"matrix": [0, 11], "x": 11, "y": 0},
+ {"matrix": [0, 12], "x": 12, "y": 0},
+ {"matrix": [2, 12], "x": 13, "y": 0},
+ {"matrix": [0, 13], "x": 14, "y": 0},
+
+ {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+ {"matrix": [1, 1], "x": 1.5, "y": 1},
+ {"matrix": [1, 2], "x": 2.5, "y": 1},
+ {"matrix": [1, 3], "x": 3.5, "y": 1},
+ {"matrix": [1, 4], "x": 4.5, "y": 1},
+ {"matrix": [1, 5], "x": 5.5, "y": 1},
+ {"matrix": [1, 6], "x": 6.5, "y": 1},
+ {"matrix": [1, 7], "x": 7.5, "y": 1},
+ {"matrix": [1, 8], "x": 8.5, "y": 1},
+ {"matrix": [1, 9], "x": 9.5, "y": 1},
+ {"matrix": [1, 10], "x": 10.5, "y": 1},
+ {"matrix": [1, 11], "x": 11.5, "y": 1},
+ {"matrix": [1, 12], "x": 12.5, "y": 1},
+
+ {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+ {"matrix": [2, 1], "x": 1.75, "y": 2},
+ {"matrix": [2, 2], "x": 2.75, "y": 2},
+ {"matrix": [2, 3], "x": 3.75, "y": 2},
+ {"matrix": [2, 4], "x": 4.75, "y": 2},
+ {"matrix": [2, 5], "x": 5.75, "y": 2},
+ {"matrix": [2, 6], "x": 6.75, "y": 2},
+ {"matrix": [2, 7], "x": 7.75, "y": 2},
+ {"matrix": [2, 8], "x": 8.75, "y": 2},
+ {"matrix": [2, 9], "x": 9.75, "y": 2},
+ {"matrix": [2, 10], "x": 10.75, "y": 2},
+ {"matrix": [2, 11], "x": 11.75, "y": 2},
+ {"matrix": [1, 13], "x": 12.75, "y": 2},
+ {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h":2},
+
+ {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
+ {"matrix": [3, 1], "x": 1.25, "y": 3},
+ {"matrix": [3, 2], "x": 2.25, "y": 3},
+ {"matrix": [3, 3], "x": 3.25, "y": 3},
+ {"matrix": [3, 4], "x": 4.25, "y": 3},
+ {"matrix": [3, 5], "x": 5.25, "y": 3},
+ {"matrix": [3, 6], "x": 6.25, "y": 3},
+ {"matrix": [3, 7], "x": 7.25, "y": 3},
+ {"matrix": [3, 8], "x": 8.25, "y": 3},
+ {"matrix": [3, 9], "x": 9.25, "y": 3},
+ {"matrix": [3, 10], "x": 10.25, "y": 3},
+ {"matrix": [3, 11], "x": 11.25, "y": 3},
+ {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
+ {"matrix": [3, 13], "x": 14, "y": 3},
+
+ {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
+ {"matrix": [4, 1], "x": 1.5, "y": 4},
+ {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
+ {"matrix": [4, 7], "x": 4, "y": 4, "w": 7},
+ {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
+ {"matrix": [4, 12], "x": 12.5, "y": 4},
+ {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}
+ ]
+ },
+ "LAYOUT_60_iso_wkl": {
+ "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": [0, 4], "x": 4, "y": 0},
+ {"matrix": [0, 5], "x": 5, "y": 0},
+ {"matrix": [0, 6], "x": 6, "y": 0},
+ {"matrix": [0, 7], "x": 7, "y": 0},
+ {"matrix": [0, 8], "x": 8, "y": 0},
+ {"matrix": [0, 9], "x": 9, "y": 0},
+ {"matrix": [0, 10], "x": 10, "y": 0},
+ {"matrix": [0, 11], "x": 11, "y": 0},
+ {"matrix": [0, 12], "x": 12, "y": 0},
+ {"matrix": [0, 13], "x": 13, "y": 0, "w": 2},
+
+ {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+ {"matrix": [1, 1], "x": 1.5, "y": 1},
+ {"matrix": [1, 2], "x": 2.5, "y": 1},
+ {"matrix": [1, 3], "x": 3.5, "y": 1},
+ {"matrix": [1, 4], "x": 4.5, "y": 1},
+ {"matrix": [1, 5], "x": 5.5, "y": 1},
+ {"matrix": [1, 6], "x": 6.5, "y": 1},
+ {"matrix": [1, 7], "x": 7.5, "y": 1},
+ {"matrix": [1, 8], "x": 8.5, "y": 1},
+ {"matrix": [1, 9], "x": 9.5, "y": 1},
+ {"matrix": [1, 10], "x": 10.5, "y": 1},
+ {"matrix": [1, 11], "x": 11.5, "y": 1},
+ {"matrix": [1, 12], "x": 12.5, "y": 1},
+
+ {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+ {"matrix": [2, 1], "x": 1.75, "y": 2},
+ {"matrix": [2, 2], "x": 2.75, "y": 2},
+ {"matrix": [2, 3], "x": 3.75, "y": 2},
+ {"matrix": [2, 4], "x": 4.75, "y": 2},
+ {"matrix": [2, 5], "x": 5.75, "y": 2},
+ {"matrix": [2, 6], "x": 6.75, "y": 2},
+ {"matrix": [2, 7], "x": 7.75, "y": 2},
+ {"matrix": [2, 8], "x": 8.75, "y": 2},
+ {"matrix": [2, 9], "x": 9.75, "y": 2},
+ {"matrix": [2, 10], "x": 10.75, "y": 2},
+ {"matrix": [2, 11], "x": 11.75, "y": 2},
+ {"matrix": [1, 13], "x": 12.75, "y": 2},
+ {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h":2},
+
+ {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
+ {"matrix": [3, 1], "x": 1.25, "y": 3},
+ {"matrix": [3, 2], "x": 2.25, "y": 3},
+ {"matrix": [3, 3], "x": 3.25, "y": 3},
+ {"matrix": [3, 4], "x": 4.25, "y": 3},
+ {"matrix": [3, 5], "x": 5.25, "y": 3},
+ {"matrix": [3, 6], "x": 6.25, "y": 3},
+ {"matrix": [3, 7], "x": 7.25, "y": 3},
+ {"matrix": [3, 8], "x": 8.25, "y": 3},
+ {"matrix": [3, 9], "x": 9.25, "y": 3},
+ {"matrix": [3, 10], "x": 10.25, "y": 3},
+ {"matrix": [3, 11], "x": 11.25, "y": 3},
+ {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75},
+
+ {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
+ {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
+ {"matrix": [4, 7], "x": 4, "y": 4, "w": 7},
+ {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
+ {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}
+ ]
+ },
+ "LAYOUT_60_iso_wkl_split_bs_rshift": {
+ "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": [0, 4], "x": 4, "y": 0},
+ {"matrix": [0, 5], "x": 5, "y": 0},
+ {"matrix": [0, 6], "x": 6, "y": 0},
+ {"matrix": [0, 7], "x": 7, "y": 0},
+ {"matrix": [0, 8], "x": 8, "y": 0},
+ {"matrix": [0, 9], "x": 9, "y": 0},
+ {"matrix": [0, 10], "x": 10, "y": 0},
+ {"matrix": [0, 11], "x": 11, "y": 0},
+ {"matrix": [0, 12], "x": 12, "y": 0},
+ {"matrix": [2, 12], "x": 13, "y": 0},
+ {"matrix": [0, 13], "x": 14, "y": 0},
+
+ {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+ {"matrix": [1, 1], "x": 1.5, "y": 1},
+ {"matrix": [1, 2], "x": 2.5, "y": 1},
+ {"matrix": [1, 3], "x": 3.5, "y": 1},
+ {"matrix": [1, 4], "x": 4.5, "y": 1},
+ {"matrix": [1, 5], "x": 5.5, "y": 1},
+ {"matrix": [1, 6], "x": 6.5, "y": 1},
+ {"matrix": [1, 7], "x": 7.5, "y": 1},
+ {"matrix": [1, 8], "x": 8.5, "y": 1},
+ {"matrix": [1, 9], "x": 9.5, "y": 1},
+ {"matrix": [1, 10], "x": 10.5, "y": 1},
+ {"matrix": [1, 11], "x": 11.5, "y": 1},
+ {"matrix": [1, 12], "x": 12.5, "y": 1},
+
+ {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+ {"matrix": [2, 1], "x": 1.75, "y": 2},
+ {"matrix": [2, 2], "x": 2.75, "y": 2},
+ {"matrix": [2, 3], "x": 3.75, "y": 2},
+ {"matrix": [2, 4], "x": 4.75, "y": 2},
+ {"matrix": [2, 5], "x": 5.75, "y": 2},
+ {"matrix": [2, 6], "x": 6.75, "y": 2},
+ {"matrix": [2, 7], "x": 7.75, "y": 2},
+ {"matrix": [2, 8], "x": 8.75, "y": 2},
+ {"matrix": [2, 9], "x": 9.75, "y": 2},
+ {"matrix": [2, 10], "x": 10.75, "y": 2},
+ {"matrix": [2, 11], "x": 11.75, "y": 2},
+ {"matrix": [1, 13], "x": 12.75, "y": 2},
+ {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h":2},
+
+ {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
+ {"matrix": [3, 1], "x": 1.25, "y": 3},
+ {"matrix": [3, 2], "x": 2.25, "y": 3},
+ {"matrix": [3, 3], "x": 3.25, "y": 3},
+ {"matrix": [3, 4], "x": 4.25, "y": 3},
+ {"matrix": [3, 5], "x": 5.25, "y": 3},
+ {"matrix": [3, 6], "x": 6.25, "y": 3},
+ {"matrix": [3, 7], "x": 7.25, "y": 3},
+ {"matrix": [3, 8], "x": 8.25, "y": 3},
+ {"matrix": [3, 9], "x": 9.25, "y": 3},
+ {"matrix": [3, 10], "x": 10.25, "y": 3},
+ {"matrix": [3, 11], "x": 11.25, "y": 3},
+ {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
+ {"matrix": [3, 13], "x": 14, "y": 3},
+
+ {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
+ {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
+ {"matrix": [4, 7], "x": 4, "y": 4, "w": 7},
+ {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
+ {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}
+ ]
+ }
+ }
+}
diff --git a/keyboards/trnthsn/s6xtyfs/keymaps/default/keymap.c b/keyboards/trnthsn/s6xtyfs/keymaps/default/keymap.c
new file mode 100644
index 0000000000..ecddf112d2
--- /dev/null
+++ b/keyboards/trnthsn/s6xtyfs/keymaps/default/keymap.c
@@ -0,0 +1,40 @@
+// Copyright 2025 QMK
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ // ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
+ // │Esc│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │Bsp│Bsp│
+ // ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤
+ // │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │
+ // ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬────┤
+ // │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ # │Ent │
+ // ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┤
+ // │Sft │Sft│ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │Shift │Fn │
+ // ├────┴┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─┴───┤
+ // │Ctrl │Win│Alt │ │Alt │Win│Ctrl │
+ // └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘
+
+ [0] = LAYOUT_all(
+ 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_BSPC, 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_LBRC, KC_RBRC, KC_BSLS,
+ 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_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_all(
+ KC_GRV, 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_INS, KC_DEL,
+ _______, _______, _______, _______, _______, _______, _______, UG_NEXT, UG_VALD, UG_VALU, KC_PSCR, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ MO(2) , _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______
+ ),
+ [2] = LAYOUT_all(
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______
+ )
+};
diff --git a/keyboards/trnthsn/s6xtyfs/mcuconf.h b/keyboards/trnthsn/s6xtyfs/mcuconf.h
new file mode 100644
index 0000000000..03624a3d2f
--- /dev/null
+++ b/keyboards/trnthsn/s6xtyfs/mcuconf.h
@@ -0,0 +1,23 @@
+/*
+Copyright 2025 Tyson.Keebs
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#pragma once
+
+#include_next <mcuconf.h>
+
+#undef STM32_SPI_USE_SPI2
+#define STM32_SPI_USE_SPI2 TRUE
diff --git a/keyboards/trnthsn/s6xtyfs/readme.md b/keyboards/trnthsn/s6xtyfs/readme.md
new file mode 100644
index 0000000000..be888ece75
--- /dev/null
+++ b/keyboards/trnthsn/s6xtyfs/readme.md
@@ -0,0 +1,27 @@
+# S6xty Tsangan
+
+![S6xtyfs](https://i.imgur.com/uS2Okww.png)
+
+A 60% keyboard PCB. Supports multiple layout such as split backspace, split shift, iso.
+
+* Keyboard Maintainer: [Trnthsn](https://github.com/trnthsn)
+* Hardware Supported: STM32, S6xtyfs
+* Hardware Availability: [ThanhSon.Mech](https://www.facebook.com/ThanhSon.mech)
+
+Make example for this keyboard (after setting up your build environment):
+
+ make trnthsn/s6xtyfs/stm32f103:default
+
+Flashing example for this keyboard:
+
+ make trnthsn/s6xtyfs/stm32f103: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/trnthsn/s6xtyfs/s6xtyfs.c b/keyboards/trnthsn/s6xtyfs/s6xtyfs.c
new file mode 100644
index 0000000000..9a9df177b9
--- /dev/null
+++ b/keyboards/trnthsn/s6xtyfs/s6xtyfs.c
@@ -0,0 +1,24 @@
+// Copyright 2025 QMK
+// SPDX-License-Identifier: GPL-2.0-or-later
+#include "quantum.h"
+
+#ifdef RGBLIGHT_ENABLE
+const rgblight_segment_t PROGMEM my_capslock_layer[] = RGBLIGHT_LAYER_SEGMENTS(
+ {5, 2, HSV_WHITE}
+);
+const rgblight_segment_t* const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST(
+ my_capslock_layer
+);
+
+void keyboard_post_init_kb(void) {
+ rgblight_layers = my_rgb_layers;
+ keyboard_post_init_user();
+}
+bool led_update_kb(led_t led_state) {
+ bool res = led_update_user(led_state);
+ if (res) {
+ rgblight_set_layer_state(0, led_state.caps_lock);
+ }
+ return res;
+}
+#endif
diff --git a/keyboards/trnthsn/s6xtyfs/stm32f072/keyboard.json b/keyboards/trnthsn/s6xtyfs/stm32f072/keyboard.json
new file mode 100644
index 0000000000..8bba6f5d5d
--- /dev/null
+++ b/keyboards/trnthsn/s6xtyfs/stm32f072/keyboard.json
@@ -0,0 +1,4 @@
+{
+ "processor": "STM32F072",
+ "bootloader": "stm32-dfu"
+}
diff --git a/keyboards/trnthsn/s6xtyfs/stm32f103/keyboard.json b/keyboards/trnthsn/s6xtyfs/stm32f103/keyboard.json
new file mode 100644
index 0000000000..4dc77604c4
--- /dev/null
+++ b/keyboards/trnthsn/s6xtyfs/stm32f103/keyboard.json
@@ -0,0 +1,4 @@
+{
+ "processor": "STM32F103",
+ "bootloader": "uf2boot"
+}
diff --git a/keyboards/tzarc/djinn/config.h b/keyboards/tzarc/djinn/config.h
index 24357b6a35..717ce4ee50 100644
--- a/keyboards/tzarc/djinn/config.h
+++ b/keyboards/tzarc/djinn/config.h
@@ -50,3 +50,5 @@
#ifndef STARTUP_SONG
# define STARTUP_SONG SONG(STARTUP_SOUND)
#endif // STARTUP_SONG
+
+#define RGB_MATRIX_MODE_NAME_ENABLE
diff --git a/keyboards/tzarc/djinn/graphics/theme_djinn_default.c b/keyboards/tzarc/djinn/graphics/theme_djinn_default.c
index 739a0817b0..03535587c4 100644
--- a/keyboards/tzarc/djinn/graphics/theme_djinn_default.c
+++ b/keyboards/tzarc/djinn/graphics/theme_djinn_default.c
@@ -31,55 +31,6 @@ static painter_image_handle_t lock_scrl_off;
static painter_font_handle_t thintel;
//----------------------------------------------------------
-// RGB Matrix naming
-#if defined(RGB_MATRIX_ENABLE)
-# include <rgb_matrix.h>
-
-# if defined(RGB_MATRIX_EFFECT)
-# undef RGB_MATRIX_EFFECT
-# endif // defined(RGB_MATRIX_EFFECT)
-
-# define RGB_MATRIX_EFFECT(x) RGB_MATRIX_EFFECT_##x,
-enum {
- RGB_MATRIX_EFFECT_NONE,
-# include "rgb_matrix_effects.inc"
-# ifdef RGB_MATRIX_CUSTOM_KB
-# include "rgb_matrix_kb.inc"
-# endif
-# ifdef RGB_MATRIX_CUSTOM_USER
-# include "rgb_matrix_user.inc"
-# endif
-# if defined(COMMUNITY_MODULES_ENABLE) && __has_include("rgb_matrix_community_modules.inc")
-# include "rgb_matrix_community_modules.inc"
-# endif
-# undef RGB_MATRIX_EFFECT
-};
-
-# define RGB_MATRIX_EFFECT(x) \
- case RGB_MATRIX_EFFECT_##x: \
- return #x;
-const char *rgb_matrix_name(uint8_t effect) {
- switch (effect) {
- case RGB_MATRIX_EFFECT_NONE:
- return "NONE";
-# include "rgb_matrix_effects.inc"
-# ifdef RGB_MATRIX_CUSTOM_KB
-# include "rgb_matrix_kb.inc"
-# endif
-# ifdef RGB_MATRIX_CUSTOM_USER
-# include "rgb_matrix_user.inc"
-# endif
-# if defined(COMMUNITY_MODULES_ENABLE) && __has_include("rgb_matrix_community_modules.inc")
-# include "rgb_matrix_community_modules.inc"
-# endif
-# undef RGB_MATRIX_EFFECT
- default:
- return "UNKNOWN";
- }
-}
-#endif // defined(RGB_MATRIX_ENABLE)
-
-//----------------------------------------------------------
// UI Initialisation
void keyboard_post_init_display(void) {
djinn_logo = qp_load_image_mem(gfx_djinn);
@@ -163,7 +114,7 @@ void draw_ui_user(bool force_redraw) {
if (hue_redraw || rgb_effect_redraw) {
static int max_rgb_xpos = 0;
xpos = 16;
- snprintf(buf, sizeof(buf), "rgb: %s", rgb_matrix_name(curr_effect));
+ snprintf(buf, sizeof(buf), "rgb: %s", rgb_matrix_get_mode_name(curr_effect));
for (int i = 5; i < sizeof(buf); ++i) {
if (buf[i] == 0)
diff --git a/keyboards/tzarc/djinn/rules.mk b/keyboards/tzarc/djinn/rules.mk
index d5060d9814..91dc4fe478 100644
--- a/keyboards/tzarc/djinn/rules.mk
+++ b/keyboards/tzarc/djinn/rules.mk
@@ -8,5 +8,3 @@ SRC += \
djinn_portscan_matrix.c \
djinn_split_sync.c \
djinn_usbpd.c
-
-DEFAULT_FOLDER = tzarc/djinn/rev2
diff --git a/keyboards/tzarc/ghoul/rules.mk b/keyboards/tzarc/ghoul/rules.mk
index 4bf96d9824..a9abdfe116 100644
--- a/keyboards/tzarc/ghoul/rules.mk
+++ b/keyboards/tzarc/ghoul/rules.mk
@@ -1,6 +1,4 @@
CUSTOM_MATRIX = lite
QUANTUM_PAINTER_DRIVERS = ssd1351_spi
-DEFAULT_FOLDER = tzarc/ghoul/rev1/stm32
-
ANALOG_DRIVER_REQUIRED = yes
diff --git a/keyboards/winry/winry25tc/keyboard.json b/keyboards/winry/winry25tc/keyboard.json
index c2682daa9a..ebe3d0cc77 100644
--- a/keyboards/winry/winry25tc/keyboard.json
+++ b/keyboards/winry/winry25tc/keyboard.json
@@ -3,8 +3,8 @@
"manufacturer": "SpiderIsland",
"maintainer": "qmk",
"usb": {
- "vid": "0xFEED",
- "pid": "0x0000",
+ "vid": "0xF1F1",
+ "pid": "0x0025",
"device_version": "0.0.1"
},
"ws2812": {
diff --git a/keyboards/wiredin/protagonist/pro_h/config.h b/keyboards/wiredin/protagonist/pro_h/config.h
new file mode 100644
index 0000000000..ba515a74a2
--- /dev/null
+++ b/keyboards/wiredin/protagonist/pro_h/config.h
@@ -0,0 +1,24 @@
+/* Copyright 2024 Gondolindrim <[email protected]>
+
+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 WS2812_PWM_COMPLEMENTARY_OUTPUT
+#define WS2812_PWM_DRIVER PWMD1
+#define WS2812_PWM_CHANNEL 3
+#define WS2812_PWM_PAL_MODE 1
+#define WS2812_DMA_STREAM STM32_DMA2_STREAM5
+#define WS2812_DMA_CHANNEL 6
diff --git a/keyboards/wiredin/protagonist/pro_h/halconf.h b/keyboards/wiredin/protagonist/pro_h/halconf.h
new file mode 100644
index 0000000000..77e63e63ea
--- /dev/null
+++ b/keyboards/wiredin/protagonist/pro_h/halconf.h
@@ -0,0 +1,22 @@
+/* Copyright 2024 Gondolindrim <[email protected]>
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+#define HAL_USE_PWM TRUE
+#define HAL_USE_PAL TRUE
+
+#include_next <halconf.h>
diff --git a/keyboards/wiredin/protagonist/pro_h/keyboard.json b/keyboards/wiredin/protagonist/pro_h/keyboard.json
new file mode 100644
index 0000000000..75c60f6ab9
--- /dev/null
+++ b/keyboards/wiredin/protagonist/pro_h/keyboard.json
@@ -0,0 +1,372 @@
+{
+ "manufacturer": "WiredIn",
+ "keyboard_name": "Protagonist PRO-H",
+ "maintainer": "Gondolindrim",
+ "bootloader": "stm32-dfu",
+ "build": {
+ "lto": true
+ },
+ "diode_direction": "COL2ROW",
+ "features": {
+ "bootmagic": true,
+ "extrakey": true,
+ "mousekey": true,
+ "nkro": true,
+ "rgblight": true
+ },
+ "matrix_pins": {
+ "cols": ["A4", "A3", "A2", "A10", "A8", "B12", "A15", "B3", "B4", "B5", "C15", "C14", "B9", "C13"],
+ "rows": ["B1", "B10", "B14", "B8", "A0", "A1"]
+ },
+ "processor": "STM32F411",
+ "rgblight": {
+ "animations": {
+ "alternating": true,
+ "breathing": true,
+ "christmas": true,
+ "knight": true,
+ "rainbow_mood": true,
+ "rainbow_swirl": true,
+ "rgb_test": true,
+ "snake": true,
+ "static_gradient": true,
+ "twinkle": true
+ },
+ "led_count": 22
+ },
+ "usb": {
+ "device_version": "0.0.1",
+ "pid": "0x5048",
+ "vid": "0x5749"
+ },
+ "ws2812": {
+ "driver": "pwm",
+ "pin": "B15"
+ },
+ "community_layouts": ["60_ansi_tsangan", "60_ansi_tsangan_split_bs_rshift", "60_ansi_wkl", "60_ansi_wkl_split_bs_rshift", "60_hhkb"],
+ "layout_aliases": {
+ "LAYOUT_all": "LAYOUT_60_ansi_tsangan_split_bs_rshift"
+ },
+ "layouts": {
+ "LAYOUT_60_ansi_tsangan": {
+ "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": [0, 4], "x": 4, "y": 0},
+ {"matrix": [0, 5], "x": 5, "y": 0},
+ {"matrix": [0, 6], "x": 6, "y": 0},
+ {"matrix": [0, 7], "x": 7, "y": 0},
+ {"matrix": [0, 8], "x": 8, "y": 0},
+ {"matrix": [0, 9], "x": 9, "y": 0},
+ {"matrix": [0, 10], "x": 10, "y": 0},
+ {"matrix": [0, 11], "x": 11, "y": 0},
+ {"matrix": [0, 12], "x": 12, "y": 0},
+ {"matrix": [0, 13], "x": 13, "y": 0, "w": 2},
+ {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+ {"matrix": [1, 1], "x": 1.5, "y": 1},
+ {"matrix": [1, 2], "x": 2.5, "y": 1},
+ {"matrix": [1, 3], "x": 3.5, "y": 1},
+ {"matrix": [1, 4], "x": 4.5, "y": 1},
+ {"matrix": [1, 5], "x": 5.5, "y": 1},
+ {"matrix": [1, 6], "x": 6.5, "y": 1},
+ {"matrix": [1, 7], "x": 7.5, "y": 1},
+ {"matrix": [1, 8], "x": 8.5, "y": 1},
+ {"matrix": [1, 9], "x": 9.5, "y": 1},
+ {"matrix": [1, 10], "x": 10.5, "y": 1},
+ {"matrix": [1, 11], "x": 11.5, "y": 1},
+ {"matrix": [1, 12], "x": 12.5, "y": 1},
+ {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
+ {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+ {"matrix": [2, 1], "x": 1.75, "y": 2},
+ {"matrix": [2, 2], "x": 2.75, "y": 2},
+ {"matrix": [2, 3], "x": 3.75, "y": 2},
+ {"matrix": [2, 4], "x": 4.75, "y": 2},
+ {"matrix": [2, 5], "x": 5.75, "y": 2},
+ {"matrix": [2, 6], "x": 6.75, "y": 2},
+ {"matrix": [2, 7], "x": 7.75, "y": 2},
+ {"matrix": [2, 8], "x": 8.75, "y": 2},
+ {"matrix": [2, 9], "x": 9.75, "y": 2},
+ {"matrix": [2, 10], "x": 10.75, "y": 2},
+ {"matrix": [2, 11], "x": 11.75, "y": 2},
+ {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
+ {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
+ {"matrix": [3, 2], "x": 2.25, "y": 3},
+ {"matrix": [3, 3], "x": 3.25, "y": 3},
+ {"matrix": [3, 4], "x": 4.25, "y": 3},
+ {"matrix": [3, 5], "x": 5.25, "y": 3},
+ {"matrix": [3, 6], "x": 6.25, "y": 3},
+ {"matrix": [3, 7], "x": 7.25, "y": 3},
+ {"matrix": [3, 8], "x": 8.25, "y": 3},
+ {"matrix": [3, 9], "x": 9.25, "y": 3},
+ {"matrix": [3, 10], "x": 10.25, "y": 3},
+ {"matrix": [3, 11], "x": 11.25, "y": 3},
+ {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75},
+ {"matrix": [5, 0], "x": 0, "y": 4, "w": 1.5},
+ {"matrix": [5, 1], "x": 1.5, "y": 4},
+ {"matrix": [5, 2], "x": 2.5, "y": 4, "w": 1.5},
+ {"matrix": [4, 6], "x": 4, "y": 4, "w": 7},
+ {"matrix": [4, 10], "x": 11, "y": 4, "w": 1.5},
+ {"matrix": [4, 11], "x": 12.5, "y": 4},
+ {"matrix": [4, 12], "x": 13.5, "y": 4, "w": 1.5}
+ ]
+ },
+ "LAYOUT_60_ansi_tsangan_split_bs_rshift": {
+ "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": [0, 4], "x": 4, "y": 0},
+ {"matrix": [0, 5], "x": 5, "y": 0},
+ {"matrix": [0, 6], "x": 6, "y": 0},
+ {"matrix": [0, 7], "x": 7, "y": 0},
+ {"matrix": [0, 8], "x": 8, "y": 0},
+ {"matrix": [0, 9], "x": 9, "y": 0},
+ {"matrix": [0, 10], "x": 10, "y": 0},
+ {"matrix": [0, 11], "x": 11, "y": 0},
+ {"matrix": [0, 12], "x": 12, "y": 0},
+ {"matrix": [0, 13], "x": 13, "y": 0},
+ {"matrix": [4, 13], "x": 14, "y": 0},
+ {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+ {"matrix": [1, 1], "x": 1.5, "y": 1},
+ {"matrix": [1, 2], "x": 2.5, "y": 1},
+ {"matrix": [1, 3], "x": 3.5, "y": 1},
+ {"matrix": [1, 4], "x": 4.5, "y": 1},
+ {"matrix": [1, 5], "x": 5.5, "y": 1},
+ {"matrix": [1, 6], "x": 6.5, "y": 1},
+ {"matrix": [1, 7], "x": 7.5, "y": 1},
+ {"matrix": [1, 8], "x": 8.5, "y": 1},
+ {"matrix": [1, 9], "x": 9.5, "y": 1},
+ {"matrix": [1, 10], "x": 10.5, "y": 1},
+ {"matrix": [1, 11], "x": 11.5, "y": 1},
+ {"matrix": [1, 12], "x": 12.5, "y": 1},
+ {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
+ {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+ {"matrix": [2, 1], "x": 1.75, "y": 2},
+ {"matrix": [2, 2], "x": 2.75, "y": 2},
+ {"matrix": [2, 3], "x": 3.75, "y": 2},
+ {"matrix": [2, 4], "x": 4.75, "y": 2},
+ {"matrix": [2, 5], "x": 5.75, "y": 2},
+ {"matrix": [2, 6], "x": 6.75, "y": 2},
+ {"matrix": [2, 7], "x": 7.75, "y": 2},
+ {"matrix": [2, 8], "x": 8.75, "y": 2},
+ {"matrix": [2, 9], "x": 9.75, "y": 2},
+ {"matrix": [2, 10], "x": 10.75, "y": 2},
+ {"matrix": [2, 11], "x": 11.75, "y": 2},
+ {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
+ {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
+ {"matrix": [3, 2], "x": 2.25, "y": 3},
+ {"matrix": [3, 3], "x": 3.25, "y": 3},
+ {"matrix": [3, 4], "x": 4.25, "y": 3},
+ {"matrix": [3, 5], "x": 5.25, "y": 3},
+ {"matrix": [3, 6], "x": 6.25, "y": 3},
+ {"matrix": [3, 7], "x": 7.25, "y": 3},
+ {"matrix": [3, 8], "x": 8.25, "y": 3},
+ {"matrix": [3, 9], "x": 9.25, "y": 3},
+ {"matrix": [3, 10], "x": 10.25, "y": 3},
+ {"matrix": [3, 11], "x": 11.25, "y": 3},
+ {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
+ {"matrix": [3, 13], "x": 14, "y": 3},
+ {"matrix": [5, 0], "x": 0, "y": 4, "w": 1.5},
+ {"matrix": [5, 1], "x": 1.5, "y": 4},
+ {"matrix": [5, 2], "x": 2.5, "y": 4, "w": 1.5},
+ {"matrix": [4, 6], "x": 4, "y": 4, "w": 7},
+ {"matrix": [4, 10], "x": 11, "y": 4, "w": 1.5},
+ {"matrix": [4, 11], "x": 12.5, "y": 4},
+ {"matrix": [4, 12], "x": 13.5, "y": 4, "w": 1.5}
+ ]
+ },
+ "LAYOUT_60_ansi_wkl": {
+ "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": [0, 4], "x": 4, "y": 0},
+ {"matrix": [0, 5], "x": 5, "y": 0},
+ {"matrix": [0, 6], "x": 6, "y": 0},
+ {"matrix": [0, 7], "x": 7, "y": 0},
+ {"matrix": [0, 8], "x": 8, "y": 0},
+ {"matrix": [0, 9], "x": 9, "y": 0},
+ {"matrix": [0, 10], "x": 10, "y": 0},
+ {"matrix": [0, 11], "x": 11, "y": 0},
+ {"matrix": [0, 12], "x": 12, "y": 0},
+ {"matrix": [0, 13], "x": 13, "y": 0, "w": 2},
+ {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+ {"matrix": [1, 1], "x": 1.5, "y": 1},
+ {"matrix": [1, 2], "x": 2.5, "y": 1},
+ {"matrix": [1, 3], "x": 3.5, "y": 1},
+ {"matrix": [1, 4], "x": 4.5, "y": 1},
+ {"matrix": [1, 5], "x": 5.5, "y": 1},
+ {"matrix": [1, 6], "x": 6.5, "y": 1},
+ {"matrix": [1, 7], "x": 7.5, "y": 1},
+ {"matrix": [1, 8], "x": 8.5, "y": 1},
+ {"matrix": [1, 9], "x": 9.5, "y": 1},
+ {"matrix": [1, 10], "x": 10.5, "y": 1},
+ {"matrix": [1, 11], "x": 11.5, "y": 1},
+ {"matrix": [1, 12], "x": 12.5, "y": 1},
+ {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
+ {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+ {"matrix": [2, 1], "x": 1.75, "y": 2},
+ {"matrix": [2, 2], "x": 2.75, "y": 2},
+ {"matrix": [2, 3], "x": 3.75, "y": 2},
+ {"matrix": [2, 4], "x": 4.75, "y": 2},
+ {"matrix": [2, 5], "x": 5.75, "y": 2},
+ {"matrix": [2, 6], "x": 6.75, "y": 2},
+ {"matrix": [2, 7], "x": 7.75, "y": 2},
+ {"matrix": [2, 8], "x": 8.75, "y": 2},
+ {"matrix": [2, 9], "x": 9.75, "y": 2},
+ {"matrix": [2, 10], "x": 10.75, "y": 2},
+ {"matrix": [2, 11], "x": 11.75, "y": 2},
+ {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
+ {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
+ {"matrix": [3, 2], "x": 2.25, "y": 3},
+ {"matrix": [3, 3], "x": 3.25, "y": 3},
+ {"matrix": [3, 4], "x": 4.25, "y": 3},
+ {"matrix": [3, 5], "x": 5.25, "y": 3},
+ {"matrix": [3, 6], "x": 6.25, "y": 3},
+ {"matrix": [3, 7], "x": 7.25, "y": 3},
+ {"matrix": [3, 8], "x": 8.25, "y": 3},
+ {"matrix": [3, 9], "x": 9.25, "y": 3},
+ {"matrix": [3, 10], "x": 10.25, "y": 3},
+ {"matrix": [3, 11], "x": 11.25, "y": 3},
+ {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75},
+ {"matrix": [5, 0], "x": 0, "y": 4, "w": 1.5},
+ {"matrix": [5, 2], "x": 2.5, "y": 4, "w": 1.5},
+ {"matrix": [4, 6], "x": 4, "y": 4, "w": 7},
+ {"matrix": [4, 10], "x": 11, "y": 4, "w": 1.5},
+ {"matrix": [4, 12], "x": 13.5, "y": 4, "w": 1.5}
+ ]
+ },
+ "LAYOUT_60_ansi_wkl_split_bs_rshift": {
+ "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": [0, 4], "x": 4, "y": 0},
+ {"matrix": [0, 5], "x": 5, "y": 0},
+ {"matrix": [0, 6], "x": 6, "y": 0},
+ {"matrix": [0, 7], "x": 7, "y": 0},
+ {"matrix": [0, 8], "x": 8, "y": 0},
+ {"matrix": [0, 9], "x": 9, "y": 0},
+ {"matrix": [0, 10], "x": 10, "y": 0},
+ {"matrix": [0, 11], "x": 11, "y": 0},
+ {"matrix": [0, 12], "x": 12, "y": 0},
+ {"matrix": [0, 13], "x": 13, "y": 0},
+ {"matrix": [4, 13], "x": 14, "y": 0},
+ {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+ {"matrix": [1, 1], "x": 1.5, "y": 1},
+ {"matrix": [1, 2], "x": 2.5, "y": 1},
+ {"matrix": [1, 3], "x": 3.5, "y": 1},
+ {"matrix": [1, 4], "x": 4.5, "y": 1},
+ {"matrix": [1, 5], "x": 5.5, "y": 1},
+ {"matrix": [1, 6], "x": 6.5, "y": 1},
+ {"matrix": [1, 7], "x": 7.5, "y": 1},
+ {"matrix": [1, 8], "x": 8.5, "y": 1},
+ {"matrix": [1, 9], "x": 9.5, "y": 1},
+ {"matrix": [1, 10], "x": 10.5, "y": 1},
+ {"matrix": [1, 11], "x": 11.5, "y": 1},
+ {"matrix": [1, 12], "x": 12.5, "y": 1},
+ {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
+ {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+ {"matrix": [2, 1], "x": 1.75, "y": 2},
+ {"matrix": [2, 2], "x": 2.75, "y": 2},
+ {"matrix": [2, 3], "x": 3.75, "y": 2},
+ {"matrix": [2, 4], "x": 4.75, "y": 2},
+ {"matrix": [2, 5], "x": 5.75, "y": 2},
+ {"matrix": [2, 6], "x": 6.75, "y": 2},
+ {"matrix": [2, 7], "x": 7.75, "y": 2},
+ {"matrix": [2, 8], "x": 8.75, "y": 2},
+ {"matrix": [2, 9], "x": 9.75, "y": 2},
+ {"matrix": [2, 10], "x": 10.75, "y": 2},
+ {"matrix": [2, 11], "x": 11.75, "y": 2},
+ {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
+ {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
+ {"matrix": [3, 2], "x": 2.25, "y": 3},
+ {"matrix": [3, 3], "x": 3.25, "y": 3},
+ {"matrix": [3, 4], "x": 4.25, "y": 3},
+ {"matrix": [3, 5], "x": 5.25, "y": 3},
+ {"matrix": [3, 6], "x": 6.25, "y": 3},
+ {"matrix": [3, 7], "x": 7.25, "y": 3},
+ {"matrix": [3, 8], "x": 8.25, "y": 3},
+ {"matrix": [3, 9], "x": 9.25, "y": 3},
+ {"matrix": [3, 10], "x": 10.25, "y": 3},
+ {"matrix": [3, 11], "x": 11.25, "y": 3},
+ {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
+ {"matrix": [3, 13], "x": 14, "y": 3},
+ {"matrix": [5, 0], "x": 0, "y": 4, "w": 1.5},
+ {"matrix": [5, 2], "x": 2.5, "y": 4, "w": 1.5},
+ {"matrix": [4, 6], "x": 4, "y": 4, "w": 7},
+ {"matrix": [4, 10], "x": 11, "y": 4, "w": 1.5},
+ {"matrix": [4, 12], "x": 13.5, "y": 4, "w": 1.5}
+ ]
+ },
+ "LAYOUT_60_hhkb": {
+ "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": [0, 4], "x": 4, "y": 0},
+ {"matrix": [0, 5], "x": 5, "y": 0},
+ {"matrix": [0, 6], "x": 6, "y": 0},
+ {"matrix": [0, 7], "x": 7, "y": 0},
+ {"matrix": [0, 8], "x": 8, "y": 0},
+ {"matrix": [0, 9], "x": 9, "y": 0},
+ {"matrix": [0, 10], "x": 10, "y": 0},
+ {"matrix": [0, 11], "x": 11, "y": 0},
+ {"matrix": [0, 12], "x": 12, "y": 0},
+ {"matrix": [0, 13], "x": 13, "y": 0},
+ {"matrix": [4, 13], "x": 14, "y": 0},
+ {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+ {"matrix": [1, 1], "x": 1.5, "y": 1},
+ {"matrix": [1, 2], "x": 2.5, "y": 1},
+ {"matrix": [1, 3], "x": 3.5, "y": 1},
+ {"matrix": [1, 4], "x": 4.5, "y": 1},
+ {"matrix": [1, 5], "x": 5.5, "y": 1},
+ {"matrix": [1, 6], "x": 6.5, "y": 1},
+ {"matrix": [1, 7], "x": 7.5, "y": 1},
+ {"matrix": [1, 8], "x": 8.5, "y": 1},
+ {"matrix": [1, 9], "x": 9.5, "y": 1},
+ {"matrix": [1, 10], "x": 10.5, "y": 1},
+ {"matrix": [1, 11], "x": 11.5, "y": 1},
+ {"matrix": [1, 12], "x": 12.5, "y": 1},
+ {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
+ {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+ {"matrix": [2, 1], "x": 1.75, "y": 2},
+ {"matrix": [2, 2], "x": 2.75, "y": 2},
+ {"matrix": [2, 3], "x": 3.75, "y": 2},
+ {"matrix": [2, 4], "x": 4.75, "y": 2},
+ {"matrix": [2, 5], "x": 5.75, "y": 2},
+ {"matrix": [2, 6], "x": 6.75, "y": 2},
+ {"matrix": [2, 7], "x": 7.75, "y": 2},
+ {"matrix": [2, 8], "x": 8.75, "y": 2},
+ {"matrix": [2, 9], "x": 9.75, "y": 2},
+ {"matrix": [2, 10], "x": 10.75, "y": 2},
+ {"matrix": [2, 11], "x": 11.75, "y": 2},
+ {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
+ {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
+ {"matrix": [3, 2], "x": 2.25, "y": 3},
+ {"matrix": [3, 3], "x": 3.25, "y": 3},
+ {"matrix": [3, 4], "x": 4.25, "y": 3},
+ {"matrix": [3, 5], "x": 5.25, "y": 3},
+ {"matrix": [3, 6], "x": 6.25, "y": 3},
+ {"matrix": [3, 7], "x": 7.25, "y": 3},
+ {"matrix": [3, 8], "x": 8.25, "y": 3},
+ {"matrix": [3, 9], "x": 9.25, "y": 3},
+ {"matrix": [3, 10], "x": 10.25, "y": 3},
+ {"matrix": [3, 11], "x": 11.25, "y": 3},
+ {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
+ {"matrix": [3, 13], "x": 14, "y": 3},
+ {"matrix": [5, 1], "x": 1.5, "y": 4},
+ {"matrix": [5, 2], "x": 2.5, "y": 4, "w": 1.5},
+ {"matrix": [4, 6], "x": 4, "y": 4, "w": 7},
+ {"matrix": [4, 10], "x": 11, "y": 4, "w": 1.5},
+ {"matrix": [4, 11], "x": 12.5, "y": 4}
+ ]
+ }
+ }
+}
diff --git a/keyboards/wiredin/protagonist/pro_h/keymaps/default/keymap.c b/keyboards/wiredin/protagonist/pro_h/keymaps/default/keymap.c
new file mode 100644
index 0000000000..b152af99bc
--- /dev/null
+++ b/keyboards/wiredin/protagonist/pro_h/keymaps/default/keymap.c
@@ -0,0 +1,33 @@
+/* Copyright 2020 Gondolindrim
+ *
+ * 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_all(
+ QK_GESC, 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_BSPC, 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_LBRC, KC_RBRC, KC_BSLS,
+ KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_COLN, 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, MO(1), KC_RCTL
+ ),
+ [1] = LAYOUT_all(
+ QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/wiredin/protagonist/pro_h/mcuconf.h b/keyboards/wiredin/protagonist/pro_h/mcuconf.h
new file mode 100644
index 0000000000..1474fe4f97
--- /dev/null
+++ b/keyboards/wiredin/protagonist/pro_h/mcuconf.h
@@ -0,0 +1,22 @@
+/* Copyright 2024 Gondolindrim <[email protected]>
+ *
+ * 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_PWM_USE_TIM1
+#define STM32_PWM_USE_TIM1 TRUE
diff --git a/keyboards/wiredin/protagonist/pro_s/config.h b/keyboards/wiredin/protagonist/pro_s/config.h
new file mode 100644
index 0000000000..90b01da8cc
--- /dev/null
+++ b/keyboards/wiredin/protagonist/pro_s/config.h
@@ -0,0 +1,27 @@
+/* Copyright 2024 Gondolindrim <[email protected]>
+
+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 BACKLIGHT_PWM_DRIVER PWMD3
+#define BACKLIGHT_PWM_CHANNEL 4
+
+#define WS2812_PWM_COMPLEMENTARY_OUTPUT
+#define WS2812_PWM_DRIVER PWMD1
+#define WS2812_PWM_CHANNEL 3
+#define WS2812_PWM_PAL_MODE 1
+#define WS2812_DMA_STREAM STM32_DMA2_STREAM5
+#define WS2812_DMA_CHANNEL 6
diff --git a/keyboards/wiredin/protagonist/pro_s/halconf.h b/keyboards/wiredin/protagonist/pro_s/halconf.h
new file mode 100644
index 0000000000..77e63e63ea
--- /dev/null
+++ b/keyboards/wiredin/protagonist/pro_s/halconf.h
@@ -0,0 +1,22 @@
+/* Copyright 2024 Gondolindrim <[email protected]>
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+#define HAL_USE_PWM TRUE
+#define HAL_USE_PAL TRUE
+
+#include_next <halconf.h>
diff --git a/keyboards/wiredin/protagonist/pro_s/keyboard.json b/keyboards/wiredin/protagonist/pro_s/keyboard.json
new file mode 100644
index 0000000000..01b1cb3daf
--- /dev/null
+++ b/keyboards/wiredin/protagonist/pro_s/keyboard.json
@@ -0,0 +1,703 @@
+{
+ "manufacturer": "WiredIn",
+ "keyboard_name": "Protagonist PRO-S",
+ "maintainer": "Gondolindrim",
+ "backlight": {
+ "as_caps_lock": true,
+ "levels": 20,
+ "pin": "B1"
+ },
+ "bootloader": "stm32-dfu",
+ "build": {
+ "lto": true
+ },
+ "diode_direction": "COL2ROW",
+ "features": {
+ "backlight": true,
+ "bootmagic": true,
+ "extrakey": true,
+ "mousekey": true,
+ "nkro": true,
+ "rgblight": true
+ },
+ "matrix_pins": {
+ "cols": ["A3", "A2", "A1", "B14", "B12", "A10", "A8", "B4", "B3", "A15", "C15", "C14", "C13", "B8"],
+ "rows": ["A4", "A7", "B0", "B5", "B9", "A0", "B10"]
+ },
+ "processor": "STM32F411",
+ "rgblight": {
+ "animations": {
+ "alternating": true,
+ "breathing": true,
+ "christmas": true,
+ "knight": true,
+ "rainbow_mood": true,
+ "rainbow_swirl": true,
+ "rgb_test": true,
+ "snake": true,
+ "static_gradient": true,
+ "twinkle": true
+ },
+ "led_count": 22
+ },
+ "usb": {
+ "device_version": "0.0.1",
+ "pid": "0x5053",
+ "vid": "0x5749"
+ },
+ "ws2812": {
+ "driver": "pwm",
+ "pin": "B15"
+ },
+ "community_layouts": ["60_ansi_tsangan", "60_ansi_tsangan_split_bs_rshift", "60_ansi_wkl", "60_ansi_wkl_split_bs_rshift", "60_hhkb", "60_iso_tsangan", "60_iso_tsangan_split_bs_rshift", "60_iso_wkl", "60_iso_wkl_split_bs_rshift"],
+ "layouts": {
+ "LAYOUT_60_ansi_tsangan": {
+ "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": [0, 4], "x": 4, "y": 0},
+ {"matrix": [0, 5], "x": 5, "y": 0},
+ {"matrix": [0, 6], "x": 6, "y": 0},
+ {"matrix": [0, 7], "x": 7, "y": 0},
+ {"matrix": [0, 8], "x": 8, "y": 0},
+ {"matrix": [0, 9], "x": 9, "y": 0},
+ {"matrix": [0, 10], "x": 10, "y": 0},
+ {"matrix": [0, 11], "x": 11, "y": 0},
+ {"matrix": [0, 12], "x": 12, "y": 0},
+ {"matrix": [0, 13], "x": 13, "y": 0, "w": 2},
+ {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+ {"matrix": [1, 1], "x": 1.5, "y": 1},
+ {"matrix": [1, 2], "x": 2.5, "y": 1},
+ {"matrix": [1, 3], "x": 3.5, "y": 1},
+ {"matrix": [1, 4], "x": 4.5, "y": 1},
+ {"matrix": [1, 5], "x": 5.5, "y": 1},
+ {"matrix": [1, 6], "x": 6.5, "y": 1},
+ {"matrix": [1, 7], "x": 7.5, "y": 1},
+ {"matrix": [1, 8], "x": 8.5, "y": 1},
+ {"matrix": [1, 9], "x": 9.5, "y": 1},
+ {"matrix": [1, 10], "x": 10.5, "y": 1},
+ {"matrix": [1, 11], "x": 11.5, "y": 1},
+ {"matrix": [1, 12], "x": 12.5, "y": 1},
+ {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
+ {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+ {"matrix": [2, 1], "x": 1.75, "y": 2},
+ {"matrix": [2, 2], "x": 2.75, "y": 2},
+ {"matrix": [2, 3], "x": 3.75, "y": 2},
+ {"matrix": [2, 4], "x": 4.75, "y": 2},
+ {"matrix": [2, 5], "x": 5.75, "y": 2},
+ {"matrix": [2, 6], "x": 6.75, "y": 2},
+ {"matrix": [2, 7], "x": 7.75, "y": 2},
+ {"matrix": [2, 8], "x": 8.75, "y": 2},
+ {"matrix": [2, 9], "x": 9.75, "y": 2},
+ {"matrix": [2, 10], "x": 10.75, "y": 2},
+ {"matrix": [2, 11], "x": 11.75, "y": 2},
+ {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
+ {"matrix": [6, 0], "x": 0, "y": 3, "w": 2.25},
+ {"matrix": [6, 2], "x": 2.25, "y": 3},
+ {"matrix": [6, 3], "x": 3.25, "y": 3},
+ {"matrix": [6, 4], "x": 4.25, "y": 3},
+ {"matrix": [3, 5], "x": 5.25, "y": 3},
+ {"matrix": [3, 6], "x": 6.25, "y": 3},
+ {"matrix": [3, 7], "x": 7.25, "y": 3},
+ {"matrix": [3, 8], "x": 8.25, "y": 3},
+ {"matrix": [3, 9], "x": 9.25, "y": 3},
+ {"matrix": [3, 10], "x": 10.25, "y": 3},
+ {"matrix": [3, 11], "x": 11.25, "y": 3},
+ {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75},
+ {"matrix": [5, 0], "x": 0, "y": 4, "w": 1.5},
+ {"matrix": [5, 1], "x": 1.5, "y": 4},
+ {"matrix": [5, 2], "x": 2.5, "y": 4, "w": 1.5},
+ {"matrix": [4, 6], "x": 4, "y": 4, "w": 7},
+ {"matrix": [4, 10], "x": 11, "y": 4, "w": 1.5},
+ {"matrix": [4, 11], "x": 12.5, "y": 4},
+ {"matrix": [4, 12], "x": 13.5, "y": 4, "w": 1.5}
+ ]
+ },
+ "LAYOUT_60_ansi_tsangan_split_bs_rshift": {
+ "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": [0, 4], "x": 4, "y": 0},
+ {"matrix": [0, 5], "x": 5, "y": 0},
+ {"matrix": [0, 6], "x": 6, "y": 0},
+ {"matrix": [0, 7], "x": 7, "y": 0},
+ {"matrix": [0, 8], "x": 8, "y": 0},
+ {"matrix": [0, 9], "x": 9, "y": 0},
+ {"matrix": [0, 10], "x": 10, "y": 0},
+ {"matrix": [0, 11], "x": 11, "y": 0},
+ {"matrix": [0, 12], "x": 12, "y": 0},
+ {"matrix": [0, 13], "x": 13, "y": 0},
+ {"matrix": [4, 13], "x": 14, "y": 0},
+ {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+ {"matrix": [1, 1], "x": 1.5, "y": 1},
+ {"matrix": [1, 2], "x": 2.5, "y": 1},
+ {"matrix": [1, 3], "x": 3.5, "y": 1},
+ {"matrix": [1, 4], "x": 4.5, "y": 1},
+ {"matrix": [1, 5], "x": 5.5, "y": 1},
+ {"matrix": [1, 6], "x": 6.5, "y": 1},
+ {"matrix": [1, 7], "x": 7.5, "y": 1},
+ {"matrix": [1, 8], "x": 8.5, "y": 1},
+ {"matrix": [1, 9], "x": 9.5, "y": 1},
+ {"matrix": [1, 10], "x": 10.5, "y": 1},
+ {"matrix": [1, 11], "x": 11.5, "y": 1},
+ {"matrix": [1, 12], "x": 12.5, "y": 1},
+ {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
+ {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+ {"matrix": [2, 1], "x": 1.75, "y": 2},
+ {"matrix": [2, 2], "x": 2.75, "y": 2},
+ {"matrix": [2, 3], "x": 3.75, "y": 2},
+ {"matrix": [2, 4], "x": 4.75, "y": 2},
+ {"matrix": [2, 5], "x": 5.75, "y": 2},
+ {"matrix": [2, 6], "x": 6.75, "y": 2},
+ {"matrix": [2, 7], "x": 7.75, "y": 2},
+ {"matrix": [2, 8], "x": 8.75, "y": 2},
+ {"matrix": [2, 9], "x": 9.75, "y": 2},
+ {"matrix": [2, 10], "x": 10.75, "y": 2},
+ {"matrix": [2, 11], "x": 11.75, "y": 2},
+ {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
+ {"matrix": [6, 0], "x": 0, "y": 3, "w": 2.25},
+ {"matrix": [6, 2], "x": 2.25, "y": 3},
+ {"matrix": [6, 3], "x": 3.25, "y": 3},
+ {"matrix": [6, 4], "x": 4.25, "y": 3},
+ {"matrix": [3, 5], "x": 5.25, "y": 3},
+ {"matrix": [3, 6], "x": 6.25, "y": 3},
+ {"matrix": [3, 7], "x": 7.25, "y": 3},
+ {"matrix": [3, 8], "x": 8.25, "y": 3},
+ {"matrix": [3, 9], "x": 9.25, "y": 3},
+ {"matrix": [3, 10], "x": 10.25, "y": 3},
+ {"matrix": [3, 11], "x": 11.25, "y": 3},
+ {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
+ {"matrix": [3, 13], "x": 14, "y": 3},
+ {"matrix": [5, 0], "x": 0, "y": 4, "w": 1.5},
+ {"matrix": [5, 1], "x": 1.5, "y": 4},
+ {"matrix": [5, 2], "x": 2.5, "y": 4, "w": 1.5},
+ {"matrix": [4, 6], "x": 4, "y": 4, "w": 7},
+ {"matrix": [4, 10], "x": 11, "y": 4, "w": 1.5},
+ {"matrix": [4, 11], "x": 12.5, "y": 4},
+ {"matrix": [4, 12], "x": 13.5, "y": 4, "w": 1.5}
+ ]
+ },
+ "LAYOUT_60_ansi_wkl": {
+ "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": [0, 4], "x": 4, "y": 0},
+ {"matrix": [0, 5], "x": 5, "y": 0},
+ {"matrix": [0, 6], "x": 6, "y": 0},
+ {"matrix": [0, 7], "x": 7, "y": 0},
+ {"matrix": [0, 8], "x": 8, "y": 0},
+ {"matrix": [0, 9], "x": 9, "y": 0},
+ {"matrix": [0, 10], "x": 10, "y": 0},
+ {"matrix": [0, 11], "x": 11, "y": 0},
+ {"matrix": [0, 12], "x": 12, "y": 0},
+ {"matrix": [0, 13], "x": 13, "y": 0, "w": 2},
+ {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+ {"matrix": [1, 1], "x": 1.5, "y": 1},
+ {"matrix": [1, 2], "x": 2.5, "y": 1},
+ {"matrix": [1, 3], "x": 3.5, "y": 1},
+ {"matrix": [1, 4], "x": 4.5, "y": 1},
+ {"matrix": [1, 5], "x": 5.5, "y": 1},
+ {"matrix": [1, 6], "x": 6.5, "y": 1},
+ {"matrix": [1, 7], "x": 7.5, "y": 1},
+ {"matrix": [1, 8], "x": 8.5, "y": 1},
+ {"matrix": [1, 9], "x": 9.5, "y": 1},
+ {"matrix": [1, 10], "x": 10.5, "y": 1},
+ {"matrix": [1, 11], "x": 11.5, "y": 1},
+ {"matrix": [1, 12], "x": 12.5, "y": 1},
+ {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
+ {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+ {"matrix": [2, 1], "x": 1.75, "y": 2},
+ {"matrix": [2, 2], "x": 2.75, "y": 2},
+ {"matrix": [2, 3], "x": 3.75, "y": 2},
+ {"matrix": [2, 4], "x": 4.75, "y": 2},
+ {"matrix": [2, 5], "x": 5.75, "y": 2},
+ {"matrix": [2, 6], "x": 6.75, "y": 2},
+ {"matrix": [2, 7], "x": 7.75, "y": 2},
+ {"matrix": [2, 8], "x": 8.75, "y": 2},
+ {"matrix": [2, 9], "x": 9.75, "y": 2},
+ {"matrix": [2, 10], "x": 10.75, "y": 2},
+ {"matrix": [2, 11], "x": 11.75, "y": 2},
+ {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
+ {"matrix": [6, 0], "x": 0, "y": 3, "w": 2.25},
+ {"matrix": [6, 2], "x": 2.25, "y": 3},
+ {"matrix": [6, 3], "x": 3.25, "y": 3},
+ {"matrix": [6, 4], "x": 4.25, "y": 3},
+ {"matrix": [3, 5], "x": 5.25, "y": 3},
+ {"matrix": [3, 6], "x": 6.25, "y": 3},
+ {"matrix": [3, 7], "x": 7.25, "y": 3},
+ {"matrix": [3, 8], "x": 8.25, "y": 3},
+ {"matrix": [3, 9], "x": 9.25, "y": 3},
+ {"matrix": [3, 10], "x": 10.25, "y": 3},
+ {"matrix": [3, 11], "x": 11.25, "y": 3},
+ {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75},
+ {"matrix": [5, 0], "x": 0, "y": 4, "w": 1.5},
+ {"matrix": [5, 2], "x": 2.5, "y": 4, "w": 1.5},
+ {"matrix": [4, 6], "x": 4, "y": 4, "w": 7},
+ {"matrix": [4, 10], "x": 11, "y": 4, "w": 1.5},
+ {"matrix": [4, 12], "x": 13.5, "y": 4, "w": 1.5}
+ ]
+ },
+ "LAYOUT_60_ansi_wkl_split_bs_rshift": {
+ "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": [0, 4], "x": 4, "y": 0},
+ {"matrix": [0, 5], "x": 5, "y": 0},
+ {"matrix": [0, 6], "x": 6, "y": 0},
+ {"matrix": [0, 7], "x": 7, "y": 0},
+ {"matrix": [0, 8], "x": 8, "y": 0},
+ {"matrix": [0, 9], "x": 9, "y": 0},
+ {"matrix": [0, 10], "x": 10, "y": 0},
+ {"matrix": [0, 11], "x": 11, "y": 0},
+ {"matrix": [0, 12], "x": 12, "y": 0},
+ {"matrix": [0, 13], "x": 13, "y": 0},
+ {"matrix": [4, 13], "x": 14, "y": 0},
+ {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+ {"matrix": [1, 1], "x": 1.5, "y": 1},
+ {"matrix": [1, 2], "x": 2.5, "y": 1},
+ {"matrix": [1, 3], "x": 3.5, "y": 1},
+ {"matrix": [1, 4], "x": 4.5, "y": 1},
+ {"matrix": [1, 5], "x": 5.5, "y": 1},
+ {"matrix": [1, 6], "x": 6.5, "y": 1},
+ {"matrix": [1, 7], "x": 7.5, "y": 1},
+ {"matrix": [1, 8], "x": 8.5, "y": 1},
+ {"matrix": [1, 9], "x": 9.5, "y": 1},
+ {"matrix": [1, 10], "x": 10.5, "y": 1},
+ {"matrix": [1, 11], "x": 11.5, "y": 1},
+ {"matrix": [1, 12], "x": 12.5, "y": 1},
+ {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
+ {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+ {"matrix": [2, 1], "x": 1.75, "y": 2},
+ {"matrix": [2, 2], "x": 2.75, "y": 2},
+ {"matrix": [2, 3], "x": 3.75, "y": 2},
+ {"matrix": [2, 4], "x": 4.75, "y": 2},
+ {"matrix": [2, 5], "x": 5.75, "y": 2},
+ {"matrix": [2, 6], "x": 6.75, "y": 2},
+ {"matrix": [2, 7], "x": 7.75, "y": 2},
+ {"matrix": [2, 8], "x": 8.75, "y": 2},
+ {"matrix": [2, 9], "x": 9.75, "y": 2},
+ {"matrix": [2, 10], "x": 10.75, "y": 2},
+ {"matrix": [2, 11], "x": 11.75, "y": 2},
+ {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
+ {"matrix": [6, 0], "x": 0, "y": 3, "w": 2.25},
+ {"matrix": [6, 2], "x": 2.25, "y": 3},
+ {"matrix": [6, 3], "x": 3.25, "y": 3},
+ {"matrix": [6, 4], "x": 4.25, "y": 3},
+ {"matrix": [3, 5], "x": 5.25, "y": 3},
+ {"matrix": [3, 6], "x": 6.25, "y": 3},
+ {"matrix": [3, 7], "x": 7.25, "y": 3},
+ {"matrix": [3, 8], "x": 8.25, "y": 3},
+ {"matrix": [3, 9], "x": 9.25, "y": 3},
+ {"matrix": [3, 10], "x": 10.25, "y": 3},
+ {"matrix": [3, 11], "x": 11.25, "y": 3},
+ {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
+ {"matrix": [3, 13], "x": 14, "y": 3},
+ {"matrix": [5, 0], "x": 0, "y": 4, "w": 1.5},
+ {"matrix": [5, 2], "x": 2.5, "y": 4, "w": 1.5},
+ {"matrix": [4, 6], "x": 4, "y": 4, "w": 7},
+ {"matrix": [4, 10], "x": 11, "y": 4, "w": 1.5},
+ {"matrix": [4, 12], "x": 13.5, "y": 4, "w": 1.5}
+ ]
+ },
+ "LAYOUT_60_hhkb": {
+ "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": [0, 4], "x": 4, "y": 0},
+ {"matrix": [0, 5], "x": 5, "y": 0},
+ {"matrix": [0, 6], "x": 6, "y": 0},
+ {"matrix": [0, 7], "x": 7, "y": 0},
+ {"matrix": [0, 8], "x": 8, "y": 0},
+ {"matrix": [0, 9], "x": 9, "y": 0},
+ {"matrix": [0, 10], "x": 10, "y": 0},
+ {"matrix": [0, 11], "x": 11, "y": 0},
+ {"matrix": [0, 12], "x": 12, "y": 0},
+ {"matrix": [0, 13], "x": 13, "y": 0},
+ {"matrix": [4, 13], "x": 14, "y": 0},
+ {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+ {"matrix": [1, 1], "x": 1.5, "y": 1},
+ {"matrix": [1, 2], "x": 2.5, "y": 1},
+ {"matrix": [1, 3], "x": 3.5, "y": 1},
+ {"matrix": [1, 4], "x": 4.5, "y": 1},
+ {"matrix": [1, 5], "x": 5.5, "y": 1},
+ {"matrix": [1, 6], "x": 6.5, "y": 1},
+ {"matrix": [1, 7], "x": 7.5, "y": 1},
+ {"matrix": [1, 8], "x": 8.5, "y": 1},
+ {"matrix": [1, 9], "x": 9.5, "y": 1},
+ {"matrix": [1, 10], "x": 10.5, "y": 1},
+ {"matrix": [1, 11], "x": 11.5, "y": 1},
+ {"matrix": [1, 12], "x": 12.5, "y": 1},
+ {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
+ {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+ {"matrix": [2, 1], "x": 1.75, "y": 2},
+ {"matrix": [2, 2], "x": 2.75, "y": 2},
+ {"matrix": [2, 3], "x": 3.75, "y": 2},
+ {"matrix": [2, 4], "x": 4.75, "y": 2},
+ {"matrix": [2, 5], "x": 5.75, "y": 2},
+ {"matrix": [2, 6], "x": 6.75, "y": 2},
+ {"matrix": [2, 7], "x": 7.75, "y": 2},
+ {"matrix": [2, 8], "x": 8.75, "y": 2},
+ {"matrix": [2, 9], "x": 9.75, "y": 2},
+ {"matrix": [2, 10], "x": 10.75, "y": 2},
+ {"matrix": [2, 11], "x": 11.75, "y": 2},
+ {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
+ {"matrix": [6, 0], "x": 0, "y": 3, "w": 2.25},
+ {"matrix": [6, 2], "x": 2.25, "y": 3},
+ {"matrix": [6, 3], "x": 3.25, "y": 3},
+ {"matrix": [6, 4], "x": 4.25, "y": 3},
+ {"matrix": [3, 5], "x": 5.25, "y": 3},
+ {"matrix": [3, 6], "x": 6.25, "y": 3},
+ {"matrix": [3, 7], "x": 7.25, "y": 3},
+ {"matrix": [3, 8], "x": 8.25, "y": 3},
+ {"matrix": [3, 9], "x": 9.25, "y": 3},
+ {"matrix": [3, 10], "x": 10.25, "y": 3},
+ {"matrix": [3, 11], "x": 11.25, "y": 3},
+ {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
+ {"matrix": [3, 13], "x": 14, "y": 3},
+ {"matrix": [5, 1], "x": 1.5, "y": 4},
+ {"matrix": [5, 2], "x": 2.5, "y": 4, "w": 1.5},
+ {"matrix": [4, 6], "x": 4, "y": 4, "w": 7},
+ {"matrix": [4, 10], "x": 11, "y": 4, "w": 1.5},
+ {"matrix": [4, 11], "x": 12.5, "y": 4}
+ ]
+ },
+ "LAYOUT_60_iso_tsangan": {
+ "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": [0, 4], "x": 4, "y": 0},
+ {"matrix": [0, 5], "x": 5, "y": 0},
+ {"matrix": [0, 6], "x": 6, "y": 0},
+ {"matrix": [0, 7], "x": 7, "y": 0},
+ {"matrix": [0, 8], "x": 8, "y": 0},
+ {"matrix": [0, 9], "x": 9, "y": 0},
+ {"matrix": [0, 10], "x": 10, "y": 0},
+ {"matrix": [0, 11], "x": 11, "y": 0},
+ {"matrix": [0, 12], "x": 12, "y": 0},
+ {"matrix": [0, 13], "x": 13, "y": 0, "w": 2},
+ {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+ {"matrix": [1, 1], "x": 1.5, "y": 1},
+ {"matrix": [1, 2], "x": 2.5, "y": 1},
+ {"matrix": [1, 3], "x": 3.5, "y": 1},
+ {"matrix": [1, 4], "x": 4.5, "y": 1},
+ {"matrix": [1, 5], "x": 5.5, "y": 1},
+ {"matrix": [1, 6], "x": 6.5, "y": 1},
+ {"matrix": [1, 7], "x": 7.5, "y": 1},
+ {"matrix": [1, 8], "x": 8.5, "y": 1},
+ {"matrix": [1, 9], "x": 9.5, "y": 1},
+ {"matrix": [1, 10], "x": 10.5, "y": 1},
+ {"matrix": [1, 11], "x": 11.5, "y": 1},
+ {"matrix": [1, 12], "x": 12.5, "y": 1},
+ {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+ {"matrix": [2, 1], "x": 1.75, "y": 2},
+ {"matrix": [2, 2], "x": 2.75, "y": 2},
+ {"matrix": [2, 3], "x": 3.75, "y": 2},
+ {"matrix": [2, 4], "x": 4.75, "y": 2},
+ {"matrix": [2, 5], "x": 5.75, "y": 2},
+ {"matrix": [2, 6], "x": 6.75, "y": 2},
+ {"matrix": [2, 7], "x": 7.75, "y": 2},
+ {"matrix": [2, 8], "x": 8.75, "y": 2},
+ {"matrix": [2, 9], "x": 9.75, "y": 2},
+ {"matrix": [2, 10], "x": 10.75, "y": 2},
+ {"matrix": [2, 11], "x": 11.75, "y": 2},
+ {"matrix": [2, 12], "x": 12.75, "y": 2},
+ {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
+ {"matrix": [6, 0], "x": 0, "y": 3, "w": 1.25},
+ {"matrix": [6, 1], "x": 1.25, "y": 3},
+ {"matrix": [6, 2], "x": 2.25, "y": 3},
+ {"matrix": [6, 3], "x": 3.25, "y": 3},
+ {"matrix": [6, 4], "x": 4.25, "y": 3},
+ {"matrix": [3, 5], "x": 5.25, "y": 3},
+ {"matrix": [3, 6], "x": 6.25, "y": 3},
+ {"matrix": [3, 7], "x": 7.25, "y": 3},
+ {"matrix": [3, 8], "x": 8.25, "y": 3},
+ {"matrix": [3, 9], "x": 9.25, "y": 3},
+ {"matrix": [3, 10], "x": 10.25, "y": 3},
+ {"matrix": [3, 11], "x": 11.25, "y": 3},
+ {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75},
+ {"matrix": [5, 0], "x": 0, "y": 4, "w": 1.5},
+ {"matrix": [5, 1], "x": 1.5, "y": 4},
+ {"matrix": [5, 2], "x": 2.5, "y": 4, "w": 1.5},
+ {"matrix": [4, 6], "x": 4, "y": 4, "w": 7},
+ {"matrix": [4, 10], "x": 11, "y": 4, "w": 1.5},
+ {"matrix": [4, 11], "x": 12.5, "y": 4},
+ {"matrix": [4, 12], "x": 13.5, "y": 4, "w": 1.5}
+ ]
+ },
+ "LAYOUT_60_iso_tsangan_split_bs_rshift": {
+ "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": [0, 4], "x": 4, "y": 0},
+ {"matrix": [0, 5], "x": 5, "y": 0},
+ {"matrix": [0, 6], "x": 6, "y": 0},
+ {"matrix": [0, 7], "x": 7, "y": 0},
+ {"matrix": [0, 8], "x": 8, "y": 0},
+ {"matrix": [0, 9], "x": 9, "y": 0},
+ {"matrix": [0, 10], "x": 10, "y": 0},
+ {"matrix": [0, 11], "x": 11, "y": 0},
+ {"matrix": [0, 12], "x": 12, "y": 0},
+ {"matrix": [0, 13], "x": 13, "y": 0},
+ {"matrix": [4, 13], "x": 14, "y": 0},
+ {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+ {"matrix": [1, 1], "x": 1.5, "y": 1},
+ {"matrix": [1, 2], "x": 2.5, "y": 1},
+ {"matrix": [1, 3], "x": 3.5, "y": 1},
+ {"matrix": [1, 4], "x": 4.5, "y": 1},
+ {"matrix": [1, 5], "x": 5.5, "y": 1},
+ {"matrix": [1, 6], "x": 6.5, "y": 1},
+ {"matrix": [1, 7], "x": 7.5, "y": 1},
+ {"matrix": [1, 8], "x": 8.5, "y": 1},
+ {"matrix": [1, 9], "x": 9.5, "y": 1},
+ {"matrix": [1, 10], "x": 10.5, "y": 1},
+ {"matrix": [1, 11], "x": 11.5, "y": 1},
+ {"matrix": [1, 12], "x": 12.5, "y": 1},
+ {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+ {"matrix": [2, 1], "x": 1.75, "y": 2},
+ {"matrix": [2, 2], "x": 2.75, "y": 2},
+ {"matrix": [2, 3], "x": 3.75, "y": 2},
+ {"matrix": [2, 4], "x": 4.75, "y": 2},
+ {"matrix": [2, 5], "x": 5.75, "y": 2},
+ {"matrix": [2, 6], "x": 6.75, "y": 2},
+ {"matrix": [2, 7], "x": 7.75, "y": 2},
+ {"matrix": [2, 8], "x": 8.75, "y": 2},
+ {"matrix": [2, 9], "x": 9.75, "y": 2},
+ {"matrix": [2, 10], "x": 10.75, "y": 2},
+ {"matrix": [2, 11], "x": 11.75, "y": 2},
+ {"matrix": [2, 12], "x": 12.75, "y": 2},
+ {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
+ {"matrix": [6, 0], "x": 0, "y": 3, "w": 1.25},
+ {"matrix": [6, 1], "x": 1.25, "y": 3},
+ {"matrix": [6, 2], "x": 2.25, "y": 3},
+ {"matrix": [6, 3], "x": 3.25, "y": 3},
+ {"matrix": [6, 4], "x": 4.25, "y": 3},
+ {"matrix": [3, 5], "x": 5.25, "y": 3},
+ {"matrix": [3, 6], "x": 6.25, "y": 3},
+ {"matrix": [3, 7], "x": 7.25, "y": 3},
+ {"matrix": [3, 8], "x": 8.25, "y": 3},
+ {"matrix": [3, 9], "x": 9.25, "y": 3},
+ {"matrix": [3, 10], "x": 10.25, "y": 3},
+ {"matrix": [3, 11], "x": 11.25, "y": 3},
+ {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
+ {"matrix": [3, 13], "x": 14, "y": 3},
+ {"matrix": [5, 0], "x": 0, "y": 4, "w": 1.5},
+ {"matrix": [5, 1], "x": 1.5, "y": 4},
+ {"matrix": [5, 2], "x": 2.5, "y": 4, "w": 1.5},
+ {"matrix": [4, 6], "x": 4, "y": 4, "w": 7},
+ {"matrix": [4, 10], "x": 11, "y": 4, "w": 1.5},
+ {"matrix": [4, 11], "x": 12.5, "y": 4},
+ {"matrix": [4, 12], "x": 13.5, "y": 4, "w": 1.5}
+ ]
+ },
+ "LAYOUT_60_iso_wkl": {
+ "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": [0, 4], "x": 4, "y": 0},
+ {"matrix": [0, 5], "x": 5, "y": 0},
+ {"matrix": [0, 6], "x": 6, "y": 0},
+ {"matrix": [0, 7], "x": 7, "y": 0},
+ {"matrix": [0, 8], "x": 8, "y": 0},
+ {"matrix": [0, 9], "x": 9, "y": 0},
+ {"matrix": [0, 10], "x": 10, "y": 0},
+ {"matrix": [0, 11], "x": 11, "y": 0},
+ {"matrix": [0, 12], "x": 12, "y": 0},
+ {"matrix": [0, 13], "x": 13, "y": 0, "w": 2},
+ {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+ {"matrix": [1, 1], "x": 1.5, "y": 1},
+ {"matrix": [1, 2], "x": 2.5, "y": 1},
+ {"matrix": [1, 3], "x": 3.5, "y": 1},
+ {"matrix": [1, 4], "x": 4.5, "y": 1},
+ {"matrix": [1, 5], "x": 5.5, "y": 1},
+ {"matrix": [1, 6], "x": 6.5, "y": 1},
+ {"matrix": [1, 7], "x": 7.5, "y": 1},
+ {"matrix": [1, 8], "x": 8.5, "y": 1},
+ {"matrix": [1, 9], "x": 9.5, "y": 1},
+ {"matrix": [1, 10], "x": 10.5, "y": 1},
+ {"matrix": [1, 11], "x": 11.5, "y": 1},
+ {"matrix": [1, 12], "x": 12.5, "y": 1},
+ {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+ {"matrix": [2, 1], "x": 1.75, "y": 2},
+ {"matrix": [2, 2], "x": 2.75, "y": 2},
+ {"matrix": [2, 3], "x": 3.75, "y": 2},
+ {"matrix": [2, 4], "x": 4.75, "y": 2},
+ {"matrix": [2, 5], "x": 5.75, "y": 2},
+ {"matrix": [2, 6], "x": 6.75, "y": 2},
+ {"matrix": [2, 7], "x": 7.75, "y": 2},
+ {"matrix": [2, 8], "x": 8.75, "y": 2},
+ {"matrix": [2, 9], "x": 9.75, "y": 2},
+ {"matrix": [2, 10], "x": 10.75, "y": 2},
+ {"matrix": [2, 11], "x": 11.75, "y": 2},
+ {"matrix": [2, 12], "x": 12.75, "y": 2},
+ {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
+ {"matrix": [6, 0], "x": 0, "y": 3, "w": 1.25},
+ {"matrix": [6, 1], "x": 1.25, "y": 3},
+ {"matrix": [6, 2], "x": 2.25, "y": 3},
+ {"matrix": [6, 3], "x": 3.25, "y": 3},
+ {"matrix": [6, 4], "x": 4.25, "y": 3},
+ {"matrix": [3, 5], "x": 5.25, "y": 3},
+ {"matrix": [3, 6], "x": 6.25, "y": 3},
+ {"matrix": [3, 7], "x": 7.25, "y": 3},
+ {"matrix": [3, 8], "x": 8.25, "y": 3},
+ {"matrix": [3, 9], "x": 9.25, "y": 3},
+ {"matrix": [3, 10], "x": 10.25, "y": 3},
+ {"matrix": [3, 11], "x": 11.25, "y": 3},
+ {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75},
+ {"matrix": [5, 0], "x": 0, "y": 4, "w": 1.5},
+ {"matrix": [5, 2], "x": 2.5, "y": 4, "w": 1.5},
+ {"matrix": [4, 6], "x": 4, "y": 4, "w": 7},
+ {"matrix": [4, 10], "x": 11, "y": 4, "w": 1.5},
+ {"matrix": [4, 12], "x": 13.5, "y": 4, "w": 1.5}
+ ]
+ },
+ "LAYOUT_60_iso_wkl_split_bs_rshift": {
+ "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": [0, 4], "x": 4, "y": 0},
+ {"matrix": [0, 5], "x": 5, "y": 0},
+ {"matrix": [0, 6], "x": 6, "y": 0},
+ {"matrix": [0, 7], "x": 7, "y": 0},
+ {"matrix": [0, 8], "x": 8, "y": 0},
+ {"matrix": [0, 9], "x": 9, "y": 0},
+ {"matrix": [0, 10], "x": 10, "y": 0},
+ {"matrix": [0, 11], "x": 11, "y": 0},
+ {"matrix": [0, 12], "x": 12, "y": 0},
+ {"matrix": [0, 13], "x": 13, "y": 0},
+ {"matrix": [4, 13], "x": 14, "y": 0},
+ {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+ {"matrix": [1, 1], "x": 1.5, "y": 1},
+ {"matrix": [1, 2], "x": 2.5, "y": 1},
+ {"matrix": [1, 3], "x": 3.5, "y": 1},
+ {"matrix": [1, 4], "x": 4.5, "y": 1},
+ {"matrix": [1, 5], "x": 5.5, "y": 1},
+ {"matrix": [1, 6], "x": 6.5, "y": 1},
+ {"matrix": [1, 7], "x": 7.5, "y": 1},
+ {"matrix": [1, 8], "x": 8.5, "y": 1},
+ {"matrix": [1, 9], "x": 9.5, "y": 1},
+ {"matrix": [1, 10], "x": 10.5, "y": 1},
+ {"matrix": [1, 11], "x": 11.5, "y": 1},
+ {"matrix": [1, 12], "x": 12.5, "y": 1},
+ {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+ {"matrix": [2, 1], "x": 1.75, "y": 2},
+ {"matrix": [2, 2], "x": 2.75, "y": 2},
+ {"matrix": [2, 3], "x": 3.75, "y": 2},
+ {"matrix": [2, 4], "x": 4.75, "y": 2},
+ {"matrix": [2, 5], "x": 5.75, "y": 2},
+ {"matrix": [2, 6], "x": 6.75, "y": 2},
+ {"matrix": [2, 7], "x": 7.75, "y": 2},
+ {"matrix": [2, 8], "x": 8.75, "y": 2},
+ {"matrix": [2, 9], "x": 9.75, "y": 2},
+ {"matrix": [2, 10], "x": 10.75, "y": 2},
+ {"matrix": [2, 11], "x": 11.75, "y": 2},
+ {"matrix": [2, 12], "x": 12.75, "y": 2},
+ {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
+ {"matrix": [6, 0], "x": 0, "y": 3, "w": 1.25},
+ {"matrix": [6, 1], "x": 1.25, "y": 3},
+ {"matrix": [6, 2], "x": 2.25, "y": 3},
+ {"matrix": [6, 3], "x": 3.25, "y": 3},
+ {"matrix": [6, 4], "x": 4.25, "y": 3},
+ {"matrix": [3, 5], "x": 5.25, "y": 3},
+ {"matrix": [3, 6], "x": 6.25, "y": 3},
+ {"matrix": [3, 7], "x": 7.25, "y": 3},
+ {"matrix": [3, 8], "x": 8.25, "y": 3},
+ {"matrix": [3, 9], "x": 9.25, "y": 3},
+ {"matrix": [3, 10], "x": 10.25, "y": 3},
+ {"matrix": [3, 11], "x": 11.25, "y": 3},
+ {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
+ {"matrix": [3, 13], "x": 14, "y": 3},
+ {"matrix": [5, 0], "x": 0, "y": 4, "w": 1.5},
+ {"matrix": [5, 2], "x": 2.5, "y": 4, "w": 1.5},
+ {"matrix": [4, 6], "x": 4, "y": 4, "w": 7},
+ {"matrix": [4, 10], "x": 11, "y": 4, "w": 1.5},
+ {"matrix": [4, 12], "x": 13.5, "y": 4, "w": 1.5}
+ ]
+ },
+ "LAYOUT_all": {
+ "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": [0, 4], "x": 4, "y": 0},
+ {"matrix": [0, 5], "x": 5, "y": 0},
+ {"matrix": [0, 6], "x": 6, "y": 0},
+ {"matrix": [0, 7], "x": 7, "y": 0},
+ {"matrix": [0, 8], "x": 8, "y": 0},
+ {"matrix": [0, 9], "x": 9, "y": 0},
+ {"matrix": [0, 10], "x": 10, "y": 0},
+ {"matrix": [0, 11], "x": 11, "y": 0},
+ {"matrix": [0, 12], "x": 12, "y": 0},
+ {"matrix": [0, 13], "x": 13, "y": 0},
+ {"matrix": [4, 13], "x": 14, "y": 0},
+ {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+ {"matrix": [1, 1], "x": 1.5, "y": 1},
+ {"matrix": [1, 2], "x": 2.5, "y": 1},
+ {"matrix": [1, 3], "x": 3.5, "y": 1},
+ {"matrix": [1, 4], "x": 4.5, "y": 1},
+ {"matrix": [1, 5], "x": 5.5, "y": 1},
+ {"matrix": [1, 6], "x": 6.5, "y": 1},
+ {"matrix": [1, 7], "x": 7.5, "y": 1},
+ {"matrix": [1, 8], "x": 8.5, "y": 1},
+ {"matrix": [1, 9], "x": 9.5, "y": 1},
+ {"matrix": [1, 10], "x": 10.5, "y": 1},
+ {"matrix": [1, 11], "x": 11.5, "y": 1},
+ {"matrix": [1, 12], "x": 12.5, "y": 1},
+ {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
+ {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+ {"matrix": [2, 1], "x": 1.75, "y": 2},
+ {"matrix": [2, 2], "x": 2.75, "y": 2},
+ {"matrix": [2, 3], "x": 3.75, "y": 2},
+ {"matrix": [2, 4], "x": 4.75, "y": 2},
+ {"matrix": [2, 5], "x": 5.75, "y": 2},
+ {"matrix": [2, 6], "x": 6.75, "y": 2},
+ {"matrix": [2, 7], "x": 7.75, "y": 2},
+ {"matrix": [2, 8], "x": 8.75, "y": 2},
+ {"matrix": [2, 9], "x": 9.75, "y": 2},
+ {"matrix": [2, 10], "x": 10.75, "y": 2},
+ {"matrix": [2, 11], "x": 11.75, "y": 2},
+ {"matrix": [2, 12], "x": 12.75, "y": 2},
+ {"matrix": [2, 13], "x": 13.75, "y": 2, "w": 1.25},
+ {"matrix": [6, 0], "x": 0, "y": 3, "w": 1.25},
+ {"matrix": [6, 1], "x": 1.25, "y": 3},
+ {"matrix": [6, 2], "x": 2.25, "y": 3},
+ {"matrix": [6, 3], "x": 3.25, "y": 3},
+ {"matrix": [6, 4], "x": 4.25, "y": 3},
+ {"matrix": [3, 5], "x": 5.25, "y": 3},
+ {"matrix": [3, 6], "x": 6.25, "y": 3},
+ {"matrix": [3, 7], "x": 7.25, "y": 3},
+ {"matrix": [3, 8], "x": 8.25, "y": 3},
+ {"matrix": [3, 9], "x": 9.25, "y": 3},
+ {"matrix": [3, 10], "x": 10.25, "y": 3},
+ {"matrix": [3, 11], "x": 11.25, "y": 3},
+ {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
+ {"matrix": [3, 13], "x": 14, "y": 3},
+ {"matrix": [5, 0], "x": 0, "y": 4, "w": 1.5},
+ {"matrix": [5, 1], "x": 1.5, "y": 4},
+ {"matrix": [5, 2], "x": 2.5, "y": 4, "w": 1.5},
+ {"matrix": [4, 6], "x": 4, "y": 4, "w": 7},
+ {"matrix": [4, 10], "x": 11, "y": 4, "w": 1.5},
+ {"matrix": [4, 11], "x": 12.5, "y": 4},
+ {"matrix": [4, 12], "x": 13.5, "y": 4, "w": 1.5}
+ ]
+ }
+ }
+}
diff --git a/keyboards/wiredin/protagonist/pro_s/keymaps/default/keymap.c b/keyboards/wiredin/protagonist/pro_s/keymaps/default/keymap.c
new file mode 100644
index 0000000000..68bc778caa
--- /dev/null
+++ b/keyboards/wiredin/protagonist/pro_s/keymaps/default/keymap.c
@@ -0,0 +1,33 @@
+/* Copyright 2020 Gondolindrim
+ *
+ * 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_all(/* Base */
+ QK_GESC, 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_BSPC, 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_LBRC, KC_RBRC, KC_BSLS,
+ KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_COLN, KC_QUOT, KC_NUHS, KC_ENT,
+ KC_LSFT, KC_NUBS, 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, MO(1), KC_RCTL
+ ),
+ [1] = LAYOUT_all(
+ QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/wiredin/protagonist/pro_s/mcuconf.h b/keyboards/wiredin/protagonist/pro_s/mcuconf.h
new file mode 100644
index 0000000000..0b2d6e95d8
--- /dev/null
+++ b/keyboards/wiredin/protagonist/pro_s/mcuconf.h
@@ -0,0 +1,25 @@
+/* Copyright 2024 Gondolindrim <[email protected]>
+ *
+ * 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_PWM_USE_TIM3
+#define STM32_PWM_USE_TIM3 TRUE
+
+#undef STM32_PWM_USE_TIM1
+#define STM32_PWM_USE_TIM1 TRUE
diff --git a/keyboards/wiredin/protagonist/readme.md b/keyboards/wiredin/protagonist/readme.md
new file mode 100644
index 0000000000..153c3fb734
--- /dev/null
+++ b/keyboards/wiredin/protagonist/readme.md
@@ -0,0 +1,29 @@
+# WiredIn Protagonist
+
+* Keyboard Maintainer: [Gondolindrim](https://github.com/Gondolindrim)
+* Hardware Supported: proprietary PCB using STM32F411 microcontroller;
+* Hardware Availability: the Protagonist entered Group Buy in february 2024 and as of april 2025 there were no more public sales.
+
+The Protagonist is a 60% keyboard designed by WiredIn and PCB designed by [Gondolindrim](http://github.com/Gondolindrim), who is also the firwmare maintainer.
+
+## How to flash
+
+### Enter bootloader
+
+The DFU state in the bootloader can be accessed in 3 ways:
+
+* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (escape in the default keymap) and plug in the keyboard;
+* **Physical reset button**: press the button on the back of the PCB and hold it for 5 seconds;
+* **Keycode in layout**: Press the key mapped to `RESET`; in the default layout, that is top left key ('escape') in layer 1.
+
+### How to compile and flash
+
+The Protagonist has two PCB versions: PRO-S (solderable) and PRO-H (hotswap). After checking what PCB you own and setting up your build environment, you can compile the default keymap by using one of the options below.
+
+ make wiredin/protagonist/<version>:default
+
+Where `<version>` can be `pro_s` or `pro_h`. And use dfu-util in the command line or through a GUI like QMK toolbox to upload the firmware to the PCB. To directly flash the PCB after it is put into a DFU state, use:
+
+ make wiredin/protagonist/<version>: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).
diff --git a/keyboards/ymdk/id75/keymaps/default/keymap.json b/keyboards/ymdk/id75/keymaps/default/keymap.json
index 7d0664c0a6..595841449e 100644
--- a/keyboards/ymdk/id75/keymaps/default/keymap.json
+++ b/keyboards/ymdk/id75/keymaps/default/keymap.json
@@ -2,7 +2,7 @@
"version": 1,
"author": "qmk",
"notes": "",
- "keyboard": "ymdk/id75",
+ "keyboard": "ymdk/id75/f103",
"keymap": "default",
"layout": "LAYOUT_ortho_5x15",
"layers": [