diff options
Diffstat (limited to 'keyboards')
668 files changed, 9585 insertions, 1858 deletions
diff --git a/keyboards/0_sixty/info.json b/keyboards/0_sixty/info.json index ebe4d39625..79b9388ed3 100644 --- a/keyboards/0_sixty/info.json +++ b/keyboards/0_sixty/info.json @@ -25,8 +25,7 @@ "resync": true } }, - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "layouts": { "LAYOUT_1x2uC": { "layout": [ diff --git a/keyboards/0xcb/tutelpad/keyboard.json b/keyboards/0xcb/tutelpad/keyboard.json index 2517fa7072..dfb4ee1a0b 100644 --- a/keyboards/0xcb/tutelpad/keyboard.json +++ b/keyboards/0xcb/tutelpad/keyboard.json @@ -30,8 +30,7 @@ "ws2812": { "pin": "D3" }, - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "features": { "bootmagic": true, "extrakey": true, 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 ea73875970..c55b2669ef 100644 --- a/keyboards/1upkeyboards/pi50/pi50.c +++ b/keyboards/1upkeyboards/pi50/pi50.c @@ -18,43 +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 -}; - -#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 - default: - return "UNKNOWN"; - } -} - #ifdef OLED_ENABLE static uint32_t oled_logo_timer = 0; @@ -148,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/1upkeyboards/super16/keyboard.json b/keyboards/1upkeyboards/super16/keyboard.json index 461b43764d..3b5859474a 100644 --- a/keyboards/1upkeyboards/super16/keyboard.json +++ b/keyboards/1upkeyboards/super16/keyboard.json @@ -94,8 +94,7 @@ "rows": ["D1", "D0", "F4", "F5"] }, "diode_direction": "COL2ROW", - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "community_layouts": ["ortho_4x4", "numpad_4x4"], "layouts": { "LAYOUT_ortho_4x4": { diff --git a/keyboards/1upkeyboards/sweet16/v1/keyboard.json b/keyboards/1upkeyboards/sweet16/v1/keyboard.json index 161ca65950..a8c5bf7e92 100644 --- a/keyboards/1upkeyboards/sweet16/v1/keyboard.json +++ b/keyboards/1upkeyboards/sweet16/v1/keyboard.json @@ -48,8 +48,7 @@ "rows": ["F4", "F5", "F6", "F7"] }, "diode_direction": "COL2ROW", - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "layouts": { "LAYOUT_ortho_4x4": { "layout": [ diff --git a/keyboards/25keys/cassette42/keyboard.json b/keyboards/25keys/cassette42/keyboard.json index cba2e61272..97aab705ca 100644 --- a/keyboards/25keys/cassette42/keyboard.json +++ b/keyboards/25keys/cassette42/keyboard.json @@ -43,8 +43,7 @@ "ws2812": { "pin": "D3" }, - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "matrix_pins": { "direct": [ ["B4", "F6", "F5", "F4", "B5", "F7"] diff --git a/keyboards/25keys/zinc/rev1/keyboard.json b/keyboards/25keys/zinc/rev1/keyboard.json index fd11273c18..fc7160cb6c 100644 --- a/keyboards/25keys/zinc/rev1/keyboard.json +++ b/keyboards/25keys/zinc/rev1/keyboard.json @@ -8,8 +8,7 @@ "pid": "0xEA3B", "device_version": "0.0.1" }, - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "matrix_pins": { "cols": ["F4", "D4", "C6", "D7", "E6", "B4"], "rows": ["F6", "F7", "B1", "B3"] diff --git a/keyboards/25keys/zinc/reva/keyboard.json b/keyboards/25keys/zinc/reva/keyboard.json index dedc8f22f8..6acd188c75 100644 --- a/keyboards/25keys/zinc/reva/keyboard.json +++ b/keyboards/25keys/zinc/reva/keyboard.json @@ -8,8 +8,7 @@ "pid": "0xEA3B", "device_version": "0.0.1" }, - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "matrix_pins": { "cols": ["F4", "F5", "F6", "F7", "B1", "B3"], "rows": ["D4", "C6", "D7", "E6"] diff --git a/keyboards/30wer/keyboard.json b/keyboards/30wer/keyboard.json index d5d4c5fa56..4d27043ed9 100644 --- a/keyboards/30wer/keyboard.json +++ b/keyboards/30wer/keyboard.json @@ -19,8 +19,7 @@ "rows": ["E6", "B4", "B5"] }, "diode_direction": "COL2ROW", - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/40percentclub/25/keyboard.json b/keyboards/40percentclub/25/keyboard.json index ceaff11454..b6c6621eed 100644 --- a/keyboards/40percentclub/25/keyboard.json +++ b/keyboards/40percentclub/25/keyboard.json @@ -31,8 +31,7 @@ "pin": "D0" } }, - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "community_layouts": ["ortho_5x5", "ortho_5x10"], "layout_aliases": { "LAYOUT_macro": "LAYOUT_ortho_5x5", diff --git a/keyboards/40percentclub/4pack/keyboard.json b/keyboards/40percentclub/4pack/keyboard.json index 0b26e75b92..08c70e61d0 100644 --- a/keyboards/40percentclub/4pack/keyboard.json +++ b/keyboards/40percentclub/4pack/keyboard.json @@ -11,8 +11,7 @@ "driver": "timer", "pins": ["F6", "F7"] }, - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "features": { "backlight": true, "bootmagic": false, diff --git a/keyboards/40percentclub/6lit/keyboard.json b/keyboards/40percentclub/6lit/keyboard.json index 96644a7a44..ffab3266ae 100644 --- a/keyboards/40percentclub/6lit/keyboard.json +++ b/keyboards/40percentclub/6lit/keyboard.json @@ -31,8 +31,7 @@ "pin": "D0" } }, - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "community_layouts": ["ortho_2x3", "ortho_2x6"], "layout_aliases": { "LAYOUT_macro": "LAYOUT_ortho_2x3", diff --git a/keyboards/40percentclub/foobar/keyboard.json b/keyboards/40percentclub/foobar/keyboard.json index c0a77c4e9a..b47af21598 100644 --- a/keyboards/40percentclub/foobar/keyboard.json +++ b/keyboards/40percentclub/foobar/keyboard.json @@ -31,8 +31,7 @@ "pin": "D0" } }, - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "community_layouts": ["ortho_3x10"], "layout_aliases": { "LAYOUT_macro": "LAYOUT_ortho_3x5", diff --git a/keyboards/40percentclub/half_n_half/keyboard.json b/keyboards/40percentclub/half_n_half/keyboard.json index 21ca55f162..1b19794cce 100644 --- a/keyboards/40percentclub/half_n_half/keyboard.json +++ b/keyboards/40percentclub/half_n_half/keyboard.json @@ -31,8 +31,7 @@ "pin": "D0" } }, - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/40percentclub/i75/promicro/keyboard.json b/keyboards/40percentclub/i75/promicro/keyboard.json index 933c4f8616..58a9b11b1c 100644 --- a/keyboards/40percentclub/i75/promicro/keyboard.json +++ b/keyboards/40percentclub/i75/promicro/keyboard.json @@ -4,6 +4,5 @@ "rows": ["B4", "E6", "D7", "C6", "D4", "D0", "D1", "D2", "D3"] }, "diode_direction": "COL2ROW", - "processor": "atmega32u4", - "bootloader": "caterina" + "development_board": "promicro" } diff --git a/keyboards/40percentclub/luddite/keyboard.json b/keyboards/40percentclub/luddite/keyboard.json index 812bbdc7aa..f8c47ef7d4 100644 --- a/keyboards/40percentclub/luddite/keyboard.json +++ b/keyboards/40percentclub/luddite/keyboard.json @@ -48,8 +48,7 @@ "ws2812": { "pin": "B4" }, - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "community_layouts": ["60_ansi"], "layouts": { "LAYOUT_60_ansi": { diff --git a/keyboards/40percentclub/mf68/keyboard.json b/keyboards/40percentclub/mf68/keyboard.json index daeab7d4de..fd3d5be874 100644 --- a/keyboards/40percentclub/mf68/keyboard.json +++ b/keyboards/40percentclub/mf68/keyboard.json @@ -29,8 +29,7 @@ "pin": "B5", "breathing": true }, - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "community_layouts": ["68_ansi"], "layouts": { "LAYOUT_68_ansi": { diff --git a/keyboards/40percentclub/nano/keyboard.json b/keyboards/40percentclub/nano/keyboard.json index 4d797ed076..46158c11d6 100644 --- a/keyboards/40percentclub/nano/keyboard.json +++ b/keyboards/40percentclub/nano/keyboard.json @@ -25,8 +25,7 @@ "ws2812": { "pin": "D3" }, - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "features": { "bootmagic": false, "extrakey": true, diff --git a/keyboards/40percentclub/nein/keyboard.json b/keyboards/40percentclub/nein/keyboard.json index 267e708038..d2d48e6b0c 100644 --- a/keyboards/40percentclub/nein/keyboard.json +++ b/keyboards/40percentclub/nein/keyboard.json @@ -8,8 +8,7 @@ "pid": "0x9999", "device_version": "99.9.9" }, - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "features": { "bootmagic": true, "extrakey": true, diff --git a/keyboards/40percentclub/nori/keyboard.json b/keyboards/40percentclub/nori/keyboard.json index feb66f9501..e4f2b3604a 100644 --- a/keyboards/40percentclub/nori/keyboard.json +++ b/keyboards/40percentclub/nori/keyboard.json @@ -50,8 +50,7 @@ "ws2812": { "pin": "B4" }, - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "community_layouts": ["ortho_4x4", "ortho_4x12"], "layouts": { "LAYOUT_ortho_4x4": { diff --git a/keyboards/40percentclub/polyandry/promicro/keyboard.json b/keyboards/40percentclub/polyandry/promicro/keyboard.json index a8169c93dd..e8b2fcdb23 100644 --- a/keyboards/40percentclub/polyandry/promicro/keyboard.json +++ b/keyboards/40percentclub/polyandry/promicro/keyboard.json @@ -4,6 +4,5 @@ "rows": ["D7"] }, "diode_direction": "COL2ROW", - "processor": "atmega32u4", - "bootloader": "caterina" + "development_board": "promicro" } diff --git a/keyboards/40percentclub/sixpack/keyboard.json b/keyboards/40percentclub/sixpack/keyboard.json index 9bed19df3f..892d929ff5 100644 --- a/keyboards/40percentclub/sixpack/keyboard.json +++ b/keyboards/40percentclub/sixpack/keyboard.json @@ -19,8 +19,7 @@ "num_lock": "D5", "on_state": 0 }, - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "features": { "backlight": true, "bootmagic": true, diff --git a/keyboards/40percentclub/tomato/keyboard.json b/keyboards/40percentclub/tomato/keyboard.json index c11b747f24..6fc1d7df98 100644 --- a/keyboards/40percentclub/tomato/keyboard.json +++ b/keyboards/40percentclub/tomato/keyboard.json @@ -48,8 +48,7 @@ "rows": ["F7", "B1", "B3", "B2", "B6"] }, "diode_direction": "COL2ROW", - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "community_layouts": ["ortho_3x10"], "layouts": { "LAYOUT_ortho_3x10": { diff --git a/keyboards/4by3/keyboard.json b/keyboards/4by3/keyboard.json index 8801a1e920..4de26c809d 100644 --- a/keyboards/4by3/keyboard.json +++ b/keyboards/4by3/keyboard.json @@ -21,8 +21,7 @@ "rows": ["D1", "D0", "D4"] }, "diode_direction": "COL2ROW", - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "layout_aliases": { "LAYOUT": "LAYOUT_horizontal" }, diff --git a/keyboards/4pplet/perk60_iso/rev_a/rev_a.c b/keyboards/4pplet/perk60_iso/rev_a/rev_a.c index 2de3acc60d..c4ab064cb2 100644 --- a/keyboards/4pplet/perk60_iso/rev_a/rev_a.c +++ b/keyboards/4pplet/perk60_iso/rev_a/rev_a.c @@ -14,7 +14,20 @@ 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 "rev_a.h" +#include "quantum.h" + +#ifndef CAPS_LOCK_ENABLE +# define CAPS_LOCK_ENABLE true +#endif + +#ifndef CAPS_LOCK_COLOR +# define CAPS_LOCK_COLOR RGB_RED +#endif + +#ifndef CAPS_LED_GROUP +// change what leds to target, for example LED_FLAG_KEYLIGHT for alpas or LED_FLAG_MODIFIER for modifiers +# define CAPS_LED_GROUP LED_FLAG_INDICATOR +#endif #ifdef RGB_MATRIX_ENABLE const is31fl3733_led_t PROGMEM g_is31fl3733_leds[IS31FL3733_LED_COUNT] = { diff --git a/keyboards/4pplet/perk60_iso/rev_a/rev_a.h b/keyboards/4pplet/perk60_iso/rev_a/rev_a.h deleted file mode 100644 index 2f4fa7531a..0000000000 --- a/keyboards/4pplet/perk60_iso/rev_a/rev_a.h +++ /dev/null @@ -1,23 +0,0 @@ -/* -Copyright 2022 Stefan Sundin "4pplet" <[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 CAPS_LOCK_ENABLE true -#define CAPS_LOCK_COLOR RGB_RED -#define CAPS_LED_GROUP LED_FLAG_INDICATOR // change what leds to target, for example LED_FLAG_KEYLIGHT for alpas or LED_FLAG_MODIFIER for modifiers - -#include "quantum.h" diff --git a/keyboards/4pplet/waffling60/rev_b/rev_b.c b/keyboards/4pplet/waffling60/rev_b/rev_b.c index c03f3630e6..8923ba6f7d 100644 --- a/keyboards/4pplet/waffling60/rev_b/rev_b.c +++ b/keyboards/4pplet/waffling60/rev_b/rev_b.c @@ -14,7 +14,11 @@ 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 "rev_b.h" +#include "quantum.h" + +#ifndef CAPS_LOCK_ENABLE +# define CAPS_LOCK_ENABLE true +#endif bool led_update_kb(led_t led_state) { bool res = led_update_user(led_state); diff --git a/keyboards/4pplet/waffling60/rev_c/rev_c.c b/keyboards/4pplet/waffling60/rev_c/rev_c.c index fc7e99b601..f7f78f679d 100644 --- a/keyboards/4pplet/waffling60/rev_c/rev_c.c +++ b/keyboards/4pplet/waffling60/rev_c/rev_c.c @@ -14,7 +14,11 @@ 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 "rev_c.h" +#include "quantum.h" + +#ifndef CAPS_LOCK_ENABLE +# define CAPS_LOCK_ENABLE true +#endif bool led_update_kb(led_t led_state) { bool res = led_update_user(led_state); diff --git a/keyboards/4pplet/waffling60/rev_d/rev_d.c b/keyboards/4pplet/waffling60/rev_d/rev_d.c index 2e0511459d..f7f78f679d 100644 --- a/keyboards/4pplet/waffling60/rev_d/rev_d.c +++ b/keyboards/4pplet/waffling60/rev_d/rev_d.c @@ -14,7 +14,11 @@ 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 "rev_d.h" +#include "quantum.h" + +#ifndef CAPS_LOCK_ENABLE +# define CAPS_LOCK_ENABLE true +#endif bool led_update_kb(led_t led_state) { bool res = led_update_user(led_state); diff --git a/keyboards/4pplet/waffling60/rev_e/rev_e.c b/keyboards/4pplet/waffling60/rev_e/rev_e.c index 81941d54be..ca71947bfe 100644 --- a/keyboards/4pplet/waffling60/rev_e/rev_e.c +++ b/keyboards/4pplet/waffling60/rev_e/rev_e.c @@ -14,7 +14,15 @@ 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 "rev_e.h" +#include "quantum.h" + +#ifndef CAPS_LOCK_ENABLE +# define CAPS_LOCK_ENABLE true +#endif + +#ifndef CAPS_LOCK_COLOR +# define CAPS_LOCK_COLOR HSV_GREEN +#endif void keyboard_pre_init_kb(void) { rgblight_set_effect_range(0, 16); diff --git a/keyboards/4pplet/waffling80/rev_a/rev_a.c b/keyboards/4pplet/waffling80/rev_a/rev_a.c index d1032e7c6c..9983830548 100644 --- a/keyboards/4pplet/waffling80/rev_a/rev_a.c +++ b/keyboards/4pplet/waffling80/rev_a/rev_a.c @@ -14,7 +14,19 @@ 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 "rev_a.h" +#include "quantum.h" + +#ifndef CAPS_LOCK_ENABLE +# define CAPS_LOCK_ENABLE 1 +#endif + +#ifndef SCROLL_LOCK_ENABLE +# define SCROLL_LOCK_ENABLE 1 +#endif + +// If colors are defined, they will be static. If not defined, color for indicators can be set in VIA. +//#define CAPS_LOCK_COLOR HSV_GREEN +//#define SCROLL_LOCK_COLOR HSV_GREEN bool led_update_kb(led_t led_state) { bool res = led_update_user(led_state); diff --git a/keyboards/4pplet/waffling80/rev_b/rev_b.c b/keyboards/4pplet/waffling80/rev_b/rev_b.c index 15e44b93a1..9983830548 100644 --- a/keyboards/4pplet/waffling80/rev_b/rev_b.c +++ b/keyboards/4pplet/waffling80/rev_b/rev_b.c @@ -14,7 +14,19 @@ 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 "rev_b.h" +#include "quantum.h" + +#ifndef CAPS_LOCK_ENABLE +# define CAPS_LOCK_ENABLE 1 +#endif + +#ifndef SCROLL_LOCK_ENABLE +# define SCROLL_LOCK_ENABLE 1 +#endif + +// If colors are defined, they will be static. If not defined, color for indicators can be set in VIA. +//#define CAPS_LOCK_COLOR HSV_GREEN +//#define SCROLL_LOCK_COLOR HSV_GREEN bool led_update_kb(led_t led_state) { bool res = led_update_user(led_state); diff --git a/keyboards/4pplet/waffling80/rev_b/rev_b.h b/keyboards/4pplet/waffling80/rev_b/rev_b.h deleted file mode 100644 index c8d4c8b971..0000000000 --- a/keyboards/4pplet/waffling80/rev_b/rev_b.h +++ /dev/null @@ -1,26 +0,0 @@ -/* -Copyright 2022 Stefan Sundin "4pplet" <[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 CAPS_LOCK_ENABLE 1 -#define SCROLL_LOCK_ENABLE 1 - -// If colors are defined, they will be static. If not defined, color for incicators can be set in VIA. -//#define CAPS_LOCK_COLOR HSV_GREEN -//#define SCROLL_LOCK_COLOR HSV_GREEN - -#include "quantum.h" diff --git a/keyboards/4pplet/waffling80/rev_b_ansi/rev_b_ansi.c b/keyboards/4pplet/waffling80/rev_b_ansi/rev_b_ansi.c index 9e617eaa7a..2cadd18a27 100644 --- a/keyboards/4pplet/waffling80/rev_b_ansi/rev_b_ansi.c +++ b/keyboards/4pplet/waffling80/rev_b_ansi/rev_b_ansi.c @@ -14,7 +14,19 @@ 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 "rev_b_ansi.h" +#include "quantum.h" + +#ifndef CAPS_LOCK_ENABLE +# define CAPS_LOCK_ENABLE 1 +#endif + +#ifndef SCROLL_LOCK_ENABLE +# define SCROLL_LOCK_ENABLE 1 +#endif + +// If colors are defined, they will be static. If not defined, color for indicators can be set in VIA. +//#define CAPS_LOCK_COLOR HSV_GREEN +//#define SCROLL_LOCK_COLOR HSV_GREEN bool led_update_kb(led_t led_state) { bool res = led_update_user(led_state); diff --git a/keyboards/4pplet/waffling80/rev_b_ansi/rev_b_ansi.h b/keyboards/4pplet/waffling80/rev_b_ansi/rev_b_ansi.h deleted file mode 100644 index c8d4c8b971..0000000000 --- a/keyboards/4pplet/waffling80/rev_b_ansi/rev_b_ansi.h +++ /dev/null @@ -1,26 +0,0 @@ -/* -Copyright 2022 Stefan Sundin "4pplet" <[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 CAPS_LOCK_ENABLE 1 -#define SCROLL_LOCK_ENABLE 1 - -// If colors are defined, they will be static. If not defined, color for incicators can be set in VIA. -//#define CAPS_LOCK_COLOR HSV_GREEN -//#define SCROLL_LOCK_COLOR HSV_GREEN - -#include "quantum.h" diff --git a/keyboards/8pack/info.json b/keyboards/8pack/info.json index 84d81c11d3..041990fbb3 100644 --- a/keyboards/8pack/info.json +++ b/keyboards/8pack/info.json @@ -36,8 +36,7 @@ "ws2812": { "pin": "D2" }, - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "features": { "backlight": true, "bootmagic": false, diff --git a/keyboards/adafruit/macropad/halconf.h b/keyboards/adafruit/macropad/halconf.h index 2e3be29bbf..53c366ea1c 100644 --- a/keyboards/adafruit/macropad/halconf.h +++ b/keyboards/adafruit/macropad/halconf.h @@ -16,16 +16,7 @@ #pragma once -#include_next <halconf.h> - -#undef HAL_USE_SPI #define HAL_USE_SPI TRUE - -#undef SPI_USE_WAIT -#define SPI_USE_WAIT TRUE - -#undef SPI_SELECT_MODE -#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD - -#undef HAL_USE_PWM #define HAL_USE_PWM TRUE + +#include_next <halconf.h> diff --git a/keyboards/adkb96/rev1/keyboard.json b/keyboards/adkb96/rev1/keyboard.json index 5def3c9da3..3c0c757c05 100644 --- a/keyboards/adkb96/rev1/keyboard.json +++ b/keyboards/adkb96/rev1/keyboard.json @@ -34,8 +34,7 @@ "tapping": { "term": 100 }, - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "layout_aliases": { "LAYOUT": "LAYOUT_ortho_6x16" }, diff --git a/keyboards/adpenrose/akemipad/keyboard.json b/keyboards/adpenrose/akemipad/keyboard.json index 2dcfed3b5a..085ca5e406 100644 --- a/keyboards/adpenrose/akemipad/keyboard.json +++ b/keyboards/adpenrose/akemipad/keyboard.json @@ -42,8 +42,7 @@ "qmk": { "tap_keycode_delay": 10 }, - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/ai/keyboard.json b/keyboards/ai/keyboard.json index bf594d306a..f8a5ba9925 100644 --- a/keyboards/ai/keyboard.json +++ b/keyboards/ai/keyboard.json @@ -2,7 +2,7 @@ "manufacturer": "Louis Dalibard", "keyboard_name": "ai", "maintainer": "make42", - "bootloader": "caterina", + "development_board": "promicro", "diode_direction": "COL2ROW", "features": { "bootmagic": true, @@ -14,7 +14,6 @@ "cols": ["F5", "F6", "F7", "B1"], "rows": ["D0", "D4", "C6", "D7", "D1"] }, - "processor": "atmega32u4", "usb": { "device_version": "1.0.0", "pid": "0x0000", diff --git a/keyboards/akko/5087/halconf.h b/keyboards/akko/5087/halconf.h index 55bfe5c977..b8ebdb3369 100644 --- a/keyboards/akko/5087/halconf.h +++ b/keyboards/akko/5087/halconf.h @@ -17,7 +17,5 @@ #define HAL_USE_I2C TRUE #define HAL_USE_SPI TRUE -#define SPI_USE_WAIT TRUE -#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD #include_next <halconf.h> diff --git a/keyboards/akko/5108/halconf.h b/keyboards/akko/5108/halconf.h index 2f64e65393..2ddb9c35d8 100644 --- a/keyboards/akko/5108/halconf.h +++ b/keyboards/akko/5108/halconf.h @@ -17,7 +17,5 @@ #define HAL_USE_I2C TRUE #define HAL_USE_SPI TRUE -#define SPI_USE_WAIT TRUE -#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD #include_next <halconf.h> diff --git a/keyboards/akko/acr87/halconf.h b/keyboards/akko/acr87/halconf.h index 2f64e65393..2ddb9c35d8 100644 --- a/keyboards/akko/acr87/halconf.h +++ b/keyboards/akko/acr87/halconf.h @@ -17,7 +17,5 @@ #define HAL_USE_I2C TRUE #define HAL_USE_SPI TRUE -#define SPI_USE_WAIT TRUE -#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD #include_next <halconf.h> diff --git a/keyboards/akko/top40/halconf.h b/keyboards/akko/top40/halconf.h index 2f64e65393..2ddb9c35d8 100644 --- a/keyboards/akko/top40/halconf.h +++ b/keyboards/akko/top40/halconf.h @@ -17,7 +17,5 @@ #define HAL_USE_I2C TRUE #define HAL_USE_SPI TRUE -#define SPI_USE_WAIT TRUE -#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD #include_next <halconf.h> diff --git a/keyboards/aleblazer/zodiark/keyboard.json b/keyboards/aleblazer/zodiark/keyboard.json index fba239866e..6818797809 100644 --- a/keyboards/aleblazer/zodiark/keyboard.json +++ b/keyboards/aleblazer/zodiark/keyboard.json @@ -71,8 +71,7 @@ "pin": "D3" } }, - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/alpha/keyboard.json b/keyboards/alpha/keyboard.json index 84a25eb180..7c18d47045 100644 --- a/keyboards/alpha/keyboard.json +++ b/keyboards/alpha/keyboard.json @@ -45,8 +45,7 @@ "rows": ["D4", "B4", "B5"] }, "diode_direction": "COL2ROW", - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/amptrics/0422/0422.c b/keyboards/amptrics/0422/0422.c index 034151b5b8..4c0ed2e5b8 100644 --- a/keyboards/amptrics/0422/0422.c +++ b/keyboards/amptrics/0422/0422.c @@ -23,30 +23,31 @@ #define LED_PINS_COUNT 4 -pin_t pins[LED_PINS_COUNT] = {LED_LAYER_0, LED_LAYER_1, LED_LAYER_2, LED_LAYER_3}; - +static pin_t pins[LED_PINS_COUNT] = {LED_LAYER_0, LED_LAYER_1, LED_LAYER_2, LED_LAYER_3}; // Function to turn on all LEDs void turn_on_all_leds(void) { - for (int i = 0; i < LED_PINS_COUNT; i++) { + for (uint8_t i = 0; i < LED_PINS_COUNT; i++) { gpio_write_pin_high(pins[i]); // Turn on LED } } // Function to turn off all LEDs void turn_off_all_leds(void) { - for (int i = 0; i < LED_PINS_COUNT; i++) { + for (uint8_t i = 0; i < LED_PINS_COUNT; i++) { gpio_write_pin_low(pins[i]); // Turn off LED } } void update_leds_for_layer(uint8_t layer) { turn_off_all_leds(); - gpio_write_pin_high(pins[layer]); + if (layer < LED_PINS_COUNT) { + gpio_write_pin_high(pins[layer]); + } } void keyboard_post_init_kb(void) { - for (int i = 0; i < LED_PINS_COUNT; i++) { + for (uint8_t i = 0; i < LED_PINS_COUNT; i++) { gpio_set_pin_output(pins[i]); gpio_write_pin_low(pins[i]); } diff --git a/keyboards/amptrics/0422/keyboard.json b/keyboards/amptrics/0422/keyboard.json index 669e355264..09ca2e10c3 100644 --- a/keyboards/amptrics/0422/keyboard.json +++ b/keyboards/amptrics/0422/keyboard.json @@ -15,7 +15,6 @@ "rows": ["A14", "A13", "A10", "A9"] }, "processor": "STM32F072", - "url": "", "usb": { "device_version": "1.0.0", "pid": "0x01A6", diff --git a/keyboards/annepro2/halconf.h b/keyboards/annepro2/halconf.h index dcb04eab1b..980435448f 100644 --- a/keyboards/annepro2/halconf.h +++ b/keyboards/annepro2/halconf.h @@ -26,7 +26,5 @@ #define SERIAL_USB_BUFFERS_SIZE 256 #define HAL_USE_SPI TRUE -#define SPI_USE_WAIT TRUE -#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD #include_next <halconf.h> diff --git a/keyboards/aplyard/aplx6/rev1/keyboard.json b/keyboards/aplyard/aplx6/rev1/keyboard.json index 667ebdba02..5e3c35b49b 100644 --- a/keyboards/aplyard/aplx6/rev1/keyboard.json +++ b/keyboards/aplyard/aplx6/rev1/keyboard.json @@ -15,8 +15,7 @@ "rows": ["E6", "B3"] }, "diode_direction": "COL2ROW", - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/aplyard/aplx6/rev2/keyboard.json b/keyboards/aplyard/aplx6/rev2/keyboard.json index 4c881534f4..56ec03479f 100644 --- a/keyboards/aplyard/aplx6/rev2/keyboard.json +++ b/keyboards/aplyard/aplx6/rev2/keyboard.json @@ -25,8 +25,7 @@ "qmk": { "tap_keycode_delay": 50 }, - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/arabica37/rev1/keyboard.json b/keyboards/arabica37/rev1/keyboard.json index d1db9a276c..1433875e29 100644 --- a/keyboards/arabica37/rev1/keyboard.json +++ b/keyboards/arabica37/rev1/keyboard.json @@ -31,8 +31,7 @@ "ws2812": { "pin": "D3" }, - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/atreus62/keyboard.json b/keyboards/atreus62/keyboard.json index 5fb786fa98..34e19925e9 100644 --- a/keyboards/atreus62/keyboard.json +++ b/keyboards/atreus62/keyboard.json @@ -27,8 +27,7 @@ "rows": ["D2", "D3", "D1", "D0", "D4"] }, "diode_direction": "ROW2COL", - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/avalanche/v1/keyboard.json b/keyboards/avalanche/v1/keyboard.json index 0e539bdefc..4a6e2fbcbb 100644 --- a/keyboards/avalanche/v1/keyboard.json +++ b/keyboards/avalanche/v1/keyboard.json @@ -25,8 +25,7 @@ "pin": "D2" } }, - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/avalanche/v2/keyboard.json b/keyboards/avalanche/v2/keyboard.json index 2c38fd1056..f1fd8e1a53 100644 --- a/keyboards/avalanche/v2/keyboard.json +++ b/keyboards/avalanche/v2/keyboard.json @@ -39,8 +39,7 @@ "pin": "D2" } }, - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/avalanche/v3/keyboard.json b/keyboards/avalanche/v3/keyboard.json index 84191a103f..fb15395524 100644 --- a/keyboards/avalanche/v3/keyboard.json +++ b/keyboards/avalanche/v3/keyboard.json @@ -38,8 +38,7 @@ "ws2812": { "pin": "D3" }, - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/avalanche/v4/keyboard.json b/keyboards/avalanche/v4/keyboard.json index 2a548c5665..33abc8c96b 100644 --- a/keyboards/avalanche/v4/keyboard.json +++ b/keyboards/avalanche/v4/keyboard.json @@ -53,8 +53,7 @@ "alternating": true } }, - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/b_sides/rev41lp/keyboard.json b/keyboards/b_sides/rev41lp/keyboard.json index 75c7affbf5..39f994eea1 100644 --- a/keyboards/b_sides/rev41lp/keyboard.json +++ b/keyboards/b_sides/rev41lp/keyboard.json @@ -27,8 +27,7 @@ "levels": 7, "max_brightness": 150 }, - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "layout_aliases": { "LAYOUT_rev41lp": "LAYOUT" }, diff --git a/keyboards/balloondogcaps/tr90pm/keyboard.json b/keyboards/balloondogcaps/tr90pm/keyboard.json index da8f29e977..e103091bd7 100644 --- a/keyboards/balloondogcaps/tr90pm/keyboard.json +++ b/keyboards/balloondogcaps/tr90pm/keyboard.json @@ -2,7 +2,7 @@ "manufacturer": "Balloondog", "keyboard_name": "TR90PM", "maintainer": "balloondogcaps", - "bootloader": "caterina", + "development_board": "promicro", "diode_direction": "COL2ROW", "features": { "bootmagic": true, @@ -14,7 +14,6 @@ "cols": ["D1", "D0", "D4"], "rows": ["C6", "D7", "E6"] }, - "processor": "atmega32u4", "usb": { "device_version": "1.0.0", "pid": "0x0002", diff --git a/keyboards/bandominedoni/keyboard.json b/keyboards/bandominedoni/keyboard.json index 41212aedef..f6ea0f43c3 100644 --- a/keyboards/bandominedoni/keyboard.json +++ b/keyboards/bandominedoni/keyboard.json @@ -47,8 +47,7 @@ "ws2812": { "pin": "D3" }, - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/basekeys/slice/rev1/keyboard.json b/keyboards/basekeys/slice/rev1/keyboard.json index a6097e560a..209e4ef57a 100644 --- a/keyboards/basekeys/slice/rev1/keyboard.json +++ b/keyboards/basekeys/slice/rev1/keyboard.json @@ -30,8 +30,7 @@ "pin": "D2" } }, - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/basekeys/slice/rev1_rgb/keyboard.json b/keyboards/basekeys/slice/rev1_rgb/keyboard.json index d6d7b8ad45..6747729363 100644 --- a/keyboards/basekeys/slice/rev1_rgb/keyboard.json +++ b/keyboards/basekeys/slice/rev1_rgb/keyboard.json @@ -56,8 +56,7 @@ "twinkle": true } }, - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/bastardkb/charybdis/3x5/blackpill/halconf.h b/keyboards/bastardkb/charybdis/3x5/blackpill/halconf.h index c43f84e0de..300b0eeaed 100644 --- a/keyboards/bastardkb/charybdis/3x5/blackpill/halconf.h +++ b/keyboards/bastardkb/charybdis/3x5/blackpill/halconf.h @@ -21,7 +21,5 @@ #define HAL_USE_PWM TRUE #define HAL_USE_SERIAL TRUE #define HAL_USE_SPI TRUE -#define SPI_USE_WAIT TRUE -#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD #include_next <halconf.h> diff --git a/keyboards/bastardkb/charybdis/3x6/blackpill/halconf.h b/keyboards/bastardkb/charybdis/3x6/blackpill/halconf.h index 1ba700a80f..5c5dff98d4 100644 --- a/keyboards/bastardkb/charybdis/3x6/blackpill/halconf.h +++ b/keyboards/bastardkb/charybdis/3x6/blackpill/halconf.h @@ -21,7 +21,5 @@ #define HAL_USE_PWM TRUE #define HAL_USE_SERIAL TRUE #define HAL_USE_SPI TRUE -#define SPI_USE_WAIT TRUE -#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD #include_next <halconf.h> diff --git a/keyboards/bastardkb/charybdis/4x6/blackpill/halconf.h b/keyboards/bastardkb/charybdis/4x6/blackpill/halconf.h index c43f84e0de..300b0eeaed 100644 --- a/keyboards/bastardkb/charybdis/4x6/blackpill/halconf.h +++ b/keyboards/bastardkb/charybdis/4x6/blackpill/halconf.h @@ -21,7 +21,5 @@ #define HAL_USE_PWM TRUE #define HAL_USE_SERIAL TRUE #define HAL_USE_SPI TRUE -#define SPI_USE_WAIT TRUE -#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD #include_next <halconf.h> diff --git a/keyboards/bastardkb/scylla/blackpill/halconf.h b/keyboards/bastardkb/scylla/blackpill/halconf.h index 1ba700a80f..5c5dff98d4 100644 --- a/keyboards/bastardkb/scylla/blackpill/halconf.h +++ b/keyboards/bastardkb/scylla/blackpill/halconf.h @@ -21,7 +21,5 @@ #define HAL_USE_PWM TRUE #define HAL_USE_SERIAL TRUE #define HAL_USE_SPI TRUE -#define SPI_USE_WAIT TRUE -#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD #include_next <halconf.h> diff --git a/keyboards/bastardkb/skeletyl/blackpill/halconf.h b/keyboards/bastardkb/skeletyl/blackpill/halconf.h index 1ba700a80f..5c5dff98d4 100644 --- a/keyboards/bastardkb/skeletyl/blackpill/halconf.h +++ b/keyboards/bastardkb/skeletyl/blackpill/halconf.h @@ -21,7 +21,5 @@ #define HAL_USE_PWM TRUE #define HAL_USE_SERIAL TRUE #define HAL_USE_SPI TRUE -#define SPI_USE_WAIT TRUE -#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD #include_next <halconf.h> diff --git a/keyboards/bastardkb/tbkmini/blackpill/halconf.h b/keyboards/bastardkb/tbkmini/blackpill/halconf.h index 1ba700a80f..5c5dff98d4 100644 --- a/keyboards/bastardkb/tbkmini/blackpill/halconf.h +++ b/keyboards/bastardkb/tbkmini/blackpill/halconf.h @@ -21,7 +21,5 @@ #define HAL_USE_PWM TRUE #define HAL_USE_SERIAL TRUE #define HAL_USE_SPI TRUE -#define SPI_USE_WAIT TRUE -#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD #include_next <halconf.h> diff --git a/keyboards/beatervan/keyboard.json b/keyboards/beatervan/keyboard.json index f1a6380727..685f713501 100644 --- a/keyboards/beatervan/keyboard.json +++ b/keyboards/beatervan/keyboard.json @@ -26,8 +26,7 @@ "rows": ["D1", "D0", "D4", "C6"] }, "diode_direction": "COL2ROW", - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/biacco42/ergo42/rev1/keyboard.json b/keyboards/biacco42/ergo42/rev1/keyboard.json index 4639bf9639..2ccf9887df 100644 --- a/keyboards/biacco42/ergo42/rev1/keyboard.json +++ b/keyboards/biacco42/ergo42/rev1/keyboard.json @@ -36,8 +36,7 @@ "pin": "D0" } }, - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "layout_aliases": { "LAYOUT": "LAYOUT_ortho_4x14" }, diff --git a/keyboards/biacco42/meishi/keyboard.json b/keyboards/biacco42/meishi/keyboard.json index 99f7c5debb..08f2edcb38 100644 --- a/keyboards/biacco42/meishi/keyboard.json +++ b/keyboards/biacco42/meishi/keyboard.json @@ -26,8 +26,7 @@ "rows": ["B5"] }, "diode_direction": "COL2ROW", - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/biacco42/meishi2/keyboard.json b/keyboards/biacco42/meishi2/keyboard.json index 137c429ff1..9e630c7df8 100644 --- a/keyboards/biacco42/meishi2/keyboard.json +++ b/keyboards/biacco42/meishi2/keyboard.json @@ -26,8 +26,7 @@ "rows": ["D7", "E6"] }, "diode_direction": "COL2ROW", - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/binepad/kn01/keyboard.json b/keyboards/binepad/kn01/keyboard.json new file mode 100755 index 0000000000..d7edaee77e --- /dev/null +++ b/keyboards/binepad/kn01/keyboard.json @@ -0,0 +1,37 @@ +{ + "manufacturer": "Binepad", + "keyboard_name": "KN01", + "maintainer": "Binpad", + "bootloader": "stm32duino", + "diode_direction": "COL2ROW", + "encoder": { + "rotary": [ + {"pin_a": "B3", "pin_b": "B4"} + ] + }, + "features": { + "bootmagic": true, + "encoder": true, + "extrakey": true, + "mousekey": true + }, + "matrix_pins": { + "cols": ["A15"], + "rows": ["A8"] + }, + "processor": "STM32F103", + "url": "http://binepad.com", + "usb": { + "device_version": "1.0.0", + "pid": "0x4040", + "vid": "0x4249" + }, + "community_layouts": ["ortho_1x1"], + "layouts": { + "LAYOUT_ortho_1x1": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "w": 2, "h": 2} + ] + } + } +} diff --git a/keyboards/binepad/kn01/keymaps/default/keymap.json b/keyboards/binepad/kn01/keymaps/default/keymap.json new file mode 100644 index 0000000000..d6a3835f6c --- /dev/null +++ b/keyboards/binepad/kn01/keymaps/default/keymap.json @@ -0,0 +1,29 @@ +{ + "config": { + "features": { + "encoder_map": true + } + }, + "encoders": [ + [ + { + "ccw": "KC_VOLD", + "cw": "KC_VOLU" + } + ], + [ + { + "ccw": "KC_MS_WH_DOWN", + "cw": "KC_MS_WH_UP" + } + ] + ], + "keyboard": "binepad/kn01", + "keymap": "default", + "layers": [ + ["LT(1, KC_MUTE)"], + ["_______"] + ], + "layout": "LAYOUT_ortho_1x1", + "version": 1 +} diff --git a/keyboards/binepad/kn01/readme.md b/keyboards/binepad/kn01/readme.md new file mode 100755 index 0000000000..e65709a540 --- /dev/null +++ b/keyboards/binepad/kn01/readme.md @@ -0,0 +1,29 @@ +# BINEPAD NEOKNOB KN01 + + + +The KN01 is a multifunction knob, which can be rotated, pressed, and rotated while pressed. + +* Keyboard Maintainer: [Binpad](https://github.com/binepad) +* Hardware Supported: **NEOKNOB KN01** +* Hardware Availability: [Binepad.com](https://www.binepad.com/products/kn01) + +Make example for this keyboard (after setting up your build environment): + + make binepad/kn01:default + +Flashing example for this keyboard: + + make binepad/kn01: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 knob while plugging in the keyboard's USB cable +* **Physical reset button**: Briefly press the button on the underside of the PCB +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/binepad/knobx1/keyboard.json b/keyboards/binepad/knobx1/keyboard.json new file mode 100644 index 0000000000..f82cf1dbd3 --- /dev/null +++ b/keyboards/binepad/knobx1/keyboard.json @@ -0,0 +1,69 @@ +{ + "manufacturer": "Binepad", + "keyboard_name": "KnobX1", + "maintainer": "binepad", + "bootloader": "stm32duino", + "bootloader_instructions": "Hold down the layer button (small button on the bottom left) and plug in the keyboard.", + "diode_direction": "COL2ROW", + "eeprom": { + "wear_leveling": { + "backing_size": 1024 + } + }, + "encoder": { + "rotary": [ + {"pin_a": "B12", "pin_b": "B13", "resolution": 2} + ] + }, + "features": { + "bootmagic": true, + "encoder": true, + "extrakey": true, + "mousekey": true, + "rgblight": true + }, + "matrix_pins": { + "direct": [ + ["A7", "A15"] + ] + }, + "processor": "STM32F103", + "rgblight": { + "animations": { + "alternating": true, + "breathing": true, + "christmas": true, + "gradient": true, + "knight": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "twinkle": true + }, + "default": { + "hue": 198, + "speed": 2, + "val": 204 + }, + "driver": "ws2812", + "led_count": 2, + "sleep": true + }, + "url": "https://binepad.com/products/knobx1", + "usb": { + "device_version": "1.0.0", + "pid": "0x4249", + "vid": "0x5831" + }, + "ws2812": { + "pin": "C13" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0, "w": 3, "h": 3} + ] + } + } +} diff --git a/keyboards/binepad/knobx1/keymaps/default/keymap.json b/keyboards/binepad/knobx1/keymaps/default/keymap.json new file mode 100644 index 0000000000..4d91c09968 --- /dev/null +++ b/keyboards/binepad/knobx1/keymaps/default/keymap.json @@ -0,0 +1,22 @@ +{ + "config": { + "features": { + "encoder_map": true + } + }, + "encoders": [ + [ + { + "ccw": "KC_VOLD", + "cw": "KC_VOLU" + } + ] + ], + "keyboard": "binepad/knobx1", + "keymap": "default", + "layers": [ + ["X1_LYRU", "KC_MUTE"] + ], + "layout": "LAYOUT", + "version": 1 +} diff --git a/keyboards/binepad/knobx1/knobx1.c b/keyboards/binepad/knobx1/knobx1.c new file mode 100644 index 0000000000..7f299b67e3 --- /dev/null +++ b/keyboards/binepad/knobx1/knobx1.c @@ -0,0 +1,76 @@ +// (c) 2025 Binepad (@binpad) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "knobx1.h" + +#ifdef DYNAMIC_KEYMAP_LAYER_COUNT +# define X1_KEYMAP_LAYER_COUNT DYNAMIC_KEYMAP_LAYER_COUNT +#else +# define X1_KEYMAP_LAYER_COUNT 4 +#endif + +void keyboard_pre_init_kb(void) { + const pin_t indicator_leds[4] = {IND1_LED, IND2_LED, IND3_LED, IND4_LED}; + for (int i = 0; i < 4; i++) { + gpio_set_pin_output(indicator_leds[i]); // Set Indicators as output + gpio_write_pin_low(indicator_leds[i]); // Set initial indicator low / OFF + } + + // Call the user pre-init function if needed + // Do it after ._kb incase the user wants to change pin stuff + keyboard_pre_init_user(); +} + +layer_state_t layer_state_set_kb(layer_state_t state) { + state = layer_state_set_user(state); + uint8_t layer = get_highest_layer(state); + x1_layer_led(layer); + return state; +} + +void matrix_init_kb(void) { + // Direct PINS use; gpio -> switch -> ground. + // Setting Row 0 to ground makes it work like a direct pin + gpio_set_pin_output(ROW0_PIN); // Set Col0 as an output + gpio_write_pin_low(ROW0_PIN); // Set Col0 to low / ground + + matrix_init_user(); +} + +bool process_x1_layer_up(keyrecord_t *record) { + if (record->event.pressed) { + uint8_t current_layer = get_highest_layer(layer_state); + // Cycle through layers + uint8_t next_layer = (current_layer + 1) % X1_KEYMAP_LAYER_COUNT; + layer_move(next_layer); + x1_layer_led(next_layer); // Update LED indicators + } + return false; +} + +bool process_x1_layer_down(keyrecord_t *record) { + if (record->event.pressed) { + uint8_t current_layer = get_highest_layer(layer_state); + // Reverse through layers + uint8_t prev_layer = (current_layer == 0) ? (X1_KEYMAP_LAYER_COUNT - 1) : (current_layer - 1); + layer_move(prev_layer); + x1_layer_led(prev_layer); + } + return false; +} + +bool process_record_kb(uint16_t keycode, keyrecord_t *record) { + if (!process_record_user(keycode, record)) { + return false; + } + switch (keycode) { + case X1_LAYER_SELECTOR_UP: + return process_x1_layer_up(record); + + case X1_LAYER_SELECTOR_DOWN: + return process_x1_layer_down(record); + + default: + return true; + } +} diff --git a/keyboards/binepad/knobx1/knobx1.h b/keyboards/binepad/knobx1/knobx1.h new file mode 100644 index 0000000000..7645124057 --- /dev/null +++ b/keyboards/binepad/knobx1/knobx1.h @@ -0,0 +1,49 @@ +// (c) 2025 Binepad (@binpad) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include "quantum.h" + +// PCB has a 1x2 matrix. Set the ROW0 to ground for faster direct pin access. +#define ROW0_PIN B8 + +#define IND1_LED A6 +#define IND2_LED A5 +#define IND3_LED A4 +#define IND4_LED A3 + +// clang-format off +enum x1_keycodes { + X1_LAYER_SELECTOR_UP = QK_USER, + X1_LAYER_SELECTOR_DOWN +}; +// clang-format on + +#define X1_LYRU X1_LAYER_SELECTOR_UP +#define X1_LYRD X1_LAYER_SELECTOR_DOWN + +// clang-format off +static inline void x1_led_1(bool on) { gpio_write_pin(IND1_LED, on); } +static inline void x1_led_2(bool on) { gpio_write_pin(IND2_LED, on); } +static inline void x1_led_3(bool on) { gpio_write_pin(IND3_LED, on); } +static inline void x1_led_4(bool on) { gpio_write_pin(IND4_LED, on); } +static inline void x1_led_1_on(void) { gpio_write_pin_high(IND1_LED); } +static inline void x1_led_2_on(void) { gpio_write_pin_high(IND2_LED); } +static inline void x1_led_3_on(void) { gpio_write_pin_high(IND3_LED); } +static inline void x1_led_4_on(void) { gpio_write_pin_high(IND4_LED); } +static inline void x1_led_1_off(void) { gpio_write_pin_low(IND1_LED); } +static inline void x1_led_2_off(void) { gpio_write_pin_low(IND2_LED); } +static inline void x1_led_3_off(void) { gpio_write_pin_low(IND3_LED); } +static inline void x1_led_4_off(void) { gpio_write_pin_low(IND4_LED); } +// clang-format on + +static inline void x1_layer_led(uint8_t lyr) { + gpio_write_pin(IND1_LED, lyr >= 0); + gpio_write_pin(IND2_LED, lyr >= 1); + gpio_write_pin(IND3_LED, lyr >= 2); + gpio_write_pin(IND4_LED, lyr >= 3); +} + +bool process_x1_layer_up(keyrecord_t *record); +bool process_x1_layer_down(keyrecord_t *record); diff --git a/keyboards/binepad/knobx1/readme.md b/keyboards/binepad/knobx1/readme.md new file mode 100644 index 0000000000..36f082dbfd --- /dev/null +++ b/keyboards/binepad/knobx1/readme.md @@ -0,0 +1,26 @@ +# Binepad KnobX1 + + + +*A fully customizable knob designed to enhance your PC experience* + +* Keyboard Maintainer: [binepad](https://github.com/binepad) +* Hardware Supported: *Binepad knobX1* +* Hardware Availability: [binepad.com](https://binepad.com/products/knobx1) + +Make example for this keyboard (after setting up your build environment): + + make binepad/knobx1:default + +Flashing example for this keyboard: + + make binepad/knobx1: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 2 ways: + +* **Bootmagic reset**: Hold down the layer button (small button on the bottom left) and plug in the keyboard. +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/blockey/keyboard.json b/keyboards/blockey/keyboard.json index e9c5ceafa1..a8d7113846 100644 --- a/keyboards/blockey/keyboard.json +++ b/keyboards/blockey/keyboard.json @@ -46,8 +46,7 @@ "rows": ["D3", "D1", "D4", "E6", "B5", "D2", "F6", "B3", "B2", "B6"] }, "diode_direction": "COL2ROW", - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/bluebell/swoop/keyboard.json b/keyboards/bluebell/swoop/keyboard.json index 08f61ac20d..1ab8cd090a 100644 --- a/keyboards/bluebell/swoop/keyboard.json +++ b/keyboards/bluebell/swoop/keyboard.json @@ -53,8 +53,7 @@ "pin": "D2" } }, - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "community_layouts": ["split_3x5_3"], "layouts": { "LAYOUT_split_3x5_3": { 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/bthlabs/geekpad/keyboard.json b/keyboards/bthlabs/geekpad/keyboard.json index 1ea302612a..2519925333 100644 --- a/keyboards/bthlabs/geekpad/keyboard.json +++ b/keyboards/bthlabs/geekpad/keyboard.json @@ -19,8 +19,7 @@ "rows": ["F4", "F5", "F6"] }, "diode_direction": "COL2ROW", - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "layouts": { "LAYOUT": { "layout": [ 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/catch22/keyboard.json b/keyboards/catch22/keyboard.json index 3c1d9c5777..22aebe844a 100644 --- a/keyboards/catch22/keyboard.json +++ b/keyboards/catch22/keyboard.json @@ -38,8 +38,7 @@ "rows": ["B6", "B2", "B3", "B1", "F7"] }, "diode_direction": "COL2ROW", - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/chew/info.json b/keyboards/chew/info.json new file mode 100644 index 0000000000..306e7f3057 --- /dev/null +++ b/keyboards/chew/info.json @@ -0,0 +1,17 @@ +{ + "manufacturer": "[email protected]", + "maintainer": "[email protected]", + "bootloader": "rp2040", + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "processor": "RP2040", + "usb": { + "device_version": "1.0.0", + "pid": "0x0000", + "vid": "0xFEED" + } +} diff --git a/keyboards/chew/config.h b/keyboards/chew/mono/config.h index df672bc4e1..bb047c0adf 100644 --- a/keyboards/chew/config.h +++ b/keyboards/chew/mono/config.h @@ -6,5 +6,3 @@ /* Flash */ #define RP2040_BOOTLOADER_DOUBLE_TAP_RESET // Activates the double-tap behavior #define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 200U // In ms in which the double tap can occur - -#define EE_HANDS diff --git a/keyboards/chew/mono/keyboard.json b/keyboards/chew/mono/keyboard.json new file mode 100644 index 0000000000..9e48102367 --- /dev/null +++ b/keyboards/chew/mono/keyboard.json @@ -0,0 +1,48 @@ +{ + "keyboard_name": "chew/mono", + "diode_direction": "COL2ROW", + "matrix_pins": { + "cols": ["GP28", "GP27", "GP26", "GP15", "GP14", "GP4", "GP3", "GP2", "GP1", "GP0"], + "rows": ["GP5", "GP6", "GP7", "GP8"] + }, + "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": [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": [1, 0], "x": 0, "y": 1}, + {"matrix": [1, 1], "x": 1, "y": 1}, + {"matrix": [1, 2], "x": 2, "y": 1}, + {"matrix": [1, 3], "x": 3, "y": 1}, + {"matrix": [1, 4], "x": 4, "y": 1}, + {"matrix": [1, 5], "x": 5, "y": 1}, + {"matrix": [1, 6], "x": 6, "y": 1}, + {"matrix": [1, 7], "x": 7, "y": 1}, + {"matrix": [1, 8], "x": 8, "y": 1}, + {"matrix": [1, 9], "x": 9, "y": 1}, + {"matrix": [2, 0], "x": 0, "y": 2}, + {"matrix": [2, 1], "x": 1, "y": 2}, + {"matrix": [2, 2], "x": 2, "y": 2}, + {"matrix": [2, 3], "x": 3, "y": 2}, + {"matrix": [2, 6], "x": 6, "y": 2}, + {"matrix": [2, 7], "x": 7, "y": 2}, + {"matrix": [2, 8], "x": 8, "y": 2}, + {"matrix": [2, 9], "x": 9, "y": 2}, + {"matrix": [3, 2], "x": 2, "y": 3}, + {"matrix": [3, 3], "x": 3, "y": 3}, + {"matrix": [3, 4], "x": 4, "y": 3}, + {"matrix": [3, 5], "x": 5, "y": 3}, + {"matrix": [3, 6], "x": 6, "y": 3}, + {"matrix": [3, 7], "x": 7, "y": 3} + ] + } + } +} diff --git a/keyboards/chew/mono/keymaps/default/keymap.c b/keyboards/chew/mono/keymaps/default/keymap.c new file mode 100644 index 0000000000..0a69b72f85 --- /dev/null +++ b/keyboards/chew/mono/keymaps/default/keymap.c @@ -0,0 +1,25 @@ +// Copyright 2024 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ + * │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ + * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ + * │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ + * ├───┼───┼───┼───┼───┴───┼───┼───┼───┼───┤ + * │ Z │ X │ C │ V │ │ M │ , │ . │ / │ + * └───┴───┼───┼───┼───┬───┼───┼───┼───┴───┘ + * │ B │Bsp│Alt│ ␣ │Ent│ N │ + * └───┴───┴───┴───┴───┴───┘ + */ + [0] = LAYOUT( + KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, + KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, + KC_Z, KC_X, KC_C, KC_V, KC_M, KC_COMM, KC_DOT, KC_SLSH, + KC_B, KC_BSPC, KC_RALT, KC_SPC, KC_ENT, KC_N + + ) +}; diff --git a/keyboards/chew/mono/readme.md b/keyboards/chew/mono/readme.md new file mode 100644 index 0000000000..a0c15170e4 --- /dev/null +++ b/keyboards/chew/mono/readme.md @@ -0,0 +1,37 @@ +## Chew Mono + +[](https://live.staticflickr.com/65535/53759880304_b9eb4130cf_o.png) +[](https://live.staticflickr.com/65535/53759543226_decbf17d2a_o.png) + +A crunched *monobloc* 34 key choc-spaced keyboard. + +- Keyboard Maintainer: [Florent Linguenheld](https://github.com/flinguenheld/) +- Visit the repository to get the last release: [Chew](https://github.com/flinguenheld/chew) +- Read the wiki to have some help or information: [Chew wiki](https://github.com/flinguenheld/chew/wiki) + + + + +### Requirements + +- 1x PCB +- 1x MCU board [RP2040-Zero](https://www.waveshare.com/wiki/RP2040-Zero) +- 34x [1N4148W SMD diodes](https://splitkb.com/collections/keyboard-parts/products/smd-diodes) +- 34x switches Choc V1 **only** +- 34x keycaps Choc V1 + +Optional: +- 18x [Mill Max sockets](https://splitkb.com/collections/keyboard-parts/products/mill-max-low-profile-sockets) +- 34x [kailh hotswap sockets](https://cdn.shopify.com/s/files/1/0588/1108/9090/files/5118-Choc-Socket.pdf?v=1686715063) +- 1x Back PCB + screws and bolts + +### Bootloader + +The controller has two buttons, so you can enter the bootloader in 2 ways: + +- Maintain the **boot** button and plug the usb cable in. +- Press twice the **reset** button. + + + +[](https://live.staticflickr.com/65535/53758638612_167c55f840_o.png) diff --git a/keyboards/chew/readme.md b/keyboards/chew/readme.md index a08398ea0f..d478f86c49 100644 --- a/keyboards/chew/readme.md +++ b/keyboards/chew/readme.md @@ -1,38 +1,12 @@ -## Chew +## Chew Mono - - +[](https://live.staticflickr.com/65535/53759959610_0c255fe2d4_o.png) -A humble 34 key choc-spaced keyboard. +A crunched 34 key choc-spaced keyboard. +Built with a RP2040 zero and available in [monobloc](https://github.com/qmk/qmk_firmware/tree/master/keyboards/chew/mono) and [splitted](https://github.com/qmk/qmk_firmware/tree/master/keyboards/chew/split) flavors. - Keyboard Maintainer: [Florent Linguenheld](https://github.com/flinguenheld/) - Visit the repository to get the last release: [Chew](https://github.com/flinguenheld/chew) - Read the wiki to have some help or information: [Chew wiki](https://github.com/flinguenheld/chew/wiki) - - - -### Requirements - -- 2x PCB -- 2x MCU board [RP2040-Zero](https://www.waveshare.com/wiki/RP2040-Zero) -- 2x TRRS jack -- 34 switches Choc V1 **only** -- 34 keycaps Choc V1 - -Optional: -- 23 [Mill Max sockets](https://splitkb.com/collections/keyboard-parts/products/mill-max-low-profile-sockets) -- 34 [kailh hotswap sockets](https://cdn.shopify.com/s/files/1/0588/1108/9090/files/5118-Choc-Socket.pdf?v=1686715063) -- 2x Back PCB + screws and bolts -- 2x [Tenting pucks](https://splitkb.com/collections/keyboard-parts/products/tenting-puck) -- 2x [Tripods](https://www.manfrotto.com/us-en/pocket-support-large-black-mp3-bk/) - -### Bootloader - -The controller has two buttons, so you can enter the bootloader in 2 ways: - -- Maintain the **boot** button and plug the usb cable in. -- Press twice the **reset** button. - - - + diff --git a/keyboards/chew/split/config.h b/keyboards/chew/split/config.h new file mode 100644 index 0000000000..bb047c0adf --- /dev/null +++ b/keyboards/chew/split/config.h @@ -0,0 +1,8 @@ +// Copyright 2024 Florent (@FLinguenheld) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +/* Flash */ +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET // Activates the double-tap behavior +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 200U // In ms in which the double tap can occur diff --git a/keyboards/chew/keyboard.json b/keyboards/chew/split/keyboard.json index 304f788af3..2a0245a9b4 100644 --- a/keyboards/chew/keyboard.json +++ b/keyboards/chew/split/keyboard.json @@ -1,14 +1,5 @@ { - "manufacturer": "[email protected]", - "keyboard_name": "chew", - "maintainer": "[email protected]", - "bootloader": "rp2040", - "features": { - "bootmagic": true, - "extrakey": true, - "mousekey": true, - "nkro": true - }, + "keyboard_name": "chew/split", "matrix_pins": { "direct": [ ["GP4", "GP3", "GP2", "GP1", "GP0"], @@ -17,9 +8,11 @@ ["GP7", "GP6", "GP5", "NO_PIN", "NO_PIN"] ] }, - "processor": "RP2040", "split": { "enabled": true, + "handedness": { + "pin": "GP10" + }, "matrix_pins": { "right": { "direct": [ @@ -38,11 +31,6 @@ "watchdog": true } }, - "usb": { - "device_version": "1.0.0", - "pid": "0x0000", - "vid": "0xFEED" - }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/chew/keymaps/default/keymap.c b/keyboards/chew/split/keymaps/default/keymap.c index 541ddbdf1c..541ddbdf1c 100644 --- a/keyboards/chew/keymaps/default/keymap.c +++ b/keyboards/chew/split/keymaps/default/keymap.c diff --git a/keyboards/chew/split/readme.md b/keyboards/chew/split/readme.md new file mode 100644 index 0000000000..b47d5ac0fa --- /dev/null +++ b/keyboards/chew/split/readme.md @@ -0,0 +1,38 @@ +## Chew Split + +[](https://live.staticflickr.com/65535/53745130678_2d3318d279_o.png) +[](https://live.staticflickr.com/65535/53745130683_90aa38b210_o.png) + +A crunched 34 key choc-spaced keyboard. + +- Keyboard Maintainer: [Florent Linguenheld](https://github.com/flinguenheld/) +- Visit the repository to get the last release: [Chew](https://github.com/flinguenheld/chew) +- Read the wiki to have some help or information: [Chew wiki](https://github.com/flinguenheld/chew/wiki) + + + + +### Requirements + +- 2x PCB +- 2x MCU board [RP2040-Zero](https://www.waveshare.com/wiki/RP2040-Zero) +- 2x TRRS jack +- 34 switches Choc V1 **only** +- 34 keycaps Choc V1 + +Optional: +- 23 [Mill Max sockets](https://splitkb.com/collections/keyboard-parts/products/mill-max-low-profile-sockets) +- 34 [kailh hotswap sockets](https://cdn.shopify.com/s/files/1/0588/1108/9090/files/5118-Choc-Socket.pdf?v=1686715063) +- 2x Back PCB + screws and bolts +- 2x [Tenting pucks](https://splitkb.com/collections/keyboard-parts/products/tenting-puck) +- 2x [Tripods](https://www.manfrotto.com/us-en/pocket-support-large-black-mp3-bk/) + +### Bootloader + +The controller has two buttons, so you can enter the bootloader in 2 ways: + +- Maintain the **boot** button and plug the usb cable in. +- Press twice the **reset** button. + + +[](https://live.staticflickr.com/65535/53744026347_a0a3bbedb4_o.png) diff --git a/keyboards/chocofly/v1/keyboard.json b/keyboards/chocofly/v1/keyboard.json index ae2a710070..7765d721f4 100644 --- a/keyboards/chocofly/v1/keyboard.json +++ b/keyboards/chocofly/v1/keyboard.json @@ -25,8 +25,7 @@ {"pin_a": "D3", "pin_b": "D2", "resolution": 2} ] }, - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/chosfox/cf81/halconf.h b/keyboards/chosfox/cf81/halconf.h index 2f64e65393..2ddb9c35d8 100644 --- a/keyboards/chosfox/cf81/halconf.h +++ b/keyboards/chosfox/cf81/halconf.h @@ -17,7 +17,5 @@ #define HAL_USE_I2C TRUE #define HAL_USE_SPI TRUE -#define SPI_USE_WAIT TRUE -#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD #include_next <halconf.h> diff --git a/keyboards/ckeys/handwire_101/keyboard.json b/keyboards/ckeys/handwire_101/keyboard.json index 781cd25c83..088d3b5227 100644 --- a/keyboards/ckeys/handwire_101/keyboard.json +++ b/keyboards/ckeys/handwire_101/keyboard.json @@ -25,8 +25,7 @@ "rows": ["F4", "F5", "F6", "F7"] }, "diode_direction": "COL2ROW", - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "layout_aliases": { "LAYOUT": "LAYOUT_ortho_4x4" }, diff --git a/keyboards/clawsome/coupe/keyboard.json b/keyboards/clawsome/coupe/keyboard.json index 576b8e7164..8910221eb6 100644 --- a/keyboards/clawsome/coupe/keyboard.json +++ b/keyboards/clawsome/coupe/keyboard.json @@ -21,8 +21,7 @@ "rows": ["D7", "D2", "C6", "B5", "D4", "B4", "D0", "D3", "D1", "E6"] }, "diode_direction": "COL2ROW", - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "community_layouts": ["60_ansi"], "layouts": { "LAYOUT_60_ansi": { diff --git a/keyboards/clawsome/doodle/keyboard.json b/keyboards/clawsome/doodle/keyboard.json index 0b3f4cc4e7..51eeacc02c 100644 --- a/keyboards/clawsome/doodle/keyboard.json +++ b/keyboards/clawsome/doodle/keyboard.json @@ -21,8 +21,7 @@ "rows": ["D4", "C6"] }, "diode_direction": "COL2ROW", - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/clawsome/fightpad/keyboard.json b/keyboards/clawsome/fightpad/keyboard.json index ac5f83af23..2ac2fdff0d 100644 --- a/keyboards/clawsome/fightpad/keyboard.json +++ b/keyboards/clawsome/fightpad/keyboard.json @@ -19,8 +19,7 @@ "rows": ["B5", "B6"] }, "diode_direction": "COL2ROW", - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/clawsome/gamebuddy/v1_0/keyboard.json b/keyboards/clawsome/gamebuddy/v1_0/keyboard.json index 978a3ad974..ebfd7970c4 100644 --- a/keyboards/clawsome/gamebuddy/v1_0/keyboard.json +++ b/keyboards/clawsome/gamebuddy/v1_0/keyboard.json @@ -21,8 +21,7 @@ "rows": ["D1", "D0", "E6", "B3", "B2"] }, "diode_direction": "COL2ROW", - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/clawsome/gamebuddy/v1_m/keyboard.json b/keyboards/clawsome/gamebuddy/v1_m/keyboard.json index dd9f39f97e..1a0014a1ac 100644 --- a/keyboards/clawsome/gamebuddy/v1_m/keyboard.json +++ b/keyboards/clawsome/gamebuddy/v1_m/keyboard.json @@ -21,8 +21,7 @@ "rows": ["C6", "D7", "B5", "B3", "B2"] }, "diode_direction": "COL2ROW", - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/clawsome/numeros/keyboard.json b/keyboards/clawsome/numeros/keyboard.json index 728a1a1853..2b9e0331ab 100644 --- a/keyboards/clawsome/numeros/keyboard.json +++ b/keyboards/clawsome/numeros/keyboard.json @@ -21,8 +21,7 @@ "rows": ["D0", "C6", "B2", "B6", "B5"] }, "diode_direction": "COL2ROW", - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "community_layouts": ["numpad_5x4"], "layouts": { "LAYOUT_numpad_5x4": { diff --git a/keyboards/clawsome/roadster/keyboard.json b/keyboards/clawsome/roadster/keyboard.json index 895b97721b..1300a29623 100644 --- a/keyboards/clawsome/roadster/keyboard.json +++ b/keyboards/clawsome/roadster/keyboard.json @@ -21,8 +21,7 @@ "rows": ["D2", "D3", "D0", "D1"] }, "diode_direction": "COL2ROW", - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/contra/keyboard.json b/keyboards/contra/keyboard.json index b3179564fe..5c02afd061 100644 --- a/keyboards/contra/keyboard.json +++ b/keyboards/contra/keyboard.json @@ -13,8 +13,7 @@ "pid": "0x0001", "device_version": "0.0.1" }, - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "diode_direction": "COL2ROW", "matrix_pins": { "cols": ["F4", "F5", "B5", "B4", "E6", "D7", "C6", "D4", "D0", "D1", "D2", "D3"], 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/crbn/keyboard.json b/keyboards/crbn/keyboard.json index a2666c6c52..a0fd785111 100644 --- a/keyboards/crbn/keyboard.json +++ b/keyboards/crbn/keyboard.json @@ -31,8 +31,7 @@ {"pin_a": "F5", "pin_b": "F4", "resolution": 2} ] }, - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "community_layouts": ["ortho_4x12", "planck_mit"], "layout_aliases": { "LAYOUT_crbn_1x2u": "LAYOUT_planck_mit", diff --git a/keyboards/custommk/cmk11/halconf.h b/keyboards/custommk/cmk11/halconf.h index 6791d829f9..32d126efc5 100644 --- a/keyboards/custommk/cmk11/halconf.h +++ b/keyboards/custommk/cmk11/halconf.h @@ -20,11 +20,6 @@ #define HAL_USE_SPI TRUE -#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD - #define SERIAL_BUFFERS_SIZE 256 -// This enables interrupt-driven mode -#define SPI_USE_WAIT TRUE - #include_next <halconf.h> diff --git a/keyboards/custommk/elysian/halconf.h b/keyboards/custommk/elysian/halconf.h index 5b2f7eedd2..501c3e00b5 100644 --- a/keyboards/custommk/elysian/halconf.h +++ b/keyboards/custommk/elysian/halconf.h @@ -5,10 +5,6 @@ #define HAL_USE_SPI TRUE -#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD - #define SERIAL_BUFFERS_SIZE 256 -#define SPI_USE_WAIT TRUE - #include_next <halconf.h> diff --git a/keyboards/custommk/ergostrafer/halconf.h b/keyboards/custommk/ergostrafer/halconf.h index aed037ba2a..17a94765ca 100644 --- a/keyboards/custommk/ergostrafer/halconf.h +++ b/keyboards/custommk/ergostrafer/halconf.h @@ -20,11 +20,6 @@ #define HAL_USE_SPI TRUE -#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD - #define SERIAL_BUFFERS_SIZE 256 -// This enables interrupt-driven mode -#define SPI_USE_WAIT TRUE - #include_next <halconf.h> diff --git a/keyboards/custommk/ergostrafer_rgb/halconf.h b/keyboards/custommk/ergostrafer_rgb/halconf.h index 6791d829f9..32d126efc5 100644 --- a/keyboards/custommk/ergostrafer_rgb/halconf.h +++ b/keyboards/custommk/ergostrafer_rgb/halconf.h @@ -20,11 +20,6 @@ #define HAL_USE_SPI TRUE -#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD - #define SERIAL_BUFFERS_SIZE 256 -// This enables interrupt-driven mode -#define SPI_USE_WAIT TRUE - #include_next <halconf.h> diff --git a/keyboards/custommk/evo70_r2/halconf.h b/keyboards/custommk/evo70_r2/halconf.h index 5268fe5de6..da1c76d1de 100644 --- a/keyboards/custommk/evo70_r2/halconf.h +++ b/keyboards/custommk/evo70_r2/halconf.h @@ -26,11 +26,6 @@ #define HAL_USE_GPT TRUE -#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD - #define SERIAL_BUFFERS_SIZE 256 -// This enables interrupt-driven mode -#define SPI_USE_WAIT TRUE - #include_next <halconf.h> diff --git a/keyboards/cxt_studio/12e3/keyboard.json b/keyboards/cxt_studio/12e3/keyboard.json index 0b8949cda7..a85126aab6 100644 --- a/keyboards/cxt_studio/12e3/keyboard.json +++ b/keyboards/cxt_studio/12e3/keyboard.json @@ -21,8 +21,8 @@ }, "encoder": { "rotary": [ - {"pin_a": "F5", "pin_b": "F6"}, - {"pin_a": "E6", "pin_b": "F0"}, + {"pin_a": "F5", "pin_b": "F6", "resolution": 4}, + {"pin_a": "E6", "pin_b": "F0", "resolution": 4}, {"pin_a": "B3", "pin_b": "B2", "resolution": 2} ] }, diff --git a/keyboards/cxt_studio/12e3/keymaps/default/keymap.c b/keyboards/cxt_studio/12e3/keymaps/default/keymap.c index 78375680d4..ef4b6938eb 100644 --- a/keyboards/cxt_studio/12e3/keymaps/default/keymap.c +++ b/keyboards/cxt_studio/12e3/keymaps/default/keymap.c @@ -11,14 +11,14 @@ enum my_layers { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_BASE] = LAYOUT( - KC_PSCR, KC_CUT, KC_COPY, KC_PSTE, MS_BTN3, RM_TOGG, - KC_CALC, KC_UNDO, KC_MPLY, KC_MNXT, KC_MUTE, + KC_ESC, C(KC_X), C(KC_C), C(KC_V), MS_BTN3, RM_TOGG, + KC_PSCR,C(KC_Z), KC_CALC, KC_MNXT, KC_MPLY, MO(1), KC_LGUI, KC_DEL, KC_APP ), [_RGBL] = LAYOUT( - RM_NEXT, RM_SATU, KC_INS, KC_DEL, _______, _______, - RM_PREV, RM_SATD, KC_PGUP, KC_HOME, _______, + RM_NEXT, RM_SATU, KC_INS, KC_DEL, _______, _______, + RM_PREV, RM_SATD, KC_PGUP, KC_HOME, KC_MUTE, _______, QK_BOOT, KC_PGDN, KC_END ), }; diff --git a/keyboards/cybergear/macro25/keyboard.json b/keyboards/cybergear/macro25/keyboard.json index 14ea5cc77d..8b0bcc8ef4 100644 --- a/keyboards/cybergear/macro25/keyboard.json +++ b/keyboards/cybergear/macro25/keyboard.json @@ -8,8 +8,7 @@ "pid": "0x69A1", "device_version": "0.0.1" }, - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "diode_direction": "COL2ROW", "layouts": { "LAYOUT_ortho_2x5": { 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/darkproject/kd83a_bfg_edition/halconf.h b/keyboards/darkproject/kd83a_bfg_edition/halconf.h index 8f61d3fc64..adeb248f90 100644 --- a/keyboards/darkproject/kd83a_bfg_edition/halconf.h +++ b/keyboards/darkproject/kd83a_bfg_edition/halconf.h @@ -17,7 +17,5 @@ #pragma once #define HAL_USE_SPI TRUE -#define SPI_USE_WAIT TRUE -#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD #include_next <halconf.h> diff --git a/keyboards/darkproject/kd87a_bfg_edition/halconf.h b/keyboards/darkproject/kd87a_bfg_edition/halconf.h index 8f61d3fc64..adeb248f90 100644 --- a/keyboards/darkproject/kd87a_bfg_edition/halconf.h +++ b/keyboards/darkproject/kd87a_bfg_edition/halconf.h @@ -17,7 +17,5 @@ #pragma once #define HAL_USE_SPI TRUE -#define SPI_USE_WAIT TRUE -#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD #include_next <halconf.h> diff --git a/keyboards/darmoshark/k3/halconf.h b/keyboards/darmoshark/k3/halconf.h index b6a606056a..adf026a47a 100644 --- a/keyboards/darmoshark/k3/halconf.h +++ b/keyboards/darmoshark/k3/halconf.h @@ -4,7 +4,5 @@ #pragma once #define HAL_USE_SPI TRUE -#define SPI_USE_WAIT TRUE -#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD #include_next <halconf.h> 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/dlip/haritev2/config.h b/keyboards/dlip/haritev2/config.h new file mode 100644 index 0000000000..119ba7cbac --- /dev/null +++ b/keyboards/dlip/haritev2/config.h @@ -0,0 +1,20 @@ +// Copyright 2024 Dane Lipscombe (@dlip) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 1500U + +#define SERIAL_USART_FULL_DUPLEX +#define SERIAL_USART_TX_PIN GP1 +#define SERIAL_USART_RX_PIN GP0 +#define SERIAL_USART_PIN_SWAP + +#define EE_HANDS + +#define SPI_DRIVER SPID0 +#define SPI_SCK_PIN GP2 +#define SPI_MOSI_PIN GP3 +#define SPI_MISO_PIN GP4 +#define POINTING_DEVICE_CS_PIN GP5 diff --git a/keyboards/dlip/haritev2/dual_cirque/config.h b/keyboards/dlip/haritev2/dual_cirque/config.h new file mode 100644 index 0000000000..ad92aaa9ad --- /dev/null +++ b/keyboards/dlip/haritev2/dual_cirque/config.h @@ -0,0 +1,11 @@ +// Copyright 2024 Dane Lipscombe (@dlip) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define SPLIT_POINTING_ENABLE +#define POINTING_DEVICE_COMBINED +#define POINTING_DEVICE_ROTATION_90 +#define POINTING_DEVICE_ROTATION_90_RIGHT +#define CIRQUE_PINNACLE_POSITION_MODE CIRQUE_PINNACLE_ABSOLUTE_MODE +#define POINTING_DEVICE_GESTURES_CURSOR_GLIDE_ENABLE diff --git a/keyboards/dlip/haritev2/dual_cirque/keyboard.json b/keyboards/dlip/haritev2/dual_cirque/keyboard.json new file mode 100644 index 0000000000..2224a5d894 --- /dev/null +++ b/keyboards/dlip/haritev2/dual_cirque/keyboard.json @@ -0,0 +1,5 @@ +{ + "features": { + "pointing_device": true + } +} diff --git a/keyboards/dlip/haritev2/dual_cirque/keymaps/default/keymap.c b/keyboards/dlip/haritev2/dual_cirque/keymaps/default/keymap.c new file mode 100644 index 0000000000..3e23d4b088 --- /dev/null +++ b/keyboards/dlip/haritev2/dual_cirque/keymaps/default/keymap.c @@ -0,0 +1,19 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_split_5x6( + KC_U, KC_U, KC_U, KC_U, KC_U, KC_U, KC_U, KC_U, + KC_L, KC_C, KC_R, KC_L, KC_C, KC_R, KC_L, KC_C, KC_R, KC_L, KC_C, KC_R, KC_L, KC_C, KC_R, KC_L, KC_C, KC_R, KC_L, KC_C, KC_R, KC_L, KC_C, KC_R, + KC_D, KC_D, KC_D, KC_D, KC_D, KC_D, KC_D, KC_D, + + KC_U, KC_U, + KC_L, KC_C, KC_R, KC_L, KC_C, KC_R, + KC_D, KC_D, + + KC_U, KC_U, + KC_L, KC_C, KC_R, KC_L, KC_C, KC_R, + KC_D, KC_D + ) +}; diff --git a/keyboards/dlip/haritev2/dual_cirque/readme.md b/keyboards/dlip/haritev2/dual_cirque/readme.md new file mode 100644 index 0000000000..17c540b1c9 --- /dev/null +++ b/keyboards/dlip/haritev2/dual_cirque/readme.md @@ -0,0 +1,39 @@ +# Harite v2 (Cirque trackpad version) + +5 way switch directional keyboard + + + +* Keyboard Maintainer: [Dane Lipscombe](https://github.com/dlip) +* Hardware Supported: Harite v2 (Cirque trackpad version) +* Hardware Availability: <https://github.com/dlip/harite-v2> + +Make example for this keyboard (after setting up your build environment): + +```bash +make dlip/haritev2/dual_cirque:default +``` + +Flashing example for this keyboard: + +```bash +# For the left half... +make dlip/haritev2/dual_cirque:default:uf2-split-left +# or the qmk cli equivalent: +qmk flash -kb dlip/haritev2/dual_cirque --keymap default -bl uf2-split-left + +# For the right half... +make dlip/haritev2/dual_cirque:default:uf2-split-right +# or the qmk cli equivalent: +qmk flash -kb dlip/haritev2/dual_cirque --keymap default -bl uf2-split-right +``` + +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/dlip/haritev2/dual_cirque/rules.mk b/keyboards/dlip/haritev2/dual_cirque/rules.mk new file mode 100644 index 0000000000..fb5d649735 --- /dev/null +++ b/keyboards/dlip/haritev2/dual_cirque/rules.mk @@ -0,0 +1 @@ +POINTING_DEVICE_DRIVER = cirque_pinnacle_spi diff --git a/keyboards/dlip/haritev2/halconf.h b/keyboards/dlip/haritev2/halconf.h new file mode 100644 index 0000000000..102ec51a6b --- /dev/null +++ b/keyboards/dlip/haritev2/halconf.h @@ -0,0 +1,7 @@ +// Copyright 2023 Dane Lipscombe (@dlip) +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#define HAL_USE_SPI TRUE + +#include_next <halconf.h> diff --git a/keyboards/dlip/haritev2/info.json b/keyboards/dlip/haritev2/info.json new file mode 100644 index 0000000000..b7e12b89d5 --- /dev/null +++ b/keyboards/dlip/haritev2/info.json @@ -0,0 +1,95 @@ +{ + "manufacturer": "Dane Lipscombe", + "keyboard_name": "haritev2", + "maintainer": "dlip", + "bootloader": "rp2040", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["GP11", "GP12", "GP13", "GP14", "GP15", "GP26"], + "rows": ["GP6", "GP7", "GP8", "GP9", "GP10"] + }, + "processor": "RP2040", + "split": { + "enabled": true, + "serial": { + "driver": "vendor" + } + }, + "usb": { + "device_version": "1.0.0", + "pid": "0x4832", + "vid": "0x444C" + }, + "layouts": { + "LAYOUT_split_5x6": { + "layout": [ + {"label": "lpu", "matrix": [0, 0], "x": 1, "y": 0}, + {"label": "lru", "matrix": [0, 1], "x": 5, "y": 0}, + {"label": "lmu", "matrix": [0, 2], "x": 9, "y": 0}, + {"label": "liu", "matrix": [0, 3], "x": 13, "y": 0}, + {"label": "riu", "matrix": [8, 3], "x": 21, "y": 0}, + {"label": "rmu", "matrix": [8, 2], "x": 25, "y": 0}, + {"label": "rru", "matrix": [8, 1], "x": 29, "y": 0}, + {"label": "rpu", "matrix": [8, 0], "x": 33, "y": 0}, + {"label": "lpl", "matrix": [2, 0], "x": 0, "y": 1}, + {"label": "lpc", "matrix": [1, 0], "x": 1, "y": 1}, + {"label": "lpr", "matrix": [3, 0], "x": 2, "y": 1}, + {"label": "lrl", "matrix": [2, 1], "x": 4, "y": 1}, + {"label": "lrc", "matrix": [1, 1], "x": 5, "y": 1}, + {"label": "lrr", "matrix": [3, 1], "x": 6, "y": 1}, + {"label": "lml", "matrix": [2, 2], "x": 8, "y": 1}, + {"label": "lmc", "matrix": [1, 2], "x": 9, "y": 1}, + {"label": "lmr", "matrix": [3, 2], "x": 10, "y": 1}, + {"label": "lil", "matrix": [2, 3], "x": 12, "y": 1}, + {"label": "lic", "matrix": [1, 3], "x": 13, "y": 1}, + {"label": "lir", "matrix": [3, 3], "x": 14, "y": 1}, + {"label": "ril", "matrix": [5, 3], "x": 20, "y": 1}, + {"label": "ric", "matrix": [6, 3], "x": 21, "y": 1}, + {"label": "rir", "matrix": [9, 3], "x": 22, "y": 1}, + {"label": "rml", "matrix": [5, 2], "x": 24, "y": 1}, + {"label": "rmc", "matrix": [6, 2], "x": 25, "y": 1}, + {"label": "rmr", "matrix": [9, 2], "x": 26, "y": 1}, + {"label": "rrl", "matrix": [5, 1], "x": 28, "y": 1}, + {"label": "rrc", "matrix": [6, 1], "x": 29, "y": 1}, + {"label": "rrr", "matrix": [9, 1], "x": 30, "y": 1}, + {"label": "rpl", "matrix": [5, 0], "x": 32, "y": 1}, + {"label": "rpc", "matrix": [6, 0], "x": 33, "y": 1}, + {"label": "rpr", "matrix": [9, 0], "x": 34, "y": 1}, + {"label": "lpd", "matrix": [4, 0], "x": 1, "y": 2}, + {"label": "lrd", "matrix": [4, 1], "x": 5, "y": 2}, + {"label": "lmd", "matrix": [4, 2], "x": 9, "y": 2}, + {"label": "lid", "matrix": [4, 3], "x": 13, "y": 2}, + {"label": "rid", "matrix": [7, 3], "x": 21, "y": 2}, + {"label": "rmd", "matrix": [7, 2], "x": 25, "y": 2}, + {"label": "rrd", "matrix": [7, 1], "x": 29, "y": 2}, + {"label": "rpd", "matrix": [7, 0], "x": 33, "y": 2}, + {"label": "ltu", "matrix": [0, 4], "x": 13, "y": 3}, + {"label": "rtu", "matrix": [5, 4], "x": 21, "y": 3}, + {"label": "ltl", "matrix": [2, 4], "x": 12, "y": 4}, + {"label": "ltc", "matrix": [1, 4], "x": 13, "y": 4}, + {"label": "ltr", "matrix": [3, 4], "x": 14, "y": 4}, + {"label": "rtl", "matrix": [7, 4], "x": 20, "y": 4}, + {"label": "rtc", "matrix": [6, 4], "x": 21, "y": 4}, + {"label": "rtr", "matrix": [8, 4], "x": 22, "y": 4}, + {"label": "ltd", "matrix": [4, 4], "x": 13, "y": 5}, + {"label": "rtd", "matrix": [9, 4], "x": 21, "y": 5}, + {"label": "lt2u", "matrix": [0, 5], "x": 13, "y": 6}, + {"label": "rt2u", "matrix": [5, 5], "x": 21, "y": 6}, + {"label": "lt2l", "matrix": [2, 5], "x": 12, "y": 7}, + {"label": "lt2c", "matrix": [1, 5], "x": 13, "y": 7}, + {"label": "lt2r", "matrix": [3, 5], "x": 14, "y": 7}, + {"label": "rt2l", "matrix": [7, 5], "x": 20, "y": 7}, + {"label": "rt2c", "matrix": [6, 5], "x": 21, "y": 7}, + {"label": "rt2r", "matrix": [8, 5], "x": 22, "y": 7}, + {"label": "lt2d", "matrix": [4, 5], "x": 13, "y": 8}, + {"label": "rt2d", "matrix": [9, 5], "x": 21, "y": 8} + ] + } + } +} diff --git a/keyboards/handwired/onekey/keymaps/lvgl/mcuconf.h b/keyboards/dlip/haritev2/mcuconf.h index bff74867ff..62375dc72c 100644 --- a/keyboards/handwired/onekey/keymaps/lvgl/mcuconf.h +++ b/keyboards/dlip/haritev2/mcuconf.h @@ -1,9 +1,7 @@ -// Copyright 2022 Jose Pablo Ramirez (@jpe230) +// Copyright 2023 Dane Lipscombe (@dlip) // SPDX-License-Identifier: GPL-2.0-or-later - #pragma once #include_next <mcuconf.h> - #undef RP_SPI_USE_SPI0 #define RP_SPI_USE_SPI0 TRUE diff --git a/keyboards/dlip/haritev2/thumbstick_pmw3389/config.h b/keyboards/dlip/haritev2/thumbstick_pmw3389/config.h new file mode 100644 index 0000000000..b050985f3e --- /dev/null +++ b/keyboards/dlip/haritev2/thumbstick_pmw3389/config.h @@ -0,0 +1,9 @@ +// Copyright 2024 Dane Lipscombe (@dlip) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define PMW33XX_CPI 1000 +#define SPLIT_POINTING_ENABLE +#define POINTING_DEVICE_INVERT_X +#define POINTING_DEVICE_RIGHT diff --git a/keyboards/dlip/haritev2/thumbstick_pmw3389/keyboard.json b/keyboards/dlip/haritev2/thumbstick_pmw3389/keyboard.json new file mode 100644 index 0000000000..687c0ea3a9 --- /dev/null +++ b/keyboards/dlip/haritev2/thumbstick_pmw3389/keyboard.json @@ -0,0 +1,25 @@ +{ + "features": { + "joystick": true, + "pointing_device": true + }, + "joystick": { + "driver": "analog", + "axes": { + "x": { + "high": 938, + "input_pin": "GP27", + "low": 25, + "rest": 501 + }, + "y": { + "high": 942, + "input_pin": "GP28", + "low": 58, + "rest": 474 + } + }, + "axis_resolution": 10, + "button_count": 32 + } +} diff --git a/keyboards/dlip/haritev2/thumbstick_pmw3389/keymaps/default/keymap.c b/keyboards/dlip/haritev2/thumbstick_pmw3389/keymaps/default/keymap.c new file mode 100644 index 0000000000..3e23d4b088 --- /dev/null +++ b/keyboards/dlip/haritev2/thumbstick_pmw3389/keymaps/default/keymap.c @@ -0,0 +1,19 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_split_5x6( + KC_U, KC_U, KC_U, KC_U, KC_U, KC_U, KC_U, KC_U, + KC_L, KC_C, KC_R, KC_L, KC_C, KC_R, KC_L, KC_C, KC_R, KC_L, KC_C, KC_R, KC_L, KC_C, KC_R, KC_L, KC_C, KC_R, KC_L, KC_C, KC_R, KC_L, KC_C, KC_R, + KC_D, KC_D, KC_D, KC_D, KC_D, KC_D, KC_D, KC_D, + + KC_U, KC_U, + KC_L, KC_C, KC_R, KC_L, KC_C, KC_R, + KC_D, KC_D, + + KC_U, KC_U, + KC_L, KC_C, KC_R, KC_L, KC_C, KC_R, + KC_D, KC_D + ) +}; diff --git a/keyboards/dlip/haritev2/thumbstick_pmw3389/readme.md b/keyboards/dlip/haritev2/thumbstick_pmw3389/readme.md new file mode 100644 index 0000000000..ed0caf977a --- /dev/null +++ b/keyboards/dlip/haritev2/thumbstick_pmw3389/readme.md @@ -0,0 +1,39 @@ +# Harite v2 (Thumbstick + PMW3389 version) + +5 way switch directional keyboard + + + +* Keyboard Maintainer: [Dane Lipscombe](https://github.com/dlip) +* Hardware Supported: Harite v2 (Thumbstick + PMW3389 version) +* Hardware Availability: <https://github.com/dlip/harite-v2> + +Make example for this keyboard (after setting up your build environment): + +```bash +make dlip/haritev2/thumbstick_pmw3389:default +``` + +Flashing example for this keyboard: + +```bash +# For the left half... +make dlip/haritev2/thumbstick_pmw3389:default:uf2-split-left +# or the qmk cli equivalent: +qmk flash -kb dlip/haritev2/thumbstick_pmw3389 --keymap default -bl uf2-split-left + +# For the right half... +make dlip/haritev2/thumbstick_pmw3389:default:uf2-split-right +# or the qmk cli equivalent: +qmk flash -kb dlip/haritev2/thumbstick_pmw3389 --keymap default -bl uf2-split-right +``` + +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/dlip/haritev2/thumbstick_pmw3389/rules.mk b/keyboards/dlip/haritev2/thumbstick_pmw3389/rules.mk new file mode 100644 index 0000000000..8ff6b63653 --- /dev/null +++ b/keyboards/dlip/haritev2/thumbstick_pmw3389/rules.mk @@ -0,0 +1 @@ +POINTING_DEVICE_DRIVER = pmw3389 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/doio/kb03/config.h b/keyboards/doio/kb03/config.h new file mode 100644 index 0000000000..f0f974d940 --- /dev/null +++ b/keyboards/doio/kb03/config.h @@ -0,0 +1,9 @@ +// Copyright (C) 2025 DOIO +// Copyright (C) 2025 ClownFish (@clownfish-og) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define WS2812_PWM_CHANNEL 3 +#define WS2812_PWM_DRIVER PWMD1 +#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM5 diff --git a/keyboards/doio/kb03/halconf.h b/keyboards/doio/kb03/halconf.h new file mode 100644 index 0000000000..8c0968d792 --- /dev/null +++ b/keyboards/doio/kb03/halconf.h @@ -0,0 +1,9 @@ +// Copyright (C) 2025 DOIO +// Copyright (C) 2025 ClownFish (@clownfish-og) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define HAL_USE_PWM TRUE + +#include_next <halconf.h> diff --git a/keyboards/doio/kb03/kb03.c b/keyboards/doio/kb03/kb03.c new file mode 100644 index 0000000000..9368bc5d41 --- /dev/null +++ b/keyboards/doio/kb03/kb03.c @@ -0,0 +1,64 @@ +// Copyright (C) 2025 DOIO +// Copyright (C) 2025 ClownFish (@clownfish-og) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "quantum.h" + +#ifdef RGB_MATRIX_ENABLE + +bool process_record_kb(uint16_t keycode, keyrecord_t *record) { + if (!process_record_user(keycode, record)) { + return false; + } + switch (keycode) { + case RM_TOGG: + if (record->event.pressed) { + switch (rgb_matrix_get_flags()) { + case LED_FLAG_ALL: { + rgb_matrix_set_flags(LED_FLAG_NONE); + rgb_matrix_set_color_all(0, 0, 0); + } break; + default: { + rgb_matrix_set_flags(LED_FLAG_ALL); + } break; + } + } + if (!rgb_matrix_is_enabled()) { + rgb_matrix_set_flags(LED_FLAG_ALL); + rgb_matrix_enable(); + } + return false; + } + return true; +} + +bool rgb_matrix_indicators_kb(void) { + if (!rgb_matrix_indicators_user()) { + return false; + } + + hsv_t hsv = {0, 255, 100}; + switch (get_highest_layer(layer_state)) { + case 0: + hsv = (hsv_t){HSV_RED}; + break; + case 1: + hsv = (hsv_t){HSV_GREEN}; + break; + case 2: + hsv = (hsv_t){HSV_BLUE}; + break; + case 3: + hsv = (hsv_t){HSV_WHITE}; + break; + default: + hsv = (hsv_t){HSV_YELLOW}; + break; + } + hsv.v = (rgb_matrix_get_val() * 70 / 200) + 30; //set indicator brightness range 30-100, vary based on RGB Matrix brightness + rgb_t rgb = hsv_to_rgb(hsv); + rgb_matrix_set_color(9, rgb.r, rgb.g, rgb.b); + return false; +} + +#endif diff --git a/keyboards/doio/kb03/keyboard.json b/keyboards/doio/kb03/keyboard.json new file mode 100644 index 0000000000..d2a214c92f --- /dev/null +++ b/keyboards/doio/kb03/keyboard.json @@ -0,0 +1,96 @@ +{ + "manufacturer": "DOIO", + "keyboard_name": "KB03-01", + "maintainer": "clownfish-og", + "bootloader": "stm32duino", + "diode_direction": "COL2ROW", + "encoder": { + "rotary": [ + {"pin_a": "B5", "pin_b": "B6", "resolution": 4}, + {"pin_a": "A2", "pin_b": "A1", "resolution": 2} + ] + }, + "features": { + "bootmagic": true, + "encoder": true, + "extrakey": true, + "mousekey": true, + "rgb_matrix": true + }, + "matrix_pins": { + "cols": ["B14", "B13", "B12", "B0", "A7"], + "rows": ["B3"] + }, + "processor": "STM32F103", + "rgb_matrix": { + "animations": { + "band_pinwheel_sat": true, + "band_pinwheel_val": true, + "band_sat": true, + "band_spiral_sat": true, + "band_spiral_val": true, + "band_val": true, + "breathing": true, + "cycle_all": true, + "cycle_left_right": true, + "cycle_out_in": true, + "cycle_out_in_dual": true, + "cycle_pinwheel": true, + "cycle_spiral": true, + "cycle_up_down": true, + "dual_beacon": true, + "gradient_left_right": true, + "gradient_up_down": true, + "hue_breathing": true, + "hue_wave": true, + "jellybean_raindrops": true, + "rainbow_beacon": true, + "rainbow_moving_chevron": true, + "rainbow_pinwheels": true, + "raindrops": true, + "solid_reactive": true, + "solid_reactive_cross": true, + "solid_reactive_nexus": true, + "solid_reactive_simple": true, + "solid_reactive_wide": true, + "solid_splash": true, + "splash": true + }, + "driver": "ws2812", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 112, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 224, "y": 0, "flags": 4}, + {"x": 224, "y": 0, "flags": 2}, + {"x": 0, "y": 0, "flags": 2}, + {"x": 0, "y": 32, "flags": 2}, + {"x": 0, "y": 64, "flags": 2}, + {"x": 224, "y": 64, "flags": 2}, + {"x": 224, "y": 32, "flags": 2}, + {"x": 10, "y": 0, "flags": 8} + ], + "max_brightness": 200, + "sleep": true + }, + "url": "https://www.keebmonkey.com/products/megalodon-dual-layer-knob-macro-pad", + "usb": { + "device_version": "0.0.1", + "pid": "0x0301", + "vid": "0xD010" + }, + "ws2812": { + "pin": "A10", + "driver": "pwm" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"label": "Layers", "matrix": [0, 3], "x": 0.75, "y": 0, "h": 0.5}, + {"label": "1!", "matrix": [0, 0], "x": 0, "y": 0.75}, + {"label": "2@", "matrix": [0, 1], "x": 1, "y": 0.75}, + {"label": "3#", "matrix": [0, 2], "x": 2, "y": 0.75}, + {"label": "Encoder", "matrix": [0, 4], "x": 0.5, "y": 2, "w": 2, "h": 2} + ] + } + } +} diff --git a/keyboards/doio/kb03/keymaps/default/keymap.c b/keyboards/doio/kb03/keymaps/default/keymap.c new file mode 100644 index 0000000000..67e43faca4 --- /dev/null +++ b/keyboards/doio/kb03/keymaps/default/keymap.c @@ -0,0 +1,44 @@ +// Copyright 2025 DOIO +// Copyright 2025 ClownFish (@clownfish-og) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +enum my_layers { + _BASE, + _MOUSE, + _MEDIA, + _LIGHTS +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT( + TO(_MOUSE), + KC_1, KC_2, KC_3, + KC_ENT + ), + [_MOUSE] = LAYOUT( + TO(_MEDIA), + MS_BTN1, MS_BTN3, MS_BTN2, + KC_LCTL + ), + [_MEDIA] = LAYOUT( + TO(_LIGHTS), + KC_MRWD, KC_MPLY, KC_MFFD, + KC_MUTE + ), + [_LIGHTS] = LAYOUT( + TO(_BASE), + RM_VALD, RM_NEXT, RM_VALU, + RM_TOGG + ) +}; + +#ifdef ENCODER_MAP_ENABLE +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [_BASE] = { ENCODER_CCW_CW(MS_WHLU, MS_WHLD), ENCODER_CCW_CW(MS_WHLL, MS_WHLR) }, + [_MOUSE] = { ENCODER_CCW_CW(MS_LEFT, MS_RGHT), ENCODER_CCW_CW(MS_UP, MS_DOWN) }, + [_MEDIA] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_MPRV, KC_MNXT) }, + [_LIGHTS] = { ENCODER_CCW_CW(RM_SATD, RM_SATU), ENCODER_CCW_CW(RM_HUED, RM_HUEU) } +}; +#endif diff --git a/keyboards/doio/kb03/keymaps/default/rules.mk b/keyboards/doio/kb03/keymaps/default/rules.mk new file mode 100644 index 0000000000..ee32568148 --- /dev/null +++ b/keyboards/doio/kb03/keymaps/default/rules.mk @@ -0,0 +1 @@ +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/doio/kb03/mcuconf.h b/keyboards/doio/kb03/mcuconf.h new file mode 100644 index 0000000000..5869741c98 --- /dev/null +++ b/keyboards/doio/kb03/mcuconf.h @@ -0,0 +1,10 @@ +// Copyright (C) 2025 DOIO +// Copyright (C) 2025 ClownFish (@clownfish-og) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include_next <mcuconf.h> + +#undef STM32_PWM_USE_TIM1 +#define STM32_PWM_USE_TIM1 TRUE diff --git a/keyboards/doio/kb03/readme.md b/keyboards/doio/kb03/readme.md new file mode 100644 index 0000000000..873ab2f38d --- /dev/null +++ b/keyboards/doio/kb03/readme.md @@ -0,0 +1,27 @@ +# DOIO KB03-01 + + + +QMK for Megalodon DOIO Dual Layer Knob 3 Key macropad. + +* Keyboard Maintainer: [clownfish-og](https://github.com/clownfish-og) +* Hardware Supported: DOIO KB03-01 using APM32F103CBT6 (clone STM32F103CBT6) +* Hardware Availability: https://www.keebmonkey.com/products/megalodon-dual-layer-knob-macro-pad + +Make example for this keyboard (after setting up your build environment): + + make doio/kb03:default + +Flashing example for this keyboard: + + make doio/kb03: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/doio/kb03/rules.mk b/keyboards/doio/kb03/rules.mk new file mode 100644 index 0000000000..6f0a3736a7 --- /dev/null +++ b/keyboards/doio/kb03/rules.mk @@ -0,0 +1,2 @@ +# Configure for 128K flash +MCU_LDSCRIPT = STM32F103xB 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/edi/hardlight/mk2/halconf.h b/keyboards/edi/hardlight/mk2/halconf.h index 498f31a919..f7b5100b2c 100644 --- a/keyboards/edi/hardlight/mk2/halconf.h +++ b/keyboards/edi/hardlight/mk2/halconf.h @@ -25,8 +25,5 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. // Activate Serial Peripheral Interface #define HAL_USE_SPI TRUE -#define SPI_USE_WAIT TRUE -#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD - -#include_next <halconf.h>
\ No newline at end of file +#include_next <halconf.h> 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/halconf.h b/keyboards/gmmk/gmmk2/p65/halconf.h index 293d182917..24941b1b6c 100644 --- a/keyboards/gmmk/gmmk2/p65/halconf.h +++ b/keyboards/gmmk/gmmk2/p65/halconf.h @@ -22,8 +22,5 @@ #pragma once #define HAL_USE_SPI TRUE -#define SPI_USE_WAIT TRUE -#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD #include_next <halconf.h> - 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/gmmk/gmmk2/p96/halconf.h b/keyboards/gmmk/gmmk2/p96/halconf.h index 293d182917..24941b1b6c 100644 --- a/keyboards/gmmk/gmmk2/p96/halconf.h +++ b/keyboards/gmmk/gmmk2/p96/halconf.h @@ -22,8 +22,5 @@ #pragma once #define HAL_USE_SPI TRUE -#define SPI_USE_WAIT TRUE -#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD #include_next <halconf.h> - diff --git a/keyboards/gmmk/numpad/halconf.h b/keyboards/gmmk/numpad/halconf.h index b6b68a4e63..7ac9455f98 100644 --- a/keyboards/gmmk/numpad/halconf.h +++ b/keyboards/gmmk/numpad/halconf.h @@ -18,9 +18,6 @@ #pragma once #define HAL_USE_SPI TRUE -#define SPI_USE_WAIT TRUE -#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD #define HAL_USE_ADC TRUE - -#include_next <halconf.h>
\ No newline at end of file +#include_next <halconf.h> diff --git a/keyboards/gmmk/pro/rev1/halconf.h b/keyboards/gmmk/pro/rev1/halconf.h index 8d9b60c234..cfd866f371 100644 --- a/keyboards/gmmk/pro/rev1/halconf.h +++ b/keyboards/gmmk/pro/rev1/halconf.h @@ -17,7 +17,5 @@ #pragma once #define HAL_USE_SPI TRUE -#define SPI_USE_WAIT TRUE -#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD #include_next <halconf.h> diff --git a/keyboards/gmmk/pro/rev2/halconf.h b/keyboards/gmmk/pro/rev2/halconf.h index 8d9b60c234..cfd866f371 100644 --- a/keyboards/gmmk/pro/rev2/halconf.h +++ b/keyboards/gmmk/pro/rev2/halconf.h @@ -17,7 +17,5 @@ #pragma once #define HAL_USE_SPI TRUE -#define SPI_USE_WAIT TRUE -#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD #include_next <halconf.h> 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/green_keys/gravity_45/keyboard.json b/keyboards/green_keys/gravity_45/keyboard.json new file mode 100644 index 0000000000..762f3ebae6 --- /dev/null +++ b/keyboards/green_keys/gravity_45/keyboard.json @@ -0,0 +1,95 @@ +{ + "manufacturer": "GreenKeys", + "keyboard_name": "Gravity-45", + "maintainer": "takashicompany", + "processor": "RP2040", + "bootloader": "rp2040", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgblight": true + }, + "matrix_pins": { + "cols": ["GP14", "GP15", "GP26", "GP27", "GP28", "GP29", "GP5", "GP4", "GP3", "GP2", "GP1", "GP0"], + "rows": ["GP10", "GP11", "GP12", "GP13"] + }, + "rgblight": { + "animations": { + "alternating": true, + "breathing": true, + "christmas": true, + "knight": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "static_gradient": true, + "twinkle": true + }, + "led_count": 1, + "max_brightness": 120 + }, + "url": "https://green-keys.info", + "usb": { + "device_version": "1.0.0", + "pid": "0x9121", + "vid": "0x1209" + }, + "ws2812": { + "driver": "vendor", + "pin": "GP8" + }, + "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": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 9.5, "y": 0}, + {"matrix": [0, 7], "x": 10.5, "y": 0}, + {"matrix": [0, 8], "x": 11.5, "y": 0}, + {"matrix": [0, 9], "x": 12.5, "y": 0}, + {"matrix": [0, 10], "x": 13.5, "y": 0}, + {"matrix": [0, 11], "x": 14.5, "y": 0}, + {"matrix": [1, 0], "x": 0.25, "y": 1}, + {"matrix": [1, 1], "x": 1.25, "y": 1}, + {"matrix": [1, 2], "x": 2.25, "y": 1}, + {"matrix": [1, 3], "x": 3.25, "y": 1}, + {"matrix": [1, 4], "x": 4.25, "y": 1}, + {"matrix": [1, 5], "x": 5.25, "y": 1}, + {"matrix": [3, 11], "x": 7.625, "y": 1.5}, + {"matrix": [1, 6], "x": 9.75, "y": 1}, + {"matrix": [1, 7], "x": 10.75, "y": 1}, + {"matrix": [1, 8], "x": 11.75, "y": 1}, + {"matrix": [1, 9], "x": 12.75, "y": 1}, + {"matrix": [1, 10], "x": 13.75, "y": 1}, + {"matrix": [1, 11], "x": 14.75, "y": 1}, + {"matrix": [2, 0], "x": 0.5, "y": 2}, + {"matrix": [2, 1], "x": 1.5, "y": 2}, + {"matrix": [2, 2], "x": 2.5, "y": 2}, + {"matrix": [2, 3], "x": 3.5, "y": 2}, + {"matrix": [2, 4], "x": 4.5, "y": 2}, + {"matrix": [2, 5], "x": 5.5, "y": 2}, + {"matrix": [2, 6], "x": 10, "y": 2}, + {"matrix": [2, 7], "x": 11, "y": 2}, + {"matrix": [2, 8], "x": 12, "y": 2}, + {"matrix": [2, 9], "x": 13, "y": 2}, + {"matrix": [2, 10], "x": 14, "y": 2}, + {"matrix": [2, 11], "x": 15, "y": 2}, + {"matrix": [3, 2], "x": 2.5, "y": 3}, + {"matrix": [3, 3], "x": 3.5, "y": 3, "w": 1.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3, "w": 1.25}, + {"matrix": [3, 5], "x": 6, "y": 3, "w": 1.25}, + {"matrix": [3, 6], "x": 9.75, "y": 3, "w": 1.25}, + {"matrix": [3, 7], "x": 11, "y": 3, "w": 1.25}, + {"matrix": [3, 8], "x": 12.25, "y": 3, "w": 1.25}, + {"matrix": [3, 9], "x": 13.5, "y": 3, "w": 1.25} + ] + } + } +} diff --git a/keyboards/green_keys/gravity_45/keymaps/default/keymap.c b/keyboards/green_keys/gravity_45/keymaps/default/keymap.c new file mode 100644 index 0000000000..b1031461d5 --- /dev/null +++ b/keyboards/green_keys/gravity_45/keymaps/default/keymap.c @@ -0,0 +1,70 @@ +// Copyright 2025 takashicompany (@takashicompany) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT( + KC_ESC, LT(7, KC_Q), KC_W, KC_E, LT(6, KC_R), KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + KC_LCTL, KC_A, KC_S, LT(6, KC_D), KC_F, KC_G, RGB_TOG, KC_H, KC_J, LT(6, KC_K), KC_L, KC_ENT, KC_ENT, + KC_LSFT, LSFT_T(KC_Z), LGUI_T(KC_X), KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, LCTL_T(KC_DOT), KC_BSPC, KC_DEL, + KC_LCTL, KC_LGUI, LALT_T(KC_LNG2), LSFT_T(KC_TAB), LT(2, KC_SPC), LT(1, KC_LNG1), KC_RALT, KC_RGUI + ), + + [1] = LAYOUT( + KC_TRNS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS, + KC_TRNS, LCTL_T(KC_EQL), KC_LBRC, KC_SLSH, KC_MINS, KC_INT1, KC_TRNS, KC_SCLN, KC_QUOT, KC_RBRC, KC_NUHS, KC_INT3, KC_TRNS, + KC_TRNS, LSFT_T(KC_PLUS), KC_LCBR, KC_QUES, KC_UNDS, LSFT(KC_INT1), KC_COLN, KC_DQUO, KC_RCBR, LSFT(KC_NUHS), LSFT(KC_INT3), KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + [2] = LAYOUT( + KC_TRNS, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, LGUI(KC_INT3), KC_TRNS, + KC_TRNS, KC_PLUS, KC_LCBR, KC_QUES, KC_UNDS, LSFT(KC_INT1), KC_TRNS, KC_COLN, KC_DQUO, KC_RCBR, LSFT(KC_NUHS), LSFT(KC_INT3), KC_TRNS, + KC_TRNS, KC_TRNS, KC_LGUI, KC_LALT, KC_LNG2, KC_LSFT, KC_SPC, KC_LNG1, KC_TRNS, KC_TRNS, KC_DEL, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + [3] = LAYOUT( + KC_TRNS, LT(7, KC_Q), KC_W, KC_E, LT(6, KC_R), KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_TRNS, + KC_TRNS, KC_A, KC_S, LT(6, KC_D), KC_F, KC_G, KC_TRNS, KC_H, KC_J, LT(6, KC_K), KC_L, KC_ENT, KC_TRNS, + KC_TRNS, LSFT_T(KC_Z), LGUI_T(KC_X), KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, LCTL_T(KC_DOT), KC_BSPC, KC_TRNS, + KC_LCTL, KC_LGUI, LALT_T(KC_LNG2), LSFT_T(KC_TAB), LT(5, KC_SPC), LT(4, KC_LNG1), KC_RALT, KC_RGUI + ), + + [4] = LAYOUT( + KC_TRNS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS, + KC_TRNS, KC_CIRC, KC_AT, KC_SLSH, KC_MINS, KC_UNDS, KC_TRNS, KC_SCLN, KC_COLN, KC_LBRC, KC_RBRC, KC_INT3, KC_TRNS, + KC_TRNS, LT(5, KC_TILD), KC_GRV, KC_QUES, KC_EQL, KC_UNDS, KC_PLUS, KC_ASTR, KC_LCBR, KC_RCBR, KC_PIPE, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + [5] = LAYOUT( + KC_TRNS, KC_EXLM, KC_DQUO, KC_HASH, KC_DLR, KC_PERC, KC_AMPR, KC_QUOT, KC_LPRN, KC_RPRN, KC_BSLS, KC_TRNS, + KC_TRNS, KC_TILD, KC_GRV, KC_QUES, KC_EQL, KC_UNDS, KC_TRNS, KC_PLUS, KC_ASTR, KC_LCBR, KC_RCBR, KC_PIPE, KC_TRNS, + KC_TRNS, KC_LSFT, KC_LGUI, KC_LALT, KC_LNG2, KC_LSFT, KC_SPC, KC_LNG1, KC_TRNS, KC_TRNS, KC_DEL, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + [6] = LAYOUT( + KC_TRNS, KC_ESC, KC_TAB, KC_UP, KC_NO, KC_NO, KC_NO, KC_NO, KC_UP, KC_NO, KC_NO, KC_TRNS, + KC_TRNS, KC_LCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_NO, KC_TRNS, KC_NO, KC_LEFT, KC_DOWN, KC_RGHT, KC_NO, KC_TRNS, + KC_TRNS, KC_LSFT, KC_LGUI, KC_LALT, KC_LNG2, KC_TRNS, KC_NO, KC_LNG1, KC_NO, KC_NO, KC_DEL, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + [7] = LAYOUT( + KC_TRNS, KC_NO, KC_TAB, KC_NO, KC_NO, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_TRNS, + KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, + KC_TRNS, KC_LSFT, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, MO(8), MO(9), KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + [8] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_NO, KC_NO, DF(0), DF(3), KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_NO, QK_BOOT, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; diff --git a/keyboards/green_keys/gravity_45/readme.md b/keyboards/green_keys/gravity_45/readme.md new file mode 100644 index 0000000000..cdf98feab8 --- /dev/null +++ b/keyboards/green_keys/gravity_45/readme.md @@ -0,0 +1,37 @@ +# Gravity-45 + + + +Gravity-45 is a 45-key integrated keyboard. +It uses the Waveshare RP2040-Zero MCU. +Keyswitch sockets are used for easy keyswitch replacement. +The tight PCB outline lines allow for easy case design. + +--- + +Gravity-45 は 45キーの一体型のキーボードだ。 +MCUにはWaveshare RP2040-Zeroを採用している。 +キースイッチソケットを使用するためキースイッチの交換が容易に行える。 +PCBの外形線がタイトなので、ケースの設計が容易だ。 + +* Keyboard Maintainer: [takashicompany](https://github.com/takashicompany) +* Hardware Supported: PCB, Waveshare RP2040-Zero +* Hardware Availability: [GreenKeys](https://green-keys.info/) + +Make example for this keyboard (after setting up your build environment): + + make green_keys/gravity_45:default + +Flashing example for this keyboard: + + make green_keys/gravity_45: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/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/hen_des/epssp75/keyboard.json b/keyboards/handwired/hen_des/epssp75/keyboard.json index 4d0739b800..1917fd87cc 100644 --- a/keyboards/handwired/hen_des/epssp75/keyboard.json +++ b/keyboards/handwired/hen_des/epssp75/keyboard.json @@ -6,8 +6,6 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, - "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/handwired/lumawing/keyboard.json b/keyboards/handwired/lumawing/keyboard.json index a99d6d2a2e..8af89134aa 100644 --- a/keyboards/handwired/lumawing/keyboard.json +++ b/keyboards/handwired/lumawing/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "LuMaWing", "manufacturer": "Lucas Mateijsen", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xBB80", @@ -11,7 +10,6 @@ "features": { "bootmagic": true, "command": true, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/handwired/onekey/at_start_f415/config.h b/keyboards/handwired/onekey/at_start_f415/config.h index 41aece900c..7e41e7da89 100644 --- a/keyboards/handwired/onekey/at_start_f415/config.h +++ b/keyboards/handwired/onekey/at_start_f415/config.h @@ -4,11 +4,25 @@ #pragma once +/* ADC pin */ #define ADC_PIN A0 +/* Backlight configs */ #define BACKLIGHT_PWM_DRIVER PWMD5 #define BACKLIGHT_PWM_CHANNEL 1 +/* LCD configs */ +#define LCD_RST_PIN A2 +#define LCD_DC_PIN A3 +#define LCD_CS_PIN A4 + +/* SPI pins */ +#define SPI_DRIVER SPID1 +#define SPI_SCK_PIN A5 +#define SPI_MOSI_PIN A7 +#define SPI_MISO_PIN A6 + +/* Haptic configs */ #define SOLENOID_PIN B12 #define SOLENOID_PINS { B12, B13, B14, B15 } #define SOLENOID_PINS_ACTIVE_STATE { high, high, low } diff --git a/keyboards/handwired/onekey/at_start_f415/halconf.h b/keyboards/handwired/onekey/at_start_f415/halconf.h index e3c075936d..3c3ba3812a 100644 --- a/keyboards/handwired/onekey/at_start_f415/halconf.h +++ b/keyboards/handwired/onekey/at_start_f415/halconf.h @@ -10,4 +10,6 @@ #define HAL_USE_PWM TRUE +#define HAL_USE_SPI TRUE + #include_next <halconf.h> diff --git a/keyboards/handwired/onekey/at_start_f415/keyboard.json b/keyboards/handwired/onekey/at_start_f415/keyboard.json index 6e5683a474..8024e776a8 100644 --- a/keyboards/handwired/onekey/at_start_f415/keyboard.json +++ b/keyboards/handwired/onekey/at_start_f415/keyboard.json @@ -16,7 +16,7 @@ }, "ws2812": { "pin": "B0" - } + }, "apa102": { "data_pin": "B0", "clock_pin": "B1" diff --git a/keyboards/handwired/onekey/at_start_f415/mcuconf.h b/keyboards/handwired/onekey/at_start_f415/mcuconf.h index 246f6762d3..8f6333ca01 100644 --- a/keyboards/handwired/onekey/at_start_f415/mcuconf.h +++ b/keyboards/handwired/onekey/at_start_f415/mcuconf.h @@ -14,3 +14,6 @@ #undef AT32_PWM_USE_TMR5 #define AT32_PWM_USE_TMR5 TRUE + +#undef AT32_SPI_USE_SPI1 +#define AT32_SPI_USE_SPI1 TRUE diff --git a/keyboards/handwired/onekey/info.json b/keyboards/handwired/onekey/info.json index 7b6b7ddab8..d5f650f1bd 100644 --- a/keyboards/handwired/onekey/info.json +++ b/keyboards/handwired/onekey/info.json @@ -26,5 +26,17 @@ {"x": 0, "y": 0, "matrix": [0, 0]} ] } + }, + "led_matrix": { + "driver": "snled27351", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1} + ] + }, + "rgb_matrix": { + "driver": "snled27351", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1} + ] } } diff --git a/keyboards/handwired/onekey/kb2040/config.h b/keyboards/handwired/onekey/kb2040/config.h index e9c4eef273..a9508bc4cc 100644 --- a/keyboards/handwired/onekey/kb2040/config.h +++ b/keyboards/handwired/onekey/kb2040/config.h @@ -16,3 +16,13 @@ #define I2C1_SDA_PIN GP12 #define I2C1_SCL_PIN GP13 +/* LCD configs */ +#define LCD_RST_PIN GP0 +#define LCD_DC_PIN GP1 +#define LCD_CS_PIN GP2 + +/* SPI pins */ +#define SPI_DRIVER SPID0 +#define SPI_SCK_PIN GP18 +#define SPI_MOSI_PIN GP19 +#define SPI_MISO_PIN GP20 diff --git a/keyboards/handwired/onekey/kb2040/halconf.h b/keyboards/handwired/onekey/kb2040/halconf.h new file mode 100644 index 0000000000..96d14ae85c --- /dev/null +++ b/keyboards/handwired/onekey/kb2040/halconf.h @@ -0,0 +1,21 @@ +/* Copyright 2020 QMK + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +#pragma once + +#define HAL_USE_SPI TRUE + +#include_next <halconf.h> diff --git a/keyboards/handwired/onekey/kb2040/mcuconf.h b/keyboards/handwired/onekey/kb2040/mcuconf.h index 57e58e14d7..cc44ce77c3 100644 --- a/keyboards/handwired/onekey/kb2040/mcuconf.h +++ b/keyboards/handwired/onekey/kb2040/mcuconf.h @@ -22,3 +22,6 @@ #undef RP_I2C_USE_I2C1 #define RP_I2C_USE_I2C1 TRUE + +#undef RP_SPI_USE_SPI0 +#define RP_SPI_USE_SPI0 TRUE diff --git a/keyboards/handwired/onekey/keymaps/cm_flow_led_matrix_effect/config.h b/keyboards/handwired/onekey/keymaps/cm_flow_led_matrix_effect/config.h new file mode 100644 index 0000000000..aed1e4ac6f --- /dev/null +++ b/keyboards/handwired/onekey/keymaps/cm_flow_led_matrix_effect/config.h @@ -0,0 +1,16 @@ +// Copyright 2025 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +#pragma once + +#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_GND diff --git a/keyboards/handwired/onekey/keymaps/cm_flow_led_matrix_effect/keymap.c b/keyboards/handwired/onekey/keymaps/cm_flow_led_matrix_effect/keymap.c new file mode 100644 index 0000000000..0bd835ff25 --- /dev/null +++ b/keyboards/handwired/onekey/keymaps/cm_flow_led_matrix_effect/keymap.c @@ -0,0 +1,27 @@ +// Copyright 2025 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// This keymap serves as a test for modules/qmk/flow_led_matrix_effect. + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {LAYOUT_ortho_1x1(LM_TOGG)}; + +const snled27351_led_t PROGMEM g_snled27351_leds[LED_MATRIX_LED_COUNT] = { + {0, CB6_CA1}, +}; + +void keyboard_post_init_user(void) { + led_matrix_mode_noeeprom(LED_MATRIX_COMMUNITY_MODULE_FLOW); +} diff --git a/keyboards/handwired/onekey/keymaps/cm_flow_led_matrix_effect/keymap.json b/keyboards/handwired/onekey/keymaps/cm_flow_led_matrix_effect/keymap.json new file mode 100644 index 0000000000..0ff6bf5a4d --- /dev/null +++ b/keyboards/handwired/onekey/keymaps/cm_flow_led_matrix_effect/keymap.json @@ -0,0 +1,3 @@ +{ + "modules": ["qmk/flow_led_matrix_effect"] +} diff --git a/keyboards/handwired/onekey/keymaps/cm_flow_rgb_matrix_effect/config.h b/keyboards/handwired/onekey/keymaps/cm_flow_rgb_matrix_effect/config.h new file mode 100644 index 0000000000..aed1e4ac6f --- /dev/null +++ b/keyboards/handwired/onekey/keymaps/cm_flow_rgb_matrix_effect/config.h @@ -0,0 +1,16 @@ +// Copyright 2025 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +#pragma once + +#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_GND diff --git a/keyboards/handwired/onekey/keymaps/cm_flow_rgb_matrix_effect/keymap.c b/keyboards/handwired/onekey/keymaps/cm_flow_rgb_matrix_effect/keymap.c new file mode 100644 index 0000000000..72ef2d3f80 --- /dev/null +++ b/keyboards/handwired/onekey/keymaps/cm_flow_rgb_matrix_effect/keymap.c @@ -0,0 +1,27 @@ +// Copyright 2025 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// This keymap serves as a test for modules/qmk/flow_rgb_matrix_effect. + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {LAYOUT_ortho_1x1(RM_TOGG)}; + +const snled27351_led_t PROGMEM g_snled27351_leds[LED_MATRIX_LED_COUNT] = { + {0, CB6_CA1}, +}; + +void keyboard_post_init_user(void) { + rgb_matrix_mode_noeeprom(RGB_MATRIX_COMMUNITY_MODULE_FLOW); +} diff --git a/keyboards/handwired/onekey/keymaps/cm_flow_rgb_matrix_effect/keymap.json b/keyboards/handwired/onekey/keymaps/cm_flow_rgb_matrix_effect/keymap.json new file mode 100644 index 0000000000..56d2342867 --- /dev/null +++ b/keyboards/handwired/onekey/keymaps/cm_flow_rgb_matrix_effect/keymap.json @@ -0,0 +1,3 @@ +{ + "modules": ["qmk/flow_rgb_matrix_effect"] +} diff --git a/keyboards/handwired/onekey/keymaps/lvgl/config.h b/keyboards/handwired/onekey/keymaps/lvgl/config.h deleted file mode 100644 index 38bb5d0cf3..0000000000 --- a/keyboards/handwired/onekey/keymaps/lvgl/config.h +++ /dev/null @@ -1,15 +0,0 @@ -// Copyright 2022 Jose Pablo Ramirez (@jpe230) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -/* SPI pins */ -#define SPI_DRIVER SPID0 -#define SPI_SCK_PIN GP18 -#define SPI_MOSI_PIN GP19 -#define SPI_MISO_PIN GP20 - -/* LCD Configuration */ -#define LCD_RST_PIN GP0 -#define LCD_DC_PIN GP1 -#define LCD_CS_PIN GP2 diff --git a/keyboards/handwired/onekey/rp2040/config.h b/keyboards/handwired/onekey/rp2040/config.h index 0030e97b0f..974fc688d3 100644 --- a/keyboards/handwired/onekey/rp2040/config.h +++ b/keyboards/handwired/onekey/rp2040/config.h @@ -17,3 +17,14 @@ #define AUDIO_PWM_CHANNEL RP2040_PWM_CHANNEL_A #define ADC_PIN GP26 + +/* LCD configs */ +#define LCD_RST_PIN GP0 +#define LCD_DC_PIN GP1 +#define LCD_CS_PIN GP2 + +/* SPI pins */ +#define SPI_DRIVER SPID0 +#define SPI_SCK_PIN GP18 +#define SPI_MOSI_PIN GP19 +#define SPI_MISO_PIN GP20 diff --git a/keyboards/handwired/onekey/rp2040/halconf.h b/keyboards/handwired/onekey/rp2040/halconf.h index ec56be2263..6310808d9a 100644 --- a/keyboards/handwired/onekey/rp2040/halconf.h +++ b/keyboards/handwired/onekey/rp2040/halconf.h @@ -4,7 +4,11 @@ #pragma once #define HAL_USE_I2C TRUE + #define HAL_USE_PWM TRUE + #define HAL_USE_ADC TRUE +#define HAL_USE_SPI TRUE + #include_next <halconf.h> diff --git a/keyboards/handwired/onekey/rp2040/mcuconf.h b/keyboards/handwired/onekey/rp2040/mcuconf.h index e24a0d4f24..c1d22657ca 100644 --- a/keyboards/handwired/onekey/rp2040/mcuconf.h +++ b/keyboards/handwired/onekey/rp2040/mcuconf.h @@ -10,3 +10,6 @@ #undef RP_PWM_USE_PWM4 #define RP_PWM_USE_PWM4 TRUE + +#undef RP_SPI_USE_SPI0 +#define RP_SPI_USE_SPI0 TRUE diff --git a/keyboards/handwired/onekey/weact_g0b1cb/config.h b/keyboards/handwired/onekey/weact_g0b1cb/config.h new file mode 100644 index 0000000000..b4550b15f4 --- /dev/null +++ b/keyboards/handwired/onekey/weact_g0b1cb/config.h @@ -0,0 +1,28 @@ +// Copyright 2025 Stefan Kerkmann (@karlk90) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define ADC_PIN A0 + +#define BACKLIGHT_PAL_MODE 1 +#define BACKLIGHT_PWM_CHANNEL 1 +#define BACKLIGHT_PWM_DRIVER PWMD3 + +#define I2C1_SCL_PAL_MODE 6 +#define I2C1_SDA_PAL_MODE 6 + +#define LCD_RST_PIN B12 +#define LCD_DC_PIN B11 +#define LCD_CS_PIN B10 + +#define SPI_MOSI_PAL_MODE 0 +#define SPI_MISO_PAL_MODE 0 +#define SPI_SCK_PAL_MODE 0 + +#define WS2812_PWM_CHANNEL 3 +#define WS2812_PWM_DMA_CHANNEL 2 +#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM2 +#define WS2812_PWM_DMAMUX_ID STM32_DMAMUX1_TIM3_UP +#define WS2812_PWM_DRIVER PWMD3 +#define WS2812_PWM_PAL_MODE 1 diff --git a/keyboards/handwired/onekey/weact_g0b1cb/halconf.h b/keyboards/handwired/onekey/weact_g0b1cb/halconf.h new file mode 100644 index 0000000000..2d6f87eba2 --- /dev/null +++ b/keyboards/handwired/onekey/weact_g0b1cb/halconf.h @@ -0,0 +1,11 @@ +// Copyright 2025 Stefan Kerkmann (@karlk90) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define HAL_USE_ADC TRUE +#define HAL_USE_I2C TRUE +#define HAL_USE_PWM TRUE +#define HAL_USE_SPI TRUE + +#include_next <halconf.h> diff --git a/keyboards/handwired/onekey/weact_g0b1cb/keyboard.json b/keyboards/handwired/onekey/weact_g0b1cb/keyboard.json new file mode 100644 index 0000000000..bb1ce7d5ca --- /dev/null +++ b/keyboards/handwired/onekey/weact_g0b1cb/keyboard.json @@ -0,0 +1,20 @@ +{ + "keyboard_name": "Onekey WeAct G0B1CB", + "processor": "STM32G0B1", + "bootloader": "stm32-dfu", + "matrix_pins": { + "cols": ["B4"], + "rows": ["B5"] + }, + "backlight": { + "pin": "C6" + }, + "ws2812": { + "driver": "pwm", + "pin": "B0" + }, + "apa102": { + "data_pin": "B15", + "clock_pin": "B13" + } +} diff --git a/keyboards/handwired/onekey/weact_g0b1cb/mcuconf.h b/keyboards/handwired/onekey/weact_g0b1cb/mcuconf.h new file mode 100644 index 0000000000..50f2bcf627 --- /dev/null +++ b/keyboards/handwired/onekey/weact_g0b1cb/mcuconf.h @@ -0,0 +1,18 @@ +// Copyright 2025 Stefan Kerkmann (@karlk90) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include_next <mcuconf.h> + +#undef STM32_ADC_USE_ADC1 +#define STM32_ADC_USE_ADC1 TRUE + +#undef STM32_PWM_USE_TIM3 +#define STM32_PWM_USE_TIM3 TRUE + +#undef STM32_I2C_USE_I2C1 +#define STM32_I2C_USE_I2C1 TRUE + +#undef STM32_SPI_USE_SPI2 +#define STM32_SPI_USE_SPI2 TRUE diff --git a/keyboards/handwired/onekey/weact_g0b1cb/readme.md b/keyboards/handwired/onekey/weact_g0b1cb/readme.md new file mode 100644 index 0000000000..4119ffa2ed --- /dev/null +++ b/keyboards/handwired/onekey/weact_g0b1cb/readme.md @@ -0,0 +1,5 @@ +# WeAct Studio STM32G0B1CB onekey + +Supported Hardware: <https://github.com/WeActStudio/WeActStudio.STM32G0B1CoreBoard> + +To trigger keypress, short together pins *B4* and *B5*. diff --git a/keyboards/handwired/riblee_split/keyboard.json b/keyboards/handwired/riblee_split/keyboard.json index 6006f0e4c3..2bf78f96f1 100644 --- a/keyboards/handwired/riblee_split/keyboard.json +++ b/keyboards/handwired/riblee_split/keyboard.json @@ -29,7 +29,9 @@ "driver": "usart" }, "transport": { - "sync_matrix_state": true + "sync": { + "matrix_state": true + } } }, "community_layouts": ["ortho_5x12"], diff --git a/keyboards/handwired/tractyl_manuform/4x6_right/rules.mk b/keyboards/handwired/tractyl_manuform/4x6_right/rules.mk index 0f3d0657aa..fab9162dc6 100644 --- a/keyboards/handwired/tractyl_manuform/4x6_right/rules.mk +++ b/keyboards/handwired/tractyl_manuform/4x6_right/rules.mk @@ -1,2 +1 @@ POINTING_DEVICE_DRIVER = pmw3360 -MOUSE_SHARED_EP = yes diff --git a/keyboards/handwired/tractyl_manuform/5x6_right/config.h b/keyboards/handwired/tractyl_manuform/5x6_right/config.h index 194874b5cf..686cb30fc2 100644 --- a/keyboards/handwired/tractyl_manuform/5x6_right/config.h +++ b/keyboards/handwired/tractyl_manuform/5x6_right/config.h @@ -21,13 +21,4 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. #define ROTATIONAL_TRANSFORM_ANGLE -25 #define POINTING_DEVICE_INVERT_X -#define DYNAMIC_KEYMAP_LAYER_COUNT 16 -#define LAYER_STATE_16BIT - - -/* disable action features */ -//#define NO_ACTION_LAYER -//#define NO_ACTION_TAPPING -//#define NO_ACTION_ONESHOT - #define POINTING_DEVICE_RIGHT diff --git a/keyboards/handwired/tractyl_manuform/5x6_right/f303/halconf.h b/keyboards/handwired/tractyl_manuform/5x6_right/f303/halconf.h index 62f56e4d2b..b06f52b7df 100644 --- a/keyboards/handwired/tractyl_manuform/5x6_right/f303/halconf.h +++ b/keyboards/handwired/tractyl_manuform/5x6_right/f303/halconf.h @@ -21,7 +21,5 @@ #define HAL_USE_SPI TRUE #define HAL_USE_GPT TRUE #define HAL_USE_DAC TRUE -#define SPI_USE_WAIT TRUE -#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD #include_next <halconf.h> diff --git a/keyboards/handwired/tractyl_manuform/5x6_right/f405/board.h b/keyboards/handwired/tractyl_manuform/5x6_right/f405/board.h new file mode 100644 index 0000000000..9be86942d6 --- /dev/null +++ b/keyboards/handwired/tractyl_manuform/5x6_right/f405/board.h @@ -0,0 +1,23 @@ +/* Copyright 2020 Nick Brassel (tzarc) + * + * 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 3 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 <https://www.gnu.org/licenses/>. + */ +#pragma once + +#include_next <board.h> + +#undef STM32_HSECLK +#define STM32_HSECLK 8000000U +#undef STM32_LSECLK +#define STM32_LSECLK 32768U diff --git a/keyboards/handwired/tractyl_manuform/5x6_right/f405/config.h b/keyboards/handwired/tractyl_manuform/5x6_right/f405/config.h new file mode 100644 index 0000000000..3878d9c671 --- /dev/null +++ b/keyboards/handwired/tractyl_manuform/5x6_right/f405/config.h @@ -0,0 +1,89 @@ +/* +Copyright 2012 Jun Wako <[email protected]> +Copyright 2015 Jack Humbert + +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 USER_BUTTON_PIN C13 +#define DEBUG_LED_PIN B2 +#define USB_VBUS_PIN B10 + +#ifdef USE_USB_OTG_HS_PORT +# define USB_DRIVER USBD2 +#endif + +// WS2812 RGB LED strip input and number of LEDs +#define WS2812_PWM_DRIVER PWMD3 +#define WS2812_PWM_CHANNEL 1 +#define WS2812_PWM_PAL_MODE 2 +#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM2 +#define WS2812_PWM_DMA_CHANNEL 5 +#define WS2812_EXTERNAL_PULLUP + +#define BACKLIGHT_PWM_DRIVER PWMD8 +#define BACKLIGHT_PWM_CHANNEL 2 +#define BACKLIGHT_PAL_MODE 3 + +/* Audio config */ +#define AUDIO_PIN A4 +#define AUDIO_PIN_ALT A5 +#define AUDIO_PIN_ALT_AS_NEGATIVE + +/* serial.c configuration for split keyboard */ +#define SERIAL_USART_DRIVER SD1 +#define SERIAL_USART_TX_PIN A10 +#define SERIAL_USART_TX_PAL_MODE 7 +#define SERIAL_USART_RX_PIN A9 +#define SERIAL_USART_RX_PAL_MODE 7 +#define SERIAL_USART_TIMEOUT 10 +#define SERIAL_USART_SPEED (1 * 1024 * 1024) +#define SERIAL_USART_FULL_DUPLEX + + +/* i2c config for oleds */ +#define I2C_DRIVER I2CD1 +#define I2C1_CLOCK_SPEED 400000 +#define I2C1_DUTY_CYCLE FAST_DUTY_CYCLE_16_9 + +/* spi config for eeprom and pmw3360 sensor */ +#define SPI_DRIVER SPID1 +#define SPI_SCK_PIN B3 +#define SPI_SCK_PAL_MODE 5 +#define SPI_MOSI_PIN B5 +#define SPI_MOSI_PAL_MODE 5 +#define SPI_MISO_PIN B4 +#define SPI_MISO_PAL_MODE 5 + +#define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN B13 +#define EXTERNAL_FLASH_SPI_CLOCK_DIVISOR 4 +#define EXTERNAL_FLASH_SIZE (8 * 1024 * 1024) + +/* pmw3360 config */ +#define POINTING_DEVICE_CS_PIN B8 +#define POINTING_DEVICE_ROTATION_270 +#undef ROTATIONAL_TRANSFORM_ANGLE +#define PMW33XX_SPI_DIVISOR 16 + +// lcd +#define DISPLAY_RST_PIN NO_PIN +#define DISPLAY_DC_PIN B12 +#define DISPLAY_CS_PIN B9 +#define DISPLAY_SPI_DIVIDER 1 + +#define DRV2605L_FB_ERM_LRA 0 +#define DRV2605L_GREETING DRV2605L_EFFECT_750_MS_ALERT_100 +#define DRV2605L_DEFAULT_MODE DRV2605L_EFFECT_BUZZ_1_100 diff --git a/keyboards/handwired/tractyl_manuform/5x6_right/f405/f405.c b/keyboards/handwired/tractyl_manuform/5x6_right/f405/f405.c new file mode 100644 index 0000000000..5aabc70dca --- /dev/null +++ b/keyboards/handwired/tractyl_manuform/5x6_right/f405/f405.c @@ -0,0 +1,52 @@ +/* Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) <[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/>. + */ + +#include "tractyl_manuform.h" + +#ifdef USB_VBUS_PIN +bool usb_vbus_state(void) { + gpio_set_pin_input_low(USB_VBUS_PIN); + wait_us(5); + return gpio_read_pin(USB_VBUS_PIN); +} +#endif + +#ifdef USER_BUTTON_PIN +void user_button_init(void) { + // Pin needs to be configured as input low + gpio_set_pin_input_low(USER_BUTTON_PIN); +} + +bool check_user_button_state(void) { + return gpio_read_pin(USER_BUTTON_PIN); +} +#endif // USER_BUTTON_PIN + +void board_init(void) { + // Board setup sets these pins as SPI, but we aren't using them as such. + // So to prevent them from misbehaving, we need to set them to a different, non-spi mode. + // This is a bit of a hack, but nothing else runs soon enough, without re-implementing spi_init(). + gpio_set_pin_input(A5); + gpio_set_pin_input(A6); + gpio_set_pin_input(A7); + + // If using USB_OTG_HS, we need to set the data pins since they're set wrong for our needs by default. + // We set it here by default, in case it's bridged with A11/A12, as to reduce the chance of issues. + palSetLineMode( + B14, PAL_MODE_ALTERNATE(12) | PAL_STM32_OTYPE_PUSHPULL | PAL_STM32_OSPEED_HIGHEST | PAL_STM32_PUPDR_FLOATING); + palSetLineMode( + B15, PAL_MODE_ALTERNATE(12) | PAL_STM32_OTYPE_PUSHPULL | PAL_STM32_OSPEED_HIGHEST | PAL_STM32_PUPDR_FLOATING); +} diff --git a/keyboards/handwired/tractyl_manuform/5x6_right/f405/halconf.h b/keyboards/handwired/tractyl_manuform/5x6_right/f405/halconf.h new file mode 100644 index 0000000000..3cf07b9be0 --- /dev/null +++ b/keyboards/handwired/tractyl_manuform/5x6_right/f405/halconf.h @@ -0,0 +1,30 @@ +/* Copyright 2020 Nick Brassel (tzarc) + * + * 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 3 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 <https://www.gnu.org/licenses/>. + */ +#pragma once + +#define HAL_USE_SERIAL TRUE +#define SERIAL_BUFFERS_SIZE 256 + +#if defined(WS2812_PWM) || defined(BACKLIGHT_PWM) +# define HAL_USE_PWM TRUE +#endif // defined(WS2812_PWM) || defined(BACKLIGHT_PWM) + +#ifdef AUDIO_DRIVER_DAC +# define HAL_USE_GPT TRUE +# define HAL_USE_DAC TRUE +#endif + +#include_next <halconf.h> diff --git a/keyboards/handwired/tractyl_manuform/5x6_right/f405/keyboard.json b/keyboards/handwired/tractyl_manuform/5x6_right/f405/keyboard.json new file mode 100644 index 0000000000..b56e2d31c2 --- /dev/null +++ b/keyboards/handwired/tractyl_manuform/5x6_right/f405/keyboard.json @@ -0,0 +1,66 @@ +{ + "keyboard_name": "Tractyl Manuform (5x6) WeAct STM32F405", + "audio": { + "driver": "dac_additive", + "power_control": { + "pin": "A3" + } + }, + "backlight": { + "levels": 16, + "pin": "C7" + }, + "bootloader": "stm32-dfu", + "build": { + "debounce_type": "asym_eager_defer_pk" + }, + "diode_direction": "COL2ROW", + "encoder": { + "rotary": [ + {"pin_a": "C0", "pin_b": "A15"} + ] + }, + "eeprom": { + "driver": "wear_leveling", + "wear_leveling": { + "driver": "spi_flash", + "backing_size": 16384, + "logical_size": 4096 + } + }, + "features": { + "console": true, + "haptic": true + }, + "haptic": { + "driver": "drv2605l" + }, + "matrix_pins": { + "cols": ["C1", "C2", "C3", "A0", "A1", "A2"], + "rows": ["A6", "A7", "C4", "C5", "B0", "B1"] + }, + "processor": "STM32F405", + "rgblight": { + "led_count": 24, + "split": true + }, + "split": { + "handedness": { + "pin": "B11" + }, + "serial": { + "driver": "usart" + }, + "transport": { + "sync": { + "activity": true, + "haptic": true, + "matrix_state": true + } + } + }, + "ws2812": { + "driver": "pwm", + "pin": "C6" + } +} diff --git a/keyboards/handwired/tractyl_manuform/5x6_right/f405/mcuconf.h b/keyboards/handwired/tractyl_manuform/5x6_right/f405/mcuconf.h new file mode 100644 index 0000000000..46920b17b3 --- /dev/null +++ b/keyboards/handwired/tractyl_manuform/5x6_right/f405/mcuconf.h @@ -0,0 +1,82 @@ +/* Copyright 2020 Nick Brassel (tzarc) + * + * 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 3 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 <https://www.gnu.org/licenses/>. + */ + +#pragma once + +#include_next <mcuconf.h> + +#undef STM32_LSE_ENABLED +#define STM32_LSE_ENABLED TRUE + +#undef STM32_PLLM_VALUE +#define STM32_PLLM_VALUE 8 + +#undef STM32_RTCSEL +#define STM32_RTCSEL STM32_RTCSEL_LSE + +#undef STM32_SERIAL_USE_USART1 +#define STM32_SERIAL_USE_USART1 TRUE + +#if HAL_USE_WDG == TRUE +# undef STM32_WDG_USE_IWDG +# define STM32_WDG_USE_IWDG TRUE +#endif + +#if HAL_USE_I2C == TRUE +# undef STM32_I2C_USE_I2C1 +# define STM32_I2C_USE_I2C1 TRUE + +# undef STM32_I2C_BUSY_TIMEOUT +# define STM32_I2C_BUSY_TIMEOUT 10 + +# undef STM32_I2C_I2C1_RX_DMA_STREAM +# define STM32_I2C_I2C1_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 0) +# undef STM32_I2C_I2C1_TX_DMA_STREAM +# define STM32_I2C_I2C1_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 7) +#endif // HAL_USE_I2C + +#ifdef WS2812_PWM +# undef STM32_PWM_USE_TIM3 +# define STM32_PWM_USE_TIM3 TRUE +#endif // WS2812_PWM + +#ifdef BACKLIGHT_PWM +# undef STM32_PWM_USE_TIM8 +# define STM32_PWM_USE_TIM8 TRUE +#endif + +#if HAL_USE_SPI == TRUE +# undef STM32_SPI_USE_SPI1 +# define STM32_SPI_USE_SPI1 TRUE +#endif + +#ifdef AUDIO_DRIVER_DAC +# undef STM32_DAC_USE_DAC1_CH1 +# define STM32_DAC_USE_DAC1_CH1 TRUE +# undef STM32_DAC_USE_DAC1_CH2 +# define STM32_DAC_USE_DAC1_CH2 TRUE + +# undef STM32_GPT_USE_TIM6 +# define STM32_GPT_USE_TIM6 TRUE +#endif // AUDIO_DRIVER_DAC + + +#ifdef USE_USB_OTG_HS_PORT +# undef STM32_USB_USE_OTG1 +# define STM32_USB_USE_OTG1 FALSE +# undef STM32_USB_USE_OTG2 +# define STM32_USB_USE_OTG2 TRUE +#endif diff --git a/keyboards/handwired/tractyl_manuform/5x6_right/f411/config.h b/keyboards/handwired/tractyl_manuform/5x6_right/f411/config.h index 28acc1e69b..bbbc16e3ea 100644 --- a/keyboards/handwired/tractyl_manuform/5x6_right/f411/config.h +++ b/keyboards/handwired/tractyl_manuform/5x6_right/f411/config.h @@ -19,6 +19,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. #pragma once // #define USB_VBUS_PIN B10 // doesn't seem to work for me on one of my controllers... */ +#define USER_BUTTON_PIN A0 // WS2812 RGB LED strip input and number of LEDs #define WS2812_PWM_DRIVER PWMD2 // default: PWMD2 @@ -70,7 +71,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. /* eeprom config */ #define EXTERNAL_EEPROM_SPI_SLAVE_SELECT_PIN A4 -#define EXTERNAL_EEPROM_SPI_CLOCK_DIVISOR 64 +#define EXTERNAL_EEPROM_SPI_CLOCK_DIVISOR 8 /* pmw3360 config */ #define PMW33XX_CS_PIN B0 +#define PMW33XX_SPI_DIVISOR 8 diff --git a/keyboards/handwired/tractyl_manuform/5x6_right/f411/f411.c b/keyboards/handwired/tractyl_manuform/5x6_right/f411/f411.c index dbacb1685c..cfe97d6318 100644 --- a/keyboards/handwired/tractyl_manuform/5x6_right/f411/f411.c +++ b/keyboards/handwired/tractyl_manuform/5x6_right/f411/f411.c @@ -16,41 +16,6 @@ #include "tractyl_manuform.h" -void keyboard_pre_init_sub(void) { gpio_set_pin_input_high(A0); } - -void matrix_scan_sub_kb(void) { - if (!gpio_read_pin(A0)) { - reset_keyboard(); - } -} - -__attribute__((weak)) void bootmagic_scan(void) { - // We need multiple scans because debouncing can't be turned off. - matrix_scan(); -#if defined(DEBOUNCE) && DEBOUNCE > 0 - wait_ms(DEBOUNCE * 2); -#else - wait_ms(30); -#endif - matrix_scan(); - - uint8_t row = BOOTMAGIC_ROW; - uint8_t col = BOOTMAGIC_COLUMN; - -#if defined(SPLIT_KEYBOARD) && defined(BOOTMAGIC_ROW_RIGHT) && defined(BOOTMAGIC_COLUMN_RIGHT) - if (!is_keyboard_left()) { - row = BOOTMAGIC_ROW_RIGHT; - col = BOOTMAGIC_COLUMN_RIGHT; - } -#endif - - if (matrix_get_row(row) & (1 << col) || !gpio_read_pin(A0)) { - eeconfig_disable(); - bootloader_jump(); - } -} - - #ifdef USB_VBUS_PIN bool usb_vbus_state(void) { gpio_set_pin_input_low(USB_VBUS_PIN); @@ -58,9 +23,3 @@ bool usb_vbus_state(void) { return gpio_read_pin(USB_VBUS_PIN); } #endif - -void matrix_output_unselect_delay(uint8_t line, bool key_pressed) { - for (int32_t i = 0; i < 40; i++) { - __asm__ volatile("nop" ::: "memory"); - } -} diff --git a/keyboards/handwired/tractyl_manuform/5x6_right/f411/halconf.h b/keyboards/handwired/tractyl_manuform/5x6_right/f411/halconf.h index bc07c10527..296119b080 100644 --- a/keyboards/handwired/tractyl_manuform/5x6_right/f411/halconf.h +++ b/keyboards/handwired/tractyl_manuform/5x6_right/f411/halconf.h @@ -19,7 +19,5 @@ #define HAL_USE_SERIAL TRUE #define HAL_USE_I2C TRUE #define HAL_USE_SPI TRUE -#define SPI_USE_WAIT TRUE -#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD #include_next <halconf.h> diff --git a/keyboards/handwired/tractyl_manuform/5x6_right/f411/rules.mk b/keyboards/handwired/tractyl_manuform/5x6_right/f411/rules.mk deleted file mode 100644 index 4aa582e7a2..0000000000 --- a/keyboards/handwired/tractyl_manuform/5x6_right/f411/rules.mk +++ /dev/null @@ -1,2 +0,0 @@ -KEYBOARD_SHARED_EP = yes -MOUSE_SHARED_EP = yes diff --git a/keyboards/handwired/tractyl_manuform/5x6_right/info.json b/keyboards/handwired/tractyl_manuform/5x6_right/info.json index fe3f2432ca..0264000b20 100644 --- a/keyboards/handwired/tractyl_manuform/5x6_right/info.json +++ b/keyboards/handwired/tractyl_manuform/5x6_right/info.json @@ -98,6 +98,209 @@ {"matrix": [11, 2], "x": 9, "y": 7}, {"matrix": [11, 3], "x": 10, "y": 7} ] + }, + "LAYOUT_5x6_full_right": { + "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": [6, 0], "x": 11, "y": 0}, + {"matrix": [6, 1], "x": 12, "y": 0}, + {"matrix": [6, 2], "x": 13, "y": 0}, + {"matrix": [6, 3], "x": 14, "y": 0}, + {"matrix": [6, 4], "x": 15, "y": 0}, + {"matrix": [6, 5], "x": 16, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1}, + {"matrix": [1, 1], "x": 1, "y": 1}, + {"matrix": [1, 2], "x": 2, "y": 1}, + {"matrix": [1, 3], "x": 3, "y": 1}, + {"matrix": [1, 4], "x": 4, "y": 1}, + {"matrix": [1, 5], "x": 5, "y": 1}, + + {"matrix": [7, 0], "x": 11, "y": 1}, + {"matrix": [7, 1], "x": 12, "y": 1}, + {"matrix": [7, 2], "x": 13, "y": 1}, + {"matrix": [7, 3], "x": 14, "y": 1}, + {"matrix": [7, 4], "x": 15, "y": 1}, + {"matrix": [7, 5], "x": 16, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2}, + {"matrix": [2, 1], "x": 1, "y": 2}, + {"matrix": [2, 2], "x": 2, "y": 2}, + {"matrix": [2, 3], "x": 3, "y": 2}, + {"matrix": [2, 4], "x": 4, "y": 2}, + {"matrix": [2, 5], "x": 5, "y": 2}, + + {"matrix": [8, 0], "x": 11, "y": 2}, + {"matrix": [8, 1], "x": 12, "y": 2}, + {"matrix": [8, 2], "x": 13, "y": 2}, + {"matrix": [8, 3], "x": 14, "y": 2}, + {"matrix": [8, 4], "x": 15, "y": 2}, + {"matrix": [8, 5], "x": 16, "y": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3}, + {"matrix": [3, 1], "x": 1, "y": 3}, + {"matrix": [3, 2], "x": 2, "y": 3}, + {"matrix": [3, 3], "x": 3, "y": 3}, + {"matrix": [3, 4], "x": 4, "y": 3}, + {"matrix": [3, 5], "x": 5, "y": 3}, + + {"matrix": [9, 0], "x": 11, "y": 3}, + {"matrix": [9, 1], "x": 12, "y": 3}, + {"matrix": [9, 2], "x": 13, "y": 3}, + {"matrix": [9, 3], "x": 14, "y": 3}, + {"matrix": [9, 4], "x": 15, "y": 3}, + {"matrix": [9, 5], "x": 16, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4}, + {"matrix": [4, 1], "x": 1, "y": 4}, + {"matrix": [4, 2], "x": 2, "y": 4}, + {"matrix": [4, 3], "x": 3, "y": 4}, + + {"matrix": [10, 2], "x": 13, "y": 4}, + {"matrix": [10, 3], "x": 14, "y": 4}, + {"matrix": [10, 4], "x": 15, "y": 4}, + {"matrix": [10, 5], "x": 16, "y": 4}, + + {"matrix": [4, 4], "x": 4, "y": 5}, + {"matrix": [4, 5], "x": 5, "y": 5}, + + {"matrix": [10, 1], "x": 12, "y": 5}, + + {"matrix": [5, 4], "x": 6, "y": 6}, + {"matrix": [5, 5], "x": 7, "y": 6}, + + {"matrix": [11, 1], "x": 10, "y": 6}, + + {"matrix": [5, 2], "x": 6, "y": 7}, + {"matrix": [5, 3], "x": 7, "y": 7}, + + {"matrix": [11, 2], "x": 9, "y": 7}, + {"matrix": [11, 3], "x": 10, "y": 7} + ] } + }, + "rgb_matrix": { + "animations": { + "alphas_mods": true, + "gradient_up_down": true, + "gradient_left_right": true, + "breathing": true, + "band_sat": true, + "band_val": true, + "band_pinwheel_sat": true, + "band_pinwheel_val": true, + "band_spiral_sat": true, + "band_spiral_val": true, + "cycle_all": true, + "cycle_left_right": true, + "cycle_up_down": true, + "rainbow_moving_chevron": true, + "cycle_out_in": true, + "cycle_out_in_dual": true, + "cycle_pinwheel": true, + "cycle_spiral": true, + "dual_beacon": true, + "rainbow_beacon": true, + "rainbow_pinwheels": true, + "raindrops": true, + "jellybean_raindrops": true, + "hue_breathing": true, + "hue_pendulum": true, + "hue_wave": true, + "pixel_rain": true, + "pixel_flow": true, + "pixel_fractal": true, + "typing_heatmap": true, + "digital_rain": true, + "solid_reactive_simple": true, + "solid_reactive": true, + "solid_reactive_wide": true, + "solid_reactive_multiwide": true, + "solid_reactive_cross": true, + "solid_reactive_multicross": true, + "solid_reactive_nexus": true, + "solid_reactive_multinexus": true, + "splash": true, + "multisplash": true, + "solid_splash": true, + "solid_multisplash": true + }, + "driver": "ws2812", + "led_count": 64, + "max_brightness": 100, + "split_count": [33, 31], + "sleep": true, + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 0, "y": 10, "flags": 1}, + {"matrix": [2, 0], "x": 0, "y": 20, "flags": 1}, + {"matrix": [3, 0], "x": 0, "y": 30, "flags": 1}, + {"matrix": [3, 1], "x": 12, "y": 30, "flags": 4}, + {"matrix": [2, 1], "x": 12, "y": 20, "flags": 4}, + {"matrix": [1, 1], "x": 12, "y": 10, "flags": 4}, + {"matrix": [0, 1], "x": 12, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 24, "y": 0, "flags": 4}, + {"matrix": [1, 2], "x": 24, "y": 10, "flags": 4}, + {"matrix": [2, 2], "x": 24, "y": 20, "flags": 4}, + {"matrix": [3, 2], "x": 24, "y": 30, "flags": 4}, + {"matrix": [4, 2], "x": 24, "y": 40, "flags": 1}, + {"matrix": [4, 3], "x": 36, "y": 40, "flags": 1}, + {"matrix": [3, 3], "x": 36, "y": 30, "flags": 4}, + {"matrix": [2, 3], "x": 36, "y": 20, "flags": 4}, + {"matrix": [1, 3], "x": 36, "y": 10, "flags": 4}, + {"matrix": [0, 3], "x": 36, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 48, "y": 0, "flags": 4}, + {"matrix": [1, 4], "x": 48, "y": 10, "flags": 4}, + {"matrix": [2, 4], "x": 48, "y": 40, "flags": 4}, + {"matrix": [3, 4], "x": 48, "y": 30, "flags": 4}, + {"matrix": [3, 5], "x": 60, "y": 30, "flags": 4}, + {"matrix": [2, 5], "x": 60, "y": 20, "flags": 4}, + {"matrix": [1, 5], "x": 60, "y": 10, "flags": 4}, + {"matrix": [0, 5], "x": 60, "y": 0, "flags": 4}, + {"matrix": [4, 4], "x": 48, "y": 50, "flags": 1}, + {"matrix": [5, 4], "x": 65, "y": 56, "flags": 1}, + {"matrix": [5, 5], "x": 70, "y": 60, "flags": 1}, + {"matrix": [5, 3], "x": 65, "y": 64, "flags": 1}, + {"matrix": [5, 2], "x": 60, "y": 60, "flags": 1}, + {"matrix": [4, 1], "x": 0, "y": 40, "flags": 1}, + {"matrix": [4, 0], "x": 12, "y": 40, "flags": 1}, + {"matrix": [6, 5], "x": 224, "y": 0, "flags": 1}, + {"matrix": [7, 5], "x": 224, "y": 10, "flags": 1}, + {"matrix": [8, 5], "x": 224, "y": 20, "flags": 1}, + {"matrix": [9, 5], "x": 224, "y": 30, "flags": 1}, + {"matrix": [9, 4], "x": 212, "y": 30, "flags": 4}, + {"matrix": [8, 4], "x": 212, "y": 20, "flags": 4}, + {"matrix": [7, 4], "x": 212, "y": 10, "flags": 4}, + {"matrix": [6, 4], "x": 212, "y": 0, "flags": 4}, + {"matrix": [6, 3], "x": 200, "y": 0, "flags": 4}, + {"matrix": [7, 3], "x": 200, "y": 10, "flags": 4}, + {"matrix": [8, 3], "x": 200, "y": 20, "flags": 4}, + {"matrix": [9, 3], "x": 200, "y": 30, "flags": 4}, + {"matrix": [10, 3], "x": 200, "y": 40, "flags": 1}, + {"matrix": [10, 2], "x": 188, "y": 40, "flags": 1}, + {"matrix": [9, 2], "x": 188, "y": 30, "flags": 4}, + {"matrix": [8, 2], "x": 188, "y": 20, "flags": 4}, + {"matrix": [7, 2], "x": 188, "y": 10, "flags": 4}, + {"matrix": [6, 2], "x": 188, "y": 0, "flags": 4}, + {"matrix": [6, 1], "x": 176, "y": 0, "flags": 4}, + {"matrix": [7, 1], "x": 176, "y": 10, "flags": 4}, + {"matrix": [8, 1], "x": 176, "y": 20, "flags": 4}, + {"matrix": [9, 1], "x": 176, "y": 30, "flags": 4}, + {"matrix": [9, 0], "x": 164, "y": 30, "flags": 4}, + {"matrix": [8, 0], "x": 164, "y": 20, "flags": 4}, + {"matrix": [7, 0], "x": 164, "y": 10, "flags": 4}, + {"matrix": [6, 0], "x": 164, "y": 0, "flags": 4}, + {"matrix": [11, 1], "x": 164, "y": 60, "flags": 1}, + {"matrix": [11, 3], "x": 152, "y": 70, "flags": 1}, + {"matrix": [11, 2], "x": 140, "y": 70, "flags": 1}, + {"matrix": [10, 4], "x": 224, "y": 40, "flags": 1}, + {"matrix": [10, 5], "x": 208, "y": 40, "flags": 1} + ] } } diff --git a/keyboards/handwired/tractyl_manuform/5x6_right/post_rules.mk b/keyboards/handwired/tractyl_manuform/5x6_right/post_rules.mk new file mode 100644 index 0000000000..fab9162dc6 --- /dev/null +++ b/keyboards/handwired/tractyl_manuform/5x6_right/post_rules.mk @@ -0,0 +1 @@ +POINTING_DEVICE_DRIVER = pmw3360 diff --git a/keyboards/handwired/tractyl_manuform/5x6_right/rules.mk b/keyboards/handwired/tractyl_manuform/5x6_right/rules.mk deleted file mode 100644 index b7f7c949ec..0000000000 --- a/keyboards/handwired/tractyl_manuform/5x6_right/rules.mk +++ /dev/null @@ -1,4 +0,0 @@ -POINTING_DEVICE_DRIVER = pmw3360 -MOUSE_SHARED_EP = yes - -DEFAULT_FOLDER = handwired/tractyl_manuform/5x6_right/teensy2pp diff --git a/keyboards/handwired/tractyl_manuform/config.h b/keyboards/handwired/tractyl_manuform/config.h index 9f4dd8651b..5a8091a098 100644 --- a/keyboards/handwired/tractyl_manuform/config.h +++ b/keyboards/handwired/tractyl_manuform/config.h @@ -18,18 +18,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. #pragma once - -/* disable debug print */ -// #define NO_DEBUG - -/* disable print */ -// #define NO_PRINT - -/* disable action features */ -//#define NO_ACTION_LAYER -//#define NO_ACTION_TAPPING -//#define NO_ACTION_ONESHOT - #define SPLIT_POINTING_ENABLE #define POINTING_DEVICE_TASK_THROTTLE_MS 1 diff --git a/keyboards/handwired/tractyl_manuform/info.json b/keyboards/handwired/tractyl_manuform/info.json index c84d008e15..fb50c8d359 100644 --- a/keyboards/handwired/tractyl_manuform/info.json +++ b/keyboards/handwired/tractyl_manuform/info.json @@ -2,6 +2,10 @@ "manufacturer": "QMK Community", "maintainer": "Drashna Jael're", "usb": { - "vid": "0x44DD" + "vid": "0x44DD", + "shared_endpoint": { + "keyboard": true, + "mouse": true + } } } diff --git a/keyboards/handwired/tractyl_manuform/post_config.h b/keyboards/handwired/tractyl_manuform/post_config.h deleted file mode 100644 index b5d67132b2..0000000000 --- a/keyboards/handwired/tractyl_manuform/post_config.h +++ /dev/null @@ -1,112 +0,0 @@ -/* -Copyright 2012 Jun Wako <[email protected]> -Copyright 2015 Jack Humbert - -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 - -// mouse config -#ifdef MOUSEKEY_ENABLE -# ifndef MOUSEKEY_MOVE_DELTA -# ifndef MK_KINETIC_SPEED -# define MOUSEKEY_MOVE_DELTA 5 -# else -# define MOUSEKEY_MOVE_DELTA 25 -# endif -# endif -# ifndef MOUSEKEY_DELAY -# ifndef MK_KINETIC_SPEED -# define MOUSEKEY_DELAY 300 -# else -# define MOUSEKEY_DELAY 8 -# endif -# endif -# ifndef MOUSEKEY_INTERVAL -# ifndef MK_KINETIC_SPEED -# define MOUSEKEY_INTERVAL 50 -# else -# define MOUSEKEY_INTERVAL 20 -# endif -# endif -# ifndef MOUSEKEY_MAX_SPEED -# define MOUSEKEY_MAX_SPEED 7 -# endif -# ifndef MOUSEKEY_TIME_TO_MAX -# define MOUSEKEY_TIME_TO_MAX 60 -# endif -# ifndef MOUSEKEY_INITIAL_SPEED -# define MOUSEKEY_INITIAL_SPEED 100 -# endif -# ifndef MOUSEKEY_BASE_SPEED -# define MOUSEKEY_BASE_SPEED 1000 -# endif -# ifndef MOUSEKEY_DECELERATED_SPEED -# define MOUSEKEY_DECELERATED_SPEED 400 -# endif -# ifndef MOUSEKEY_ACCELERATED_SPEED -# define MOUSEKEY_ACCELERATED_SPEED 3000 -# endif - -// mouse scroll config -# ifndef MOUSEKEY_WHEEL_DELAY -# define MOUSEKEY_WHEEL_DELAY 15 -# endif -# ifndef MOUSEKEY_WHEEL_DELTA -# define MOUSEKEY_WHEEL_DELTA 1 -# endif -# ifndef MOUSEKEY_WHEEL_INTERVAL -# define MOUSEKEY_WHEEL_INTERVAL 50 -# endif -# ifndef MOUSEKEY_WHEEL_MAX_SPEED -# define MOUSEKEY_WHEEL_MAX_SPEED 8 -# endif -# ifndef MOUSEKEY_WHEEL_TIME_TO_MAX -# define MOUSEKEY_WHEEL_TIME_TO_MAX 80 -# endif - -# ifndef MOUSEKEY_WHEEL_INITIAL_MOVEMENTS -# define MOUSEKEY_WHEEL_INITIAL_MOVEMENTS 8 -# endif -# ifndef MOUSEKEY_WHEEL_BASE_MOVEMENTS -# define MOUSEKEY_WHEEL_BASE_MOVEMENTS 48 -# endif -# ifndef MOUSEKEY_WHEEL_ACCELERATED_MOVEMENTS -# define MOUSEKEY_WHEEL_ACCELERATED_MOVEMENTS 48 -# endif -# ifndef MOUSEKEY_WHEEL_DECELERATED_MOVEMENTS -# define MOUSEKEY_WHEEL_DECELERATED_MOVEMENTS 8 -# endif -#endif - -#ifndef DEBOUNCE -# define DEBOUNCE 5 -#endif - -#if defined(RGBLIGHT_ENABLE) && !defined(RGBLIGHT_LIMIT_VAL) -# if defined(OLED_ENABLE) -# define RGBLIGHT_LIMIT_VAL 100 -# else -# define RGBLIGHT_LIMIT_VAL 150 -# endif -#endif - -#if !defined(OLED_BRIGHTNESS) -# if defined(RGBLIGHT_ENABLE) || defined(RGB_MATRIX_ENABLE) -# define OLED_BRIGHTNESS 80 -# else -# define OLED_BRIGHTNESS 150 -# endif -#endif diff --git a/keyboards/handwired/tractyl_manuform/tractyl_manuform.c b/keyboards/handwired/tractyl_manuform/tractyl_manuform.c index 7ded835a6e..3ae74be47f 100644 --- a/keyboards/handwired/tractyl_manuform/tractyl_manuform.c +++ b/keyboards/handwired/tractyl_manuform/tractyl_manuform.c @@ -15,48 +15,47 @@ */ #include "tractyl_manuform.h" +#ifdef POINTING_DEVICE_ENABLE +# include "pointing_device.h" +#endif #include "transactions.h" #include <string.h> #ifdef CONSOLE_ENABLE # include "print.h" -#endif // CONSOLE_ENABLE +#endif // CONSOLE_ENABLE #ifdef POINTING_DEVICE_ENABLE # ifndef CHARYBDIS_MINIMUM_DEFAULT_DPI # define CHARYBDIS_MINIMUM_DEFAULT_DPI 400 -# endif // CHARYBDIS_MINIMUM_DEFAULT_DPI +# endif // CHARYBDIS_MINIMUM_DEFAULT_DPI # ifndef CHARYBDIS_DEFAULT_DPI_CONFIG_STEP # define CHARYBDIS_DEFAULT_DPI_CONFIG_STEP 200 -# endif // CHARYBDIS_DEFAULT_DPI_CONFIG_STEP +# endif // CHARYBDIS_DEFAULT_DPI_CONFIG_STEP # ifndef CHARYBDIS_MINIMUM_SNIPING_DPI # define CHARYBDIS_MINIMUM_SNIPING_DPI 200 -# endif // CHARYBDIS_MINIMUM_SNIPER_MODE_DPI +# endif // CHARYBDIS_MINIMUM_SNIPER_MODE_DPI # ifndef CHARYBDIS_SNIPING_DPI_CONFIG_STEP # define CHARYBDIS_SNIPING_DPI_CONFIG_STEP 100 -# endif // CHARYBDIS_SNIPING_DPI_CONFIG_STEP +# endif // CHARYBDIS_SNIPING_DPI_CONFIG_STEP // Fixed DPI for drag-scroll. # ifndef CHARYBDIS_DRAGSCROLL_DPI # define CHARYBDIS_DRAGSCROLL_DPI 100 -# endif // CHARYBDIS_DRAGSCROLL_DPI +# endif // CHARYBDIS_DRAGSCROLL_DPI # ifndef CHARYBDIS_DRAGSCROLL_BUFFER_SIZE # define CHARYBDIS_DRAGSCROLL_BUFFER_SIZE 6 -# endif // !CHARYBDIS_DRAGSCROLL_BUFFER_SIZE - -# ifndef CHARYBDIS_POINTER_ACCELERATION_FACTOR -# define CHARYBDIS_POINTER_ACCELERATION_FACTOR 24 -# endif // !CHARYBDIS_POINTER_ACCELERATION_FACTOR +# endif // !CHARYBDIS_DRAGSCROLL_BUFFER_SIZE typedef union { uint8_t raw; struct { - uint8_t pointer_default_dpi : 4; // 16 steps available. - uint8_t pointer_sniping_dpi : 2; // 4 steps available. + uint8_t pointer_default_dpi : 4; // 16 steps available. + uint8_t pointer_sniping_dpi : 2; // 4 steps available. bool is_dragscroll_enabled : 1; bool is_sniping_enabled : 1; } __attribute__((packed)); @@ -86,13 +85,19 @@ static void read_charybdis_config_from_eeprom(charybdis_config_t* config) { * resets these 2 values to `false` since it does not make sense to persist * these across reboots of the board. */ -static void write_charybdis_config_to_eeprom(charybdis_config_t* config) { eeconfig_update_kb(config->raw); } +static void write_charybdis_config_to_eeprom(charybdis_config_t* config) { + eeconfig_update_kb(config->raw); +} /** \brief Return the current value of the pointer's default DPI. */ -static uint16_t get_pointer_default_dpi(charybdis_config_t* config) { return (uint16_t)config->pointer_default_dpi * CHARYBDIS_DEFAULT_DPI_CONFIG_STEP + CHARYBDIS_MINIMUM_DEFAULT_DPI; } +static uint16_t get_pointer_default_dpi(charybdis_config_t* config) { + return (uint16_t)config->pointer_default_dpi * CHARYBDIS_DEFAULT_DPI_CONFIG_STEP + CHARYBDIS_MINIMUM_DEFAULT_DPI; +} /** \brief Return the current value of the pointer's sniper-mode DPI. */ -static uint16_t get_pointer_sniping_dpi(charybdis_config_t* config) { return (uint16_t)config->pointer_sniping_dpi * CHARYBDIS_SNIPING_DPI_CONFIG_STEP + CHARYBDIS_MINIMUM_SNIPING_DPI; } +static uint16_t get_pointer_sniping_dpi(charybdis_config_t* config) { + return (uint16_t)config->pointer_sniping_dpi * CHARYBDIS_SNIPING_DPI_CONFIG_STEP + CHARYBDIS_MINIMUM_SNIPING_DPI; +} /** \brief Set the appropriate DPI for the input config. */ static void maybe_update_pointing_device_cpi(charybdis_config_t* config) { @@ -127,64 +132,54 @@ static void step_pointer_sniping_dpi(charybdis_config_t* config, bool forward) { maybe_update_pointing_device_cpi(config); } -uint16_t charybdis_get_pointer_default_dpi(void) { return get_pointer_default_dpi(&g_charybdis_config); } +uint16_t charybdis_get_pointer_default_dpi(void) { + return get_pointer_default_dpi(&g_charybdis_config); +} -uint16_t charybdis_get_pointer_sniping_dpi(void) { return get_pointer_sniping_dpi(&g_charybdis_config); } +uint16_t charybdis_get_pointer_sniping_dpi(void) { + return get_pointer_sniping_dpi(&g_charybdis_config); +} -void charybdis_cycle_pointer_default_dpi_noeeprom(bool forward) { step_pointer_default_dpi(&g_charybdis_config, forward); } +void charybdis_cycle_pointer_default_dpi_noeeprom(bool forward) { + step_pointer_default_dpi(&g_charybdis_config, forward); +} void charybdis_cycle_pointer_default_dpi(bool forward) { step_pointer_default_dpi(&g_charybdis_config, forward); write_charybdis_config_to_eeprom(&g_charybdis_config); } -void charybdis_cycle_pointer_sniping_dpi_noeeprom(bool forward) { step_pointer_sniping_dpi(&g_charybdis_config, forward); } +void charybdis_cycle_pointer_sniping_dpi_noeeprom(bool forward) { + step_pointer_sniping_dpi(&g_charybdis_config, forward); +} void charybdis_cycle_pointer_sniping_dpi(bool forward) { step_pointer_sniping_dpi(&g_charybdis_config, forward); write_charybdis_config_to_eeprom(&g_charybdis_config); } -bool charybdis_get_pointer_sniping_enabled(void) { return g_charybdis_config.is_sniping_enabled; } +bool charybdis_get_pointer_sniping_enabled(void) { + return g_charybdis_config.is_sniping_enabled; +} void charybdis_set_pointer_sniping_enabled(bool enable) { g_charybdis_config.is_sniping_enabled = enable; maybe_update_pointing_device_cpi(&g_charybdis_config); } -bool charybdis_get_pointer_dragscroll_enabled(void) { return g_charybdis_config.is_dragscroll_enabled; } +bool charybdis_get_pointer_dragscroll_enabled(void) { + return g_charybdis_config.is_dragscroll_enabled; +} void charybdis_set_pointer_dragscroll_enabled(bool enable) { g_charybdis_config.is_dragscroll_enabled = enable; maybe_update_pointing_device_cpi(&g_charybdis_config); } -# ifndef CONSTRAIN_HID -# define CONSTRAIN_HID(value) ((value) < XY_REPORT_MIN ? XY_REPORT_MIN : ((value) > XY_REPORT_MAX ? XY_REPORT_MAX : (value))) -# endif // !CONSTRAIN_HID - -/** - * \brief Add optional acceleration effect. - * - * If `CHARYBDIS_ENABLE_POINTER_ACCELERATION` is defined, add a simple and naive - * acceleration effect to the provided value. Return the value unchanged - * otherwise. - */ -# ifndef DISPLACEMENT_WITH_ACCELERATION -# ifdef CHARYBDIS_POINTER_ACCELERATION_ENABLE -# define DISPLACEMENT_WITH_ACCELERATION(d) (CONSTRAIN_HID(d > 0 ? d * d / CHARYBDIS_POINTER_ACCELERATION_FACTOR + d : -d * d / CHARYBDIS_POINTER_ACCELERATION_FACTOR + d)) -# else // !CHARYBDIS_POINTER_ACCELERATION_ENABLE -# define DISPLACEMENT_WITH_ACCELERATION(d) (d) -# endif // CHARYBDIS_POINTER_ACCELERATION_ENABLE -# endif // !DISPLACEMENT_WITH_ACCELERATION - /** * \brief Augment the pointing device behavior. * - * Implement the Charybdis-specific features for pointing devices: - * - Drag-scroll - * - Sniping - * - Acceleration + * Implement drag-scroll. */ static void pointing_device_task_charybdis(report_mouse_t* mouse_report) { static int16_t scroll_buffer_x = 0; @@ -194,12 +189,12 @@ static void pointing_device_task_charybdis(report_mouse_t* mouse_report) { scroll_buffer_x -= mouse_report->x; # else scroll_buffer_x += mouse_report->x; -# endif // CHARYBDIS_DRAGSCROLL_REVERSE_X +# endif // CHARYBDIS_DRAGSCROLL_REVERSE_X # ifdef CHARYBDIS_DRAGSCROLL_REVERSE_Y scroll_buffer_y -= mouse_report->y; # else scroll_buffer_y += mouse_report->y; -# endif // CHARYBDIS_DRAGSCROLL_REVERSE_Y +# endif // CHARYBDIS_DRAGSCROLL_REVERSE_Y mouse_report->x = 0; mouse_report->y = 0; if (abs(scroll_buffer_x) > CHARYBDIS_DRAGSCROLL_BUFFER_SIZE) { @@ -210,16 +205,14 @@ static void pointing_device_task_charybdis(report_mouse_t* mouse_report) { mouse_report->v = scroll_buffer_y > 0 ? 1 : -1; scroll_buffer_y = 0; } - } else if (!g_charybdis_config.is_sniping_enabled) { - mouse_report->x = DISPLACEMENT_WITH_ACCELERATION(mouse_report->x); - mouse_report->y = DISPLACEMENT_WITH_ACCELERATION(mouse_report->y); } } report_mouse_t pointing_device_task_kb(report_mouse_t mouse_report) { - pointing_device_task_charybdis(&mouse_report); - mouse_report = pointing_device_task_user(mouse_report); - + if (is_keyboard_master()) { + pointing_device_task_charybdis(&mouse_report); + mouse_report = pointing_device_task_user(mouse_report); + } return mouse_report; } @@ -230,9 +223,9 @@ static bool has_shift_mod(void) { return mod_config(get_mods()) & MOD_MASK_SHIFT; # else return mod_config(get_mods() | get_oneshot_mods()) & MOD_MASK_SHIFT; -# endif // NO_ACTION_ONESHOT +# endif // NO_ACTION_ONESHOT } -# endif // POINTING_DEVICE_ENABLE && !NO_CHARYBDIS_KEYCODES +# endif // POINTING_DEVICE_ENABLE && !NO_CHARYBDIS_KEYCODES /** * \brief Outputs the Charybdis configuration to console. @@ -247,16 +240,16 @@ static bool has_shift_mod(void) { */ __attribute__((unused)) static void debug_charybdis_config_to_console(charybdis_config_t* config) { # ifdef CONSOLE_ENABLE - IGNORE_FORMAT_WARNING(dprintf("(charybdis) process_record_kb: config = {\n" - "\traw = 0x%04X,\n" - "\t{\n" - "\t\tis_dragscroll_enabled=%b\n" - "\t\tis_sniping_enabled=%b\n" - "\t\tdefault_dpi=0x%02X (%ld)\n" - "\t\tsniping_dpi=0x%01X (%ld)\n" - "\t}\n" - "}\n", - config->raw, config->is_dragscroll_enabled, config->is_sniping_enabled, config->pointer_default_dpi, get_pointer_default_dpi(config), config->pointer_sniping_dpi, get_pointer_sniping_dpi(config))); + dprintf("(charybdis) process_record_kb: config = {\n" + "\traw = 0x%X,\n" + "\t{\n" + "\t\tis_dragscroll_enabled=%u\n" + "\t\tis_sniping_enabled=%u\n" + "\t\tdefault_dpi=0x%X (%u)\n" + "\t\tsniping_dpi=0x%X (%u)\n" + "\t}\n" + "}\n", + config->raw, config->is_dragscroll_enabled, config->is_sniping_enabled, config->pointer_default_dpi, get_pointer_default_dpi(config), config->pointer_sniping_dpi, get_pointer_sniping_dpi(config)); # endif // CONSOLE_ENABLE } @@ -307,7 +300,7 @@ bool process_record_kb(uint16_t keycode, keyrecord_t* record) { } break; } -# endif // !NO_CHARYBDIS_KEYCODES +# endif // !NO_CHARYBDIS_KEYCODES return true; } @@ -318,22 +311,70 @@ void eeconfig_init_kb(void) { eeconfig_init_user(); } -void matrix_power_up(void) { pointing_device_task(); } +void matrix_power_up(void) { + pointing_device_task(); +} void charybdis_config_sync_handler(uint8_t initiator2target_buffer_size, const void* initiator2target_buffer, uint8_t target2initiator_buffer_size, void* target2initiator_buffer) { if (initiator2target_buffer_size == sizeof(g_charybdis_config)) { memcpy(&g_charybdis_config, initiator2target_buffer, sizeof(g_charybdis_config)); } } +#endif // POINTING_DEVICE_ENABLE + +__attribute__((weak)) void user_button_init(void) { +#ifdef USER_BUTTON_PIN + gpio_set_pin_input_high(USER_BUTTON_PIN); +#endif // USER_BUTTON_PIN +} + +__attribute__((weak)) bool check_user_button_state(void) { +#ifdef USER_BUTTON_PIN + return !gpio_read_pin(USER_BUTTON_PIN); +#endif // USER_BUTTON_PIN + return false; +} void keyboard_post_init_kb(void) { +#ifdef DEBUG_LED_PIN + gpio_set_pin_output(DEBUG_LED_PIN); + gpio_write_pin_low(DEBUG_LED_PIN); +#endif // DEBUG_LED_PIN + +#ifdef POINTING_DEVICE_ENABLE maybe_update_pointing_device_cpi(&g_charybdis_config); transaction_register_rpc(RPC_ID_KB_CONFIG_SYNC, charybdis_config_sync_handler); - +#endif // POINTING_DEVICE_ENABLE keyboard_post_init_user(); } +void keyboard_pre_init_kb(void) { + user_button_init(); +#ifdef POINTING_DEVICE_ENABLE + read_charybdis_config_from_eeprom(&g_charybdis_config); +#endif // POINTING_DEVICE_ENAcBLE + keyboard_pre_init_user(); +} + +__attribute__((weak)) void execute_user_button_action(bool state) { + if (state) { + if (is_keyboard_master()) { + reset_keyboard(); + } else { + soft_reset_keyboard(); + } + } +} + void housekeeping_task_kb(void) { + static bool last_state = false; + bool state = check_user_button_state(); + if (state != last_state) { + last_state = state; + execute_user_button_action(state); + } + +#ifdef POINTING_DEVICE_ENABLE if (is_keyboard_master()) { // Keep track of the last state, so that we can tell if we need to propagate to slave static charybdis_config_t last_charybdis_config = {0}; @@ -357,22 +398,50 @@ void housekeeping_task_kb(void) { } } } - // no need for user function, is called already +#endif // POINTING_DEVICE_ENABLE + // no need for user function, is called already } -#endif // POINTING_DEVICE_ENABLE +#ifdef USER_BUTTON_PIN +/** + * @brief Replace and add upon the default bootmagic reset function. + * In this case, we also check the user button. + * + * @return true if the user button is pressed, or normal bootmagic key position. + * @return false if the user button is not pressed and normal bootmagic key position is not pressed. + */ +__attribute__((weak)) bool bootmagic_should_reset(void) { + uint8_t row = BOOTMAGIC_ROW; + uint8_t col = BOOTMAGIC_COLUMN; + +# if defined(SPLIT_KEYBOARD) && defined(BOOTMAGIC_ROW_RIGHT) && defined(BOOTMAGIC_COLUMN_RIGHT) + if (!is_keyboard_left()) { + row = BOOTMAGIC_ROW_RIGHT; + col = BOOTMAGIC_COLUMN_RIGHT; + } +# endif -__attribute__((weak)) void matrix_init_sub_kb(void) {} -void matrix_init_kb(void) { -#ifdef POINTING_DEVICE_ENABLE - read_charybdis_config_from_eeprom(&g_charybdis_config); -#endif // POINTING_DEVICE_ENABLE - matrix_init_sub_kb(); - matrix_init_user(); + return matrix_get_row(row) & (1 << col) || check_user_button_state(); } +#endif // USER_BUTTON_PIN -__attribute__((weak)) void matrix_scan_sub_kb(void) {} -void matrix_scan_kb(void) { - matrix_scan_sub_kb(); - matrix_scan_user(); +bool shutdown_kb(bool jump_to_bootloader) { + if (!shutdown_user(jump_to_bootloader)) { + return false; + } +#ifdef RGB_MATRIX_ENABLE + void rgb_matrix_update_pwm_buffers(void); + rgb_matrix_set_color_all(RGB_RED); + rgb_matrix_update_pwm_buffers(); +#endif // RGB_MATRIX_ENABLE + return true; +} + +#ifdef POINTING_DEVICE_AUTO_MOUSE_ENABLE +bool is_mouse_record_kb(uint16_t keycode, keyrecord_t* record) { + if (IS_KB_KEYCODE(keycode)) { + return true; + } + return is_mouse_record_user(keycode, record); } +#endif // POINTING_DEVICE_AUTO_MOUSE_ENABLE diff --git a/keyboards/handwired/tractyl_manuform/tractyl_manuform.h b/keyboards/handwired/tractyl_manuform/tractyl_manuform.h index 48020c89bd..0c473517c7 100644 --- a/keyboards/handwired/tractyl_manuform/tractyl_manuform.h +++ b/keyboards/handwired/tractyl_manuform/tractyl_manuform.h @@ -28,14 +28,15 @@ enum charybdis_keycodes { DRAGSCROLL_MODE, DRAGSCROLL_MODE_TOGGLE, }; -# define DPI_MOD POINTER_DEFAULT_DPI_FORWARD -# define DPI_RMOD POINTER_DEFAULT_DPI_REVERSE -# define S_D_MOD POINTER_SNIPING_DPI_FORWARD -# define S_D_RMOD POINTER_SNIPING_DPI_REVERSE -# define SNIPING SNIPING_MODE -# define SNP_TOG SNIPING_MODE_TOGGLE -# define DRGSCRL DRAGSCROLL_MODE -# define DRG_TOG DRAGSCROLL_MODE_TOGGLE + +#define DPI_MOD POINTER_DEFAULT_DPI_FORWARD +#define DPI_RMOD POINTER_DEFAULT_DPI_REVERSE +#define S_D_MOD POINTER_SNIPING_DPI_FORWARD +#define S_D_RMOD POINTER_SNIPING_DPI_REVERSE +#define SNIPING SNIPING_MODE +#define SNP_TOG SNIPING_MODE_TOGGLE +#define DRGSCRL DRAGSCROLL_MODE +#define DRG_TOG DRAGSCROLL_MODE_TOGGLE #ifdef POINTING_DEVICE_ENABLE /** \brief Return the current DPI value for the pointer's default mode. */ @@ -103,7 +104,4 @@ bool charybdis_get_pointer_dragscroll_enabled(void); * are translated into horizontal and vertical scroll movements. */ void charybdis_set_pointer_dragscroll_enabled(bool enable); -#endif // POINTING_DEVICE_ENABLE - -void matrix_init_sub_kb(void); -void matrix_scan_sub_kb(void); +#endif // POINTING_DEVICE_ENABLE 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 @@  -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 + + + +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/handwired/zeropad/keyboard.json b/keyboards/handwired/zeropad/keyboard.json new file mode 100644 index 0000000000..40bf6c8c2a --- /dev/null +++ b/keyboards/handwired/zeropad/keyboard.json @@ -0,0 +1,38 @@ +{ + "manufacturer": "Leon Sieber", + "keyboard_name": "ZeroPad", + "maintainer": "diffrentGuesser", + "development_board": "promicro", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["D1", "D0", "D4"], + "rows": ["C6", "D7", "E6"], + }, + "usb": { + "device_version": "1.0.0", + "pid": "0x0000", + "vid": "0x5A50" + }, + "community_layouts": [ "ortho_3x3" ], + "layouts": { + "LAYOUT_ortho_3x3": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"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/handwired/zeropad/keymaps/default/keymap.c b/keyboards/handwired/zeropad/keymaps/default/keymap.c new file mode 100644 index 0000000000..aa674bcbda --- /dev/null +++ b/keyboards/handwired/zeropad/keymaps/default/keymap.c @@ -0,0 +1,13 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT_ortho_3x3( + KC_1, KC_2, KC_3, + KC_4, KC_5, KC_6, + KC_7, KC_8, KC_9 + ) +}; diff --git a/keyboards/handwired/zeropad/readme.md b/keyboards/handwired/zeropad/readme.md new file mode 100644 index 0000000000..c021d7dc05 --- /dev/null +++ b/keyboards/handwired/zeropad/readme.md @@ -0,0 +1,27 @@ +# ZeroPad + + + +This keyboard is inspired by the scotto9 from Joe Scotto. This keyboard is compatible with via and has 4 layers of keybinds (24 keybinds - 4x8 + 1 per layer for changing the layer). + +* Keyboard Maintainer: [Leon Sieber](https://github.com/diffrentGuesser) +* Hardware Supported: Pro Micro, 3 pin switches +* Hardware Availability: [Pro Micro](https://de.aliexpress.com/item/32846843498.html?spm=a2g0o.cart.0.0.146d4ae4kCjqDY&mp=1&gatewayAdapt=glo2deu), [switches](https://de.aliexpress.com/item/1005007135709029.html?spm=a2g0o.cart.0.0.146d4ae4kCjqDY&mp=1&gatewayAdapt=glo2deu) + +Make example for this keyboard (after setting up your build environment): + + make handwired/zeropad:default + +Flashing example for this keyboard: + + make handwired/zeropad: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 (the top left key) and plug in the keyboard +* **Physical reset**: Short the GND and the RST pins on the Pro Micro. +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/hazel/bad_wings/halconf.h b/keyboards/hazel/bad_wings/halconf.h index ed9500fe75..dbb40c4c27 100644 --- a/keyboards/hazel/bad_wings/halconf.h +++ b/keyboards/hazel/bad_wings/halconf.h @@ -6,7 +6,5 @@ #define HAL_USE_SPI TRUE #define HAL_USE_I2C TRUE #define HAL_USE_PWM TRUE -#define SPI_USE_WAIT TRUE -#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD -#include_next <halconf.h>
\ No newline at end of file +#include_next <halconf.h> diff --git a/keyboards/hazel/bad_wings_v2/config.h b/keyboards/hazel/bad_wings_v2/config.h new file mode 100644 index 0000000000..7f861f693f --- /dev/null +++ b/keyboards/hazel/bad_wings_v2/config.h @@ -0,0 +1,18 @@ +// Copyright 2023 Jason Hazel (@jasonhazel) +// SPDX-License-Identifier: GPL-3.0-or-later + +#pragma once + +#define SPI_DRIVER SPID1 +#define SPI_SCK_PIN A5 +#define SPI_SCK_PAL_MODE 0 +#define SPI_MOSI_PIN A7 +#define SPI_MOSI_PAL_MODE 0 +#define SPI_MISO_PIN A6 +#define SPI_MISO_PAL_MODE 0 +#define CIRQUE_PINNACLE_SPI_DIVISOR 8 +#define CIRQUE_PINNACLE_SPI_CS_PIN A4 + +#define POINTING_DEVICE_CS_PIN A4 +#define CIRQUE_PINNACLE_DIAMETER_MM 35 +#define POINTING_DEVICE_ROTATION_90 diff --git a/keyboards/hazel/bad_wings_v2/halconf.h b/keyboards/hazel/bad_wings_v2/halconf.h new file mode 100644 index 0000000000..fa7e45bdcd --- /dev/null +++ b/keyboards/hazel/bad_wings_v2/halconf.h @@ -0,0 +1,8 @@ +// Copyright 2023 Jason Hazel (@jasonhazel) +// SPDX-License-Identifier: GPL-3.0-or-later + +#pragma once + +#define HAL_USE_SPI TRUE + +#include_next <halconf.h> diff --git a/keyboards/hazel/bad_wings_v2/keyboard.json b/keyboards/hazel/bad_wings_v2/keyboard.json new file mode 100644 index 0000000000..e6f9bad637 --- /dev/null +++ b/keyboards/hazel/bad_wings_v2/keyboard.json @@ -0,0 +1,67 @@ +{ + "manufacturer": "Hazel", + "keyboard_name": "Bad Wings v2", + "maintainer": "jasonhazel", + "bootloader": "stm32-dfu", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "pointing_device": true + }, + "matrix_pins": { + "cols": ["F1", "F0", "C15", "C14", "C13"], + "rows": ["B11", "B10", "B2", "B1", "B3", "B4", "B5", "B6"] + }, + "processor": "STM32F072", + "url": "https://github.com/hazels-garage/bad-wings/tree/master/v2", + "usb": { + "device_version": "1.0.0", + "pid": "0x4258", + "vid": "0x4A48" + }, + "community_layouts": ["split_3x5_3"], + "layouts": { + "LAYOUT_split_3x5_3": { + "layout": [ + {"label": "00", "matrix": [0, 0], "x": 0, "y": 0.75, "w": 1}, + {"label": "01", "matrix": [0, 1], "x": 1, "y": 0.5, "w": 1}, + {"label": "02", "matrix": [0, 2], "x": 2, "y": 0, "w": 1}, + {"label": "03", "matrix": [0, 3], "x": 3, "y": 0.25, "w": 1}, + {"label": "04", "matrix": [0, 4], "x": 4, "y": 0.36, "w": 1}, + {"label": "44", "matrix": [4, 4], "x": 8, "y": 0.36, "w": 1}, + {"label": "43", "matrix": [4, 3], "x": 9, "y": 0.25, "w": 1}, + {"label": "42", "matrix": [4, 2], "x": 10, "y": 0, "w": 1}, + {"label": "41", "matrix": [4, 1], "x": 11, "y": 0.5, "w": 1}, + {"label": "40", "matrix": [4, 0], "x": 12, "y": 0.75, "w": 1}, + {"label": "10", "matrix": [1, 0], "x": 0, "y": 1.75, "w": 1}, + {"label": "11", "matrix": [1, 1], "x": 1, "y": 1.5, "w": 1}, + {"label": "12", "matrix": [1, 2], "x": 2, "y": 1, "w": 1}, + {"label": "13", "matrix": [1, 3], "x": 3, "y": 1.25, "w": 1}, + {"label": "14", "matrix": [1, 4], "x": 4, "y": 1.36, "w": 1}, + {"label": "54", "matrix": [5, 4], "x": 8, "y": 1.36, "w": 1}, + {"label": "53", "matrix": [5, 3], "x": 9, "y": 1.25, "w": 1}, + {"label": "52", "matrix": [5, 2], "x": 10, "y": 1, "w": 1}, + {"label": "51", "matrix": [5, 1], "x": 11, "y": 1.5, "w": 1}, + {"label": "50", "matrix": [5, 0], "x": 12, "y": 1.75, "w": 1}, + {"label": "20", "matrix": [2, 0], "x": 0, "y": 2.75, "w": 1}, + {"label": "21", "matrix": [2, 1], "x": 1, "y": 2.5, "w": 1}, + {"label": "22", "matrix": [2, 2], "x": 2, "y": 2, "w": 1}, + {"label": "23", "matrix": [2, 3], "x": 3, "y": 2.25, "w": 1}, + {"label": "24", "matrix": [2, 4], "x": 4, "y": 2.36, "w": 1}, + {"label": "64", "matrix": [6, 4], "x": 8, "y": 2.36, "w": 1}, + {"label": "63", "matrix": [6, 3], "x": 9, "y": 2.25, "w": 1}, + {"label": "62", "matrix": [6, 2], "x": 10, "y": 2, "w": 1}, + {"label": "61", "matrix": [6, 1], "x": 11, "y": 2.5, "w": 1}, + {"label": "60", "matrix": [6, 0], "x": 12, "y": 2.75, "w": 1}, + {"label": "32", "matrix": [3, 2], "x": 3, "y": 3.25, "w": 1}, + {"label": "33", "matrix": [3, 3], "x": 4, "y": 3.36, "w": 1}, + {"label": "34", "matrix": [3, 4], "x": 5, "y": 3.47, "w": 1}, + {"label": "74", "matrix": [7, 4], "x": 7, "y": 3.47, "w": 1}, + {"label": "73", "matrix": [7, 3], "x": 8, "y": 3.36, "w": 1}, + {"label": "72", "matrix": [7, 2], "x": 9, "y": 3.25, "w": 1} + ] + } + } +} diff --git a/keyboards/hazel/bad_wings_v2/keymaps/default/config.h b/keyboards/hazel/bad_wings_v2/keymaps/default/config.h new file mode 100644 index 0000000000..75c535cee8 --- /dev/null +++ b/keyboards/hazel/bad_wings_v2/keymaps/default/config.h @@ -0,0 +1,11 @@ +// Copyright 2023 Jason Hazel (@jasonhazel) +// SPDX-License-Identifier: GPL-3.0-or-later + +#pragma once + +#define PERMISSIVE_HOLD +#define ONESHOT_TAP_TOGGLE 10 +#define ONESHOT_TIMEOUT 500 +#define CIRQUE_PINNACLE_TAP_ENABLE +#define CIRQUE_PINNACLE_POSITION_MODE CIRQUE_PINNACLE_ABSOLUTE_MODE +#define CIRQUE_DEVICE_GESTURES_SCROLL_ENABLE diff --git a/keyboards/hazel/bad_wings_v2/keymaps/default/keymap.json b/keyboards/hazel/bad_wings_v2/keymaps/default/keymap.json new file mode 100644 index 0000000000..251be09c33 --- /dev/null +++ b/keyboards/hazel/bad_wings_v2/keymaps/default/keymap.json @@ -0,0 +1,32 @@ +{ + "keyboard": "hazel/bad_wings_v2", + "keymap": "default", + "layout": "LAYOUT_split_3x5_3", + "layers": [ + [ + "KC_Q", "KC_W", "KC_E", "KC_R", "KC_T", "KC_Y", "KC_U", "KC_I", "KC_O", "KC_P", + "KC_A", "KC_S", "KC_D", "KC_F", "KC_G", "KC_H", "KC_J", "KC_K", "KC_L", "KC_QUOT", + "KC_Z", "LGUI_T(KC_X)", "LALT_T(KC_C)", "KC_V", "KC_B", "KC_N", "KC_M", "KC_COMM", "KC_DOT", "KC_SLSH", + "KC_LCTL", "OSL(1)", "OSM(MOD_LSFT)", "LT(3,KC_SPC)", "LT(2,KC_BSPC)", "KC_ENT" + ], + [ + "KC_NO", "KC_NO", "KC_NO", "KC_NO", "KC_NO", "KC_RBRC", "KC_RCBR", "KC_RPRN", "KC_GT", "KC_NO", + "KC_GRV", "KC_TILD", "KC_UNDS", "KC_EQL", "KC_NO", "KC_LBRC", "KC_LCBR", "KC_LPRN", "KC_LT", "KC_BSLS", + "KC_NO", "KC_NO", "KC_PLUS", "KC_MINS", "KC_NO", "KC_NO", "KC_NO", "KC_COLN", "KC_DOT", "KC_SCLN", + "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS" + ], + [ + "KC_EXLM", "KC_AT", "KC_HASH", "KC_DLR", "KC_PERC", "KC_CIRC", "KC_AMPR", "KC_ASTR", "KC_PIPE", "KC_NO", + "KC_1", "KC_2", "KC_3", "KC_4", "KC_5", "KC_6", "KC_7", "KC_8", "KC_9", "KC_0", + "KC_NO", "KC_NO", "KC_NO", "KC_NO", "KC_NO", "KC_NO", "KC_NO", "KC_NO", "KC_NO", "KC_NO", + "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS" + ], + [ + "KC_ESC", "KC_F1", "KC_F4", "KC_F7", "KC_F10", "KC_NO", "KC_HOME", "KC_UP", "KC_END", "KC_NO", + "KC_TAB", "KC_F2", "KC_F5", "KC_F8", "KC_F11", "KC_NO", "KC_LEFT", "KC_DOWN", "KC_RGHT", "KC_NO", + "KC_NO", "KC_F3", "KC_F6", "KC_F9", "KC_F12", "KC_NO", "KC_MRWD", "KC_MPLY", "KC_MFFD", "KC_DEL", + "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS" + ] + ], + "author": "Jason Hazel" +} diff --git a/keyboards/hazel/bad_wings_v2/mcuconf.h b/keyboards/hazel/bad_wings_v2/mcuconf.h new file mode 100644 index 0000000000..77c7d10e9b --- /dev/null +++ b/keyboards/hazel/bad_wings_v2/mcuconf.h @@ -0,0 +1,9 @@ +// Copyright 2022 Kyle McCreery (@kylemccreery) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include_next <mcuconf.h> + +#undef STM32_SPI_USE_SPI1 +#define STM32_SPI_USE_SPI1 TRUE diff --git a/keyboards/hazel/bad_wings_v2/readme.md b/keyboards/hazel/bad_wings_v2/readme.md new file mode 100644 index 0000000000..1b34057aa3 --- /dev/null +++ b/keyboards/hazel/bad_wings_v2/readme.md @@ -0,0 +1,27 @@ +# Bad Wings v2 + + + +36 key unibody split + +* Keyboard Maintainer: [Jason Hazel](https://github.com/jasonhazel) +* Hardware Supported: Bad Wings v2 +* Hardware Availability: [Hazel's Garage GitHub](https://github.com/hazels-garage/bad-wings/tree/master/v2) + +Make example for this keyboard (after setting up your build environment): + + make hazel/bad_wings_v2:default + +Flashing example for this keyboard: + + make hazel/bad_wings_v2:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the top-left key and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/hazel/bad_wings_v2/rules.mk b/keyboards/hazel/bad_wings_v2/rules.mk new file mode 100644 index 0000000000..fb5d649735 --- /dev/null +++ b/keyboards/hazel/bad_wings_v2/rules.mk @@ -0,0 +1 @@ +POINTING_DEVICE_DRIVER = cirque_pinnacle_spi 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/hfdkb/ac001/halconf.h b/keyboards/hfdkb/ac001/halconf.h index 7ad0a62d2e..b06fd7e719 100644 --- a/keyboards/hfdkb/ac001/halconf.h +++ b/keyboards/hfdkb/ac001/halconf.h @@ -16,7 +16,5 @@ #pragma once #define HAL_USE_SPI TRUE -#define SPI_USE_WAIT TRUE -#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD #include_next <halconf.h> 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/horrortroll/handwired_k552/halconf.h b/keyboards/horrortroll/handwired_k552/halconf.h index a8be303915..bc38dd1baf 100644 --- a/keyboards/horrortroll/handwired_k552/halconf.h +++ b/keyboards/horrortroll/handwired_k552/halconf.h @@ -22,9 +22,6 @@ #pragma once #define HAL_USE_I2C TRUE - #define HAL_USE_SPI TRUE -#define SPI_USE_WAIT TRUE -#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD #include_next <halconf.h> 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/halconf.h b/keyboards/inland/kb83/halconf.h index 2f64e65393..2ddb9c35d8 100644 --- a/keyboards/inland/kb83/halconf.h +++ b/keyboards/inland/kb83/halconf.h @@ -17,7 +17,5 @@ #define HAL_USE_I2C TRUE #define HAL_USE_SPI TRUE -#define SPI_USE_WAIT TRUE -#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD #include_next <halconf.h> 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/inland/mk47/halconf.h b/keyboards/inland/mk47/halconf.h index 55bfe5c977..b8ebdb3369 100644 --- a/keyboards/inland/mk47/halconf.h +++ b/keyboards/inland/mk47/halconf.h @@ -17,7 +17,5 @@ #define HAL_USE_I2C TRUE #define HAL_USE_SPI TRUE -#define SPI_USE_WAIT TRUE -#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD #include_next <halconf.h> diff --git a/keyboards/inland/v83p/halconf.h b/keyboards/inland/v83p/halconf.h index fcd8b7216a..f3178d93f0 100644 --- a/keyboards/inland/v83p/halconf.h +++ b/keyboards/inland/v83p/halconf.h @@ -5,7 +5,5 @@ #define HAL_USE_I2C TRUE #define HAL_USE_SPI TRUE -#define SPI_USE_WAIT TRUE -#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD #include_next <halconf.h> diff --git a/keyboards/rookiebwoy/late9/readme.md b/keyboards/ivndbt/late9/readme.md index bc6dfab57e..8f1ae628fe 100644 --- a/keyboards/rookiebwoy/late9/readme.md +++ b/keyboards/ivndbt/late9/readme.md @@ -5,17 +5,17 @@ The LATE-9 is a multi-tap input keyboard based on mobile phones from the late '9  -* Keyboard maintainer: [rookiebwoy](https://github.com/rookiebwoy) +* Keyboard maintainer: [ivndbt](https://github.com/ivndbt) * Hardware supported: ProMicro, _Elite-C (not tested)_ -* Hardware Availability: LATE-9 is open source, check the [project repository](https://github.com/rookiebwoy/late-9) for gerbers. +* Hardware Availability: LATE-9 is open source, check the [project repository](https://github.com/ivndbt/late-9) for gerbers. Make example for this keyboard (after setting up your build environment): - make rookiebwoy/late9/rev1:default + make ivndbt/late9/rev1:default Flashing example for this keyboard: - make rookiebwoy/late9/rev1:default:flash + make ivndbt/late9/rev1: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/rookiebwoy/late9/rev1/config.h b/keyboards/ivndbt/late9/rev1/config.h index 8c9a5702f2..b6c0ba55b9 100644 --- a/keyboards/rookiebwoy/late9/rev1/config.h +++ b/keyboards/ivndbt/late9/rev1/config.h @@ -1,5 +1,5 @@ /* -Copyright 2021 rookiebwoy +Copyright 2021 ivndbt This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/keyboards/rookiebwoy/late9/rev1/keyboard.json b/keyboards/ivndbt/late9/rev1/keyboard.json index 48f3cff840..523ae83492 100644 --- a/keyboards/rookiebwoy/late9/rev1/keyboard.json +++ b/keyboards/ivndbt/late9/rev1/keyboard.json @@ -1,8 +1,8 @@ { "keyboard_name": "LATE-9", - "manufacturer": "rookiebwoy", - "url": "https://github.com/rookiebwoy/late-9)", - "maintainer": "rookiebwoy", + "manufacturer": "ivndbt", + "url": "https://github.com/ivndbt/late-9)", + "maintainer": "ivndbt", "usb": { "vid": "0x6961", "pid": "0x3032", @@ -24,8 +24,7 @@ "nkro": true, "oled": true }, - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/rookiebwoy/late9/rev1/keymaps/default/keymap.c b/keyboards/ivndbt/late9/rev1/keymaps/default/keymap.c index f93958fe8f..cf38757100 100644 --- a/keyboards/rookiebwoy/late9/rev1/keymaps/default/keymap.c +++ b/keyboards/ivndbt/late9/rev1/keymaps/default/keymap.c @@ -1,4 +1,4 @@ -/* Copyright 2021 rookiebwoy +/* Copyright 2021 ivndbt * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/keyboards/rookiebwoy/late9/rev1/readme.md b/keyboards/ivndbt/late9/rev1/readme.md index d9683222a9..5641e32127 100644 --- a/keyboards/rookiebwoy/late9/rev1/readme.md +++ b/keyboards/ivndbt/late9/rev1/readme.md @@ -1,5 +1,5 @@ # LATE-9 rev1 -First (and final untill now) revision of the LATE-9. For in depth look please go to [project repository](https://github.com/rookiebwoy/late-9). +First (and final untill now) revision of the LATE-9. For in depth look please go to [project repository](https://github.com/ivndbt/late-9). diff --git a/keyboards/rookiebwoy/late9/rev1/rev1.c b/keyboards/ivndbt/late9/rev1/rev1.c index aa45141b06..f472de2ff5 100644 --- a/keyboards/rookiebwoy/late9/rev1/rev1.c +++ b/keyboards/ivndbt/late9/rev1/rev1.c @@ -1,4 +1,4 @@ -/* Copyright 2021 rookiebwoy +/* Copyright 2021 ivndbt * * 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 @@ -20,39 +20,39 @@ bool oled_task_kb(void) { if (!oled_task_user()) { return false; } static const char PROGMEM rb_logo[] = { - // rookiebwoy 128x32px + // ivndbt 128x32px + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xe0, 0x78, 0x78, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 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, 0xf0, 0xf0, 0xf0, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0x00, - 0x00, 0x00, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0x00, 0x00, 0x00, 0xe0, 0xe0, - 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, - 0xfc, 0xfc, 0xfc, 0x00, 0x00, 0x00, 0xe3, 0xe3, 0xe3, 0x00, 0x00, 0x00, 0xe0, 0xe0, 0xe0, 0x1c, - 0x1c, 0x1c, 0xfc, 0xfc, 0xfc, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, - 0xe0, 0x00, 0x00, 0x00, 0xe0, 0xe0, 0xe0, 0x00, 0x00, 0x00, 0xe0, 0xe0, 0xe0, 0x00, 0x00, 0x00, - 0xe0, 0xe0, 0xe0, 0x00, 0x00, 0x00, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0x00, - 0x00, 0x00, 0xe0, 0xe0, 0xe0, 0x00, 0x00, 0x00, 0xe0, 0xe0, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x3f, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x3f, 0x3f, 0x3f, 0x38, 0x38, 0x38, 0x3f, 0x3f, 0x3f, 0x00, 0x00, 0x00, 0x3f, 0x3f, - 0x3f, 0x38, 0x38, 0x38, 0x3f, 0x3f, 0x3f, 0x00, 0x00, 0x00, 0x3f, 0x3f, 0x3f, 0x07, 0x07, 0x07, - 0x38, 0x38, 0x38, 0x00, 0x00, 0x00, 0x3f, 0x3f, 0x3f, 0x00, 0x00, 0x00, 0x07, 0x07, 0x07, 0x3f, - 0x3f, 0x3f, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00, 0x3f, 0x3f, 0x3f, 0x38, 0x38, 0x38, 0x3f, 0x3f, - 0x3f, 0x00, 0x00, 0x00, 0x3f, 0x3f, 0x3f, 0x38, 0x38, 0x38, 0x3f, 0x3f, 0x3f, 0x38, 0x38, 0x38, - 0x07, 0x07, 0x07, 0x00, 0x00, 0x00, 0x3f, 0x3f, 0x3f, 0x38, 0x38, 0x38, 0x3f, 0x3f, 0x3f, 0x00, - 0x00, 0x00, 0x07, 0x07, 0x07, 0x38, 0x38, 0x38, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0xe1, 0xe1, 0xf8, 0xf8, + 0x00, 0x00, 0x80, 0x80, 0x06, 0x06, 0xff, 0xff, 0xff, 0xff, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x98, 0xcc, 0x00, 0x80, 0xc0, 0xe0, + 0x00, 0x00, 0x00, 0xc0, 0xe0, 0x00, 0x80, 0xc0, 0xe0, 0x80, 0x40, 0x20, 0xe0, 0xe0, 0x00, 0x00, + 0xc0, 0xe0, 0x20, 0x60, 0xc8, 0xfc, 0xfc, 0x00, 0x10, 0xf8, 0xfc, 0x80, 0x40, 0x60, 0xe0, 0xc0, + 0x00, 0x50, 0xf8, 0xfc, 0x40, 0x40, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0x20, 0x20, 0x60, 0xc0, + 0xe0, 0x00, 0x80, 0xc0, 0x20, 0x60, 0xe0, 0xc0, 0x80, 0x00, 0x80, 0xc0, 0xe0, 0x80, 0x40, 0xe0, + 0xe0, 0x80, 0x40, 0xe0, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0xff, 0xff, 0xff, 0xff, + 0x60, 0x60, 0x01, 0x01, 0x00, 0x00, 0x1f, 0x1f, 0x87, 0x87, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x1f, 0x1f, 0x08, 0x00, 0x07, 0x0f, + 0x1c, 0x18, 0x08, 0x07, 0x03, 0x00, 0x00, 0x1f, 0x1f, 0x08, 0x00, 0x00, 0x1f, 0x1f, 0x08, 0x00, + 0x07, 0x0f, 0x1c, 0x18, 0x08, 0x1f, 0x1f, 0x08, 0x00, 0x1f, 0x1f, 0x10, 0x10, 0x10, 0x0f, 0x07, + 0x00, 0x00, 0x1f, 0x1f, 0x08, 0x04, 0x00, 0x18, 0x18, 0x00, 0x07, 0x0f, 0x1c, 0x18, 0x10, 0x10, + 0x08, 0x00, 0x07, 0x0f, 0x1c, 0x18, 0x10, 0x0f, 0x07, 0x00, 0x00, 0x1f, 0x1f, 0x00, 0x00, 0x1f, + 0x1f, 0x00, 0x00, 0x1f, 0x1f, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x1e, 0x07, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x0e, 0x0e, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; oled_write_raw_P(rb_logo, sizeof(rb_logo)); return false; diff --git a/keyboards/rookiebwoy/neopad/readme.md b/keyboards/ivndbt/neopad/readme.md index 5b0ae7abc7..4b99835449 100644 --- a/keyboards/rookiebwoy/neopad/readme.md +++ b/keyboards/ivndbt/neopad/readme.md @@ -7,17 +7,17 @@ _Actually the number of switches is six, because even the encoder are allowed to The Neopad in the photo above is the first prototype. See the project repository for revision 1 update and KiCad files. -* Keyboard maintainer: [rookiebwoy](https://github.com/rookiebwoy) +* Keyboard maintainer: [ivndbt](https://github.com/ivndbt) * Hardware supported: ProMicro, _Elite-C (not tested)_ -* Project repository: [Neopad on github](https://github.com/rookiebwoy/neopad) +* Project repository: [Neopad on github](https://github.com/ivndbt/neopad) Make example for this keyboard (after setting up your build environment): - make rookiebwoy/neopad/rev1:default + make ivndbt/neopad/rev1:default Flashing example for this keyboard: - make rookiebwoy/neopad/rev1:default:flash + make ivndbt/neopad/rev1:default:flash When asked by the terminal, press the dedicated `RESET` button (the one above the 2 LEDs) to enter the bootloader and let the OS detects the device. diff --git a/keyboards/rookiebwoy/neopad/rev1/config.h b/keyboards/ivndbt/neopad/rev1/config.h index fd1724caf1..7475224d1a 100755 --- a/keyboards/rookiebwoy/neopad/rev1/config.h +++ b/keyboards/ivndbt/neopad/rev1/config.h @@ -1,5 +1,5 @@ /* -Copyright 2021 rookiebwoy +Copyright 2021 ivndbt This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/keyboards/rookiebwoy/neopad/rev1/keyboard.json b/keyboards/ivndbt/neopad/rev1/keyboard.json index 426d8af7ec..f40f06549b 100755 --- a/keyboards/rookiebwoy/neopad/rev1/keyboard.json +++ b/keyboards/ivndbt/neopad/rev1/keyboard.json @@ -1,11 +1,11 @@ { "keyboard_name": "neopad", - "manufacturer": "rookiebwoy", - "url": "https://github.com/rookiebwoy/neopad)", - "maintainer": "rookiebwoy", + "manufacturer": "ivndbt", + "url": "https://github.com/ivndbt/neopad)", + "maintainer": "ivndbt", "usb": { - "vid": "0xFEED", - "pid": "0x0913", + "vid": "0x6961", + "pid": "0x3031", "device_version": "0.1.0" }, "features": { @@ -28,8 +28,7 @@ {"pin_a": "D4", "pin_b": "C6"} ] }, - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "tapping": { "toggle": 2 }, diff --git a/keyboards/rookiebwoy/neopad/rev1/keymaps/default/keymap.c b/keyboards/ivndbt/neopad/rev1/keymaps/default/keymap.c index 08227c84f9..721c21ef3c 100755 --- a/keyboards/rookiebwoy/neopad/rev1/keymaps/default/keymap.c +++ b/keyboards/ivndbt/neopad/rev1/keymaps/default/keymap.c @@ -1,4 +1,4 @@ -/* Copyright 2021 rookiebwoy +/* Copyright 2021 ivndbt * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/keyboards/rookiebwoy/neopad/rev1/readme.md b/keyboards/ivndbt/neopad/rev1/readme.md index 1265922722..6f8c6f1f25 100644 --- a/keyboards/rookiebwoy/neopad/rev1/readme.md +++ b/keyboards/ivndbt/neopad/rev1/readme.md @@ -1,5 +1,5 @@ # Neopad rev1 -Final revision of the Neopad macropad. For in depth look please go to [project repository](https://github.com/rookiebwoy/neopad). +Final revision of the Neopad macropad. For in depth look please go to [project repository](https://github.com/ivndbt/neopad). diff --git a/keyboards/rookiebwoy/neopad/rev1/rev1.c b/keyboards/ivndbt/neopad/rev1/rev1.c index 3b527794c0..c093c37e20 100755 --- a/keyboards/rookiebwoy/neopad/rev1/rev1.c +++ b/keyboards/ivndbt/neopad/rev1/rev1.c @@ -1,4 +1,4 @@ -/* Copyright 2021 rookiebwoy +/* Copyright 2021 ivndbt * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/keyboards/jidohun/km113/halconf.h b/keyboards/jidohun/km113/halconf.h index 6ff2f1ec67..7e9c966f40 100644 --- a/keyboards/jidohun/km113/halconf.h +++ b/keyboards/jidohun/km113/halconf.h @@ -4,7 +4,5 @@ #pragma once #define HAL_USE_SPI TRUE -#define SPI_USE_WAIT TRUE -#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD #include_next <halconf.h> 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/jukaie/jk01/halconf.h b/keyboards/jukaie/jk01/halconf.h index 64a184eb92..e17fed3886 100644 --- a/keyboards/jukaie/jk01/halconf.h +++ b/keyboards/jukaie/jk01/halconf.h @@ -17,7 +17,5 @@ #pragma once #define HAL_USE_SPI TRUE -#define SPI_USE_WAIT TRUE -#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD #include_next <halconf.h> diff --git a/keyboards/kakunpc/angel17/info.json b/keyboards/kakunpc/angel17/info.json index a8a4f2c148..c0d7287052 100644 --- a/keyboards/kakunpc/angel17/info.json +++ b/keyboards/kakunpc/angel17/info.json @@ -8,7 +8,6 @@ "pid": "0x0000", "device_version": "0.0.1" }, - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "community_layouts": ["numpad_5x4"] } diff --git a/keyboards/kakunpc/rabbit_capture_plan/keyboard.json b/keyboards/kakunpc/rabbit_capture_plan/keyboard.json index dce62c64d8..357d1a1ed1 100644 --- a/keyboards/kakunpc/rabbit_capture_plan/keyboard.json +++ b/keyboards/kakunpc/rabbit_capture_plan/keyboard.json @@ -55,8 +55,7 @@ "pin": "D2" } }, - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "layout_aliases": { "LAYOUT_all": "LAYOUT_ansi_split_rshift" }, diff --git a/keyboards/kapl/rev1/keyboard.json b/keyboards/kapl/rev1/keyboard.json index 820c647ccf..843847d8fe 100644 --- a/keyboards/kapl/rev1/keyboard.json +++ b/keyboards/kapl/rev1/keyboard.json @@ -72,8 +72,7 @@ } } }, - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "features": { "bootmagic": false, "mousekey": true, diff --git a/keyboards/kbdfans/odin75/halconf.h b/keyboards/kbdfans/odin75/halconf.h index 0218214174..15cb9895ba 100644 --- a/keyboards/kbdfans/odin75/halconf.h +++ b/keyboards/kbdfans/odin75/halconf.h @@ -16,13 +16,6 @@ #pragma once -#include_next <halconf.h> - -#undef HAL_USE_SPI #define HAL_USE_SPI TRUE -#undef SPI_USE_WAIT -#define SPI_USE_WAIT TRUE - -#undef SPI_SELECT_MODE -#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD +#include_next <halconf.h> diff --git a/keyboards/keaboard/rev1/keyboard.json b/keyboards/keaboard/rev1/keyboard.json index 1b5b492075..c8dea471f6 100644 --- a/keyboards/keaboard/rev1/keyboard.json +++ b/keyboards/keaboard/rev1/keyboard.json @@ -13,8 +13,7 @@ "rows": ["D7", "E6", "B4", "B5"], "cols": ["F5", "F6", "F7", "B1", "B3", "B2", "B6"] }, - "bootloader": "caterina", - "processor": "atmega32u4", + "development_board": "promicro", "split": { "enabled": true, "serial": { diff --git a/keyboards/keebformom/keyboard.json b/keyboards/keebformom/keyboard.json index 7fbaa5737f..bcc3a7d8b2 100644 --- a/keyboards/keebformom/keyboard.json +++ b/keyboards/keebformom/keyboard.json @@ -28,8 +28,7 @@ "rows": ["F5", "F6", "F7", "B1"] }, "diode_direction": "COL2ROW", - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "features": { "bootmagic": false, "mousekey": false, diff --git a/keyboards/keebio/bdn9/keymaps/default/config.h b/keyboards/keebio/bdn9/keymaps/default/config.h deleted file mode 100644 index e09fba9232..0000000000 --- a/keyboards/keebio/bdn9/keymaps/default/config.h +++ /dev/null @@ -1,5 +0,0 @@ -#pragma once - -#ifdef RGB_MATRIX_ENABLE -# define RGB_MATRIX_KEYPRESSES -#endif diff --git a/keyboards/keebio/bdn9/rev1/keyboard.json b/keyboards/keebio/bdn9/rev1/keyboard.json index 1deecf0d5b..5c677db78d 100644 --- a/keyboards/keebio/bdn9/rev1/keyboard.json +++ b/keyboards/keebio/bdn9/rev1/keyboard.json @@ -36,8 +36,7 @@ "ws2812": { "pin": "D3" }, - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "features": { "bootmagic": false, "mousekey": false, diff --git a/keyboards/keebio/bdn9/rev3/config.h b/keyboards/keebio/bdn9/rev3/config.h new file mode 100644 index 0000000000..3afa37bce1 --- /dev/null +++ b/keyboards/keebio/bdn9/rev3/config.h @@ -0,0 +1,14 @@ +// Copyright 2025 Danny Nguyen (@nooges) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +/* Defines for the RGB matrix */ +#ifdef RGB_MATRIX_ENABLE +# define WS2812_PWM_DRIVER PWMD15 +# define WS2812_PWM_CHANNEL 2 +# define WS2812_PWM_PAL_MODE 1 +# define WS2812_DMA_STREAM STM32_DMA1_STREAM2 +# define WS2812_DMA_CHANNEL 2 +# define WS2812_DMAMUX_ID STM32_DMAMUX1_TIM15_UP +#endif diff --git a/keyboards/keebio/bdn9/rev3/halconf.h b/keyboards/keebio/bdn9/rev3/halconf.h new file mode 100644 index 0000000000..969d6e5512 --- /dev/null +++ b/keyboards/keebio/bdn9/rev3/halconf.h @@ -0,0 +1,8 @@ +// Copyright 2025 Danny Nguyen (@nooges) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define HAL_USE_PWM TRUE + +#include_next <halconf.h> diff --git a/keyboards/keebio/bdn9/rev3/keyboard.json b/keyboards/keebio/bdn9/rev3/keyboard.json new file mode 100644 index 0000000000..e180c04e2a --- /dev/null +++ b/keyboards/keebio/bdn9/rev3/keyboard.json @@ -0,0 +1,97 @@ +{ + "keyboard_name": "BDN9 Rev. 3", + "bootloader": "stm32-dfu", + "encoder": { + "rotary": [ + {"pin_a": "A8", "pin_b": "A4"}, + {"pin_a": "B3", "pin_b": "A15"}, + {"pin_a": "A10", "pin_b": "A9"} + ] + }, + "features": { + "bootmagic": true, + "command": true, + "console": true, + "encoder": true, + "extrakey": true, + "mousekey": true, + "rgb_matrix": true + }, + "matrix_pins": { + "direct": [ + ["B12", "B5", "B6"], + ["B14", "B4", "B7"], + ["A3", "F1", "F0"] + ] + }, + "processor": "STM32G431", + "rgb_matrix": { + "animations": { + "alphas_mods": true, + "band_pinwheel_sat": true, + "band_pinwheel_val": true, + "band_sat": true, + "band_spiral_sat": true, + "band_spiral_val": true, + "band_val": true, + "breathing": true, + "cycle_all": true, + "cycle_left_right": true, + "cycle_out_in": true, + "cycle_out_in_dual": true, + "cycle_pinwheel": true, + "cycle_spiral": true, + "cycle_up_down": true, + "digital_rain": true, + "dual_beacon": true, + "gradient_left_right": true, + "gradient_up_down": true, + "hue_breathing": true, + "hue_pendulum": true, + "hue_wave": true, + "jellybean_raindrops": true, + "multisplash": true, + "pixel_flow": true, + "pixel_fractal": true, + "pixel_rain": true, + "rainbow_beacon": true, + "rainbow_moving_chevron": true, + "rainbow_pinwheels": true, + "raindrops": true, + "solid_multisplash": true, + "solid_reactive": true, + "solid_reactive_cross": true, + "solid_reactive_multicross": true, + "solid_reactive_multinexus": true, + "solid_reactive_multiwide": true, + "solid_reactive_nexus": true, + "solid_reactive_simple": true, + "solid_reactive_wide": true, + "solid_splash": true, + "splash": true, + "typing_heatmap": true + }, + "driver": "ws2812", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 112, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 224, "y": 0, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 32, "flags": 4}, + {"matrix": [1, 1], "x": 112, "y": 32, "flags": 4}, + {"matrix": [1, 2], "x": 224, "y": 32, "flags": 4}, + {"matrix": [2, 0], "x": 0, "y": 64, "flags": 4}, + {"matrix": [2, 1], "x": 112, "y": 64, "flags": 4}, + {"matrix": [2, 2], "x": 224, "y": 64, "flags": 4}, + {"x": 56, "y": 64, "flags": 2}, + {"x": 168, "y": 64, "flags": 2} + ] + }, + "usb": { + "device_version": "3.0.0", + "pid": "0x3133" + }, + "ws2812": { + "driver": "pwm", + "pin": "B15" + } +} diff --git a/keyboards/keebio/bdn9/rev3/mcuconf.h b/keyboards/keebio/bdn9/rev3/mcuconf.h new file mode 100644 index 0000000000..0b109bf791 --- /dev/null +++ b/keyboards/keebio/bdn9/rev3/mcuconf.h @@ -0,0 +1,10 @@ +// Copyright 2025 Danny Nguyen (@nooges) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include_next <mcuconf.h> + +/* enable TIM15, used for RGB LED PWM driver */ +#undef STM32_PWM_USE_TIM15 +#define STM32_PWM_USE_TIM15 TRUE diff --git a/keyboards/keebio/bdn9/rev3/rev3.c b/keyboards/keebio/bdn9/rev3/rev3.c new file mode 100644 index 0000000000..f15abf9d85 --- /dev/null +++ b/keyboards/keebio/bdn9/rev3/rev3.c @@ -0,0 +1,36 @@ +// Copyright 2025 Danny Nguyen (@nooges) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "quantum.h" + +void keyboard_pre_init_kb(void) { + // Disable the PD peripheral in pre-init because its pins (B4, B6) are being used in the matrix: + PWR->CR3 |= PWR_CR3_UCPD_DBDIS; + // Call the corresponding _user() function (see https://docs.qmk.fm/#/custom_quantum_functions) + keyboard_pre_init_user(); +} +bool encoder_update_kb(uint8_t index, bool clockwise) { + if (!encoder_update_user(index, clockwise)) { return false; } + if (index == 0) { + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + } + else if (index == 1) { + if (clockwise) { + tap_code(KC_DOWN); + } else { + tap_code(KC_UP); + } + } + else if (index == 2) { + if (clockwise) { + tap_code(KC_PGDN); + } else { + tap_code(KC_PGUP); + } + } + return false; +} diff --git a/keyboards/keebio/bfo9000/keyboard.json b/keyboards/keebio/bfo9000/keyboard.json index 08d9997d43..159334cc07 100644 --- a/keyboards/keebio/bfo9000/keyboard.json +++ b/keyboards/keebio/bfo9000/keyboard.json @@ -39,8 +39,7 @@ "ws2812": { "pin": "B4" }, - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/keebio/chiri_ce/rev1/keyboard.json b/keyboards/keebio/chiri_ce/rev1/keyboard.json index f118a4dd1e..9cf7f51654 100644 --- a/keyboards/keebio/chiri_ce/rev1/keyboard.json +++ b/keyboards/keebio/chiri_ce/rev1/keyboard.json @@ -128,7 +128,9 @@ "driver": "vendor" }, "transport": { - "sync_matrix_state": true + "sync": { + "matrix_state": true + } } }, "usb": { diff --git a/keyboards/keebio/dilly/keyboard.json b/keyboards/keebio/dilly/keyboard.json index 82a565ae62..0f7bce7d3f 100644 --- a/keyboards/keebio/dilly/keyboard.json +++ b/keyboards/keebio/dilly/keyboard.json @@ -49,8 +49,7 @@ "ws2812": { "pin": "D3" }, - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "community_layouts": ["ortho_3x10"], "layouts": { "LAYOUT_ortho_3x10": { diff --git a/keyboards/keebio/fourier/keyboard.json b/keyboards/keebio/fourier/keyboard.json index ae4985787d..74620068a2 100644 --- a/keyboards/keebio/fourier/keyboard.json +++ b/keyboards/keebio/fourier/keyboard.json @@ -61,8 +61,7 @@ "ws2812": { "pin": "D3" }, - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/keebio/iris/rev1/keyboard.json b/keyboards/keebio/iris/rev1/keyboard.json index fbccf0de84..74dc366413 100644 --- a/keyboards/keebio/iris/rev1/keyboard.json +++ b/keyboards/keebio/iris/rev1/keyboard.json @@ -53,8 +53,7 @@ "ws2812": { "pin": "D3" }, - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/keebio/iris/rev1_led/keyboard.json b/keyboards/keebio/iris/rev1_led/keyboard.json index cb171fcec3..4dc003f271 100644 --- a/keyboards/keebio/iris/rev1_led/keyboard.json +++ b/keyboards/keebio/iris/rev1_led/keyboard.json @@ -52,8 +52,7 @@ "ws2812": { "pin": "D3" }, - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/keebio/iris/rev2/keyboard.json b/keyboards/keebio/iris/rev2/keyboard.json index 37a4764c6b..9ea21851ee 100644 --- a/keyboards/keebio/iris/rev2/keyboard.json +++ b/keyboards/keebio/iris/rev2/keyboard.json @@ -38,8 +38,7 @@ "ws2812": { "pin": "D3" }, - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "features": { "bootmagic": false, "mousekey": false, diff --git a/keyboards/keebio/iris_ce/rev1/keyboard.json b/keyboards/keebio/iris_ce/rev1/keyboard.json index c5cab98778..5276d626b1 100644 --- a/keyboards/keebio/iris_ce/rev1/keyboard.json +++ b/keyboards/keebio/iris_ce/rev1/keyboard.json @@ -148,7 +148,9 @@ "driver": "vendor" }, "transport": { - "sync_matrix_state": true + "sync":{ + "matrix_state": true + } } }, "usb": { diff --git a/keyboards/keebio/laplace/keyboard.json b/keyboards/keebio/laplace/keyboard.json index 3a2ed70905..3ae9f6474b 100644 --- a/keyboards/keebio/laplace/keyboard.json +++ b/keyboards/keebio/laplace/keyboard.json @@ -38,8 +38,7 @@ "rows": ["D3", "F4", "D2", "F5", "D7", "B4", "C6", "E6"] }, "diode_direction": "COL2ROW", - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/keebio/levinson/info.json b/keyboards/keebio/levinson/info.json index 29ae8be8cb..1f4541a5e9 100644 --- a/keyboards/keebio/levinson/info.json +++ b/keyboards/keebio/levinson/info.json @@ -9,7 +9,6 @@ "split": { "enabled": true }, - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "community_layouts": ["ortho_4x12"] } diff --git a/keyboards/keebio/nyquist/rev1/keyboard.json b/keyboards/keebio/nyquist/rev1/keyboard.json index f684332bdb..b7cf0ae0d5 100644 --- a/keyboards/keebio/nyquist/rev1/keyboard.json +++ b/keyboards/keebio/nyquist/rev1/keyboard.json @@ -35,8 +35,7 @@ "ws2812": { "pin": "D3" }, - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "layout_aliases": { "LAYOUT": "LAYOUT_ortho_5x12" }, diff --git a/keyboards/keebio/nyquist/rev2/keyboard.json b/keyboards/keebio/nyquist/rev2/keyboard.json index dede204981..69639db6bf 100644 --- a/keyboards/keebio/nyquist/rev2/keyboard.json +++ b/keyboards/keebio/nyquist/rev2/keyboard.json @@ -40,8 +40,7 @@ "pin": "D0" } }, - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "layout_aliases": { "LAYOUT": "LAYOUT_ortho_5x12" }, diff --git a/keyboards/keebio/quefrency/rev1/keyboard.json b/keyboards/keebio/quefrency/rev1/keyboard.json index 73f6d0d660..651e3f1362 100644 --- a/keyboards/keebio/quefrency/rev1/keyboard.json +++ b/keyboards/keebio/quefrency/rev1/keyboard.json @@ -46,8 +46,7 @@ "pin": "D0" } }, - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "features": { "bootmagic": false, "mousekey": true, @@ -63,8 +62,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/keebio/rorschach/rev1/keyboard.json b/keyboards/keebio/rorschach/rev1/keyboard.json index 63fe877246..6f07992f1e 100644 --- a/keyboards/keebio/rorschach/rev1/keyboard.json +++ b/keyboards/keebio/rorschach/rev1/keyboard.json @@ -43,8 +43,7 @@ "pin": "D0" } }, - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "features": { "bootmagic": false, "mousekey": true, diff --git a/keyboards/keebio/stick/keyboard.json b/keyboards/keebio/stick/keyboard.json index 93d78837eb..b8d1184ec1 100644 --- a/keyboards/keebio/stick/keyboard.json +++ b/keyboards/keebio/stick/keyboard.json @@ -83,8 +83,7 @@ "ws2812": { "pin": "D3" }, - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "features": { "bootmagic": true, "encoder": true, diff --git a/keyboards/keebio/tragicforce68/keyboard.json b/keyboards/keebio/tragicforce68/keyboard.json index 3173ed3f50..f257cc26a8 100644 --- a/keyboards/keebio/tragicforce68/keyboard.json +++ b/keyboards/keebio/tragicforce68/keyboard.json @@ -31,8 +31,7 @@ "levels": 7, "breathing": true }, - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "community_layouts": ["68_ansi"], "layout_aliases": { "LAYOUT": "LAYOUT_68_ansi" diff --git a/keyboards/keebio/tukey/keyboard.json b/keyboards/keebio/tukey/keyboard.json index a030f041b7..3f4e5e947a 100644 --- a/keyboards/keebio/tukey/keyboard.json +++ b/keyboards/keebio/tukey/keyboard.json @@ -28,8 +28,7 @@ "ws2812": { "pin": "D3" }, - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "features": { "bootmagic": false, "command": true, diff --git a/keyboards/keebio/viterbi/info.json b/keyboards/keebio/viterbi/info.json index 8b1063ea98..f547514cdb 100644 --- a/keyboards/keebio/viterbi/info.json +++ b/keyboards/keebio/viterbi/info.json @@ -8,7 +8,6 @@ "split": { "enabled": true }, - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "community_layouts": ["ortho_5x14"] } diff --git a/keyboards/keebio/wavelet/keyboard.json b/keyboards/keebio/wavelet/keyboard.json index 70430e0f4d..fa14bfd62c 100644 --- a/keyboards/keebio/wavelet/keyboard.json +++ b/keyboards/keebio/wavelet/keyboard.json @@ -23,8 +23,7 @@ "ws2812": { "pin": "D3" }, - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "features": { "bootmagic": false, "mousekey": true, diff --git a/keyboards/keybage/radpad/keyboard.json b/keyboards/keybage/radpad/keyboard.json index 24f84477a8..d8a3c827df 100644 --- a/keyboards/keybage/radpad/keyboard.json +++ b/keyboards/keybage/radpad/keyboard.json @@ -52,8 +52,7 @@ "ws2812": { "pin": "F4" }, - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "layouts": { "LAYOUT_4x4_encoders": { "layout": [ diff --git a/keyboards/keycapsss/o4l_5x12/keyboard.json b/keyboards/keycapsss/o4l_5x12/keyboard.json index 5a516adca0..7425dc7a0b 100644 --- a/keyboards/keycapsss/o4l_5x12/keyboard.json +++ b/keyboards/keycapsss/o4l_5x12/keyboard.json @@ -48,8 +48,7 @@ "rows": ["F7", "B1", "B3", "B2", "B6"] }, "diode_direction": "COL2ROW", - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "community_layouts": ["ortho_5x12"], "layouts": { "LAYOUT_ortho_5x12": { diff --git a/keyboards/keycult/keycult60/keyboard.json b/keyboards/keycult/keycult60/keyboard.json new file mode 100755 index 0000000000..349472d87b --- /dev/null +++ b/keyboards/keycult/keycult60/keyboard.json @@ -0,0 +1,600 @@ +{ + "keyboard_name": "Keycult 60", + "manufacturer": "Yiancar-Designs", + "url": "https://yiancar-designs.com", + "maintainer": "Yiancar-Designs", + "usb": { + "vid": "0x8968", + "pid": "0x6339", + "device_version": "1.0.0" + }, + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "nkro": true + }, + "indicators": { + "caps_lock": "B6", + "on_state": 0 + }, + "matrix_pins": { + "cols": ["A1", "B1", "B0", "A7", "A6", "A5", "A4", "A3", "B2", "B10", "B11", "B12", "B13", "B14"], + "rows": ["A2", "B9", "B8", "B5", "B4"] + }, + "diode_direction": "COL2ROW", + "processor": "STM32F072", + "bootloader": "stm32-dfu", + "community_layouts": [ + "60_ansi", + "60_ansi_split_bs_rshift", + "60_ansi_tsangan", + "60_ansi_tsangan_split_bs_rshift", + "60_iso", + "60_iso_split_bs_rshift", + "60_iso_tsangan" + ], + "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": [0, 13], "x": 13, "y": 0}, + {"matrix": [2, 12], "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": 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.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, + {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} + ] + }, + "LAYOUT_60_ansi": { + "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.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, + {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} + ] + }, + "LAYOUT_60_ansi_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": [2, 12], "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.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, + {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} + ] + }, + "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, 6], "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": { + "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.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, + {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} + ] + }, + "LAYOUT_60_iso_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": [2, 12], "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.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, + {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} + ] + }, + "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, 6], "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_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": [2, 12], "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, 6], "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} + ] + } + } +} diff --git a/keyboards/keycult/keycult60/keycult60.c b/keyboards/keycult/keycult60/keycult60.c new file mode 100755 index 0000000000..69a12503a3 --- /dev/null +++ b/keyboards/keycult/keycult60/keycult60.c @@ -0,0 +1,21 @@ +/* Copyright 2025 Yiancar-Designs + * + * 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 "quantum.h" + +void led_init_ports(void) { + // Set our LED pins as open drain outputs + gpio_set_pin_output_open_drain(LED_CAPS_LOCK_PIN); +} diff --git a/keyboards/keycult/keycult60/keymaps/default/keymap.c b/keyboards/keycult/keycult60/keymaps/default/keymap.c new file mode 100644 index 0000000000..47e27e4607 --- /dev/null +++ b/keyboards/keycult/keycult60/keymaps/default/keymap.c @@ -0,0 +1,32 @@ +/* Copyright 2025 Yiancar-Designs + * + * 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_DEL, + 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_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_APP, KC_RCTL), + +[1] = LAYOUT_all( /* FN */ + 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_DEL, KC_TRNS, + KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SCRL, KC_PAUS, KC_UP, KC_TRNS, KC_TRNS, + KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END, KC_PGDN, KC_DOWN, KC_TRNS, KC_TRNS, + KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) +}; diff --git a/keyboards/keycult/keycult60/readme.md b/keyboards/keycult/keycult60/readme.md new file mode 100755 index 0000000000..0889d7686b --- /dev/null +++ b/keyboards/keycult/keycult60/readme.md @@ -0,0 +1,32 @@ +# Keycult 60 + +This is a standard 60% layout PCB. + +* Keyboard Maintainer: [Yiancar](http://yiancar-designs.com/) and on [GitHub](https://github.com/yiancar) +* Hardware Supported: A 60% keyboard with STM32F072CB +* Hardware Availability: https://novelkeys.com/ + +## Instructions + +### Build + +Make example for this keyboard (after setting up your build environment): + + make keycult/keycult60:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +### Reset + +- Unplug +- Hold Escape +- Plug In +- Unplug +- Release Escape + +### Flash + +- Unplug +- Hold Escape +- Plug In +- Flash using QMK Toolbox or CLI (`make keycult/keycult60:<keymap>:flash`) diff --git a/keyboards/keycult/keycult60/rules.mk b/keyboards/keycult/keycult60/rules.mk new file mode 100644 index 0000000000..0ab54aaaf7 --- /dev/null +++ b/keyboards/keycult/keycult60/rules.mk @@ -0,0 +1,2 @@ +# Wildcard to allow APM32 MCU +DFU_SUFFIX_ARGS = -v FFFF -p FFFF diff --git a/keyboards/keyhive/ergosaurus/keyboard.json b/keyboards/keyhive/ergosaurus/keyboard.json index 9a4810a9a5..754201c2b1 100644 --- a/keyboards/keyhive/ergosaurus/keyboard.json +++ b/keyboards/keyhive/ergosaurus/keyboard.json @@ -42,8 +42,7 @@ "rows": ["B5", "B4", "E6", "D4", "F6", "D3", "D2", "F4", "F5"] }, "diode_direction": "COL2ROW", - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "community_layouts": ["alice_split_bs"], "layout_aliases": { "LAYOUT": "LAYOUT_alice_split_bs" diff --git a/keyboards/keyhive/maypad/keyboard.json b/keyboards/keyhive/maypad/keyboard.json index d0dad2b6cf..adc04dc386 100644 --- a/keyboards/keyhive/maypad/keyboard.json +++ b/keyboards/keyhive/maypad/keyboard.json @@ -27,8 +27,7 @@ "rows": ["C6", "D7", "E6", "B4", "B5"] }, "diode_direction": "COL2ROW", - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "community_layouts": ["ortho_5x4", "numpad_5x4"], "layouts": { "LAYOUT_numpad_5x4": { diff --git a/keyboards/keyhive/navi10/rev0/keyboard.json b/keyboards/keyhive/navi10/rev0/keyboard.json index ab0e63ef1e..9e362651ef 100644 --- a/keyboards/keyhive/navi10/rev0/keyboard.json +++ b/keyboards/keyhive/navi10/rev0/keyboard.json @@ -7,8 +7,7 @@ "rows": ["B6", "B2", "B3", "B4"] }, "diode_direction": "COL2ROW", - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "features": { "bootmagic": false, "mousekey": false, diff --git a/keyboards/keyhive/navi10/rev2/keyboard.json b/keyboards/keyhive/navi10/rev2/keyboard.json index ac5148b787..df4d11b6e3 100644 --- a/keyboards/keyhive/navi10/rev2/keyboard.json +++ b/keyboards/keyhive/navi10/rev2/keyboard.json @@ -7,8 +7,7 @@ "rows": ["B6", "B2", "B3", "B4"] }, "diode_direction": "COL2ROW", - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "features": { "bootmagic": false, "mousekey": false, diff --git a/keyboards/keyhive/navi10/rev3/keyboard.json b/keyboards/keyhive/navi10/rev3/keyboard.json index 9f403a3513..8fa609c52f 100644 --- a/keyboards/keyhive/navi10/rev3/keyboard.json +++ b/keyboards/keyhive/navi10/rev3/keyboard.json @@ -7,8 +7,7 @@ "rows": ["B6", "B2", "B3", "B4"] }, "diode_direction": "COL2ROW", - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "features": { "bootmagic": false, "mousekey": false, diff --git a/keyboards/keyhive/opus/keyboard.json b/keyboards/keyhive/opus/keyboard.json index 6072a59f5d..58bd2238db 100644 --- a/keyboards/keyhive/opus/keyboard.json +++ b/keyboards/keyhive/opus/keyboard.json @@ -24,8 +24,7 @@ "rows": ["B1", "B3", "B2", "B6"] }, "diode_direction": "COL2ROW", - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/keyprez/unicorn/keyboard.json b/keyboards/keyprez/unicorn/keyboard.json index 20aa2e3e73..9a8d39a416 100644 --- a/keyboards/keyprez/unicorn/keyboard.json +++ b/keyboards/keyprez/unicorn/keyboard.json @@ -42,8 +42,7 @@ "pin": "D0" } }, - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/keysofkings/twokey/keyboard.json b/keyboards/keysofkings/twokey/keyboard.json index 2ec17f2b93..f0c46e34a6 100644 --- a/keyboards/keysofkings/twokey/keyboard.json +++ b/keyboards/keysofkings/twokey/keyboard.json @@ -53,8 +53,7 @@ {"pin_a": "D7", "pin_b": "E6", "resolution": 1} ] }, - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/kinesis/kint32/chconf.h b/keyboards/kinesis/kint32/chconf.h new file mode 100644 index 0000000000..5c0b6e8580 --- /dev/null +++ b/keyboards/kinesis/kint32/chconf.h @@ -0,0 +1,28 @@ +/* Copyright 2020 QMK + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +/* + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/kinesis/kint32/chconf.h -r platforms/chibios/common/configs/chconf.h` + */ + +#pragma once + +#define CH_CFG_ST_TIMEDELTA 0 + +#define CH_CFG_TIME_QUANTUM 20 + +#include_next <chconf.h> diff --git a/keyboards/kinesis/kint32/config.h b/keyboards/kinesis/kint32/config.h new file mode 100644 index 0000000000..a794b4d8b0 --- /dev/null +++ b/keyboards/kinesis/kint32/config.h @@ -0,0 +1,19 @@ +/* Copyright 2020 QMK + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +#pragma once + +#define EEPROM_SIZE 2048 diff --git a/keyboards/kinesis/kint32/keyboard.json b/keyboards/kinesis/kint32/keyboard.json new file mode 100644 index 0000000000..4f403c2ffa --- /dev/null +++ b/keyboards/kinesis/kint32/keyboard.json @@ -0,0 +1,125 @@ +{ + "manufacturer": "https://github.com/stapelberg", + "keyboard_name": "kinT (kint32)", + "bootloader": "halfkay", + "build": { + "debounce_type": "sym_eager_pk" + }, + "debounce": 20, + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "indicators": { + "caps_lock": "C7", + "on_state": 0 + }, + "matrix_pins": { + "cols": ["B3", "D1", "C0", "D5", "C1", "B2", "D4"], + "rows": ["D3", "C3", "C4", "C6", "D2", "B0", "D7", "A12", "A13", "B17", "B16", "D0", "B1", "C2", "D6"] + }, + "processor": "MK20DX256", + "usb": { + "device_version": "0.0.1", + "max_power": 100, + "pid": "0x345C", + "vid": "0x1209" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [12, 0], "x": 0, "y": 0, "w": 0.69, "h": 0.85}, + {"matrix": [13, 0], "x": 0.7, "y": 0, "w": 0.69, "h": 0.85}, + {"matrix": [14, 0], "x": 1.39, "y": 0, "w": 0.69, "h": 0.85}, + {"matrix": [12, 1], "x": 2.09, "y": 0, "w": 0.69, "h": 0.85}, + {"matrix": [13, 1], "x": 2.78, "y": 0, "w": 0.69, "h": 0.85}, + {"matrix": [14, 1], "x": 3.48, "y": 0, "w": 0.69, "h": 0.85}, + {"matrix": [12, 2], "x": 4.17, "y": 0, "w": 0.69, "h": 0.85}, + {"matrix": [13, 2], "x": 4.87, "y": 0, "w": 0.69, "h": 0.85}, + {"matrix": [14, 2], "x": 5.56, "y": 0, "w": 0.69, "h": 0.85}, + {"matrix": [12, 3], "x": 9.25, "y": 0, "w": 0.69, "h": 0.85}, + {"matrix": [13, 3], "x": 9.95, "y": 0, "w": 0.69, "h": 0.85}, + {"matrix": [14, 3], "x": 10.64, "y": 0, "w": 0.69, "h": 0.85}, + {"matrix": [12, 4], "x": 11.34, "y": 0, "w": 0.69, "h": 0.85}, + {"matrix": [13, 4], "x": 12.03, "y": 0, "w": 0.69, "h": 0.85}, + {"matrix": [14, 4], "x": 12.73, "y": 0, "w": 0.69, "h": 0.85}, + {"matrix": [12, 5], "x": 13.42, "y": 0, "w": 0.69, "h": 0.85}, + {"matrix": [14, 5], "x": 14.12, "y": 0, "w": 0.69, "h": 0.85}, + {"matrix": [13, 5], "x": 14.81, "y": 0, "w": 0.69, "h": 0.85}, + {"matrix": [0, 0], "x": 0, "y": 1.25, "w": 1.25}, + {"matrix": [1, 0], "x": 1.25, "y": 1.25}, + {"matrix": [2, 0], "x": 2.25, "y": 1}, + {"matrix": [3, 0], "x": 3.25, "y": 1}, + {"matrix": [4, 0], "x": 4.25, "y": 1}, + {"matrix": [5, 0], "x": 5.25, "y": 1}, + {"matrix": [6, 0], "x": 9.25, "y": 1}, + {"matrix": [7, 0], "x": 10.25, "y": 1}, + {"matrix": [8, 0], "x": 11.25, "y": 1}, + {"matrix": [9, 0], "x": 12.25, "y": 1}, + {"matrix": [10, 0], "x": 13.25, "y": 1.25}, + {"matrix": [11, 0], "x": 14.25, "y": 1.25, "w": 1.25}, + {"matrix": [0, 1], "x": 0, "y": 2.25, "w": 1.25}, + {"matrix": [1, 1], "x": 1.25, "y": 2.25}, + {"matrix": [2, 1], "x": 2.25, "y": 2}, + {"matrix": [3, 1], "x": 3.25, "y": 2}, + {"matrix": [4, 1], "x": 4.25, "y": 2}, + {"matrix": [5, 1], "x": 5.25, "y": 2}, + {"matrix": [6, 1], "x": 9.25, "y": 2}, + {"matrix": [7, 1], "x": 10.25, "y": 2}, + {"matrix": [8, 1], "x": 11.25, "y": 2}, + {"matrix": [9, 1], "x": 12.25, "y": 2}, + {"matrix": [10, 1], "x": 13.25, "y": 2.25}, + {"matrix": [11, 1], "x": 14.25, "y": 2.25, "w": 1.25}, + {"matrix": [0, 2], "x": 0, "y": 3.25, "w": 1.25}, + {"matrix": [1, 2], "x": 1.25, "y": 3.25}, + {"matrix": [2, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 2], "x": 3.25, "y": 3}, + {"matrix": [4, 2], "x": 4.25, "y": 3}, + {"matrix": [5, 2], "x": 5.25, "y": 3}, + {"matrix": [6, 2], "x": 9.25, "y": 3}, + {"matrix": [7, 2], "x": 10.25, "y": 3}, + {"matrix": [8, 2], "x": 11.25, "y": 3}, + {"matrix": [9, 2], "x": 12.25, "y": 3}, + {"matrix": [10, 2], "x": 13.25, "y": 3.25}, + {"matrix": [11, 2], "x": 14.25, "y": 3.25, "w": 1.25}, + {"matrix": [0, 3], "x": 0, "y": 4.25, "w": 1.25}, + {"matrix": [1, 3], "x": 1.25, "y": 4.25}, + {"matrix": [2, 3], "x": 2.25, "y": 4}, + {"matrix": [3, 3], "x": 3.25, "y": 4}, + {"matrix": [4, 3], "x": 4.25, "y": 4}, + {"matrix": [5, 3], "x": 5.25, "y": 4}, + {"matrix": [6, 3], "x": 9.25, "y": 4}, + {"matrix": [7, 3], "x": 10.25, "y": 4}, + {"matrix": [8, 3], "x": 11.25, "y": 4}, + {"matrix": [9, 3], "x": 12.25, "y": 4}, + {"matrix": [10, 3], "x": 13.25, "y": 4.25}, + {"matrix": [11, 3], "x": 14.25, "y": 4.25, "w": 1.25}, + {"matrix": [1, 4], "x": 1.25, "y": 5.25}, + {"matrix": [2, 4], "x": 2.25, "y": 5}, + {"matrix": [3, 4], "x": 3.25, "y": 5}, + {"matrix": [5, 4], "x": 4.25, "y": 5}, + {"matrix": [6, 4], "x": 10.25, "y": 5}, + {"matrix": [8, 4], "x": 11.25, "y": 5}, + {"matrix": [9, 4], "x": 12.25, "y": 5}, + {"matrix": [10, 4], "x": 13.25, "y": 5.25}, + {"matrix": [5, 6], "x": 5.25, "y": 6}, + {"matrix": [5, 5], "x": 6.25, "y": 6}, + {"matrix": [9, 6], "x": 8.25, "y": 6}, + {"matrix": [8, 5], "x": 9.25, "y": 6}, + {"matrix": [3, 5], "x": 6.25, "y": 7}, + {"matrix": [8, 6], "x": 8.25, "y": 7}, + {"matrix": [3, 6], "x": 4.25, "y": 7, "h": 2}, + {"matrix": [4, 6], "x": 5.25, "y": 7, "h": 2}, + {"matrix": [2, 5], "x": 6.25, "y": 8}, + {"matrix": [6, 6], "x": 8.25, "y": 8}, + {"matrix": [7, 5], "x": 9.25, "y": 7, "h": 2}, + {"matrix": [6, 5], "x": 10.25, "y": 7, "h": 2} + ] + } + } +} diff --git a/keyboards/kinesis/kint32/kint32.c b/keyboards/kinesis/kint32/kint32.c new file mode 100644 index 0000000000..dd4ccbca3f --- /dev/null +++ b/keyboards/kinesis/kint32/kint32.c @@ -0,0 +1,27 @@ +/* Copyright 2020 QMK + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +#include "quantum.h" + +#define LED_POWER C5 + +void keyboard_pre_init_kb(void) { + // Turn on the Teensy 3.2 Power LED: + gpio_set_pin_output(LED_POWER); + gpio_write_pin_high(LED_POWER); + + keyboard_pre_init_user(); +} diff --git a/keyboards/kinesis/kint32/mcuconf.h b/keyboards/kinesis/kint32/mcuconf.h new file mode 100644 index 0000000000..327f5c9aa3 --- /dev/null +++ b/keyboards/kinesis/kint32/mcuconf.h @@ -0,0 +1,51 @@ +/* + ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +#ifndef _MCUCONF_H_ +#define _MCUCONF_H_ + +#define K20x_MCUCONF + +/* + * HAL driver system settings. + */ +/* PEE mode - 48MHz system clock driven by (16 MHz) external crystal. */ +#define KINETIS_MCG_MODE KINETIS_MCG_MODE_PEE +#define KINETIS_PLLCLK_FREQUENCY 96000000UL +#define KINETIS_SYSCLK_FREQUENCY 48000000UL + +/* + * SERIAL driver system settings. + */ +#define KINETIS_SERIAL_USE_UART0 TRUE + +/* + * USB driver settings + */ +#define KINETIS_USB_USE_USB0 TRUE + +/* Need to redefine this, since the default (configured for K20x) might not apply + * 2 for Teensy LC + * 5 for Teensy 3.x */ +#define KINETIS_USB_USB0_IRQ_PRIORITY 5 + +/* + * I2C driver settings + */ +#define KINETIS_I2C_USE_I2C0 TRUE +#define KINETIS_I2C_I2C0_PRIORITY 4 + +#endif /* _MCUCONF_H_ */ diff --git a/keyboards/kinesis/kint32/readme.md b/keyboards/kinesis/kint32/readme.md new file mode 100644 index 0000000000..fe85e3e1f4 --- /dev/null +++ b/keyboards/kinesis/kint32/readme.md @@ -0,0 +1,3 @@ +# kinesis_kint32 keyboard firmware + +Please see https://github.com/kinx-project/kint for details. diff --git a/keyboards/kingly_keys/little_foot/keyboard.json b/keyboards/kingly_keys/little_foot/keyboard.json index 2af4432d47..6188bed595 100644 --- a/keyboards/kingly_keys/little_foot/keyboard.json +++ b/keyboards/kingly_keys/little_foot/keyboard.json @@ -47,8 +47,7 @@ "rows": ["F6", "B6", "B2", "B3", "B1"] }, "diode_direction": "COL2ROW", - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "layouts": { "LAYOUT_split_space_base": { "layout": [ diff --git a/keyboards/kingly_keys/romac/keyboard.json b/keyboards/kingly_keys/romac/keyboard.json index 40c8dea64f..d9993f9917 100644 --- a/keyboards/kingly_keys/romac/keyboard.json +++ b/keyboards/kingly_keys/romac/keyboard.json @@ -24,8 +24,7 @@ "rows": ["D4", "C6", "D7", "E6"] }, "diode_direction": "COL2ROW", - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/kingly_keys/romac_plus/keyboard.json b/keyboards/kingly_keys/romac_plus/keyboard.json index b0b2f487cb..db34d4b465 100644 --- a/keyboards/kingly_keys/romac_plus/keyboard.json +++ b/keyboards/kingly_keys/romac_plus/keyboard.json @@ -53,8 +53,7 @@ "ws2812": { "pin": "F7" }, - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/knobgoblin/keyboard.json b/keyboards/knobgoblin/keyboard.json index 4cc00e26cd..d20191c82d 100644 --- a/keyboards/knobgoblin/keyboard.json +++ b/keyboards/knobgoblin/keyboard.json @@ -30,8 +30,7 @@ "bootmagic": { "matrix": [0, 1] }, - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "debounce": 2, "layouts": { "LAYOUT_ortho": { diff --git a/keyboards/koca58/board.h b/keyboards/koca58/board.h new file mode 100644 index 0000000000..d9de50c2b8 --- /dev/null +++ b/keyboards/koca58/board.h @@ -0,0 +1,8 @@ +/* Copyright 2025 oxnh */ +/* SPDX-License-Identifier: GPL-2.0-or-later */ +#pragma once + +#include_next <board.h> + +#undef STM32_HSECLK +#define STM32_HSECLK 12000000U diff --git a/keyboards/koca58/config.h b/keyboards/koca58/config.h new file mode 100644 index 0000000000..3256cc474f --- /dev/null +++ b/keyboards/koca58/config.h @@ -0,0 +1,10 @@ +/* Copyright 2025 oxnh */ +/* SPDX-License-Identifier: GPL-2.0-or-later */ +#pragma once + +#define SERIAL_USART_FULL_DUPLEX // Enable full duplex operation mode. +#define SERIAL_USART_TX_PIN C10 // USART TX pin +#define SERIAL_USART_RX_PIN C11 // USART RX pin +#define SERIAL_USART_DRIVER SD3 +#define USART3_PARTIALREMAP + diff --git a/keyboards/koca58/halconf.h b/keyboards/koca58/halconf.h new file mode 100644 index 0000000000..79853fe70d --- /dev/null +++ b/keyboards/koca58/halconf.h @@ -0,0 +1,7 @@ +/* Copyright 2025 oxnh */ +/* SPDX-License-Identifier: GPL-2.0-or-later */ +#pragma once + +#define HAL_USE_SERIAL TRUE + +#include_next <halconf.h> diff --git a/keyboards/koca58/keyboard.json b/keyboards/koca58/keyboard.json new file mode 100644 index 0000000000..5a58f6c26c --- /dev/null +++ b/keyboards/koca58/keyboard.json @@ -0,0 +1,100 @@ +{ + "manufacturer": "oxnh", + "keyboard_name": "Koca58", + "maintainer": "oxnh", + "bootloader": "stm32duino", + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "direct": [["A10", "A9", "A8", "C9", "C8", "C7", "B2", "B13", "B12", "B14", "B15", "C6", "A6", "A7", "C4", "C5", "B0", "B1", "B5", "A0", "A1", "A2", "A3", "A4", "A5", "C14", "C13", "B7", "B6"]] + }, + "processor": "STM32F103", + "split": { + "enabled": true, + "handedness": { + "pin": "C15" + }, + "matrix_pins": { + "right": { + "direct": [["A10", "A9", "A8", "C9", "C8", "C7", "B2", "B13", "B12", "B14", "B15", "C6", "A6", "A7", "C4", "C5", "B0", "B1", "C14", "A0", "A1", "A2", "A3", "A4", "A5", "C13", "B7", "B6", "B5"]] + } + }, + "serial": { + "driver": "usart" + } + }, + "url": "https://github.com/Hardware7253/Koca58", + "usb": { + "device_version": "1.0.0", + "pid": "0x5106", + "vid": "0x4C17" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0.45}, + {"matrix": [0, 1], "x": 1, "y": 0.375}, + {"matrix": [0, 2], "x": 2, "y": 0.125}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0.125}, + {"matrix": [0, 5], "x": 5, "y": 0.25}, + {"matrix": [1, 0], "x": 10, "y": 0.25}, + {"matrix": [1, 1], "x": 11, "y": 0.125}, + {"matrix": [1, 2], "x": 12, "y": 0}, + {"matrix": [1, 3], "x": 13, "y": 0.125}, + {"matrix": [1, 4], "x": 14, "y": 0.375}, + {"matrix": [1, 5], "x": 15, "y": 0.45}, + {"matrix": [0, 6], "x": 0, "y": 1.45}, + {"matrix": [0, 7], "x": 1, "y": 1.375}, + {"matrix": [0, 8], "x": 2, "y": 1.125}, + {"matrix": [0, 9], "x": 3, "y": 1}, + {"matrix": [0, 10], "x": 4, "y": 1.125}, + {"matrix": [0, 11], "x": 5, "y": 1.25}, + {"matrix": [1, 6], "x": 10, "y": 1.25}, + {"matrix": [1, 7], "x": 11, "y": 1.125}, + {"matrix": [1, 8], "x": 12, "y": 1}, + {"matrix": [1, 9], "x": 13, "y": 1.125}, + {"matrix": [1, 10], "x": 14, "y": 1.375}, + {"matrix": [1, 11], "x": 15, "y": 1.45}, + {"matrix": [0, 12], "x": 0, "y": 2.45}, + {"matrix": [0, 13], "x": 1, "y": 2.375}, + {"matrix": [0, 14], "x": 2, "y": 2.125}, + {"matrix": [0, 15], "x": 3, "y": 2}, + {"matrix": [0, 16], "x": 4, "y": 2.125}, + {"matrix": [0, 17], "x": 5, "y": 2.25}, + {"matrix": [1, 12], "x": 10, "y": 2.25}, + {"matrix": [1, 13], "x": 11, "y": 2.125}, + {"matrix": [1, 14], "x": 12, "y": 2}, + {"matrix": [1, 15], "x": 13, "y": 2.125}, + {"matrix": [1, 16], "x": 14, "y": 2.375}, + {"matrix": [1, 17], "x": 15, "y": 2.45}, + {"matrix": [0, 19], "x": 0, "y": 3.45}, + {"matrix": [0, 20], "x": 1, "y": 3.375}, + {"matrix": [0, 21], "x": 2, "y": 3.125}, + {"matrix": [0, 22], "x": 3, "y": 3}, + {"matrix": [0, 23], "x": 4, "y": 3.125}, + {"matrix": [0, 24], "x": 5, "y": 3.25}, + {"matrix": [0, 18], "x": 6, "y": 2.75}, + {"matrix": [1, 18], "x": 9, "y": 2.75}, + {"matrix": [1, 19], "x": 10, "y": 3.25}, + {"matrix": [1, 20], "x": 11, "y": 3.125}, + {"matrix": [1, 21], "x": 12, "y": 3}, + {"matrix": [1, 22], "x": 13, "y": 3.125}, + {"matrix": [1, 23], "x": 14, "y": 3.375}, + {"matrix": [1, 24], "x": 15, "y": 3.45}, + {"matrix": [0, 25], "x": 2.5, "y": 4.15}, + {"matrix": [0, 26], "x": 3.5, "y": 4.15}, + {"matrix": [0, 27], "x": 4.5, "y": 4.25}, + {"matrix": [0, 28], "x": 6, "y": 4.25, "h": 1.5}, + {"matrix": [1, 25], "x": 9, "y": 4.25, "h": 1.5}, + {"matrix": [1, 26], "x": 10.45, "y": 4.25}, + {"matrix": [1, 27], "x": 11.5, "y": 4.15}, + {"matrix": [1, 28], "x": 12.5, "y": 4.15} + ] + } + } +} diff --git a/keyboards/koca58/keymaps/default/keymap.c b/keyboards/koca58/keymaps/default/keymap.c new file mode 100644 index 0000000000..b571cadda8 --- /dev/null +++ b/keyboards/koca58/keymaps/default/keymap.c @@ -0,0 +1,78 @@ +/* Copyright 2025 oxnh */ +/* SPDX-License-Identifier: GPL-2.0-or-later */ + +#include QMK_KEYBOARD_H + +enum layer_number { + _QWERTY = 0, + _LOWER, + _RAISE, + _ADJUST, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* QWERTY + * ,-----------------------------------------. ,-----------------------------------------. + * | ESC | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | ` | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | Tab | Q | W | E | R | T | | Y | U | I | O | P | - | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * |LCTRL | A | S | D | F | G |-------. ,-------| H | J | K | L | ; | ' | + * |------+------+------+------+------+------| [ | | ] |------+------+------+------+------+------| + * |LShift| Z | X | C | V | B |-------| |-------| N | M | , | . | / |RShift| + * `-----------------------------------------/ / \ \-----------------------------------------' + * | LAlt | LGUI |LOWER | /Space / \Enter \ |RAISE |BackSP| RGUI | + * | | | |/ / \ \ | | | | + * `----------------------------' '------''--------------------' + */ + [_QWERTY] = LAYOUT( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_GRV, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_MINS, + KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LBRC, KC_RBRC, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_LALT, KC_LGUI, MO(_LOWER), KC_SPC, KC_ENT, MO(_RAISE), KC_BSPC, KC_RGUI + ), + /* LOWER + * ,-----------------------------------------. ,-----------------------------------------. + * | | | | | | | | | | | | | | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | ` | ! | @ | # | $ | % |-------. ,-------| ^ | & | * | ( | ) | ~ | + * |------+------+------+------+------+------| [ | | ] |------+------+------+------+------+------| + * | | | | | | |-------| |-------| | _ | + | { | } | | | + * `-----------------------------------------/ / \ \-----------------------------------------' + * | LAlt | LGUI |LOWER | /Space / \Enter \ |RAISE |BackSP| RGUI | + * | | | |/ / \ \ | | | | + * `----------------------------' '------''--------------------' + */ + [_LOWER] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______,_______, _______, _______, + 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_GRV, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_TILD, + _______, _______, _______, _______, _______, _______, _______, _______, XXXXXXX, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, + _______, _______, _______, _______, _______, _______, _______, _______ + ), + /* RAISE + * ,-----------------------------------------. ,-----------------------------------------. + * | | | | | | | | | | | | | | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | F1 | F2 | F3 | F4 | F5 | F6 |-------. ,-------| | Left | Down | Up |Right | | + * |------+------+------+------+------+------| [ | | ] |------+------+------+------+------+------| + * | F7 | F8 | F9 | F10 | F11 | F12 |-------| |-------| + | - | = | [ | ] | \ | + * `-----------------------------------------/ / \ \-----------------------------------------' + * | LAlt | LGUI |LOWER | /Space / \Enter \ |RAISE |BackSP| RGUI | + * | | | |/ / \ \ | | | | + * `----------------------------' '------''--------------------' + */ + + [_RAISE] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______, + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, XXXXXXX, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, XXXXXXX, + KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, KC_PLUS, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, + _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/koca58/mcuconf.h b/keyboards/koca58/mcuconf.h new file mode 100644 index 0000000000..3270d5f778 --- /dev/null +++ b/keyboards/koca58/mcuconf.h @@ -0,0 +1,11 @@ +/* Copyright 2025 oxnh */ +/* SPDX-License-Identifier: GPL-2.0-or-later */ +#pragma once + +#include_next <mcuconf.h> + +#undef STM32_SERIAL_USE_USART3 +#define STM32_SERIAL_USE_USART3 TRUE + +#undef STM32_PLLMUL_VALUE +#define STM32_PLLMUL_VALUE 6 diff --git a/keyboards/koca58/readme.md b/keyboards/koca58/readme.md new file mode 100644 index 0000000000..fbf1c59954 --- /dev/null +++ b/keyboards/koca58/readme.md @@ -0,0 +1,25 @@ +# Koca58 + + + +A Lily58 variant featuring SMT components, powered by an STM32F103 MCU and utilizing direct wiring. If you have a Lily58 with a soldered dev board (e.g., pro micro), please visit the original [Lily58](/keyboards/lily58) directory. + +* Keyboard Maintainer: [oxnh](https://github.com/Hardware7253) +* Hardware Supported: All Koca58 PCBs +* Hardware Availability: [Open source design](https://github.com/Hardware7253/Koca58) + +Make example for this keyboard (after setting up your build environment): + + make koca58:default + +Flashing example for this keyboard: + + make koca58: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: + +* **Physical reset button**: Briefly press the button on the back of the PCB before or during uploading firmware diff --git a/keyboards/ktec/ergodone/keyboard.json b/keyboards/ktec/ergodone/keyboard.json index 3c9b0208bb..d88d0f2090 100644 --- a/keyboards/ktec/ergodone/keyboard.json +++ b/keyboards/ktec/ergodone/keyboard.json @@ -2,8 +2,7 @@ "keyboard_name": "Ergodone", "manufacturer": "K.T.E.C.", "maintainer": "Yu He", - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "usb": { "vid": "0x1209", "pid": "0x2328", diff --git a/keyboards/kumaokobo/kudox/columner/keyboard.json b/keyboards/kumaokobo/kudox/columner/keyboard.json index 4345866382..ac3125abc7 100644 --- a/keyboards/kumaokobo/kudox/columner/keyboard.json +++ b/keyboards/kumaokobo/kudox/columner/keyboard.json @@ -39,8 +39,7 @@ "ws2812": { "pin": "D3" }, - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "features": { "bootmagic": false, "mousekey": true, diff --git a/keyboards/kumaokobo/kudox/rev1/keyboard.json b/keyboards/kumaokobo/kudox/rev1/keyboard.json index 65c01a798e..f056514c52 100644 --- a/keyboards/kumaokobo/kudox/rev1/keyboard.json +++ b/keyboards/kumaokobo/kudox/rev1/keyboard.json @@ -39,8 +39,7 @@ "ws2812": { "pin": "D3" }, - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "features": { "bootmagic": false, "mousekey": true, diff --git a/keyboards/kumaokobo/kudox/rev2/keyboard.json b/keyboards/kumaokobo/kudox/rev2/keyboard.json index 9df232c641..64940bfcdd 100644 --- a/keyboards/kumaokobo/kudox/rev2/keyboard.json +++ b/keyboards/kumaokobo/kudox/rev2/keyboard.json @@ -39,8 +39,7 @@ "ws2812": { "pin": "D3" }, - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "features": { "bootmagic": false, "mousekey": true, diff --git a/keyboards/kumaokobo/kudox/rev3/keyboard.json b/keyboards/kumaokobo/kudox/rev3/keyboard.json index cfd1511123..8c935a80da 100644 --- a/keyboards/kumaokobo/kudox/rev3/keyboard.json +++ b/keyboards/kumaokobo/kudox/rev3/keyboard.json @@ -39,8 +39,7 @@ "ws2812": { "pin": "D3" }, - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "features": { "bootmagic": false, "mousekey": true, diff --git a/keyboards/kumaokobo/kudox_full/rev1/keyboard.json b/keyboards/kumaokobo/kudox_full/rev1/keyboard.json index b79deec7dc..81a3d5c4dd 100644 --- a/keyboards/kumaokobo/kudox_full/rev1/keyboard.json +++ b/keyboards/kumaokobo/kudox_full/rev1/keyboard.json @@ -39,8 +39,7 @@ "ws2812": { "pin": "D3" }, - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "features": { "bootmagic": true, "mousekey": true, diff --git a/keyboards/kumaokobo/kudox_game/info.json b/keyboards/kumaokobo/kudox_game/info.json index 8750facede..498f2c581d 100644 --- a/keyboards/kumaokobo/kudox_game/info.json +++ b/keyboards/kumaokobo/kudox_game/info.json @@ -6,6 +6,5 @@ "vid": "0xABBA", "pid": "0x9696" }, - "processor": "atmega32u4", - "bootloader": "caterina" + "development_board": "promicro" } diff --git a/keyboards/kumaokobo/pico/65keys/keyboard.json b/keyboards/kumaokobo/pico/65keys/keyboard.json index db2ca9fdca..2e8db34b38 100644 --- a/keyboards/kumaokobo/pico/65keys/keyboard.json +++ b/keyboards/kumaokobo/pico/65keys/keyboard.json @@ -39,8 +39,7 @@ "ws2812": { "pin": "D3" }, - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "features": { "bootmagic": false, "mousekey": true, diff --git a/keyboards/kumaokobo/pico/70keys/keyboard.json b/keyboards/kumaokobo/pico/70keys/keyboard.json index 00add13874..3a8e41ecba 100644 --- a/keyboards/kumaokobo/pico/70keys/keyboard.json +++ b/keyboards/kumaokobo/pico/70keys/keyboard.json @@ -39,8 +39,7 @@ "ws2812": { "pin": "D3" }, - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "features": { "bootmagic": false, "mousekey": true, 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/lendunistus/rpneko65/rev1/config.h b/keyboards/lendunistus/rpneko65/rev1/config.h deleted file mode 100644 index 6786155fbf..0000000000 --- a/keyboards/lendunistus/rpneko65/rev1/config.h +++ /dev/null @@ -1,6 +0,0 @@ -// Copyright 2023 lendunistus -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#define CAPS_LOCK_ENABLE true diff --git a/keyboards/lendunistus/rpneko65/rev1/rev1.c b/keyboards/lendunistus/rpneko65/rev1/rev1.c index 2cb9cf07f8..a542dc6b31 100644 --- a/keyboards/lendunistus/rpneko65/rev1/rev1.c +++ b/keyboards/lendunistus/rpneko65/rev1/rev1.c @@ -16,6 +16,10 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. */ #include "quantum.h" +#ifndef CAPS_LOCK_ENABLE +# define CAPS_LOCK_ENABLE true +#endif + bool led_update_kb(led_t led_state) { bool res = led_update_user(led_state); if (CAPS_LOCK_ENABLE && res) { 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/magic_force/mf17/keyboard.json b/keyboards/magic_force/mf17/keyboard.json index 705318e71e..10469f63c6 100644 --- a/keyboards/magic_force/mf17/keyboard.json +++ b/keyboards/magic_force/mf17/keyboard.json @@ -96,7 +96,7 @@ "sleep": true }, "indicators": { - "caps_lock": "B15", + "num_lock": "B15", "on_state": 0 }, "community_layouts": ["numpad_5x4"], 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 - - - --=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- - -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 - - - -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/mechlovin/zed60/keyboard.json b/keyboards/mechlovin/zed60/keyboard.json index 480517a301..aa56a3aab8 100644 --- a/keyboards/mechlovin/zed60/keyboard.json +++ b/keyboards/mechlovin/zed60/keyboard.json @@ -48,7 +48,8 @@ "pin": "A7" }, "layout_aliases": { - "LAYOUT_all": "LAYOUT_60_ansi_split_bs_rshift" + "LAYOUT_all": "LAYOUT_60_ansi_split_bs_rshift", + "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift" }, "layouts": { "LAYOUT_60_ansi": { @@ -249,7 +250,7 @@ {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} ] }, - "LAYOUT_60_tsangan_hhkb": { + "LAYOUT_60_ansi_tsangan_split_bs_rshift": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 1], "x": 1, "y": 0}, @@ -311,7 +312,7 @@ {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, - {"matrix": [4, 12], "x": 12, "y": 4}, + {"matrix": [4, 12], "x": 12.5, "y": 4}, {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} ] } 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/puckbuddy/halconf.h b/keyboards/mechwild/puckbuddy/halconf.h index 07e8cdd17b..fb6312d554 100644 --- a/keyboards/mechwild/puckbuddy/halconf.h +++ b/keyboards/mechwild/puckbuddy/halconf.h @@ -5,9 +5,6 @@ #pragma once #define HAL_USE_I2C TRUE - #define HAL_USE_SPI TRUE -#define SPI_USE_WAIT TRUE -#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD #include_next <halconf.h> diff --git a/keyboards/mechwild/sugarglider/halconf.h b/keyboards/mechwild/sugarglider/halconf.h index 23a1dc04b3..76bd6cf256 100644 --- a/keyboards/mechwild/sugarglider/halconf.h +++ b/keyboards/mechwild/sugarglider/halconf.h @@ -4,9 +4,6 @@ #pragma once #define HAL_USE_I2C TRUE - #define HAL_USE_SPI TRUE -#define SPI_USE_WAIT TRUE -#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD #include_next <halconf.h> 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/mlego/m65/rev1/keyboard.json b/keyboards/mlego/m65/rev1/keyboard.json index 0e69b96a19..6959d11456 100644 --- a/keyboards/mlego/m65/rev1/keyboard.json +++ b/keyboards/mlego/m65/rev1/keyboard.json @@ -3,7 +3,6 @@ "keyboard_name": "mlego/m65 rev1", "maintainer": "alin elena", "bootloader": "stm32duino", - "debounce": 5, "diode_direction": "COL2ROW", "encoder": { "rotary": [ diff --git a/keyboards/moky/moky67/halconf.h b/keyboards/moky/moky67/halconf.h index 0a59a1fcb8..5d94695838 100644 --- a/keyboards/moky/moky67/halconf.h +++ b/keyboards/moky/moky67/halconf.h @@ -4,7 +4,5 @@ #pragma once #define HAL_USE_SPI TRUE -#define SPI_USE_WAIT TRUE -#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD #include_next <halconf.h> diff --git a/keyboards/moky/moky88/halconf.h b/keyboards/moky/moky88/halconf.h index 0a59a1fcb8..5d94695838 100644 --- a/keyboards/moky/moky88/halconf.h +++ b/keyboards/moky/moky88/halconf.h @@ -4,7 +4,5 @@ #pragma once #define HAL_USE_SPI TRUE -#define SPI_USE_WAIT TRUE -#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD #include_next <halconf.h> diff --git a/keyboards/monsgeek/m1/halconf.h b/keyboards/monsgeek/m1/halconf.h index 2f64e65393..2ddb9c35d8 100644 --- a/keyboards/monsgeek/m1/halconf.h +++ b/keyboards/monsgeek/m1/halconf.h @@ -17,7 +17,5 @@ #define HAL_USE_I2C TRUE #define HAL_USE_SPI TRUE -#define SPI_USE_WAIT TRUE -#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD #include_next <halconf.h> diff --git a/keyboards/monsgeek/m3/halconf.h b/keyboards/monsgeek/m3/halconf.h index 55bfe5c977..b8ebdb3369 100644 --- a/keyboards/monsgeek/m3/halconf.h +++ b/keyboards/monsgeek/m3/halconf.h @@ -17,7 +17,5 @@ #define HAL_USE_I2C TRUE #define HAL_USE_SPI TRUE -#define SPI_USE_WAIT TRUE -#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD #include_next <halconf.h> diff --git a/keyboards/monsgeek/m5/halconf.h b/keyboards/monsgeek/m5/halconf.h index 2f64e65393..2ddb9c35d8 100644 --- a/keyboards/monsgeek/m5/halconf.h +++ b/keyboards/monsgeek/m5/halconf.h @@ -17,7 +17,5 @@ #define HAL_USE_I2C TRUE #define HAL_USE_SPI TRUE -#define SPI_USE_WAIT TRUE -#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD #include_next <halconf.h> diff --git a/keyboards/monsgeek/m6/halconf.h b/keyboards/monsgeek/m6/halconf.h index 2f64e65393..2ddb9c35d8 100644 --- a/keyboards/monsgeek/m6/halconf.h +++ b/keyboards/monsgeek/m6/halconf.h @@ -17,7 +17,5 @@ #define HAL_USE_I2C TRUE #define HAL_USE_SPI TRUE -#define SPI_USE_WAIT TRUE -#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD #include_next <halconf.h> 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/orthograph/keyboard.json b/keyboards/orthograph/keyboard.json index d9ec03a7ad..cb259a620b 100644 --- a/keyboards/orthograph/keyboard.json +++ b/keyboards/orthograph/keyboard.json @@ -32,7 +32,9 @@ "pin": "E6" }, "transport": { - "sync_matrix_state": true + "sync": { + "matrix_state": true + } }, "usb_detect":{ "enabled": true 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/phentech/rpk_001/halconf.h b/keyboards/phentech/rpk_001/halconf.h index 8760386e81..872e0217df 100644 --- a/keyboards/phentech/rpk_001/halconf.h +++ b/keyboards/phentech/rpk_001/halconf.h @@ -4,7 +4,5 @@ #pragma once #define HAL_USE_SPI TRUE -#define SPI_USE_WAIT TRUE -#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD #include_next <halconf.h> 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/projectd/65/projectd_65_ansi/halconf.h b/keyboards/projectd/65/projectd_65_ansi/halconf.h index 64a184eb92..e17fed3886 100644 --- a/keyboards/projectd/65/projectd_65_ansi/halconf.h +++ b/keyboards/projectd/65/projectd_65_ansi/halconf.h @@ -17,7 +17,5 @@ #pragma once #define HAL_USE_SPI TRUE -#define SPI_USE_WAIT TRUE -#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD #include_next <halconf.h> diff --git a/keyboards/projectd/75/ansi/halconf.h b/keyboards/projectd/75/ansi/halconf.h index 64a184eb92..e17fed3886 100644 --- a/keyboards/projectd/75/ansi/halconf.h +++ b/keyboards/projectd/75/ansi/halconf.h @@ -17,7 +17,5 @@ #pragma once #define HAL_USE_SPI TRUE -#define SPI_USE_WAIT TRUE -#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD #include_next <halconf.h> diff --git a/keyboards/projectd/75/iso/halconf.h b/keyboards/projectd/75/iso/halconf.h index 64a184eb92..e17fed3886 100644 --- a/keyboards/projectd/75/iso/halconf.h +++ b/keyboards/projectd/75/iso/halconf.h @@ -17,7 +17,5 @@ #pragma once #define HAL_USE_SPI TRUE -#define SPI_USE_WAIT TRUE -#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD #include_next <halconf.h> 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/salicylic_acid3/7skb/rev1/keyboard.json b/keyboards/salicylic_acid3/7skb/rev1/keyboard.json index 4a338811ea..342b81cbbd 100644 --- a/keyboards/salicylic_acid3/7skb/rev1/keyboard.json +++ b/keyboards/salicylic_acid3/7skb/rev1/keyboard.json @@ -59,8 +59,7 @@ "build": { "lto": true }, - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/salicylic_acid3/7splus/keyboard.json b/keyboards/salicylic_acid3/7splus/keyboard.json index aa04293c9c..5d2cab5a98 100644 --- a/keyboards/salicylic_acid3/7splus/keyboard.json +++ b/keyboards/salicylic_acid3/7splus/keyboard.json @@ -56,8 +56,7 @@ "ws2812": { "pin": "D3" }, - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/salicylic_acid3/ajisai74/keyboard.json b/keyboards/salicylic_acid3/ajisai74/keyboard.json index a74cb07902..34743952fb 100644 --- a/keyboards/salicylic_acid3/ajisai74/keyboard.json +++ b/keyboards/salicylic_acid3/ajisai74/keyboard.json @@ -34,8 +34,7 @@ "pin": "D2" } }, - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/salicylic_acid3/ergoarrows/keyboard.json b/keyboards/salicylic_acid3/ergoarrows/keyboard.json index 08911ca103..ac9ea3179a 100644 --- a/keyboards/salicylic_acid3/ergoarrows/keyboard.json +++ b/keyboards/salicylic_acid3/ergoarrows/keyboard.json @@ -55,8 +55,7 @@ "ws2812": { "pin": "D3" }, - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/salicylic_acid3/getta25/keymaps/oled/config.h b/keyboards/salicylic_acid3/getta25/keymaps/oled/config.h index 23f8b5343f..15c247f961 100644 --- a/keyboards/salicylic_acid3/getta25/keymaps/oled/config.h +++ b/keyboards/salicylic_acid3/getta25/keymaps/oled/config.h @@ -21,5 +21,5 @@ #define QUICK_TAP_TERM 0 #define TAPPING_TERM 180 -#define OLED_FONT_H "keyboards/getta25/keymaps/oled/glcdfont.c" +#define OLED_FONT_H "keyboards/salicylic_acid3/getta25/keymaps/oled/glcdfont.c" diff --git a/keyboards/salicylic_acid3/getta25/rev1/keyboard.json b/keyboards/salicylic_acid3/getta25/rev1/keyboard.json index 884ed684ea..d6e4f60c54 100644 --- a/keyboards/salicylic_acid3/getta25/rev1/keyboard.json +++ b/keyboards/salicylic_acid3/getta25/rev1/keyboard.json @@ -46,8 +46,7 @@ "rows": ["D4", "C6", "D7", "E6", "B2"] }, "diode_direction": "COL2ROW", - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/salicylic_acid3/guide68/keyboard.json b/keyboards/salicylic_acid3/guide68/keyboard.json index 327794adf9..99235fdf6a 100644 --- a/keyboards/salicylic_acid3/guide68/keyboard.json +++ b/keyboards/salicylic_acid3/guide68/keyboard.json @@ -2,7 +2,7 @@ "manufacturer": "Salicylic-acid3", "keyboard_name": "guide68", "maintainer": "Salicylic-acid3", - "bootloader": "caterina", + "development_board": "promicro", "diode_direction": "COL2ROW", "features": { "bootmagic": true, @@ -15,7 +15,6 @@ "cols": ["F4", "F5", "F6", "F7", "B1", "B3", "B2", "B5"], "rows": ["D4", "C6", "D7", "E6", "B4"] }, - "processor": "atmega32u4", "usb": { "vid": "0x04D8", "pid": "0xE6DD", diff --git a/keyboards/salicylic_acid3/jisplit89/rev1/keyboard.json b/keyboards/salicylic_acid3/jisplit89/rev1/keyboard.json index e4525ecf74..03e376adde 100644 --- a/keyboards/salicylic_acid3/jisplit89/rev1/keyboard.json +++ b/keyboards/salicylic_acid3/jisplit89/rev1/keyboard.json @@ -56,8 +56,7 @@ "ws2812": { "pin": "D3" }, - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/salicylic_acid3/nafuda/keyboard.json b/keyboards/salicylic_acid3/nafuda/keyboard.json index e3c84885cf..0a33ad58c9 100644 --- a/keyboards/salicylic_acid3/nafuda/keyboard.json +++ b/keyboards/salicylic_acid3/nafuda/keyboard.json @@ -46,8 +46,7 @@ "rows": ["D1", "D0", "D4"] }, "diode_direction": "COL2ROW", - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/salicylic_acid3/naked48/rev1/keyboard.json b/keyboards/salicylic_acid3/naked48/rev1/keyboard.json index 3bac1d8864..2cf2dbc45b 100644 --- a/keyboards/salicylic_acid3/naked48/rev1/keyboard.json +++ b/keyboards/salicylic_acid3/naked48/rev1/keyboard.json @@ -63,8 +63,7 @@ "ws2812": { "pin": "D3" }, - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/salicylic_acid3/naked60/rev1/keyboard.json b/keyboards/salicylic_acid3/naked60/rev1/keyboard.json index 5037414c3d..f41d2e1413 100644 --- a/keyboards/salicylic_acid3/naked60/rev1/keyboard.json +++ b/keyboards/salicylic_acid3/naked60/rev1/keyboard.json @@ -37,8 +37,7 @@ } } }, - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/salicylic_acid3/naked64/rev1/keyboard.json b/keyboards/salicylic_acid3/naked64/rev1/keyboard.json index 688edf53d3..be60079590 100644 --- a/keyboards/salicylic_acid3/naked64/rev1/keyboard.json +++ b/keyboards/salicylic_acid3/naked64/rev1/keyboard.json @@ -51,8 +51,7 @@ "ws2812": { "pin": "B6" }, - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/salicylic_acid3/nknl7en/keyboard.json b/keyboards/salicylic_acid3/nknl7en/keyboard.json index 3b6f71c58d..2f3b9609df 100644 --- a/keyboards/salicylic_acid3/nknl7en/keyboard.json +++ b/keyboards/salicylic_acid3/nknl7en/keyboard.json @@ -55,8 +55,7 @@ "ws2812": { "pin": "D3" }, - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/salicylic_acid3/nknl7jp/keyboard.json b/keyboards/salicylic_acid3/nknl7jp/keyboard.json index 66daa50da7..818644dd7d 100644 --- a/keyboards/salicylic_acid3/nknl7jp/keyboard.json +++ b/keyboards/salicylic_acid3/nknl7jp/keyboard.json @@ -55,8 +55,7 @@ "ws2812": { "pin": "D3" }, - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/salicylic_acid3/setta21/rev1/keyboard.json b/keyboards/salicylic_acid3/setta21/rev1/keyboard.json index 75517a7d40..545c6285e4 100644 --- a/keyboards/salicylic_acid3/setta21/rev1/keyboard.json +++ b/keyboards/salicylic_acid3/setta21/rev1/keyboard.json @@ -76,8 +76,7 @@ "rows": ["D4", "C6", "D7", "E6"] }, "diode_direction": "COL2ROW", - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "community_layouts": ["numpad_6x4"], "layouts": { "LAYOUT_numpad_6x4": { diff --git a/keyboards/sawnsprojects/okayu/halconf.h b/keyboards/sawnsprojects/okayu/halconf.h index eb4e81c9ac..08878e9558 100644 --- a/keyboards/sawnsprojects/okayu/halconf.h +++ b/keyboards/sawnsprojects/okayu/halconf.h @@ -4,6 +4,5 @@ #pragma once #define HAL_USE_SPI TRUE -#define SPI_USE_WAIT TRUE -#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD + #include_next <halconf.h> diff --git a/keyboards/sck/neiso/keyboard.json b/keyboards/sck/neiso/keyboard.json index 51c1fb0092..93d3e5a905 100644 --- a/keyboards/sck/neiso/keyboard.json +++ b/keyboards/sck/neiso/keyboard.json @@ -25,8 +25,7 @@ "rows": ["F4"] }, "diode_direction": "COL2ROW", - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/sendyyeah/75pixels/keyboard.json b/keyboards/sendyyeah/75pixels/keyboard.json index 8200574dd9..0d23952052 100644 --- a/keyboards/sendyyeah/75pixels/keyboard.json +++ b/keyboards/sendyyeah/75pixels/keyboard.json @@ -19,8 +19,7 @@ "rows": ["B6", "F4", "F5", "F6", "F7", "B1", "B3", "B2", "B4", "B5"] }, "diode_direction": "COL2ROW", - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "community_layouts": ["ortho_5x15"], "layouts": { "LAYOUT_ortho_5x15": { diff --git a/keyboards/sendyyeah/bevi/keyboard.json b/keyboards/sendyyeah/bevi/keyboard.json index 2c45339d26..e408ded1b4 100644 --- a/keyboards/sendyyeah/bevi/keyboard.json +++ b/keyboards/sendyyeah/bevi/keyboard.json @@ -19,8 +19,7 @@ "rows": ["B3", "B2", "D3", "D2", "D1", "D0", "D4", "C6", "D7", "E6"] }, "diode_direction": "COL2ROW", - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/sendyyeah/pix/keyboard.json b/keyboards/sendyyeah/pix/keyboard.json index bb74798d00..6f81d20d01 100644 --- a/keyboards/sendyyeah/pix/keyboard.json +++ b/keyboards/sendyyeah/pix/keyboard.json @@ -34,8 +34,7 @@ {"pin_a": "B1", "pin_b": "B3"} ] }, - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "features": { "bootmagic": false, "encoder": true, diff --git a/keyboards/sergiopoverony/creator_pro/keyboard.json b/keyboards/sergiopoverony/creator_pro/keyboard.json index 9b3cafe183..f5d2fb0afb 100644 --- a/keyboards/sergiopoverony/creator_pro/keyboard.json +++ b/keyboards/sergiopoverony/creator_pro/keyboard.json @@ -13,8 +13,7 @@ {"pin_a": "D2", "pin_b": "D3", "resolution": 1} ] }, - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "features": { "bootmagic": false, "command": true, diff --git a/keyboards/shandoncodes/mino/hotswap/keyboard.json b/keyboards/shandoncodes/mino/hotswap/keyboard.json index b7f55f6535..d9f460b391 100644 --- a/keyboards/shandoncodes/mino/hotswap/keyboard.json +++ b/keyboards/shandoncodes/mino/hotswap/keyboard.json @@ -27,8 +27,7 @@ "rows": ["D3", "C6", "D4", "D2"] }, "diode_direction": "COL2ROW", - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "layouts": { "LAYOUT_default": { "layout": [ diff --git a/keyboards/shapeshifter4060/keyboard.json b/keyboards/shapeshifter4060/keyboard.json index 9274923088..5f7d7d3150 100644 --- a/keyboards/shapeshifter4060/keyboard.json +++ b/keyboards/shapeshifter4060/keyboard.json @@ -27,8 +27,7 @@ "rows": ["F4", "F5", "F6", "F7"] }, "diode_direction": "ROW2COL", - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/sharkoon/skiller_sgk50_s2/halconf.h b/keyboards/sharkoon/skiller_sgk50_s2/halconf.h index 9d456a5106..50251bd9cb 100644 --- a/keyboards/sharkoon/skiller_sgk50_s2/halconf.h +++ b/keyboards/sharkoon/skiller_sgk50_s2/halconf.h @@ -4,7 +4,5 @@ #pragma once #define HAL_USE_SPI TRUE -#define SPI_USE_WAIT TRUE -#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD #include_next <halconf.h> diff --git a/keyboards/sharkoon/skiller_sgk50_s3/halconf.h b/keyboards/sharkoon/skiller_sgk50_s3/halconf.h index 8760386e81..872e0217df 100644 --- a/keyboards/sharkoon/skiller_sgk50_s3/halconf.h +++ b/keyboards/sharkoon/skiller_sgk50_s3/halconf.h @@ -4,7 +4,5 @@ #pragma once #define HAL_USE_SPI TRUE -#define SPI_USE_WAIT TRUE -#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD #include_next <halconf.h> diff --git a/keyboards/sharkoon/skiller_sgk50_s4/halconf.h b/keyboards/sharkoon/skiller_sgk50_s4/halconf.h index 9d456a5106..50251bd9cb 100644 --- a/keyboards/sharkoon/skiller_sgk50_s4/halconf.h +++ b/keyboards/sharkoon/skiller_sgk50_s4/halconf.h @@ -4,7 +4,5 @@ #pragma once #define HAL_USE_SPI TRUE -#define SPI_USE_WAIT TRUE -#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD #include_next <halconf.h> diff --git a/keyboards/shiro/keyboard.json b/keyboards/shiro/keyboard.json index c401126591..141dd61847 100644 --- a/keyboards/shiro/keyboard.json +++ b/keyboards/shiro/keyboard.json @@ -27,8 +27,7 @@ "rows": ["D4", "C6", "D7", "E6", "B4"] }, "diode_direction": "COL2ROW", - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/shoc/keyboard.json b/keyboards/shoc/keyboard.json index b0da52f9f6..2fbf06c5e3 100644 --- a/keyboards/shoc/keyboard.json +++ b/keyboards/shoc/keyboard.json @@ -21,8 +21,7 @@ "rows": ["F4", "F5", "F6", "F7", "B1", "B3", "B6", "B2"] }, "diode_direction": "COL2ROW", - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "layouts": { "LAYOUT": { "layout": [ 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/silverbullet44/keyboard.json b/keyboards/silverbullet44/keyboard.json index 69c291a1cc..26e2bcce3a 100644 --- a/keyboards/silverbullet44/keyboard.json +++ b/keyboards/silverbullet44/keyboard.json @@ -60,8 +60,7 @@ "pin": "D2" } }, - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "debounce": 10, "layouts": { "LAYOUT": { 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/snampad/keyboard.json b/keyboards/snampad/keyboard.json index b835f0bf35..66fa76b5e8 100644 --- a/keyboards/snampad/keyboard.json +++ b/keyboards/snampad/keyboard.json @@ -26,8 +26,7 @@ "rows": ["F4", "F5", "F6", "F7", "B1", "B3"] }, "diode_direction": "ROW2COL", - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "community_layouts": ["numpad_6x4"], "layouts": { "LAYOUT_numpad_6x4": { diff --git a/keyboards/sofle/sofle.c b/keyboards/sofle/sofle.c index 3f88e2b5ba..bbd9595def 100644 --- a/keyboards/sofle/sofle.c +++ b/keyboards/sofle/sofle.c @@ -85,10 +85,13 @@ void print_status_narrow(void) { oled_write_P(PSTR("Base\n"), false); break; case 2: - oled_write_P(PSTR("Raise"), false); + oled_write_P(PSTR("Lower"), false); break; case 3: - oled_write_P(PSTR("Lower"), false); + oled_write_P(PSTR("Raise"), false); + break; + case 4: + oled_write_P(PSTR("Adjust"), false); break; default: oled_write_ln_P(PSTR("Undef"), false); diff --git a/keyboards/soup10/keyboard.json b/keyboards/soup10/keyboard.json index 54b9fa9cf6..08c1b8b5dd 100644 --- a/keyboards/soup10/keyboard.json +++ b/keyboards/soup10/keyboard.json @@ -31,8 +31,7 @@ "bootmagic": { "matrix": [0, 1] }, - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/spaceman/2_milk/keyboard.json b/keyboards/spaceman/2_milk/keyboard.json index aed735c58f..748f3e9854 100644 --- a/keyboards/spaceman/2_milk/keyboard.json +++ b/keyboards/spaceman/2_milk/keyboard.json @@ -13,8 +13,7 @@ "ws2812": { "pin": "B6" }, - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "features": { "bootmagic": false, "command": true, diff --git a/keyboards/spaceman/pancake/rev1/feather/keyboard.json b/keyboards/spaceman/pancake/rev1/feather/keyboard.json index 3b82e3d499..7ba561ab61 100644 --- a/keyboards/spaceman/pancake/rev1/feather/keyboard.json +++ b/keyboards/spaceman/pancake/rev1/feather/keyboard.json @@ -1,4 +1,6 @@ { + "processor": "atmega32u4", + "bootloader": "caterina", "features": { "bluetooth": true, "bootmagic": true, diff --git a/keyboards/spaceman/pancake/rev1/info.json b/keyboards/spaceman/pancake/rev1/info.json index 9d6f30ab51..29f48c672b 100644 --- a/keyboards/spaceman/pancake/rev1/info.json +++ b/keyboards/spaceman/pancake/rev1/info.json @@ -7,8 +7,6 @@ "pid": "0x504B", "device_version": "0.0.1" }, - "processor": "atmega32u4", - "bootloader": "caterina", "community_layouts": ["ortho_4x12", "planck_mit"], "layouts": { "LAYOUT_planck_mit": { diff --git a/keyboards/spaceman/pancake/rev1/promicro/keyboard.json b/keyboards/spaceman/pancake/rev1/promicro/keyboard.json index 658eaa39c1..feda013255 100644 --- a/keyboards/spaceman/pancake/rev1/promicro/keyboard.json +++ b/keyboards/spaceman/pancake/rev1/promicro/keyboard.json @@ -1,4 +1,5 @@ { + "development_board": "promicro", "features": { "bootmagic": true, "command": true, diff --git a/keyboards/spacetime/info.json b/keyboards/spacetime/info.json index e103f58ebb..b11a43f53c 100644 --- a/keyboards/spacetime/info.json +++ b/keyboards/spacetime/info.json @@ -32,8 +32,7 @@ "pin": "D0" } }, - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/sparrow62/keyboard.json b/keyboards/sparrow62/keyboard.json index 66efa2288b..e732ab6539 100644 --- a/keyboards/sparrow62/keyboard.json +++ b/keyboards/sparrow62/keyboard.json @@ -34,8 +34,7 @@ "pin": "D2" } }, - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/spleeb/rules.mk b/keyboards/spleeb/rules.mk new file mode 100644 index 0000000000..fedac72e2e --- /dev/null +++ b/keyboards/spleeb/rules.mk @@ -0,0 +1 @@ +POINTING_DEVICE_DRIVER = cirque_pinnacle_i2c diff --git a/keyboards/spleeb/spleeb.c b/keyboards/spleeb/spleeb.c index 658f30df75..33131fa3e2 100644 --- a/keyboards/spleeb/spleeb.c +++ b/keyboards/spleeb/spleeb.c @@ -8,6 +8,10 @@ # include "print.h" #endif // CONSOLE_ENABLE +#ifdef POINTING_DEVICE_ENABLE +# include "drivers/sensors/cirque_pinnacle_gestures.h" +#endif // POINTING_DEVICE_ENABLE + #if defined(POINTING_DEVICE_ENABLE) || defined(SPLEEB_ENCODER_MODE_MAP_ENABLE) typedef union { uint16_t raw; diff --git a/keyboards/splitish/keyboard.json b/keyboards/splitish/keyboard.json index 986a08709f..5984f2fd97 100644 --- a/keyboards/splitish/keyboard.json +++ b/keyboards/splitish/keyboard.json @@ -25,8 +25,7 @@ "rows": ["B4", "B5", "B2", "B6"] }, "diode_direction": "COL2ROW", - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/splitkb/aurora/sweep/keymaps/default/keymap.json b/keyboards/splitkb/aurora/sweep/keymaps/default/keymap.json index 1d308d531f..885faaf858 100644 --- a/keyboards/splitkb/aurora/sweep/keymaps/default/keymap.json +++ b/keyboards/splitkb/aurora/sweep/keymaps/default/keymap.json @@ -54,31 +54,16 @@ ] ], "config": { - "features": { - "oled": true, - "rgb_matrix": true, - "rgblight": false + "mousekey": { + "interval": 16, + "time_to_max": 40, + "delay": 100, + "wheel_delay": 100 }, - "encoder": { - "enabled": true - }, - "rgblight": { - "hue_steps": 8, - "saturation_steps": 8, - "brightness_steps": 8, - "sleep": true + "tapping": { + "term": 200, + "permissive_hold": true, + "force_hold": true } - }, - "mouse_key": { - "enabled": true, - "interval": 16, - "time_to_max": 40, - "delay": 100, - "wheel_delay": 100 - }, - "tapping": { - "term": 200, - "permissive_hold": true, - "force_hold": true } } diff --git a/keyboards/splitkb/elora/rev1/halconf.h b/keyboards/splitkb/elora/rev1/halconf.h index 9798aa34f9..4a2cc2c514 100644 --- a/keyboards/splitkb/elora/rev1/halconf.h +++ b/keyboards/splitkb/elora/rev1/halconf.h @@ -6,8 +6,6 @@ #define HAL_USE_SIO TRUE #define HAL_USE_I2C TRUE #define HAL_USE_SPI TRUE -#define SPI_USE_WAIT TRUE -#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD #define HAL_USE_ADC TRUE #include_next <halconf.h> 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/splitkb/halcyon/corne/info.json b/keyboards/splitkb/halcyon/corne/info.json new file mode 100755 index 0000000000..8b3325910d --- /dev/null +++ b/keyboards/splitkb/halcyon/corne/info.json @@ -0,0 +1,60 @@ +{ + "manufacturer": "splitkb.com", + "maintainer": "splitkb.com", + "url": "https://splitkb.com", + "usb": { + "device_version": "1.0.0", + "vid": "0x8D1D" + }, + "layout_aliases": { + "LAYOUT": "LAYOUT_split_3x6_3" + }, + "layouts": { + "LAYOUT_split_3x6_3": { + "layout": [ + {"label": "L06", "matrix": [0, 0], "x": 0, "y": 0.3}, + {"label": "L05", "matrix": [0, 1], "x": 1, "y": 0.3}, + {"label": "L04", "matrix": [0, 2], "x": 2, "y": 0.1}, + {"label": "L03", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "L02", "matrix": [0, 4], "x": 4, "y": 0.1}, + {"label": "L01", "matrix": [0, 5], "x": 5, "y": 0.2}, + {"label": "R01", "matrix": [4, 5], "x": 9, "y": 0.2}, + {"label": "R02", "matrix": [4, 4], "x": 10, "y": 0.1}, + {"label": "R03", "matrix": [4, 3], "x": 11, "y": 0}, + {"label": "R04", "matrix": [4, 2], "x": 12, "y": 0.1}, + {"label": "R05", "matrix": [4, 1], "x": 13, "y": 0.3}, + {"label": "R06", "matrix": [4, 0], "x": 14, "y": 0.3}, + {"label": "L12", "matrix": [1, 0], "x": 0, "y": 1.3}, + {"label": "L11", "matrix": [1, 1], "x": 1, "y": 1.3}, + {"label": "L10", "matrix": [1, 2], "x": 2, "y": 1.1}, + {"label": "L09", "matrix": [1, 3], "x": 3, "y": 1}, + {"label": "L08", "matrix": [1, 4], "x": 4, "y": 1.1}, + {"label": "L07", "matrix": [1, 5], "x": 5, "y": 1.2}, + {"label": "R07", "matrix": [5, 5], "x": 9, "y": 1.2}, + {"label": "R08", "matrix": [5, 4], "x": 10, "y": 1.1}, + {"label": "R09", "matrix": [5, 3], "x": 11, "y": 1}, + {"label": "R10", "matrix": [5, 2], "x": 12, "y": 1.1}, + {"label": "R11", "matrix": [5, 1], "x": 13, "y": 1.3}, + {"label": "R12", "matrix": [5, 0], "x": 14, "y": 1.3}, + {"label": "L18", "matrix": [2, 0], "x": 0, "y": 2.3}, + {"label": "L17", "matrix": [2, 1], "x": 1, "y": 2.3}, + {"label": "L16", "matrix": [2, 2], "x": 2, "y": 2.1}, + {"label": "L15", "matrix": [2, 3], "x": 3, "y": 2}, + {"label": "L14", "matrix": [2, 4], "x": 4, "y": 2.1}, + {"label": "L13", "matrix": [2, 5], "x": 5, "y": 2.2}, + {"label": "R13", "matrix": [6, 5], "x": 9, "y": 2.2}, + {"label": "R14", "matrix": [6, 4], "x": 10, "y": 2.1}, + {"label": "R15", "matrix": [6, 3], "x": 11, "y": 2}, + {"label": "R16", "matrix": [6, 2], "x": 12, "y": 2.1}, + {"label": "R17", "matrix": [6, 1], "x": 13, "y": 2.3}, + {"label": "R18", "matrix": [6, 0], "x": 14, "y": 2.3}, + {"label": "L21", "matrix": [3, 3], "x": 4, "y": 3.7}, + {"label": "L20", "matrix": [3, 4], "x": 5, "y": 3.7}, + {"label": "L19", "matrix": [3, 5], "w": 1.5, "x": 6, "y": 3.2}, + {"label": "R19", "matrix": [7, 5], "w": 1.5, "x": 8, "y": 3.2}, + {"label": "R20", "matrix": [7, 4], "x": 9, "y": 3.7}, + {"label": "R21", "matrix": [7, 3], "x": 10, "y": 3.7} + ] + } + } +} diff --git a/keyboards/splitkb/halcyon/corne/keymaps/default/keymap.json b/keyboards/splitkb/halcyon/corne/keymaps/default/keymap.json new file mode 100644 index 0000000000..ab42d0731c --- /dev/null +++ b/keyboards/splitkb/halcyon/corne/keymaps/default/keymap.json @@ -0,0 +1,43 @@ +{ + "keyboard": "splitkb/halcyon/corne/rev2", + "keymap": "default", + "version": 1, + "layout": "LAYOUT_split_3x6_3", + "layers": [ + [ + "KC_TAB" , "KC_Q" , "KC_W" , "KC_E" , "KC_R" , "KC_T" , "KC_Y" , "KC_U" , "KC_I" , "KC_O" , "KC_P" , "KC_BSPC" , + "KC_LCTL" , "KC_A" , "KC_S" , "KC_D" , "KC_F" , "KC_G" , "KC_H" , "KC_J" , "KC_K" , "KC_L" , "KC_SCLN" , "KC_QUOT" , + "KC_LSFT" , "KC_Z" , "KC_X" , "KC_C" , "KC_V" , "KC_B" , "KC_N" , "KC_M" , "KC_COMM" , "KC_DOT" , "KC_SLSH" , "KC_ESC" , + "KC_LGUI" , "MO(1)" , "KC_SPC" , "KC_ENT" , "MO(2)" , "KC_RALT" + ], + [ + "KC_TAB" , "KC_1" , "KC_2" , "KC_3" , "KC_4" , "KC_5" , "KC_6" , "KC_7" , "KC_8" , "KC_9" , "KC_0" , "KC_BSPC" , + "KC_LCTL" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "KC_LEFT" , "KC_DOWN" , "KC_UP" , "KC_RIGHT", "XXXXXXX" , "XXXXXXX" , + "KC_LSFT" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , + "KC_LGUI" , "_______" , "KC_SPC" , "KC_ENT" , "MO(3)" , "KC_RALT" + ], + [ + "KC_TAB" , "KC_EXLM" , "KC_AT" , "KC_HASH" , "KC_DLR" , "KC_PERC" , "KC_CIRC" , "KC_AMPR" , "KC_ASTR" , "KC_LPRN" , "KC_RPRN" , "KC_BSPC" , + "KC_LCTL" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "KC_MINS" , "KC_EQL" , "KC_LBRC" , "KC_RBRC" , "KC_BSLS" , "KC_GRV" , + "KC_LSFT" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "KC_UNDS" , "KC_PLUS" , "KC_LCBR" , "KC_RCBR" , "KC_PIPE" , "KC_TILD" , + "KC_LGUI" , "MO(3)" , "KC_SPC" , "KC_ENT" , "_______" , "KC_RALT" + ], + [ + "QK_BOOT" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , + "RM_TOGG" , "RM_HUEU" , "RM_SATU" , "RM_VALU" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , + "RM_NEXT" , "RM_HUED" , "RM_SATD" , "RM_VALD" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , + "KC_LGUI" , "_______" , "KC_SPC" , "KC_ENT" , "_______" , "KC_RALT" + ] + ], + "config": { + "features": { + "encoder_map": true + } + }, + "encoders": [ + [{"ccw": "KC_VOLD", "cw": "KC_VOLU"}, {"ccw": "KC_PGUP", "cw": "KC_PGDN"}], + [{"ccw": "_______", "cw": "_______"}, {"ccw": "_______", "cw": "_______"}], + [{"ccw": "_______", "cw": "_______"}, {"ccw": "_______", "cw": "_______"}], + [{"ccw": "_______", "cw": "_______"}, {"ccw": "_______", "cw": "_______"}] + ] +} diff --git a/keyboards/splitkb/halcyon/corne/keymaps/default/readme.md b/keyboards/splitkb/halcyon/corne/keymaps/default/readme.md new file mode 100755 index 0000000000..8e44629494 --- /dev/null +++ b/keyboards/splitkb/halcyon/corne/keymaps/default/readme.md @@ -0,0 +1,87 @@ +# Halcyon Corne's Default Keymap +_This keymap is a copy of the [Corne default keymap](https://github.com/qmk/qmk_firmware/tree/master/keyboards/crkbd/keymaps/default)_ + +A simple default keymap for the Halcyon Corne +============================================ + +Keymaps in general are quite personal, so it is difficult to come up with a default that will suit every user. We hope this keymap serves as a good starting point for your own - although it should be fairly usable out-of-the-box. + +What do all these layers do? +---------------------------- + +### Layer 0: Base layer + + + +This is where your basic letters live. + +The homing thumb fingers are used to access the different layers. + +* The homing left thumb finger gives access to the Numbers (or lower) layer +* The homing right thumb finger gives access to the Symbols (or raise) layer +* Pressing both homing thumb fingers gives access to the Adjust layer + +### Layer 1: Lower + + + +The Lower layer gives access to your number keys on the top row. It also exposes the arrow keys in the usual Vim-style layout. + +### Layer 2: Raise + + + +The Raise layer gives access to the symbols. In addition to shifted number keys on the top row, the right hand also exposes the remaining symbol keys, both as shifted and non-shifted variants. + +### Layer 3: Adjust + + + +The Adjust layer exposes RGB adjustment keys on the left hand. + +Where is the keymap.c? +---------------------- + +The keymap.c file is not published to the repository. It is generated from `keymap.json` by the build system. + +This avoids duplicating information and allow users to edit their keymap from the QMK Configurator web interface. + +How do I edit and update the keymap? +------------------------------------ + +The `keymap.json` file is generated from the QMK Configurator interface and formatted for better readability in the context of the Ferris keyboard. + +To edit it, you may: +* Edit it directly from a text editor. +* Edit it from the QMK Configurator. + +If you decide to use the latter workflow, here are the steps to follow: + +* From the [QMK Configurator](https://config.qmk.fm/#/splitkb/halcyon/corne/rev2/LAYOUT_split_3x5_3), hit the "import QMK keymap json file" button (it has a drawing with an up arrow on it). +* Browse to the location of your keymap (for example, `<your qmk repo>/keyboards/splitkb/halcyon/corne/keymaps/default/keymap.json`) +* Perform any modification to the keymap in the web UI +* Export the keymap to your downloads folder, by hitting the "Export QMK keymap json file" button (it has a drawing with a down arrow on it) +* Replace your original keymap with the one you just downloaded + +I want to do more than the JSON format supports! +------------------------------------------------- + +While the `json` format is easy to use, it does lack certain functionality - most notably custom OLED or encoder behaviour. + +To add this, you need to convert it to the `c` format. Do keep in mind that this is generally a one-way operation. + +First, from the root of your qmk repo, move to your keymap folder + +```bash +cd ./keyboards/splitkb/halcyon/corne/keymaps/my_personal_keymap +``` + +Next, convert your `keymap.json` to a `keymap.c` + +```bash +qmk json2c -o keymap.c keymap.json +``` + + +You can add custom C code to the newly generated `keymap.c` file. Do note that you have to use **either** a C file **or** a JSON file - you cannot do both! +**If a JSON file is present, the C file is ignored.** diff --git a/keyboards/splitkb/halcyon/corne/readme.md b/keyboards/splitkb/halcyon/corne/readme.md new file mode 100755 index 0000000000..b859da2edd --- /dev/null +++ b/keyboards/splitkb/halcyon/corne/readme.md @@ -0,0 +1,31 @@ +# Halcyon Corne + + + +The Halcyon Corne rev2 is the second Corne revision and the third keyboard in our Halcyon range. Similar to Aurora, all keyboards in the series share the same feature set. The key highlights: + +- Halcyon keyboards come preassembled! You won't need a soldering iron. +- You'll be able to install [VIK](https://github.com/sadekbaroudi/vik) modules. +- It'll come fully documented, which includes the unboxing, assembly (with only a screwdriver), first installation and some advanced use cases. +- Both the connection to the host device as well as the interconnect between the keyboard halves use USB C. +- The controller has full ESD protection on all USB C ports, as well as all switch matrix GPIO! +- The controller is interchangable. If part of your keyboard ever breaks, we can replace just the bits that need replacing. + +* Keyboard Maintainer: [splitkb.com](https://github.com/splitkb.com) +* Hardware Availability: [splitkb.com](https://splitkb.com). + +Make example for this keyboard (after setting up your build environment): + + make splitkb/halcyon/corne/rev2:default + +The keyboard can be flashed by copying the resulting `.uf2` file onto the `RPI-RP2` flash drive. + +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: + +* **Reset button**: Double-tap the reset button at the top of the controller, right above the USB-C port. +* **Bootloader reset**: Hold down the "Boot" button and plug in the keyboard. +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available. diff --git a/keyboards/splitkb/halcyon/corne/rev2/config.h b/keyboards/splitkb/halcyon/corne/rev2/config.h new file mode 100755 index 0000000000..b5cd6f95f2 --- /dev/null +++ b/keyboards/splitkb/halcyon/corne/rev2/config.h @@ -0,0 +1,32 @@ +// Copyright 2025 splitkb.com ([email protected]) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +// Make it easier to enter the bootloader +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 1000U + +// UART1, communication between the two halves +#define SERIAL_USART_FULL_DUPLEX // Enable full duplex operation mode. +#define SERIAL_USART_TX_PIN GP28 // USART TX pin +#define SERIAL_USART_RX_PIN GP29 // USART RX pin +#define SERIAL_PIO_USE_PIO1 // Use PIO1 as PIO0 is used for WS2812 driver + +// VBUS detection +#define USB_VBUS_PIN GP1 + +//// VIK + +// GPIO1 = GP27 +// GPIO2 = GP26 +// CS = GP13 + +#define I2C_DRIVER I2C0 +#define I2C1_SDA_PIN GP16 +#define I2C1_SCL_PIN GP17 + +#define SPI_DRIVER SPID1 +#define SPI_SCK_PIN GP14 +#define SPI_MOSI_PIN GP15 +#define SPI_MISO_PIN GP12 diff --git a/keyboards/handwired/onekey/keymaps/lvgl/halconf.h b/keyboards/splitkb/halcyon/corne/rev2/halconf.h index 27646bb3f5..a6937ddf9d 100644 --- a/keyboards/handwired/onekey/keymaps/lvgl/halconf.h +++ b/keyboards/splitkb/halcyon/corne/rev2/halconf.h @@ -1,12 +1,11 @@ -// Copyright 2022 Jose Pablo Ramirez (@jpe230) +// Copyright 2025 splitkb.com ([email protected]) // SPDX-License-Identifier: GPL-2.0-or-later #pragma once -#include_next <halconf.h> +//// VIK -#undef HAL_USE_SPI +#define HAL_USE_I2C TRUE #define HAL_USE_SPI TRUE -#undef SPI_USE_WAIT -#define SPI_USE_WAIT TRUE +#include_next <halconf.h> diff --git a/keyboards/splitkb/halcyon/corne/rev2/keyboard.json b/keyboards/splitkb/halcyon/corne/rev2/keyboard.json new file mode 100755 index 0000000000..33e8e7a907 --- /dev/null +++ b/keyboards/splitkb/halcyon/corne/rev2/keyboard.json @@ -0,0 +1,156 @@ +{ + "keyboard_name": "Halcyon Corne rev2", + "bootloader": "rp2040", + "diode_direction": "COL2ROW", + "encoder": { + "rotary": [ + {"pin_a": "GP24", "pin_b": "GP23", "resolution": 2} + ] + }, + "features": { + "encoder": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgb_matrix": true + }, + "matrix_pins": { + "cols": ["GP9", "GP4", "GP7", "GP6", "GP5", "GP10"], + "rows": ["GP20", "GP25", "GP11", "GP8"] + }, + "processor": "RP2040", + "rgb_matrix": { + "animations": { + "alphas_mods": true, + "band_pinwheel_sat": true, + "band_pinwheel_val": true, + "band_sat": true, + "band_spiral_sat": true, + "band_spiral_val": true, + "band_val": true, + "breathing": true, + "cycle_all": true, + "cycle_left_right": true, + "cycle_out_in": true, + "cycle_out_in_dual": true, + "cycle_pinwheel": true, + "cycle_spiral": true, + "cycle_up_down": true, + "digital_rain": true, + "dual_beacon": true, + "gradient_left_right": true, + "gradient_up_down": true, + "hue_breathing": true, + "hue_pendulum": true, + "hue_wave": true, + "jellybean_raindrops": true, + "multisplash": true, + "pixel_flow": true, + "pixel_fractal": true, + "pixel_rain": true, + "rainbow_beacon": true, + "rainbow_moving_chevron": true, + "rainbow_pinwheels": true, + "raindrops": true, + "solid_multisplash": true, + "solid_reactive": true, + "solid_reactive_cross": true, + "solid_reactive_multicross": true, + "solid_reactive_multinexus": true, + "solid_reactive_multiwide": true, + "solid_reactive_nexus": true, + "solid_reactive_simple": true, + "solid_reactive_wide": true, + "solid_splash": true, + "splash": true, + "typing_heatmap": true + }, + "driver": "ws2812", + "layout": [ + {"x": 93, "y": 17, "flags": 2}, + {"x": 59, "y": 3, "flags": 2}, + {"x": 25, "y": 7, "flags": 2}, + {"x": 29, "y": 49, "flags": 2}, + {"x": 70, "y": 51, "flags": 2}, + {"x": 104, "y": 55, "flags": 2}, + {"matrix": [3, 2], "x": 95, "y": 63, "flags": 4}, + {"matrix": [3, 1], "x": 80, "y": 58, "flags": 4}, + {"matrix": [3, 0], "x": 60, "y": 55, "flags": 4}, + {"matrix": [2, 5], "x": 85, "y": 39, "flags": 4}, + {"matrix": [2, 4], "x": 68, "y": 37, "flags": 4}, + {"matrix": [2, 3], "x": 50, "y": 35, "flags": 4}, + {"matrix": [2, 2], "x": 33, "y": 37, "flags": 4}, + {"matrix": [2, 1], "x": 16, "y": 42, "flags": 4}, + {"matrix": [1, 5], "x": 85, "y": 21, "flags": 4}, + {"matrix": [1, 4], "x": 68, "y": 19, "flags": 4}, + {"matrix": [1, 3], "x": 50, "y": 13, "flags": 4}, + {"matrix": [1, 2], "x": 33, "y": 20, "flags": 4}, + {"matrix": [1, 1], "x": 16, "y": 24, "flags": 4}, + {"matrix": [0, 5], "x": 85, "y": 4, "flags": 4}, + {"matrix": [0, 4], "x": 68, "y": 2, "flags": 4}, + {"matrix": [0, 3], "x": 50, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 33, "y": 3, "flags": 4}, + {"matrix": [0, 1], "x": 16, "y": 7, "flags": 4}, + {"matrix": [0, 0], "x": 0, "y": 7, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 24, "flags": 4}, + {"matrix": [2, 0], "x": 0, "y": 41, "flags": 4}, + {"x": 131, "y": 17, "flags": 2}, + {"x": 165, "y": 3, "flags": 2}, + {"x": 199, "y": 7, "flags": 2}, + {"x": 195, "y": 49, "flags": 2}, + {"x": 154, "y": 51, "flags": 2}, + {"x": 120, "y": 55, "flags": 2}, + {"matrix": [7, 2], "x": 129, "y": 63, "flags": 4}, + {"matrix": [7, 1], "x": 144, "y": 58, "flags": 4}, + {"matrix": [7, 0], "x": 164, "y": 55, "flags": 4}, + {"matrix": [6, 5], "x": 139, "y": 39, "flags": 4}, + {"matrix": [6, 4], "x": 156, "y": 37, "flags": 4}, + {"matrix": [6, 3], "x": 174, "y": 35, "flags": 4}, + {"matrix": [6, 2], "x": 191, "y": 37, "flags": 4}, + {"matrix": [6, 1], "x": 208, "y": 42, "flags": 4}, + {"matrix": [5, 5], "x": 139, "y": 21, "flags": 4}, + {"matrix": [5, 4], "x": 156, "y": 19, "flags": 4}, + {"matrix": [5, 3], "x": 174, "y": 13, "flags": 4}, + {"matrix": [5, 2], "x": 191, "y": 20, "flags": 4}, + {"matrix": [5, 1], "x": 208, "y": 24, "flags": 4}, + {"matrix": [4, 5], "x": 139, "y": 4, "flags": 4}, + {"matrix": [4, 4], "x": 156, "y": 2, "flags": 4}, + {"matrix": [4, 3], "x": 174, "y": 0, "flags": 4}, + {"matrix": [4, 2], "x": 191, "y": 3, "flags": 4}, + {"matrix": [4, 1], "x": 208, "y": 7, "flags": 4}, + {"matrix": [4, 0], "x": 224, "y": 7, "flags": 4}, + {"matrix": [5, 0], "x": 224, "y": 24, "flags": 4}, + {"matrix": [6, 0], "x": 224, "y": 41, "flags": 4} + ], + "max_brightness": 128, + "sleep": true, + "split_count": [27, 27] + }, + "split": { + "enabled": true, + "handedness": { + "pin": "GP19" + }, + "matrix_pins": { + "right": { + "cols": ["GP5", "GP9", "GP7", "GP20", "GP25", "GP4"], + "rows": ["GP6", "GP10", "GP11", "GP8"] + } + }, + "serial": { + "driver": "vendor" + }, + "transport": { + "sync": { + "matrix_state": true + } + } + }, + "usb": { + "pid": "0x3A07" + }, + "ws2812": { + "driver": "vendor", + "pin": "GP3" + } +} diff --git a/keyboards/splitkb/halcyon/corne/rev2/mcuconf.h b/keyboards/splitkb/halcyon/corne/rev2/mcuconf.h new file mode 100644 index 0000000000..126697a4a0 --- /dev/null +++ b/keyboards/splitkb/halcyon/corne/rev2/mcuconf.h @@ -0,0 +1,14 @@ +// Copyright 2025 splitkb.com ([email protected]) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include_next <mcuconf.h> + +//// VIK + +#undef RP_I2C_USE_I2C0 +#define RP_I2C_USE_I2C0 TRUE + +#undef RP_SPI_USE_SPI1 +#define RP_SPI_USE_SPI1 TRUE diff --git a/keyboards/splitkb/halcyon/corne/rev2/rev2.c b/keyboards/splitkb/halcyon/corne/rev2/rev2.c new file mode 100644 index 0000000000..e0a64ae9a4 --- /dev/null +++ b/keyboards/splitkb/halcyon/corne/rev2/rev2.c @@ -0,0 +1,28 @@ +// Copyright 2025 splitkb.com ([email protected]) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "quantum.h" + +#ifdef ENCODER_ENABLE +bool encoder_update_kb(uint8_t index, bool clockwise) { + if (!encoder_update_user(index, clockwise)) { + return false; + } + if (index == 0) { + // Volume control + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + } else if (index == 1) { + // Page up/Page down + if (clockwise) { + tap_code(KC_PGDN); + } else { + tap_code(KC_PGUP); + } + } + return false; +} +#endif diff --git a/keyboards/splitkb/halcyon/elora/rev2/halconf.h b/keyboards/splitkb/halcyon/elora/rev2/halconf.h index fd95e15f83..a6937ddf9d 100644 --- a/keyboards/splitkb/halcyon/elora/rev2/halconf.h +++ b/keyboards/splitkb/halcyon/elora/rev2/halconf.h @@ -6,9 +6,6 @@ //// VIK #define HAL_USE_I2C TRUE - #define HAL_USE_SPI TRUE -#define SPI_USE_WAIT TRUE -#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD #include_next <halconf.h> diff --git a/keyboards/splitkb/halcyon/ferris/info.json b/keyboards/splitkb/halcyon/ferris/info.json new file mode 100755 index 0000000000..66d69f717c --- /dev/null +++ b/keyboards/splitkb/halcyon/ferris/info.json @@ -0,0 +1,52 @@ +{ + "manufacturer": "splitkb.com", + "maintainer": "splitkb.com", + "url": "https://splitkb.com", + "usb": { + "device_version": "1.0.0", + "vid": "0x8D1D" + }, + "layout_aliases": { + "LAYOUT": "LAYOUT_split_3x5_2" + }, + "layouts": { + "LAYOUT_split_3x5_2": { + "layout": [ + {"label": "L01", "matrix": [0, 4], "x": 0, "y": 0.93}, + {"label": "L02", "matrix": [0, 3], "x": 1, "y": 0.31}, + {"label": "L03", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "L04", "matrix": [0, 1], "x": 3, "y": 0.28}, + {"label": "L05", "matrix": [0, 0], "x": 4, "y": 0.42}, + {"label": "R05", "matrix": [4, 0], "x": 7, "y": 0.42}, + {"label": "R04", "matrix": [4, 1], "x": 8, "y": 0.28}, + {"label": "R03", "matrix": [4, 2], "x": 9, "y": 0}, + {"label": "R02", "matrix": [4, 3], "x": 10, "y": 0.31}, + {"label": "R01", "matrix": [4, 4], "x": 11, "y": 0.93}, + {"label": "L06", "matrix": [1, 4], "x": 0, "y": 1.93}, + {"label": "L07", "matrix": [1, 3], "x": 1, "y": 1.31}, + {"label": "L08", "matrix": [1, 2], "x": 2, "y": 1}, + {"label": "L09", "matrix": [1, 1], "x": 3, "y": 1.28}, + {"label": "L10", "matrix": [1, 0], "x": 4, "y": 1.42}, + {"label": "R10", "matrix": [5, 0], "x": 7, "y": 1.42}, + {"label": "R09", "matrix": [5, 1], "x": 8, "y": 1.28}, + {"label": "R08", "matrix": [5, 2], "x": 9, "y": 1}, + {"label": "R07", "matrix": [5, 3], "x": 10, "y": 1.31}, + {"label": "R06", "matrix": [5, 4], "x": 11, "y": 1.93}, + {"label": "L11", "matrix": [2, 4], "x": 0, "y": 2.93}, + {"label": "L12", "matrix": [2, 3], "x": 1, "y": 2.31}, + {"label": "L13", "matrix": [2, 2], "x": 2, "y": 2}, + {"label": "L14", "matrix": [2, 1], "x": 3, "y": 2.28}, + {"label": "L15", "matrix": [2, 0], "x": 4, "y": 2.42}, + {"label": "R15", "matrix": [6, 0], "x": 7, "y": 2.42}, + {"label": "R14", "matrix": [6, 1], "x": 8, "y": 2.28}, + {"label": "R13", "matrix": [6, 2], "x": 9, "y": 2}, + {"label": "R12", "matrix": [6, 3], "x": 10, "y": 2.31}, + {"label": "R11", "matrix": [6, 4], "x": 11, "y": 2.93}, + {"label": "L16", "matrix": [3, 1], "x": 3.5, "y": 3.75}, + {"label": "L17", "matrix": [3, 0], "x": 4.5, "y": 4}, + {"label": "R17", "matrix": [7, 0], "x": 6.5, "y": 4}, + {"label": "R16", "matrix": [7, 1], "x": 7.5, "y": 3.75} + ] + } + } +} diff --git a/keyboards/splitkb/halcyon/ferris/keymaps/default/keymap.json b/keyboards/splitkb/halcyon/ferris/keymaps/default/keymap.json new file mode 100644 index 0000000000..95748c743f --- /dev/null +++ b/keyboards/splitkb/halcyon/ferris/keymaps/default/keymap.json @@ -0,0 +1,69 @@ +{ + "keyboard": "splitkb/halcyon/ferris/rev1", + "keymap": "default", + "version": 1, + "layout": "LAYOUT", + "layers": [ + [ + "KC_Q" , "KC_W" , "KC_E" , "KC_R" , "KC_T" , "KC_Y" , "KC_U" , "KC_I" , "KC_O" , "KC_P", + "LSFT_T(KC_A)", "LT(5,KC_S)" , "LT(1,KC_D)" , "LT(3,KC_F)" , "KC_G" , "KC_H" , "LT(4,KC_J)" , "LT(2,KC_K)" , "LT(6,KC_L)" , "LSFT_T(KC_SCLN)", + "KC_Z" , "LCTL_T(KC_X)", "LALT_T(KC_C)" , "KC_V" , "KC_B" , "KC_N" , "KC_M" , "LALT_T(KC_COMM)", "LCTL_T(KC_DOT)", "KC_SLSH", + "KC_P0" , "KC_BSPC" , "LT(7,KC_SPC)" , "KC_P1" + ], + [ + "RM_TOGG" , "RM_NEXT" , "RM_HUEU" , "RM_SATU" , "RM_VALU" , "RM_SPDU" , "KC_BTN1" , "KC_WH_U" , "KC_BTN2" , "KC_TRNS", + "KC_TRNS" , "KC_BTN2" , "KC_NO" , "KC_BTN1" , "KC_TRNS" , "KC_TRNS" , "KC_MS_L" , "KC_MS_D" , "KC_MS_U" , "KC_MS_R", + "KC_TRNS" , "RM_PREV" , "RM_HUED" , "RM_SATD" , "RM_VALD" , "RM_SPDD" , "KC_WH_L" , "KC_WH_D" , "KC_WH_R" , "KC_TRNS", + "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" + ], + [ + "KC_TRNS" , "KC_TRNS" , "KC_PGUP" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS", + "KC_LEFT" , "KC_UP" , "KC_DOWN" , "KC_RGHT" , "KC_TRNS" , "KC_TRNS" , "KC_LGUI" , "KC_NO" , "LCTL(KC_LALT)" , "LCA(KC_LSFT)", + "KC_TRNS" , "KC_HOME" , "KC_PGDN" , "KC_END" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS", + "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" + ], + [ + "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_UNDS" , "KC_PIPE" , "KC_QUOT" , "KC_TRNS", + "KC_CIRC" , "KC_ASTR" , "KC_AMPR" , "KC_NO" , "KC_TRNS" , "KC_HASH" , "KC_TILD" , "KC_SLSH" , "KC_DQUO" , "KC_DLR", + "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_MINS" , "KC_BSLS" , "KC_GRV" , "KC_TRNS", + "RM_PREV" , "KC_TRNS" , "KC_TRNS" , "RM_NEXT" + ], + [ + "KC_TRNS" , "KC_COLN" , "KC_LT" , "KC_GT" , "KC_SCLN" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS", + "KC_LCBR" , "KC_RCBR" , "KC_LPRN" , "KC_RPRN" , "KC_AT" , "KC_TRNS" , "KC_NO" , "KC_EQL" , "KC_PLUS" , "KC_PERC", + "KC_TRNS" , "KC_EXLM" , "KC_LBRC" , "KC_RBRC" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS", + "KC_VOLD" , "KC_TRNS" , "KC_TRNS" , "KC_VOLU" + ], + [ + "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_F7" , "KC_F8" , "KC_F9" , "KC_F10", + "KC_TRNS" , "KC_NO" , "LCTL(KC_LALT)" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_F4" , "KC_F5" , "KC_F6" , "KC_F11", + "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_F1" , "KC_F2" , "KC_F3" , "KC_F12", + "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" + ], + [ + "KC_PSLS" , "KC_7" , "KC_8" , "KC_9" , "KC_PPLS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS", + "KC_0" , "KC_1" , "KC_2" , "KC_3" , "KC_PMNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_NO" , "KC_TRNS", + "KC_PAST" , "KC_4" , "KC_5" , "KC_6" , "KC_PEQL" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS", + "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" + ], + [ + "KC_TRNS" , "KC_TRNS" , "KC_COLN" , "KC_ESC" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_DEL", + "KC_TRNS" , "KC_PERC" , "KC_SLSH" , "KC_ENT" , "KC_TRNS" , "DF(1)" , "KC_LGUI" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS", + "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_EXLM" , "KC_TRNS" , "DF(0)" , "KC_TRNS" , "RALT_T(KC_COMM)", "RCTL_T(KC_DOT)", "QK_BOOT", + "KC_TRNS" , "KC_TAB" , "KC_NO" , "KC_TRNS" + ] + ], + "config": { + "mousekey": { + "interval": 16, + "time_to_max": 40, + "delay": 100, + "wheel_delay": 100 + }, + "tapping": { + "term": 200, + "permissive_hold": true, + "force_hold": true + } + } +} diff --git a/keyboards/splitkb/halcyon/ferris/keymaps/default/readme.md b/keyboards/splitkb/halcyon/ferris/keymaps/default/readme.md new file mode 100644 index 0000000000..dcdc6b3aa1 --- /dev/null +++ b/keyboards/splitkb/halcyon/ferris/keymaps/default/readme.md @@ -0,0 +1,142 @@ +# Halcyon Ferris's Default Keymap +_This keymap is a copy of the [Ferris default keymap](https://github.com/qmk/qmk_firmware/tree/master/keyboards/ferris/keymaps/default), with the addition of RGB modifier keys._ + +A usable default keymap for the Ferris keyboard +=============================================== + +Keymaps in general are quite personal, so it is difficult to come up with a default that will suit every user. + +This keymap makes heavy use of keys behaving differently when tapped and held, so that all the keys one may need remain accessible despite the low number of thumb keys. + +It comes with a number of layers to give access to most of the keys one may need on a keyboard. It is not meant to be the best possible keymap, but rather a good base on which to build a keymap that works for you. + +This is not the only way to make 34 keys a comfortable typing experience, but it is one way to do so. If you don't already know of a better way, this may be as good a starting point as any :) + +Note that this keymap was built from the perspective that it is OK to take a steep learning curve if it results in a keymap that is easier to use in the long run. This means that it may take more effort to learn this keymap than some alternatives. "Easy to use" was assessed against the workflow of the author, so your mileage may vary on some of the details. + +What do all these layers do? +---------------------------- + +### Layer 0: Base layer + + + +On tapping the keys, our base layer is qwerty with space on the right homing thumb and backspace on the left homing thumb. + +In this layer, the non-homing-thumb positions have 0 and 1. I recommend modifying this to some frequently accessed shortcut such as copy/paste, previous/next tab or anything that makes most sense in your own workflow. O and 1 are place-holders and make it easy to troubleshoot that all keys are working properly before soldering in the switches. +The reason I recommend convenience shortcuts instead of more commonly used keys like tab or meta is that unhoming of the thumbs was a frequent source of typos for me when I used more than one thumb key frequently in the context of typing. + +Despite being missing on this layer, "meta", "tab", "esc" and such are accessible from any other layer: see Layer 7. + +The behaviour of some keys differ when held: +* Both homing pinkies behave as shift. +* Both bottom-row ring fingers behave as ctrl. +* Both bottom-row middle fingers behave as alt. + +* The homing left ring finger gives access to the Function keys layer +* The homing right ring finger gives access to the Numbers layer +* The homing left middle finger gives access to the Mouse layer +* The homing right middle finger gives access to the Navigation layer +* The homing left index finger gives access to the Right symbols layer +* The homing right index finger gives access to the Left symbols layer +* The homing right thumb gives access to the Always accessible layer + +### Layer 1: Mouse + + + +Layer 1 is a mouse layer: it can be used one-handed or two-handed. The most common way to use it is two handed, with left and right click on the homerow of the left hand and directions on the homerow of the right hand. +Scrolling is available on the right hand with mid finger up and down for vertical scroll and index and ring finger down for horizontal scroll. +On the right hand, left click and right click are also available with index and ring finger up to allow one handed operation. This can be particularly handy when enabling the mouse layer permanently (no need to hold the left middle finger), which can be done from Layer 7. + +**Addition**: The Halcyon Ferris allows the RGB settings to be modified on this layer. This is an extra feature over the default Ferris keymap. + +### Layer 2: Navigation + + + +The navigation layer somewhat mirrors the mouse layer. It is accessed by holding the right middle finger and gives access to arrow keys on the left homerow. Page up and down, Home and End mirror the vertical scrolling and horizontal scrolling on the mouse layer. + +On the right hand, in addition to ctrl and alt which are available through transparency, ctrl + alt, ctrl + alt + shift and meta are accessible on the homerow to enable common shortcuts in some window managers. This part is quite workflow dependent, so make sure to adapt it to your own workflow as appropriate. + +### Layer 3: Right symbols + + + +When holding down the left index, one may access about half of the symbols. The pinkies store `^` and `$` symbols that represent begin and end in vim. The left homerow hosts `*` and `&`, symbols which are related in the way that they represent some form of indirection in programming languages such as rust. On the right hand, most symbols used when navigating the command line are stored together, organized by columns of related symbols. + +### Layer 4: Left symbols + + + +When holding down the right index, one may access the other symbols. On the left hand, most of the different brackets are laid out. The most frequent ones (round brackets and curly brackets) get a spot on the homerow. The rest of the layer hosts the remaining symbols that are easier to access here than on any other layers. + +### Layer 5: Function keys + + + +By holding down the left ring finger, one may access the function keys, roughly in a numpad layout. +This means that alt+F4 is easy to type, with F4 being on the homerow. +There is a shortcut for ctrl+alt on the left hand to enable convenient switching between virtual terminals on Linux. + +### Layer 6: Numbers + + + +The number layer is accessed by holding the right ring finger. It hosts the numbers and some duplicated symbols that are commonly accessed next to numbers, such as mathematical operators. +The number are layed out similarly to a numpad, but with the middle row and the homerow swapped so that the most used numbers: 0, 1, 2 and 3 are all available in homing positions. + +### Layer 7: Always accessible + + + +Layer 7 is accessed by holding the right homing thumb down. Because this position is left transparent from every other layer, this layer is always accessible. +It gives access to some essential keys that would typically be accessed on a thumb cluster or pinkies, such as meta, enter, tab, esc and delete. + +As the layer hosting esc, we duplicated some symbols here to allow for fast navigation in vim. For instance, esc, :, w, q can be done in a single roll. + +Where is the keymap.c? +---------------------- + +The keymap.c file is not published to the repository. It is generated from `keymap.json` by the build system. + +This avoids duplicating information and allow users to edit their keymap from the QMK Configurator web interface. + +How do I edit and update the keymap? +------------------------------------ + +The `keymap.json` file is generated from the QMK Configurator interface and formatted for better readability in the context of the Ferris keyboard. + +To edit it, you may: +* Edit it directly from a text editor. +* Edit it from the QMK Configurator. + +If you decide to use the latter workflow, here are the steps to follow: + +* From the [QMK Configurator](https://config.qmk.fm/#/splitkb/halcyon/ferris/rev1/LAYOUT_split_3x5_2), hit the "import QMK keymap json file" button (it has a drawing with an up arrow on it). +* Browse to the location of your keymap (for example, `<your qmk repo>/keyboards/splitkb/halcyon/ferris/keymaps/default/keymap.json`) +* Perform any modification to the keymap in the web UI +* Export the keymap to your downloads folder, by hitting the "Export QMK keymap json file" button (it has a drawing with a down arrow on it) +* Replace your original keymap with the one you just downloaded + +I want to do more than the JSON format supports! +------------------------------------------------- + +While the `json` format is easy to use, it does lack certain functionality. + +To add this, you need to convert it to the `c` format. Do keep in mind that this is generally a one-way operation. + +First, from the root of your qmk repo, move to your keymap folder + +```bash +cd ./keyboards/splitkb/halcyon/ferris/keymaps/my_personal_keymap +``` + +Next, convert your `keymap.json` to a `keymap.c` + +```bash +qmk json2c -o keymap.c keymap.json +``` + +You can add custom C code to the newly generated `keymap.c` file. Do note that you have to use **either** a C file **or** a JSON file - you cannot do both! +**If a JSON file is present, the C file is ignored.** diff --git a/keyboards/splitkb/halcyon/ferris/readme.md b/keyboards/splitkb/halcyon/ferris/readme.md new file mode 100755 index 0000000000..c19a8b16db --- /dev/null +++ b/keyboards/splitkb/halcyon/ferris/readme.md @@ -0,0 +1,31 @@ +# Halcyon Ferris + + + +The Halcyon Ferris rev1 is the first Ferris revision and the fifth keyboard in our Halcyon range. Similar to Aurora, all keyboards in the series share the same feature set. The key highlights: + +- Halcyon keyboards come preassembled! You won't need a soldering iron. +- You'll be able to install [VIK](https://github.com/sadekbaroudi/vik) modules. +- It'll come fully documented, which includes the unboxing, assembly (with only a screwdriver), first installation and some advanced use cases. +- Both the connection to the host device as well as the interconnect between the keyboard halves use USB C. +- The controller has full ESD protection on all USB C ports, as well as all switch matrix GPIO! +- The controller is interchangable. If part of your keyboard ever breaks, we can replace just the bits that need replacing. + +* Keyboard Maintainer: [splitkb.com](https://github.com/splitkb.com) +* Hardware Availability: [splitkb.com](https://splitkb.com). + +Make example for this keyboard (after setting up your build environment): + + make splitkb/halcyon/ferris/rev1:default + +The keyboard can be flashed by copying the resulting `.uf2` file onto the `RPI-RP2` flash drive. + +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: + +* **Reset button**: Double-tap the reset button at the top of the controller, right above the USB-C port. +* **Bootloader reset**: Hold down the "Boot" button and plug in the keyboard. +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available. diff --git a/keyboards/splitkb/halcyon/ferris/rev1/config.h b/keyboards/splitkb/halcyon/ferris/rev1/config.h new file mode 100755 index 0000000000..b5cd6f95f2 --- /dev/null +++ b/keyboards/splitkb/halcyon/ferris/rev1/config.h @@ -0,0 +1,32 @@ +// Copyright 2025 splitkb.com ([email protected]) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +// Make it easier to enter the bootloader +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 1000U + +// UART1, communication between the two halves +#define SERIAL_USART_FULL_DUPLEX // Enable full duplex operation mode. +#define SERIAL_USART_TX_PIN GP28 // USART TX pin +#define SERIAL_USART_RX_PIN GP29 // USART RX pin +#define SERIAL_PIO_USE_PIO1 // Use PIO1 as PIO0 is used for WS2812 driver + +// VBUS detection +#define USB_VBUS_PIN GP1 + +//// VIK + +// GPIO1 = GP27 +// GPIO2 = GP26 +// CS = GP13 + +#define I2C_DRIVER I2C0 +#define I2C1_SDA_PIN GP16 +#define I2C1_SCL_PIN GP17 + +#define SPI_DRIVER SPID1 +#define SPI_SCK_PIN GP14 +#define SPI_MOSI_PIN GP15 +#define SPI_MISO_PIN GP12 diff --git a/keyboards/splitkb/halcyon/ferris/rev1/halconf.h b/keyboards/splitkb/halcyon/ferris/rev1/halconf.h new file mode 100644 index 0000000000..a6937ddf9d --- /dev/null +++ b/keyboards/splitkb/halcyon/ferris/rev1/halconf.h @@ -0,0 +1,11 @@ +// Copyright 2025 splitkb.com ([email protected]) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +//// VIK + +#define HAL_USE_I2C TRUE +#define HAL_USE_SPI TRUE + +#include_next <halconf.h> diff --git a/keyboards/splitkb/halcyon/ferris/rev1/keyboard.json b/keyboards/splitkb/halcyon/ferris/rev1/keyboard.json new file mode 100755 index 0000000000..4cd0b23f4c --- /dev/null +++ b/keyboards/splitkb/halcyon/ferris/rev1/keyboard.json @@ -0,0 +1,142 @@ +{ + "keyboard_name": "Halcyon Ferris rev1", + "bootloader": "rp2040", + "diode_direction": "COL2ROW", + "features": { + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgb_matrix": true + }, + "matrix_pins": { + "cols": ["GP8", "GP6", "GP5", "GP9", "GP4"], + "rows": ["GP10", "GP25", "GP7", "GP11"] + }, + "processor": "RP2040", + "rgb_matrix": { + "animations": { + "alphas_mods": true, + "band_pinwheel_sat": true, + "band_pinwheel_val": true, + "band_sat": true, + "band_spiral_sat": true, + "band_spiral_val": true, + "band_val": true, + "breathing": true, + "cycle_all": true, + "cycle_left_right": true, + "cycle_out_in": true, + "cycle_out_in_dual": true, + "cycle_pinwheel": true, + "cycle_spiral": true, + "cycle_up_down": true, + "digital_rain": true, + "dual_beacon": true, + "gradient_left_right": true, + "gradient_up_down": true, + "hue_breathing": true, + "hue_pendulum": true, + "hue_wave": true, + "jellybean_raindrops": true, + "multisplash": true, + "pixel_flow": true, + "pixel_fractal": true, + "pixel_rain": true, + "rainbow_beacon": true, + "rainbow_moving_chevron": true, + "rainbow_pinwheels": true, + "raindrops": true, + "solid_multisplash": true, + "solid_reactive": true, + "solid_reactive_cross": true, + "solid_reactive_multicross": true, + "solid_reactive_multinexus": true, + "solid_reactive_multiwide": true, + "solid_reactive_nexus": true, + "solid_reactive_simple": true, + "solid_reactive_wide": true, + "solid_splash": true, + "splash": true, + "typing_heatmap": true + }, + "driver": "ws2812", + "layout": [ + {"flags": 2, "x": 71, "y": 15}, + {"flags": 2, "x": 51, "y": 8}, + {"flags": 2, "x": 10, "y": 13}, + {"flags": 2, "x": 10, "y": 42}, + {"flags": 2, "x": 41, "y": 45}, + {"flags": 2, "x": 76, "y": 50}, + {"flags": 4, "matrix": [0, 4], "x": 0, "y": 15}, + {"flags": 4, "matrix": [0, 3], "x": 20, "y": 5}, + {"flags": 4, "matrix": [0, 2], "x": 41, "y": 0}, + {"flags": 4, "matrix": [0, 1], "x": 61, "y": 4}, + {"flags": 4, "matrix": [0, 0], "x": 81, "y": 7}, + {"flags": 4, "matrix": [1, 4], "x": 0, "y": 31}, + {"flags": 4, "matrix": [1, 3], "x": 20, "y": 21}, + {"flags": 4, "matrix": [1, 2], "x": 41, "y": 16}, + {"flags": 4, "matrix": [1, 1], "x": 61, "y": 20}, + {"flags": 4, "matrix": [1, 0], "x": 81, "y": 23}, + {"flags": 4, "matrix": [2, 4], "x": 0, "y": 47}, + {"flags": 4, "matrix": [2, 3], "x": 20, "y": 37}, + {"flags": 4, "matrix": [2, 2], "x": 41, "y": 32}, + {"flags": 4, "matrix": [2, 1], "x": 61, "y": 36}, + {"flags": 4, "matrix": [2, 0], "x": 81, "y": 39}, + {"flags": 4, "matrix": [3, 1], "x": 71, "y": 60}, + {"flags": 4, "matrix": [3, 0], "x": 92, "y": 64}, + {"flags": 2, "x": 150, "y": 15}, + {"flags": 2, "x": 190, "y": 8}, + {"flags": 2, "x": 210, "y": 13}, + {"flags": 2, "x": 220, "y": 42}, + {"flags": 2, "x": 183, "y": 45}, + {"flags": 2, "x": 155, "y": 50}, + {"flags": 4, "matrix": [4, 0], "x": 143, "y": 7}, + {"flags": 4, "matrix": [4, 1], "x": 163, "y": 4}, + {"flags": 4, "matrix": [4, 2], "x": 183, "y": 0}, + {"flags": 4, "matrix": [4, 3], "x": 204, "y": 5}, + {"flags": 4, "matrix": [4, 4], "x": 224, "y": 15}, + {"flags": 4, "matrix": [5, 0], "x": 143, "y": 23}, + {"flags": 4, "matrix": [5, 1], "x": 163, "y": 20}, + {"flags": 4, "matrix": [5, 2], "x": 183, "y": 16}, + {"flags": 4, "matrix": [5, 3], "x": 204, "y": 21}, + {"flags": 4, "matrix": [5, 4], "x": 224, "y": 31}, + {"flags": 4, "matrix": [6, 0], "x": 143, "y": 39}, + {"flags": 4, "matrix": [6, 1], "x": 163, "y": 36}, + {"flags": 4, "matrix": [6, 2], "x": 183, "y": 32}, + {"flags": 4, "matrix": [6, 3], "x": 204, "y": 37}, + {"flags": 4, "matrix": [6, 4], "x": 224, "y": 47}, + {"flags": 4, "matrix": [7, 0], "x": 132, "y": 64}, + {"flags": 4, "matrix": [7, 1], "x": 153, "y": 60} + ], + "max_brightness": 128, + "sleep": true, + "split_count": [23, 23] + }, + "split": { + "enabled": true, + "handedness": { + "pin": "GP20" + }, + "matrix_pins": { + "right": { + "cols": ["GP8", "GP25", "GP7", "GP4", "GP9"], + "rows": ["GP6", "GP5", "GP10", "GP11"] + } + }, + "serial": { + "driver": "vendor" + }, + "transport": { + "sync": { + "matrix_state": true + } + } + }, + "usb": { + "pid": "0xE050" + }, + "ws2812": { + "driver": "vendor", + "pin": "GP3" + } +} diff --git a/keyboards/splitkb/halcyon/ferris/rev1/mcuconf.h b/keyboards/splitkb/halcyon/ferris/rev1/mcuconf.h new file mode 100644 index 0000000000..126697a4a0 --- /dev/null +++ b/keyboards/splitkb/halcyon/ferris/rev1/mcuconf.h @@ -0,0 +1,14 @@ +// Copyright 2025 splitkb.com ([email protected]) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include_next <mcuconf.h> + +//// VIK + +#undef RP_I2C_USE_I2C0 +#define RP_I2C_USE_I2C0 TRUE + +#undef RP_SPI_USE_SPI1 +#define RP_SPI_USE_SPI1 TRUE diff --git a/keyboards/splitkb/halcyon/kyria/rev4/halconf.h b/keyboards/splitkb/halcyon/kyria/rev4/halconf.h index 1050ebf313..6d2db1bbd2 100644 --- a/keyboards/splitkb/halcyon/kyria/rev4/halconf.h +++ b/keyboards/splitkb/halcyon/kyria/rev4/halconf.h @@ -6,9 +6,6 @@ //// VIK #define HAL_USE_I2C TRUE - #define HAL_USE_SPI TRUE -#define SPI_USE_WAIT TRUE -#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD #include_next <halconf.h>
\ No newline at end of file diff --git a/keyboards/splitkb/halcyon/lily58/info.json b/keyboards/splitkb/halcyon/lily58/info.json new file mode 100755 index 0000000000..178527f838 --- /dev/null +++ b/keyboards/splitkb/halcyon/lily58/info.json @@ -0,0 +1,73 @@ +{ + "manufacturer": "splitkb.com", + "maintainer": "splitkb.com", + "url": "https://splitkb.com", + "usb": { + "device_version": "1.0.0", + "vid": "0x8D1D" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"label": "L01", "matrix": [0, 0], "x": 0, "y": 0.5}, + {"label": "L02", "matrix": [0, 1], "x": 1, "y": 0.375}, + {"label": "L03", "matrix": [0, 2], "x": 2, "y": 0.125}, + {"label": "L04", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "L05", "matrix": [0, 4], "x": 4, "y": 0.125}, + {"label": "L06", "matrix": [0, 5], "x": 5, "y": 0.25}, + {"label": "R06", "matrix": [5, 5], "x": 10.5, "y": 0.25}, + {"label": "R05", "matrix": [5, 4], "x": 11.5, "y": 0.125}, + {"label": "R04", "matrix": [5, 3], "x": 12.5, "y": 0}, + {"label": "R03", "matrix": [5, 2], "x": 13.5, "y": 0.125}, + {"label": "R02", "matrix": [5, 1], "x": 14.5, "y": 0.375}, + {"label": "R01", "matrix": [5, 0], "x": 15.5, "y": 0.5}, + {"label": "L07", "matrix": [1, 0], "x": 0, "y": 1.5}, + {"label": "L08", "matrix": [1, 1], "x": 1, "y": 1.375}, + {"label": "L09", "matrix": [1, 2], "x": 2, "y": 1.125}, + {"label": "L10", "matrix": [1, 3], "x": 3, "y": 1}, + {"label": "L11", "matrix": [1, 4], "x": 4, "y": 1.125}, + {"label": "L12", "matrix": [1, 5], "x": 5, "y": 1.25}, + {"label": "R12", "matrix": [6, 5], "x": 10.5, "y": 1.25}, + {"label": "R11", "matrix": [6, 4], "x": 11.5, "y": 1.125}, + {"label": "R10", "matrix": [6, 3], "x": 12.5, "y": 1}, + {"label": "R09", "matrix": [6, 2], "x": 13.5, "y": 1.125}, + {"label": "R08", "matrix": [6, 1], "x": 14.5, "y": 1.375}, + {"label": "R07", "matrix": [6, 0], "x": 15.5, "y": 1.5}, + {"label": "L13", "matrix": [2, 0], "x": 0, "y": 2.5}, + {"label": "L14", "matrix": [2, 1], "x": 1, "y": 2.375}, + {"label": "L15", "matrix": [2, 2], "x": 2, "y": 2.125}, + {"label": "L16", "matrix": [2, 3], "x": 3, "y": 2}, + {"label": "L17", "matrix": [2, 4], "x": 4, "y": 2.125}, + {"label": "L18", "matrix": [2, 5], "x": 5, "y": 2.25}, + {"label": "R18", "matrix": [7, 5], "x": 10.5, "y": 2.25}, + {"label": "R17", "matrix": [7, 4], "x": 11.5, "y": 2.125}, + {"label": "R16", "matrix": [7, 3], "x": 12.5, "y": 2}, + {"label": "R15", "matrix": [7, 2], "x": 13.5, "y": 2.125}, + {"label": "R14", "matrix": [7, 1], "x": 14.5, "y": 2.375}, + {"label": "R13", "matrix": [7, 0], "x": 15.5, "y": 2.5}, + {"label": "L20", "matrix": [3, 0], "x": 0, "y": 3.5}, + {"label": "L21", "matrix": [3, 1], "x": 1, "y": 3.375}, + {"label": "L22", "matrix": [3, 2], "x": 2, "y": 3.125}, + {"label": "L23", "matrix": [3, 3], "x": 3, "y": 3}, + {"label": "L24", "matrix": [3, 4], "x": 4, "y": 3.125}, + {"label": "L25", "matrix": [3, 5], "x": 5, "y": 3.25}, + {"label": "L19", "matrix": [4, 1], "x": 6, "y": 2.75}, + {"label": "R19", "matrix": [9, 1], "x": 9.5, "y": 2.75}, + {"label": "R25", "matrix": [8, 5], "x": 10.5, "y": 3.25}, + {"label": "R24", "matrix": [8, 4], "x": 11.5, "y": 3.125}, + {"label": "R23", "matrix": [8, 3], "x": 12.5, "y": 3}, + {"label": "R22", "matrix": [8, 2], "x": 13.5, "y": 3.125}, + {"label": "R21", "matrix": [8, 1], "x": 14.5, "y": 3.375}, + {"label": "R20", "matrix": [8, 0], "x": 15.5, "y": 3.5}, + {"label": "L26", "matrix": [4, 2], "x": 2.5, "y": 4.15}, + {"label": "L27", "matrix": [4, 3], "x": 3.5, "y": 4.15}, + {"label": "L28", "matrix": [4, 4], "x": 4.5, "y": 4.25}, + {"label": "L29", "matrix": [4, 5], "x": 6, "y": 4.25}, + {"label": "R29", "matrix": [9, 5], "x": 9.5, "y": 4.25}, + {"label": "R28", "matrix": [9, 4], "x": 11, "y": 4.25}, + {"label": "R27", "matrix": [9, 3], "x": 12, "y": 4.15}, + {"label": "R26", "matrix": [9, 2], "x": 13, "y": 4.15} + ] + } + } +} diff --git a/keyboards/splitkb/halcyon/lily58/keymaps/default/keymap.json b/keyboards/splitkb/halcyon/lily58/keymaps/default/keymap.json new file mode 100644 index 0000000000..05c4d89bcc --- /dev/null +++ b/keyboards/splitkb/halcyon/lily58/keymaps/default/keymap.json @@ -0,0 +1,47 @@ +{ + "keyboard": "splitkb/halcyon/lily58/rev2", + "keymap": "default", + "version": 1, + "layout": "LAYOUT", + "layers": [ + [ + "KC_ESC" , "KC_1" , "KC_2" , "KC_3" , "KC_4" , "KC_5" , "KC_6" , "KC_7" , "KC_8" , "KC_9" , "KC_0" , "KC_GRV" , + "KC_TAB" , "KC_Q" , "KC_W" , "KC_E" , "KC_R" , "KC_T" , "KC_Y" , "KC_U" , "KC_I" , "KC_O" , "KC_P" , "KC_MINS", + "KC_LCTL", "KC_A" , "KC_S" , "KC_D" , "KC_F" , "KC_G" , "KC_H" , "KC_J" , "KC_K" , "KC_L" , "KC_SCLN", "KC_QUOT", + "KC_LSFT", "KC_Z" , "KC_X" , "KC_C" , "KC_V" , "KC_B" , "KC_LBRC", "KC_RBRC", "KC_N" , "KC_M" , "KC_COMM", "KC_DOT" , "KC_SLSH", "KC_RSFT", + "KC_LALT", "KC_LGUI", "MO(1)" , "KC_SPC" , "KC_ENT" , "MO(2)" , "KC_BSPC", "KC_RGUI" + ], + [ + "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", + "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_GRV" , "KC_EXLM", "KC_AT" , "KC_HASH", "KC_DLR" , "KC_PERC", "KC_CIRC", "KC_AMPR", "KC_ASTR", "KC_LPRN", "KC_RPRN", "KC_TILD", + "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "XXXXXXX", "KC_UNDS", "KC_PLUS", "KC_LCBR", "KC_RCBR", "KC_PIPE", + "_______", "_______", "_______", "_______", "_______", "MO(3)" , "_______", "_______" + ], + [ + "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", + "KC_GRV" , "KC_1" , "KC_2" , "KC_3" , "KC_4" , "KC_5" , "KC_6" , "KC_7" , "KC_8" , "KC_9" , "KC_0" , "_______", + "KC_F1" , "KC_F2" , "KC_F3" , "KC_F4" , "KC_F5" , "KC_F6" , "XXXXXXX", "KC_LEFT", "KC_DOWN", "KC_UP" , "KC_RGHT", "XXXXXXX", + "KC_F7" , "KC_F8" , "KC_F9" , "KC_F10" , "KC_F11" , "KC_F12" , "_______", "_______", "KC_PLUS", "KC_MINS", "KC_EQL" , "KC_LBRC", "KC_RBRC", "KC_BSLS", + "_______", "_______", "MO(3)" , "_______", "_______", "_______", "_______", "_______" + ], + [ + "QK_BOOT", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", + "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", + "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "RM_TOGG", "RM_HUEU", "RM_SATU", "RM_VALU", + "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "RM_NEXT", "RM_HUED", "RM_SATD", "RM_VALD", + "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______" + ] + ], + "config": { + "features": { + "encoder_map": true + } + }, + "encoders": [ + [{"ccw": "KC_VOLD", "cw": "KC_VOLU"}, {"ccw": "KC_PGUP", "cw": "KC_PGDN"}], + [{"ccw": "_______", "cw": "_______"}, {"ccw": "_______", "cw": "_______"}], + [{"ccw": "_______", "cw": "_______"}, {"ccw": "_______", "cw": "_______"}], + [{"ccw": "_______", "cw": "_______"}, {"ccw": "_______", "cw": "_______"}] + ] +} diff --git a/keyboards/splitkb/halcyon/lily58/keymaps/default/readme.md b/keyboards/splitkb/halcyon/lily58/keymaps/default/readme.md new file mode 100644 index 0000000000..d186641d1c --- /dev/null +++ b/keyboards/splitkb/halcyon/lily58/keymaps/default/readme.md @@ -0,0 +1,88 @@ +# Halcyon Lily58's Default Keymap +_This keymap is a copy of the [Lily58 default keymap](https://github.com/qmk/qmk_firmware/tree/master/keyboards/lily58/keymaps/default), with slight modifications._ + +A simple default keymap for the Halcyon Lily58 +============================================= + +Keymaps in general are quite personal, so it is difficult to come up with a default that will suit every user. We hope this keymap serves as a good starting point for your own - although it should be fairly usable out-of-the-box. + +What do all these layers do? +---------------------------- + +### Layer 0: Base layer + + + +This is where your basic letters live. + +The homing thumb fingers are used to access the different layers. + +* The homing left thumb finger gives access to the Symbols (or lower) layer +* The homing right thumb finger gives access to the Navigation (or raise) layer +* Pressing both homing thumb fingers gives access to the Adjust layer + +### Layer 1: Lower + + + +The Lower layer gives access to the F keys on the second row, and shifted number keys on the home row. It also provides some shifted symbol keys. + +### Layer 2: Raise + + + +The Raise layer gives access the arrow keys on the right hand, in addition to some unshifted symbols. The left hand provides an alternative set of F keys, while the second row provides an alternative set of number keys. + +### Layer 3: Adjust + + + +The Adjust layer exposes RGB adjustment keys on the right hand. + +Where is the keymap.c? +---------------------- + +The keymap.c file is not published to the repository. It is generated from `keymap.json` by the build system. + +This avoids duplicating information and allow users to edit their keymap from the QMK Configurator web interface. + +How do I edit and update the keymap? +------------------------------------ + +The `keymap.json` file is generated from the QMK Configurator interface and formatted for better readability in the context of the Ferris keyboard. + +To edit it, you may: +* Edit it directly from a text editor. +* Edit it from the QMK Configurator. + +If you decide to use the latter workflow, here are the steps to follow: + +* From the [QMK Configurator](https://config.qmk.fm/#/splitkb/halcyon/lily58/rev2/LAYOUT), hit the "import QMK keymap json file" button (it has a drawing with an up arrow on it). +* Browse to the location of your keymap (for example, `<your qmk repo>/keyboards/splitkb/halcyon/lily58/keymaps/default/keymap.json`) +* Perform any modification to the keymap in the web UI +* Export the keymap to your downloads folder, by hitting the "Export QMK keymap json file" button (it has a drawing with a down arrow on it) +* Replace your original keymap with the one you just downloaded + +_**Note:** At the time of writing (the 24th of October 2022), not every feature used in the default keymap is supported by the QMK Configurator. You cannot yet upload the default `keymap.json` due to a file format mismatch - use the "Load Default" button to load the default keymap instead. Additionally, custom configuration options are still being worked on: if your keymap depends on them, please compile your firmware offline for now._ + +I want to do more than the JSON format supports! +------------------------------------------------- + +While the `json` format is easy to use, it does lack certain functionality - most notably custom OLED or encoder behaviour. + +To add this, you need to convert it to the `c` format. Do keep in mind that this is generally a one-way operation. + +First, from the root of your qmk repo, move to your keymap folder + +```bash +cd ./keyboards/splitkb/halcyon/lily58/keymaps/my_personal_keymap +``` + +Next, convert your `keymap.json` to a `keymap.c` + +```bash +qmk json2c -o keymap.c keymap.json +``` + +You can add custom C code to the newly generated `keymap.c` file. Do note that you have to use **either** a C file **or** a JSON file - you cannot do both! +**If a JSON file is present, the C file is ignored.** diff --git a/keyboards/splitkb/halcyon/lily58/readme.md b/keyboards/splitkb/halcyon/lily58/readme.md new file mode 100755 index 0000000000..ec200fda15 --- /dev/null +++ b/keyboards/splitkb/halcyon/lily58/readme.md @@ -0,0 +1,31 @@ +# Halcyon Lily58 + + + +The Halcyon Lily58 rev2 is the second Lily58 revision and the fourth keyboard in our Halcyon range. Similar to Aurora, all keyboards in the series share the same feature set. The key highlights: + +- Halcyon keyboards come preassembled! You won't need a soldering iron. +- You'll be able to install [VIK](https://github.com/sadekbaroudi/vik) modules. +- It'll come fully documented, which includes the unboxing, assembly (with only a screwdriver), first installation and some advanced use cases. +- Both the connection to the host device as well as the interconnect between the keyboard halves use USB C. +- The controller has full ESD protection on all USB C ports, as well as all switch matrix GPIO! +- The controller is interchangable. If part of your keyboard ever breaks, we can replace just the bits that need replacing. + +* Keyboard Maintainer: [splitkb.com](https://github.com/splitkb.com) +* Hardware Availability: [splitkb.com](https://splitkb.com). + +Make example for this keyboard (after setting up your build environment): + + make splitkb/halcyon/lily58/rev2:default + +The keyboard can be flashed by copying the resulting `.uf2` file onto the `RPI-RP2` flash drive. + +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: + +* **Reset button**: Double-tap the reset button at the top of the controller, right above the USB-C port. +* **Bootloader reset**: Hold down the "Boot" button and plug in the keyboard. +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available. diff --git a/keyboards/splitkb/halcyon/lily58/rev2/config.h b/keyboards/splitkb/halcyon/lily58/rev2/config.h new file mode 100755 index 0000000000..b5cd6f95f2 --- /dev/null +++ b/keyboards/splitkb/halcyon/lily58/rev2/config.h @@ -0,0 +1,32 @@ +// Copyright 2025 splitkb.com ([email protected]) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +// Make it easier to enter the bootloader +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 1000U + +// UART1, communication between the two halves +#define SERIAL_USART_FULL_DUPLEX // Enable full duplex operation mode. +#define SERIAL_USART_TX_PIN GP28 // USART TX pin +#define SERIAL_USART_RX_PIN GP29 // USART RX pin +#define SERIAL_PIO_USE_PIO1 // Use PIO1 as PIO0 is used for WS2812 driver + +// VBUS detection +#define USB_VBUS_PIN GP1 + +//// VIK + +// GPIO1 = GP27 +// GPIO2 = GP26 +// CS = GP13 + +#define I2C_DRIVER I2C0 +#define I2C1_SDA_PIN GP16 +#define I2C1_SCL_PIN GP17 + +#define SPI_DRIVER SPID1 +#define SPI_SCK_PIN GP14 +#define SPI_MOSI_PIN GP15 +#define SPI_MISO_PIN GP12 diff --git a/keyboards/splitkb/halcyon/lily58/rev2/halconf.h b/keyboards/splitkb/halcyon/lily58/rev2/halconf.h new file mode 100644 index 0000000000..a6937ddf9d --- /dev/null +++ b/keyboards/splitkb/halcyon/lily58/rev2/halconf.h @@ -0,0 +1,11 @@ +// Copyright 2025 splitkb.com ([email protected]) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +//// VIK + +#define HAL_USE_I2C TRUE +#define HAL_USE_SPI TRUE + +#include_next <halconf.h> diff --git a/keyboards/splitkb/halcyon/lily58/rev2/keyboard.json b/keyboards/splitkb/halcyon/lily58/rev2/keyboard.json new file mode 100755 index 0000000000..76bb538388 --- /dev/null +++ b/keyboards/splitkb/halcyon/lily58/rev2/keyboard.json @@ -0,0 +1,170 @@ +{ + "keyboard_name": "Halcyon Lily58 rev2", + "bootloader": "rp2040", + "diode_direction": "COL2ROW", + "encoder": { + "rotary": [ + {"pin_a": "GP23", "pin_b": "GP22", "resolution": 2} + ] + }, + "features": { + "encoder": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgb_matrix": true + }, + "matrix_pins": { + "cols": ["GP8", "GP11", "GP7", "GP6", "GP5", "GP10"], + "rows": ["GP19", "GP20", "GP25", "GP4", "GP9"] + }, + "processor": "RP2040", + "rgb_matrix": { + "animations": { + "alphas_mods": true, + "band_pinwheel_sat": true, + "band_pinwheel_val": true, + "band_sat": true, + "band_spiral_sat": true, + "band_spiral_val": true, + "band_val": true, + "breathing": true, + "cycle_all": true, + "cycle_left_right": true, + "cycle_out_in": true, + "cycle_out_in_dual": true, + "cycle_pinwheel": true, + "cycle_spiral": true, + "cycle_up_down": true, + "digital_rain": true, + "dual_beacon": true, + "gradient_left_right": true, + "gradient_up_down": true, + "hue_breathing": true, + "hue_pendulum": true, + "hue_wave": true, + "jellybean_raindrops": true, + "multisplash": true, + "pixel_flow": true, + "pixel_fractal": true, + "pixel_rain": true, + "rainbow_beacon": true, + "rainbow_moving_chevron": true, + "rainbow_pinwheels": true, + "raindrops": true, + "solid_multisplash": true, + "solid_reactive": true, + "solid_reactive_cross": true, + "solid_reactive_multicross": true, + "solid_reactive_multinexus": true, + "solid_reactive_multiwide": true, + "solid_reactive_nexus": true, + "solid_reactive_simple": true, + "solid_reactive_wide": true, + "solid_splash": true, + "splash": true, + "typing_heatmap": true + }, + "driver": "ws2812", + "layout": [ + {"x": 51, "y": 13, "flags": 2}, + {"x": 22, "y": 18, "flags": 2}, + {"x": 22, "y": 53, "flags": 2}, + {"x": 58, "y": 60, "flags": 2}, + {"x": 87, "y": 56, "flags": 2}, + {"matrix": [0, 0], "x": 0, "y": 8, "flags": 4}, + {"matrix": [0, 1], "x": 14, "y": 6, "flags": 4}, + {"matrix": [0, 2], "x": 29, "y": 2, "flags": 4}, + {"matrix": [0, 3], "x": 43, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 58, "y": 2, "flags": 4}, + {"matrix": [0, 5], "x": 72, "y": 4, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 23, "flags": 4}, + {"matrix": [1, 1], "x": 14, "y": 21, "flags": 4}, + {"matrix": [1, 2], "x": 29, "y": 17, "flags": 4}, + {"matrix": [1, 3], "x": 43, "y": 15, "flags": 4}, + {"matrix": [1, 4], "x": 58, "y": 17, "flags": 4}, + {"matrix": [1, 5], "x": 72, "y": 19, "flags": 4}, + {"matrix": [2, 0], "x": 0, "y": 38, "flags": 4}, + {"matrix": [2, 1], "x": 14, "y": 36, "flags": 4}, + {"matrix": [2, 2], "x": 29, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 43, "y": 30, "flags": 4}, + {"matrix": [2, 4], "x": 58, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 72, "y": 34, "flags": 4}, + {"matrix": [3, 0], "x": 0, "y": 53, "flags": 4}, + {"matrix": [3, 1], "x": 14, "y": 51, "flags": 4}, + {"matrix": [3, 2], "x": 29, "y": 47, "flags": 4}, + {"matrix": [3, 3], "x": 43, "y": 45, "flags": 4}, + {"matrix": [3, 4], "x": 58, "y": 47, "flags": 4}, + {"matrix": [3, 5], "x": 72, "y": 49, "flags": 4}, + {"matrix": [4, 1], "x": 87, "y": 41, "flags": 4}, + {"matrix": [4, 2], "x": 36, "y": 62, "flags": 4}, + {"matrix": [4, 3], "x": 51, "y": 62, "flags": 4}, + {"matrix": [4, 4], "x": 65, "y": 64, "flags": 4}, + {"matrix": [4, 5], "x": 87, "y": 64, "flags": 4}, + {"x": 173, "y": 13, "flags": 2}, + {"x": 202, "y": 18, "flags": 2}, + {"x": 202, "y": 53, "flags": 2}, + {"x": 166, "y": 60, "flags": 2}, + {"x": 137, "y": 56, "flags": 2}, + {"matrix": [5, 5], "x": 152, "y": 4, "flags": 4}, + {"matrix": [5, 4], "x": 166, "y": 2, "flags": 4}, + {"matrix": [5, 3], "x": 181, "y": 0, "flags": 4}, + {"matrix": [5, 2], "x": 195, "y": 2, "flags": 4}, + {"matrix": [5, 1], "x": 210, "y": 6, "flags": 4}, + {"matrix": [5, 0], "x": 224, "y": 8, "flags": 4}, + {"matrix": [6, 5], "x": 152, "y": 19, "flags": 4}, + {"matrix": [6, 4], "x": 166, "y": 17, "flags": 4}, + {"matrix": [6, 3], "x": 181, "y": 15, "flags": 4}, + {"matrix": [6, 2], "x": 195, "y": 17, "flags": 4}, + {"matrix": [6, 1], "x": 210, "y": 21, "flags": 4}, + {"matrix": [6, 0], "x": 224, "y": 23, "flags": 4}, + {"matrix": [7, 5], "x": 152, "y": 34, "flags": 4}, + {"matrix": [7, 4], "x": 166, "y": 32, "flags": 4}, + {"matrix": [7, 3], "x": 181, "y": 30, "flags": 4}, + {"matrix": [7, 2], "x": 195, "y": 32, "flags": 4}, + {"matrix": [7, 1], "x": 210, "y": 36, "flags": 4}, + {"matrix": [7, 0], "x": 224, "y": 38, "flags": 4}, + {"matrix": [9, 1], "x": 137, "y": 41, "flags": 4}, + {"matrix": [8, 5], "x": 152, "y": 49, "flags": 4}, + {"matrix": [8, 4], "x": 166, "y": 47, "flags": 4}, + {"matrix": [8, 3], "x": 181, "y": 45, "flags": 4}, + {"matrix": [8, 2], "x": 195, "y": 47, "flags": 4}, + {"matrix": [8, 1], "x": 210, "y": 51, "flags": 4}, + {"matrix": [8, 0], "x": 224, "y": 53, "flags": 4}, + {"matrix": [9, 5], "x": 137, "y": 64, "flags": 4}, + {"matrix": [9, 4], "x": 159, "y": 64, "flags": 4}, + {"matrix": [9, 3], "x": 173, "y": 62, "flags": 4}, + {"matrix": [9, 2], "x": 188, "y": 62, "flags": 4} + ], + "max_brightness": 128, + "sleep": true, + "split_count": [34, 34] + }, + "split": { + "enabled": true, + "handedness": { + "pin": "GP24" + }, + "matrix_pins": { + "right": { + "cols": ["GP4", "GP9", "GP10", "GP5", "GP6", "GP8"], + "rows": ["GP19", "GP20", "GP25", "GP7", "GP11"] + } + }, + "serial": { + "driver": "vendor" + }, + "transport": { + "sync": { + "matrix_state": true + } + } + }, + "usb": { + "pid": "0xEA1D" + }, + "ws2812": { + "driver": "vendor", + "pin": "GP3" + } +} diff --git a/keyboards/splitkb/halcyon/lily58/rev2/mcuconf.h b/keyboards/splitkb/halcyon/lily58/rev2/mcuconf.h new file mode 100644 index 0000000000..126697a4a0 --- /dev/null +++ b/keyboards/splitkb/halcyon/lily58/rev2/mcuconf.h @@ -0,0 +1,14 @@ +// Copyright 2025 splitkb.com ([email protected]) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include_next <mcuconf.h> + +//// VIK + +#undef RP_I2C_USE_I2C0 +#define RP_I2C_USE_I2C0 TRUE + +#undef RP_SPI_USE_SPI1 +#define RP_SPI_USE_SPI1 TRUE diff --git a/keyboards/splitkb/halcyon/lily58/rev2/rev2.c b/keyboards/splitkb/halcyon/lily58/rev2/rev2.c new file mode 100644 index 0000000000..e0a64ae9a4 --- /dev/null +++ b/keyboards/splitkb/halcyon/lily58/rev2/rev2.c @@ -0,0 +1,28 @@ +// Copyright 2025 splitkb.com ([email protected]) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "quantum.h" + +#ifdef ENCODER_ENABLE +bool encoder_update_kb(uint8_t index, bool clockwise) { + if (!encoder_update_user(index, clockwise)) { + return false; + } + if (index == 0) { + // Volume control + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + } else if (index == 1) { + // Page up/Page down + if (clockwise) { + tap_code(KC_PGDN); + } else { + tap_code(KC_PGUP); + } + } + return false; +} +#endif diff --git a/keyboards/sporewoh/banime40/keyboard.json b/keyboards/sporewoh/banime40/keyboard.json index 39a60e9b56..7d0bb54db1 100644 --- a/keyboards/sporewoh/banime40/keyboard.json +++ b/keyboards/sporewoh/banime40/keyboard.json @@ -22,8 +22,7 @@ "dynamic_keymap": { "layer_count": 10 }, - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "community_layouts": ["ortho_4x10"], "layouts": { "LAYOUT_ortho_4x10": { diff --git a/keyboards/stenokeyboards/the_uni/pro_micro/keyboard.json b/keyboards/stenokeyboards/the_uni/pro_micro/keyboard.json index 90d6187434..9cbed0feb9 100644 --- a/keyboards/stenokeyboards/the_uni/pro_micro/keyboard.json +++ b/keyboards/stenokeyboards/the_uni/pro_micro/keyboard.json @@ -21,8 +21,7 @@ "rows": ["F4", "B2", "B6"] }, "diode_direction": "COL2ROW", - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/stront/stront.h b/keyboards/stront/stront.h index 9ca618a6fb..ebd0d491b9 100644 --- a/keyboards/stront/stront.h +++ b/keyboards/stront/stront.h @@ -3,4 +3,6 @@ #pragma once +#include <stdbool.h> + bool is_display_enabled(void); diff --git a/keyboards/subrezon/la_nc/keyboard.json b/keyboards/subrezon/la_nc/keyboard.json index 9a9a511fbf..eb9a35fded 100644 --- a/keyboards/subrezon/la_nc/keyboard.json +++ b/keyboards/subrezon/la_nc/keyboard.json @@ -18,8 +18,7 @@ "rows": ["D3", "F4", "D2", "B2", "B5", "B6"] }, "diode_direction": "COL2ROW", - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/tacworks/tac_k1/halconf.h b/keyboards/tacworks/tac_k1/halconf.h index 8760386e81..872e0217df 100644 --- a/keyboards/tacworks/tac_k1/halconf.h +++ b/keyboards/tacworks/tac_k1/halconf.h @@ -4,7 +4,5 @@ #pragma once #define HAL_USE_SPI TRUE -#define SPI_USE_WAIT TRUE -#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD #include_next <halconf.h> diff --git a/keyboards/takashicompany/center_enter/keyboard.json b/keyboards/takashicompany/center_enter/keyboard.json index 992ca29efd..4666a91484 100644 --- a/keyboards/takashicompany/center_enter/keyboard.json +++ b/keyboards/takashicompany/center_enter/keyboard.json @@ -51,8 +51,7 @@ {"pin_a": "D2", "pin_b": "D1", "resolution": 1} ] }, - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/takashicompany/compacx/keyboard.json b/keyboards/takashicompany/compacx/keyboard.json index 71d6d2ec74..916b6bfd24 100644 --- a/keyboards/takashicompany/compacx/keyboard.json +++ b/keyboards/takashicompany/compacx/keyboard.json @@ -64,8 +64,7 @@ "pin": "D2" } }, - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/takashicompany/dogtag/keyboard.json b/keyboards/takashicompany/dogtag/keyboard.json index af8d2119d4..73d138da12 100644 --- a/keyboards/takashicompany/dogtag/keyboard.json +++ b/keyboards/takashicompany/dogtag/keyboard.json @@ -40,8 +40,7 @@ } } }, - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "rgblight": { "led_count": 8, "split_count": [4, 4], diff --git a/keyboards/takashicompany/endzone34/keyboard.json b/keyboards/takashicompany/endzone34/keyboard.json index c0b696e845..38379c0c46 100644 --- a/keyboards/takashicompany/endzone34/keyboard.json +++ b/keyboards/takashicompany/endzone34/keyboard.json @@ -48,9 +48,8 @@ "rows": ["B3", "B2", "B6", "B5"] }, "diode_direction": "COL2ROW", - "processor": "atmega32u4", - "bootloader": "caterina", - "layouts": { + "development_board": "promicro", + "layouts": { "LAYOUT": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0.5}, diff --git a/keyboards/takashicompany/mirageix/keyboard.json b/keyboards/takashicompany/mirageix/keyboard.json index d151eeb655..580bce64cb 100644 --- a/keyboards/takashicompany/mirageix/keyboard.json +++ b/keyboards/takashicompany/mirageix/keyboard.json @@ -14,7 +14,6 @@ "cols": ["D4", "C6", "D7", "E6", "B4", "B5"], "rows": ["F4", "F5", "F6", "F7", "B1", "B3", "B2", "B6"] }, - "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0065", diff --git a/keyboards/takashicompany/qoolee/keyboard.json b/keyboards/takashicompany/qoolee/keyboard.json index 26389b03a3..873ca082ac 100644 --- a/keyboards/takashicompany/qoolee/keyboard.json +++ b/keyboards/takashicompany/qoolee/keyboard.json @@ -52,9 +52,8 @@ {"pin_a": "D2", "pin_b": "D1", "resolution": 1} ] }, - "processor": "atmega32u4", - "bootloader": "caterina", - "layouts": { + "development_board": "promicro", + "layouts": { "LAYOUT": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0, "w": 1.5}, diff --git a/keyboards/takashicompany/radialex/keyboard.json b/keyboards/takashicompany/radialex/keyboard.json index 3b71cc6a5b..e1b88feac8 100644 --- a/keyboards/takashicompany/radialex/keyboard.json +++ b/keyboards/takashicompany/radialex/keyboard.json @@ -47,8 +47,7 @@ "rows": ["B6", "D4", "C6", "D7", "E6", "B4", "B5"] }, "diode_direction": "COL2ROW", - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/takashicompany/spreadwriter/keyboard.json b/keyboards/takashicompany/spreadwriter/keyboard.json index 59c78c4532..d544a3e13e 100644 --- a/keyboards/takashicompany/spreadwriter/keyboard.json +++ b/keyboards/takashicompany/spreadwriter/keyboard.json @@ -2,7 +2,7 @@ "manufacturer": "takashicompany", "keyboard_name": "Spreadwriter", "maintainer": "takashicompany", - "bootloader": "caterina", + "development_board": "promicro", "diode_direction": "COL2ROW", "features": { "bootmagic": true, @@ -16,7 +16,6 @@ "cols": ["D4", "C6", "D7", "E6", "B4", "B5", "D2"], "rows": ["F4", "F5", "F6", "F7", "B1", "B3", "B2", "B6"] }, - "processor": "atmega32u4", "url": "https://github.com/takashicompany/spreadwriter", "usb": { "device_version": "1.0.0", diff --git a/keyboards/takashiski/hecomi/alpha/keyboard.json b/keyboards/takashiski/hecomi/alpha/keyboard.json index edb920c82d..58167f38d6 100644 --- a/keyboards/takashiski/hecomi/alpha/keyboard.json +++ b/keyboards/takashiski/hecomi/alpha/keyboard.json @@ -43,8 +43,7 @@ "ws2812": { "pin": "D4" }, - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/takashiski/namecard2x4/info.json b/keyboards/takashiski/namecard2x4/info.json index 895f3e4c4b..dd95017b3b 100644 --- a/keyboards/takashiski/namecard2x4/info.json +++ b/keyboards/takashiski/namecard2x4/info.json @@ -16,8 +16,7 @@ "pid": "0x0000", "device_version": "0.0.1" }, - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/tanuki/keyboard.json b/keyboards/tanuki/keyboard.json index 90c5cd7cf7..ac6b257652 100644 --- a/keyboards/tanuki/keyboard.json +++ b/keyboards/tanuki/keyboard.json @@ -45,8 +45,7 @@ "rows": ["F7", "B1", "D4", "D0"] }, "diode_direction": "COL2ROW", - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/tender/macrowo_pad/keyboard.json b/keyboards/tender/macrowo_pad/keyboard.json index 2380daf8b1..13f486d5b5 100644 --- a/keyboards/tender/macrowo_pad/keyboard.json +++ b/keyboards/tender/macrowo_pad/keyboard.json @@ -19,8 +19,7 @@ "rows": ["B5", "D7"] }, "diode_direction": "COL2ROW", - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/tenki/keyboard.json b/keyboards/tenki/keyboard.json index 913017866b..394e4cbfdf 100644 --- a/keyboards/tenki/keyboard.json +++ b/keyboards/tenki/keyboard.json @@ -48,8 +48,7 @@ "rows": ["B1", "B4", "F6", "B6", "B2"] }, "diode_direction": "COL2ROW", - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "community_layouts": ["ortho_5x4"], "layouts": { "LAYOUT_ortho_5x4": { diff --git a/keyboards/tg4x/keyboard.json b/keyboards/tg4x/keyboard.json index a2e4a84ff5..0cedae15d6 100644 --- a/keyboards/tg4x/keyboard.json +++ b/keyboards/tg4x/keyboard.json @@ -49,9 +49,8 @@ "rows": ["B5", "B4", "E6", "D7", "C6", "D4", "D0", "D1"] }, "diode_direction": "COL2ROW", - "processor": "atmega32u4", - "bootloader": "caterina", - "layouts": { + "development_board": "promicro", + "layouts": { "LAYOUT": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, 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 + + + +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 + + + +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/tominabox1/qaz/keyboard.json b/keyboards/tominabox1/qaz/keyboard.json index 4595b5f42f..cc0a4c5e84 100644 --- a/keyboards/tominabox1/qaz/keyboard.json +++ b/keyboards/tominabox1/qaz/keyboard.json @@ -45,8 +45,7 @@ "rows": ["F4", "D4", "C6", "E6", "D1", "D0"] }, "diode_direction": "COL2ROW", - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "layouts": { "LAYOUT_split_space": { "layout": [ diff --git a/keyboards/trnthsn/s6xty5neor2/halconf.h b/keyboards/trnthsn/s6xty5neor2/halconf.h index 337ed5da18..b8f0a217c4 100644 --- a/keyboards/trnthsn/s6xty5neor2/halconf.h +++ b/keyboards/trnthsn/s6xty5neor2/halconf.h @@ -17,6 +17,5 @@ #pragma once #define HAL_USE_SPI TRUE -#define SPI_USE_WAIT TRUE -#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD + #include_next <halconf.h> diff --git a/keyboards/4pplet/waffling60/rev_b/rev_b.h b/keyboards/trnthsn/s6xtyfs/config.h index 57a4964202..5e5c1eb155 100644 --- a/keyboards/4pplet/waffling60/rev_b/rev_b.h +++ b/keyboards/trnthsn/s6xtyfs/config.h @@ -1,5 +1,5 @@ /* -Copyright 2020 Stefan Sundin "4pplet" <[email protected]> +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 @@ -14,9 +14,10 @@ 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 CAPS_LOCK_ENABLE true -//#define CAPS_LOCK_COLOR HSV_ORANGE +#pragma once -#include "quantum.h" +#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/4pplet/waffling60/rev_e/rev_e.h b/keyboards/trnthsn/s6xtyfs/halconf.h index 61ebac1912..737b1927a3 100644 --- a/keyboards/4pplet/waffling60/rev_e/rev_e.h +++ b/keyboards/trnthsn/s6xtyfs/halconf.h @@ -1,5 +1,5 @@ /* -Copyright 2022 Stefan Sundin "4pplet" <[email protected]> +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 @@ -14,9 +14,9 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>. */ + #pragma once -#include "quantum.h" +#define HAL_USE_SPI TRUE -#define CAPS_LOCK_ENABLE true -#define CAPS_LOCK_COLOR HSV_GREEN +#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/4pplet/waffling60/rev_d/rev_d.h b/keyboards/trnthsn/s6xtyfs/mcuconf.h index 641b663336..03624a3d2f 100644 --- a/keyboards/4pplet/waffling60/rev_d/rev_d.h +++ b/keyboards/trnthsn/s6xtyfs/mcuconf.h @@ -1,5 +1,5 @@ /* -Copyright 2022 Stefan Sundin "4pplet" <[email protected]> +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 @@ -14,9 +14,10 @@ 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 CAPS_LOCK_ENABLE true -//#define CAPS_LOCK_COLOR HSV_ORANGE +#include_next <mcuconf.h> -#include "quantum.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 + + + +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 c651cd660d..03535587c4 100644 --- a/keyboards/tzarc/djinn/graphics/theme_djinn_default.c +++ b/keyboards/tzarc/djinn/graphics/theme_djinn_default.c @@ -31,49 +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 -# 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 -# 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); @@ -157,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/umbra/solder/solder.c b/keyboards/umbra/solder/solder.c index ef7581deab..de0681b229 100644 --- a/keyboards/umbra/solder/solder.c +++ b/keyboards/umbra/solder/solder.c @@ -14,7 +14,15 @@ 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 "solder.h" +#include "quantum.h" + +#ifndef CAPS_LOCK_ENABLE +# define CAPS_LOCK_ENABLE true +#endif + +#ifndef CAPS_LOCK_COLOR +# define CAPS_LOCK_COLOR HSV_GREEN +#endif void keyboard_pre_init_kb(void) { rgblight_set_effect_range(0, 16); diff --git a/keyboards/umbra/solder/solder.h b/keyboards/umbra/solder/solder.h deleted file mode 100644 index 4a82a87a09..0000000000 --- a/keyboards/umbra/solder/solder.h +++ /dev/null @@ -1,22 +0,0 @@ -/* -Copyright 2024 Joseph Williams IV "IV Works" <[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 "quantum.h" - -#define CAPS_LOCK_ENABLE true -#define CAPS_LOCK_COLOR HSV_GREEN diff --git a/keyboards/ungodly/nines/keyboard.json b/keyboards/ungodly/nines/keyboard.json index ee4c65f9bb..a92711c5c3 100644 --- a/keyboards/ungodly/nines/keyboard.json +++ b/keyboards/ungodly/nines/keyboard.json @@ -14,8 +14,7 @@ {"pin_a": "E6", "pin_b": "B4", "resolution": 2} ] }, - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "features": { "bootmagic": true, "encoder": true, diff --git a/keyboards/unikeyboard/diverge3/keyboard.json b/keyboards/unikeyboard/diverge3/keyboard.json index 53c5f55fcd..187e5dead0 100644 --- a/keyboards/unikeyboard/diverge3/keyboard.json +++ b/keyboards/unikeyboard/diverge3/keyboard.json @@ -37,8 +37,7 @@ "pin": "D0" } }, - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/unikeyboard/divergetm2/keyboard.json b/keyboards/unikeyboard/divergetm2/keyboard.json index 3dc19772fa..c0c0f15c0c 100644 --- a/keyboards/unikeyboard/divergetm2/keyboard.json +++ b/keyboards/unikeyboard/divergetm2/keyboard.json @@ -31,8 +31,7 @@ "pin": "D0" } }, - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "layout_aliases": { "LAYOUT_ortho_4x12_2x2u": "LAYOUT" }, diff --git a/keyboards/unikeyboard/felix/keyboard.json b/keyboards/unikeyboard/felix/keyboard.json index 232c5f80f1..612bccd196 100644 --- a/keyboards/unikeyboard/felix/keyboard.json +++ b/keyboards/unikeyboard/felix/keyboard.json @@ -29,8 +29,7 @@ "pin": "C6", "levels": 5 }, - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "community_layouts": ["ortho_5x4"], "layout_aliases": { "LAYOUT": "LAYOUT_ortho_5x4" diff --git a/keyboards/uzu42/rev1/keyboard.json b/keyboards/uzu42/rev1/keyboard.json index 6f4f080e67..3b152c7b59 100644 --- a/keyboards/uzu42/rev1/keyboard.json +++ b/keyboards/uzu42/rev1/keyboard.json @@ -45,8 +45,7 @@ "twinkle": true } }, - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/vagrant_10/keyboard.json b/keyboards/vagrant_10/keyboard.json index 4bf29fba11..d59095c2d7 100644 --- a/keyboards/vagrant_10/keyboard.json +++ b/keyboards/vagrant_10/keyboard.json @@ -25,8 +25,7 @@ "rows": ["F7", "B1", "B3", "B2"] }, "diode_direction": "COL2ROW", - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/waveshare/rp2040_keyboard_3/keyboard.json b/keyboards/waveshare/rp2040_keyboard_3/keyboard.json new file mode 100644 index 0000000000..1c8bd11de5 --- /dev/null +++ b/keyboards/waveshare/rp2040_keyboard_3/keyboard.json @@ -0,0 +1,84 @@ +{ + "manufacturer": "Waveshare", + "keyboard_name": "RP2040-Keyboard-3", + "maintainer": "zvecr", + "url": "https://www.waveshare.com/wiki/RP2040-Keyboard-3", + "processor": "RP2040", + "bootloader": "rp2040", + "usb": { + "vid": "0xFEED", + "pid": "0x0000", + "device_version": "1.0.0" + }, + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "rgb_matrix": true + }, + "rgb_matrix": { + "driver": "ws2812", + "animations": { + "gradient_left_right": true, + "breathing": true, + "band_sat": true, + "band_val": true, + "band_pinwheel_sat": true, + "band_pinwheel_val": true, + "band_spiral_sat": true, + "band_spiral_val": true, + "cycle_all": true, + "cycle_left_right": true, + "cycle_out_in": true, + "cycle_out_in_dual": true, + "rainbow_moving_chevron": true, + "cycle_pinwheel": true, + "cycle_spiral": true, + "dual_beacon": true, + "rainbow_beacon": true, + "rainbow_pinwheels": true, + "raindrops": true, + "jellybean_raindrops": true, + "hue_breathing": true, + "hue_pendulum": true, + "hue_wave": true, + "pixel_fractal": true, + "pixel_flow": true, + "pixel_rain": true, + "typing_heatmap": true, + "digital_rain": true, + "solid_reactive_simple": true, + "solid_reactive": true, + "solid_reactive_wide": true, + "solid_reactive_multiwide": true, + "splash": true, + "multisplash": true, + "solid_splash": true, + "solid_multisplash": true + }, + "layout": [ + {"flags": 4, "matrix": [0, 0], "x": 50, "y": 20}, + {"flags": 4, "matrix": [0, 1], "x": 112, "y": 20}, + {"flags": 4, "matrix": [0, 2], "x": 162, "y": 20} + ], + "sleep": true + }, + "ws2812": { + "driver": "vendor", + "pin": "GP18" + }, + "matrix_pins": { + "direct": [ + ["GP14", "GP13", "GP12"] + ] + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0} + ] + } + } +} diff --git a/keyboards/waveshare/rp2040_keyboard_3/keymaps/default/keymap.c b/keyboards/waveshare/rp2040_keyboard_3/keymaps/default/keymap.c new file mode 100644 index 0000000000..4b95bf189e --- /dev/null +++ b/keyboards/waveshare/rp2040_keyboard_3/keymaps/default/keymap.c @@ -0,0 +1,8 @@ +// Copyright 2025 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT(KC_LCTL, KC_C, KC_V) +}; diff --git a/keyboards/waveshare/rp2040_keyboard_3/readme.md b/keyboards/waveshare/rp2040_keyboard_3/readme.md new file mode 100644 index 0000000000..c6f5f5e122 --- /dev/null +++ b/keyboards/waveshare/rp2040_keyboard_3/readme.md @@ -0,0 +1,28 @@ +# RP2040-Keyboard-3 + + + +RP2040-Keyboard-3 is a high-performance, cost-effective three-key keyboard development board designed by Waveshare. +It features programmable custom key functions and RGB lighting effects. + +* Keyboard Maintainer: [zvecr](https://github.com/zvecr) +* Hardware Supported: <https://www.waveshare.com/wiki/RP2040-Keyboard-3> +* Hardware Availability: <https://thepihut.com/products/rp2040-ctrl-c-v-shortcut-keyboard-plus> + +Make example for this keyboard (after setting up your build environment): + + make waveshare/rp2040_keyboard_3:default + +Flashing example for this keyboard: + + make waveshare/rp2040_keyboard_3: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 (top left key) and plug in the keyboard +* **Physical reset button**: Press and hold the `BOOT` button, then briefly press the `RESET` button on the back of the PCB +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available 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/winry/winry25tc/keymaps/lightsout/keymap.c b/keyboards/winry/winry25tc/keymaps/lightsout/keymap.c index f175f36b91..4e22b6b751 100644 --- a/keyboards/winry/winry25tc/keymaps/lightsout/keymap.c +++ b/keyboards/winry/winry25tc/keymaps/lightsout/keymap.c @@ -82,9 +82,9 @@ void refresh_leds(void) { uint8_t tile = tiles[x][y]; uint8_t index = (y * 5) + x; if (tile) { - setrgb(RGB_RED, &led[remap[index]]); + rgblight_setrgb_at(RGB_RED, remap[index]); } else { - setrgb(RGB_WHITE, &led[remap[index]]); + rgblight_setrgb_at(RGB_WHITE, remap[index]); } } } diff --git a/keyboards/4pplet/waffling60/rev_c/rev_c.h b/keyboards/wiredin/protagonist/pro_h/config.h index 641b663336..ba515a74a2 100644 --- a/keyboards/4pplet/waffling60/rev_c/rev_c.h +++ b/keyboards/wiredin/protagonist/pro_h/config.h @@ -1,5 +1,4 @@ -/* -Copyright 2022 Stefan Sundin "4pplet" <[email protected]> +/* 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 @@ -14,9 +13,12 @@ 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 CAPS_LOCK_ENABLE true -//#define CAPS_LOCK_COLOR HSV_ORANGE +#pragma once -#include "quantum.h" +#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/4pplet/waffling80/rev_a/rev_a.h b/keyboards/wiredin/protagonist/pro_s/config.h index c8d4c8b971..90b01da8cc 100644 --- a/keyboards/4pplet/waffling80/rev_a/rev_a.h +++ b/keyboards/wiredin/protagonist/pro_s/config.h @@ -1,5 +1,4 @@ -/* -Copyright 2022 Stefan Sundin "4pplet" <[email protected]> +/* 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 @@ -14,13 +13,15 @@ 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 CAPS_LOCK_ENABLE 1 -#define SCROLL_LOCK_ENABLE 1 +#pragma once -// If colors are defined, they will be static. If not defined, color for incicators can be set in VIA. -//#define CAPS_LOCK_COLOR HSV_GREEN -//#define SCROLL_LOCK_COLOR HSV_GREEN +#define BACKLIGHT_PWM_DRIVER PWMD3 +#define BACKLIGHT_PWM_CHANNEL 4 -#include "quantum.h" +#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/wsk/alpha9/keyboard.json b/keyboards/wsk/alpha9/keyboard.json index acdc1be307..ff9e26b0d2 100644 --- a/keyboards/wsk/alpha9/keyboard.json +++ b/keyboards/wsk/alpha9/keyboard.json @@ -49,8 +49,7 @@ "ws2812": { "pin": "F4" }, - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/wsk/g4m3ralpha/keyboard.json b/keyboards/wsk/g4m3ralpha/keyboard.json index 4f88fd0ce1..f008a77a26 100644 --- a/keyboards/wsk/g4m3ralpha/keyboard.json +++ b/keyboards/wsk/g4m3ralpha/keyboard.json @@ -50,8 +50,7 @@ "rows": ["D4", "B4", "B5", "D1"] }, "diode_direction": "COL2ROW", - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/wsk/jerkin/keyboard.json b/keyboards/wsk/jerkin/keyboard.json index 3fc05080b0..4ff9701f6e 100644 --- a/keyboards/wsk/jerkin/keyboard.json +++ b/keyboards/wsk/jerkin/keyboard.json @@ -25,8 +25,7 @@ "rows": ["B3", "B4", "B5"] }, "diode_direction": "COL2ROW", - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/wsk/kodachi50/keyboard.json b/keyboards/wsk/kodachi50/keyboard.json index c93952d808..d37eb965e2 100644 --- a/keyboards/wsk/kodachi50/keyboard.json +++ b/keyboards/wsk/kodachi50/keyboard.json @@ -46,8 +46,7 @@ "rows": ["D2", "B5", "B6", "B2", "B3", "B1", "F7", "F6"] }, "diode_direction": "COL2ROW", - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/wsk/pain27/keyboard.json b/keyboards/wsk/pain27/keyboard.json index af882a112e..43a9ce5f59 100644 --- a/keyboards/wsk/pain27/keyboard.json +++ b/keyboards/wsk/pain27/keyboard.json @@ -46,8 +46,7 @@ "rows": ["F4", "F5", "D0"] }, "diode_direction": "COL2ROW", - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/xenon/keyboard.json b/keyboards/xenon/keyboard.json index 0229f73ebd..72d2a5b0d8 100644 --- a/keyboards/xenon/keyboard.json +++ b/keyboards/xenon/keyboard.json @@ -39,8 +39,7 @@ "pin": "D2" } }, - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/yampad/keyboard.json b/keyboards/yampad/keyboard.json index 789565e342..becdc2204d 100644 --- a/keyboards/yampad/keyboard.json +++ b/keyboards/yampad/keyboard.json @@ -40,8 +40,7 @@ "rows": ["C6", "D7", "E6", "B4", "B5"] }, "diode_direction": "COL2ROW", - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "debounce": 2, "layouts": { "LAYOUT": { diff --git a/keyboards/yeehaw/keyboard.json b/keyboards/yeehaw/keyboard.json index 0f10738685..86db217fe1 100644 --- a/keyboards/yeehaw/keyboard.json +++ b/keyboards/yeehaw/keyboard.json @@ -34,8 +34,7 @@ "ws2812": { "pin": "B2" }, - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "features": { "bootmagic": false, "encoder": true, 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": [ diff --git a/keyboards/yosino58/rev1/keyboard.json b/keyboards/yosino58/rev1/keyboard.json index ffc1a5d827..939a11c49d 100644 --- a/keyboards/yosino58/rev1/keyboard.json +++ b/keyboards/yosino58/rev1/keyboard.json @@ -25,8 +25,7 @@ "ws2812": { "pin": "D3" }, - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/yushakobo/navpad/10/info.json b/keyboards/yushakobo/navpad/10/info.json index e28a2e2cb1..355cec2347 100644 --- a/keyboards/yushakobo/navpad/10/info.json +++ b/keyboards/yushakobo/navpad/10/info.json @@ -37,6 +37,5 @@ "rgb_test": true } }, - "processor": "atmega32u4", - "bootloader": "caterina" + "development_board": "promicro" } diff --git a/keyboards/yushakobo/navpad/10_helix_r/keyboard.json b/keyboards/yushakobo/navpad/10_helix_r/keyboard.json index 89613390c1..89004dd0d3 100644 --- a/keyboards/yushakobo/navpad/10_helix_r/keyboard.json +++ b/keyboards/yushakobo/navpad/10_helix_r/keyboard.json @@ -63,8 +63,7 @@ "rgb_test": true } }, - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/yushakobo/quick17/keyboard.json b/keyboards/yushakobo/quick17/keyboard.json index aa0d39756d..627642a179 100644 --- a/keyboards/yushakobo/quick17/keyboard.json +++ b/keyboards/yushakobo/quick17/keyboard.json @@ -51,8 +51,7 @@ "ws2812": { "pin": "D2" }, - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/yushakobo/quick7/keyboard.json b/keyboards/yushakobo/quick7/keyboard.json index 146397d088..4bd42a2f16 100644 --- a/keyboards/yushakobo/quick7/keyboard.json +++ b/keyboards/yushakobo/quick7/keyboard.json @@ -28,8 +28,7 @@ "ws2812": { "pin": "D3" }, - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "features": { "bootmagic": true, "command": true, diff --git a/keyboards/yynmt/dozen0/keyboard.json b/keyboards/yynmt/dozen0/keyboard.json index f627152d0e..84b62cce5c 100644 --- a/keyboards/yynmt/dozen0/keyboard.json +++ b/keyboards/yynmt/dozen0/keyboard.json @@ -46,8 +46,7 @@ "rows": ["F4"] }, "diode_direction": "COL2ROW", - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/zigotica/z12/keyboard.json b/keyboards/zigotica/z12/keyboard.json index 8d797907de..9af7b86eb0 100644 --- a/keyboards/zigotica/z12/keyboard.json +++ b/keyboards/zigotica/z12/keyboard.json @@ -14,8 +14,7 @@ {"pin_a": "B6", "pin_b": "B2"} ] }, - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "build": { "lto": true }, diff --git a/keyboards/zigotica/z34/keyboard.json b/keyboards/zigotica/z34/keyboard.json index 0a96fa0091..c5d2cc8ae9 100644 --- a/keyboards/zigotica/z34/keyboard.json +++ b/keyboards/zigotica/z34/keyboard.json @@ -20,8 +20,7 @@ "resync": true } }, - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "matrix_pins": { "direct": [ ["C6", "F7", "F6", "F5", "F4"], |