Merge remote-tracking branch 'origin/develop' into xap

This commit is contained in:
QMK Bot
2025-09-10 23:33:23 +00:00
14 changed files with 141 additions and 370 deletions
+11 -2
View File
@@ -1620,8 +1620,11 @@
"0_sixty": {
"target": "0_sixty/base"
},
"0xcb/splaytoraid": {
"target": "0xcb/splaytoraid/rp2040_ce"
"0xcb/splaytoraid/32u4": {
"target": "0xcb/splaytoraid"
},
"0xcb/splaytoraid/rp2040_ce": {
"target": "0xcb/splaytoraid"
},
"1upkeyboards/pi40": {
"target": "1upkeyboards/pi40/mit_v1_0"
@@ -1632,6 +1635,12 @@
"1upkeyboards/sweet16": {
"target": "1upkeyboards/sweet16/v1"
},
"1upkeyboards/sweet16v2/kb2040": {
"target": "1upkeyboards/sweet16v2"
},
"1upkeyboards/sweet16v2/pro_micro": {
"target": "1upkeyboards/sweet16v2"
},
"25keys/aleth42": {
"target": "25keys/aleth42/rev1"
},
@@ -1,27 +0,0 @@
{
"development_board": "promicro",
"bootloader": "qmk-dfu",
"matrix_pins": {
"cols": ["F5", "F6", "F7", "F4", "B3", "B1", "B2"],
"rows": ["D3", "D2", "D1", "D4", "D7", "E6", "B4", "C6"]
},
"diode_direction": "COL2ROW",
"rgb_matrix": {
"animations": {
"band_sat": true,
"band_spiral_val": true,
"breathing": true,
"cycle_all": true,
"cycle_left_right": true,
"raindrops": true
}
},
"encoder": {
"rotary": [
{"pin_a": "B5", "pin_b": "B6"}
]
},
"ws2812": {
"pin": "D0"
}
}
@@ -2,28 +2,58 @@
"manufacturer": "Freya",
"keyboard_name": "splaytoraid",
"maintainer": "freya-irl",
"url": "https://github.com/freya-irl/splaytoraid40",
"usb": {
"device_version": "1.0.0",
"pid": "0xCB00",
"vid": "0x2004"
},
"features": {
"extrakey": true,
"rgb_matrix": true,
"bootmagic": true,
"console": true,
"mousekey": true,
"nkro": true,
"encoder": true
},
"bootloader": "qmk-dfu",
"bootmagic": {
"matrix": [1, 0]
},
"build": {
"lto": true
},
"development_board": "promicro",
"diode_direction": "COL2ROW",
"encoder": {
"rotary": [
{"pin_a": "B5", "pin_b": "B6"}
]
},
"features": {
"bootmagic": true,
"encoder": true,
"extrakey": true,
"mousekey": true,
"nkro": true,
"rgb_matrix": true
},
"matrix_pins": {
"cols": ["F5", "F6", "F7", "F4", "B3", "B1", "B2"],
"rows": ["D3", "D2", "D1", "D4", "D7", "E6", "B4", "C6"]
},
"rgb_matrix": {
"animations": {
"band_sat": true,
"band_spiral_val": true,
"breathing": true,
"cycle_all": true,
"cycle_left_right": true,
"cycle_out_in": true,
"cycle_out_in_dual": true,
"cycle_pinwheel": true,
"cycle_up_down": true,
"digital_rain": true,
"dual_beacon": true,
"hue_breathing": true,
"jellybean_raindrops": true,
"multisplash": true,
"pixel_fractal": true,
"pixel_rain": true,
"rainbow_moving_chevron": true,
"raindrops": true,
"solid_reactive": true,
"solid_reactive_simple": true,
"solid_splash": true,
"splash": true,
"typing_heatmap": true
},
"default": {
"animation": "breathing",
"hue": 152,
@@ -32,27 +62,36 @@
},
"driver": "ws2812",
"layout": [
{"flags": 4, "matrix": [0, 2], "x": 0, "y": 0},
{"flags": 4, "matrix": [1, 0], "x": 20, "y": 0},
{"flags": 4, "matrix": [7, 0], "x": 61, "y": 0},
{"flags": 4, "matrix": [7, 1], "x": 163, "y": 0},
{"flags": 4, "matrix": [5, 0], "x": 203, "y": 0},
{"flags": 4, "matrix": [4, 2], "x": 224, "y": 0},
{"flags": 4, "matrix": [6, 2], "x": 0, "y": 21},
{"flags": 4, "matrix": [6, 1], "x": 224, "y": 21},
{"flags": 4, "matrix": [3, 3], "x": 20, "y": 43},
{"flags": 4, "matrix": [7, 3], "x": 61, "y": 43},
{"flags": 4, "matrix": [6, 4], "x": 163, "y": 43},
{"flags": 4, "matrix": [6, 3], "x": 203, "y": 43},
{"flags": 4, "matrix": [4, 3], "x": 61, "y": 64},
{"flags": 4, "matrix": [5, 5], "x": 81, "y": 64},
{"flags": 4, "matrix": [7, 4], "x": 101, "y": 64},
{"flags": 4, "matrix": [7, 5], "x": 122, "y": 64},
{"flags": 4, "matrix": [1, 5], "x": 142, "y": 64},
{"flags": 4, "matrix": [0, 3], "x": 163, "y": 64}
{"matrix": [0, 2], "x": 0, "y": 0, "flags": 4},
{"matrix": [1, 0], "x": 20, "y": 0, "flags": 4},
{"matrix": [7, 0], "x": 61, "y": 0, "flags": 4},
{"matrix": [7, 1], "x": 163, "y": 0, "flags": 4},
{"matrix": [5, 0], "x": 203, "y": 0, "flags": 4},
{"matrix": [4, 2], "x": 224, "y": 0, "flags": 4},
{"matrix": [6, 2], "x": 0, "y": 21, "flags": 4},
{"matrix": [6, 1], "x": 224, "y": 21, "flags": 4},
{"matrix": [3, 3], "x": 20, "y": 43, "flags": 4},
{"matrix": [7, 3], "x": 61, "y": 43, "flags": 4},
{"matrix": [6, 4], "x": 163, "y": 43, "flags": 4},
{"matrix": [6, 3], "x": 203, "y": 43, "flags": 4},
{"matrix": [4, 3], "x": 61, "y": 64, "flags": 4},
{"matrix": [5, 5], "x": 81, "y": 64, "flags": 4},
{"matrix": [7, 4], "x": 101, "y": 64, "flags": 4},
{"matrix": [7, 5], "x": 122, "y": 64, "flags": 4},
{"matrix": [1, 5], "x": 142, "y": 64, "flags": 4},
{"matrix": [0, 3], "x": 163, "y": 64, "flags": 4}
],
"max_brightness": 200
},
"url": "https://github.com/freya-irl/splaytoraid40",
"usb": {
"device_version": "1.0.0",
"pid": "0xCB00",
"vid": "0x2004"
},
"ws2812": {
"pin": "D0"
},
"layouts": {
"LAYOUT_36": {
"layout": [
@@ -1,49 +0,0 @@
// Copyright 2023 Conor Burns (@Conor-Burns)
/* SPDX-License-Identifier: GPL-2.0-or-later */
#include QMK_KEYBOARD_H
enum layer_names {
_BASE,
_LOWER,
_RAISE,
_ADJUST
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_BASE] = LAYOUT_40(
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_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH,
KC_LSFT, KC_ESC, KC_ENT, KC_MPLY, KC_SPC, KC_DEL, KC_RSFT
),
[_LOWER] = LAYOUT_40(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______
),
[_RAISE] = LAYOUT_40(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______
),
[_ADJUST] = LAYOUT_40(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______
)
};
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
[_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
[_LOWER] = { ENCODER_CCW_CW(KC_MPRV, KC_MNXT) },
[_RAISE] = { ENCODER_CCW_CW(UG_VALD, UG_VALU) },
[_ADJUST] = { ENCODER_CCW_CW(KC_RGHT, KC_LEFT) }
};
@@ -0,0 +1,21 @@
{
"keyboard": "0xcb/splaytoraid",
"keymap": "default",
"config": {
"features": {
"encoder_map": true
}
},
"layout": "LAYOUT_40",
"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_Z", "KC_X", "KC_C", "KC_V", "KC_B", "KC_N", "KC_M", "KC_COMM", "KC_DOT", "KC_SLSH",
"KC_LSFT", "KC_ESC", "KC_ENT", "KC_MPLY", "KC_SPC", "KC_DEL", "KC_RSFT"
]
],
"encoders": [
[{"ccw": "KC_VOLD", "cw": "KC_VOLU"}]
]
}
@@ -1 +0,0 @@
ENCODER_MAP_ENABLE = yes
+1 -8
View File
@@ -11,13 +11,10 @@ A 40% ergonomic keyboard with a stacked acrylic case and RGB underglow.
Make example for this keyboard (after setting up your build environment):
make 0xcb/splaytoraid:default
make 0xcb/splaytoraid/32u4:default
Flashing example for this keyboard:
make 0xcb/splaytoraid:default:flash
make 0xcb/splaytoraid/32u4: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).
@@ -29,8 +26,4 @@ Enter the bootloader in 3 ways:
* **Physical reset button**: Press the button on the controller (Helios) for more than 500ms or just press it (Pluto)
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available
Please note that the default bootloader for the `32u4` version is QMK DFU, for compatibility with [0xCB Pluto](https://github.com/0xCB-dev/0xCB-Pluto). Generic Pro Micros often use a different bootloader, such as `caterina`.
If the incorrect bootloader is specified, bootmagic reset and the `QK_BOOT` keycode will not work.
To avoid this problem, set the correct bootloader in your custom keymap's `rules.mk` file before compiling, or flash using an appropriate target (ex: `make 0xcb/splaytoraid/32u4:default:avrdude`). See [flashing instructions and bootloader information](https://docs.qmk.fm/#/flashing) for more details.
When using an AVR microcontroller with this keyboard, the bootloader is configured to be QMK DFU for compatibility with [0xCB Pluto](https://github.com/0xCB-dev/0xCB-Pluto). If your microcontroller does not use this bootloader, ensure to set this parameter appropriately in your keymap's `rules.mk` file.
@@ -1,44 +0,0 @@
{
"development_board": "promicro_rp2040",
"matrix_pins": {
"cols": ["GP28", "GP27", "GP26", "GP29", "GP20", "GP22", "GP23"],
"rows": ["GP0", "GP1", "GP2", "GP4", "GP6", "GP7", "GP8", "GP5"]
},
"diode_direction": "COL2ROW",
"rgb_matrix": {
"animations": {
"band_sat": true,
"band_spiral_val": true,
"breathing": true,
"cycle_all": true,
"cycle_left_right": true,
"cycle_out_in": true,
"cycle_out_in_dual": true,
"cycle_pinwheel": true,
"cycle_up_down": true,
"digital_rain": true,
"dual_beacon": true,
"hue_breathing": true,
"jellybean_raindrops": true,
"multisplash": true,
"pixel_fractal": true,
"pixel_rain": true,
"rainbow_moving_chevron": true,
"raindrops": true,
"solid_reactive": true,
"solid_reactive_simple": true,
"solid_splash": true,
"splash": true,
"typing_heatmap": true
}
},
"encoder": {
"rotary": [
{"pin_a": "GP9", "pin_b": "GP21"}
]
},
"ws2812": {
"pin": "GP3",
"driver": "vendor"
}
}
@@ -1,3 +0,0 @@
# rp2040_ce
This folder is set as default in the parent rules.mk - it will build firmware compatible with the RP2040 Community Edition. See [here](https://docs.qmk.fm/#/platformdev_rp2040?id=rp2040_ce) for a list.
@@ -1,143 +0,0 @@
{
"manufacturer": "1upkeyboards",
"keyboard_name": "sweet16v2",
"url": "1upkeyboards.com/shop/keyboard-kits/macro-pads/sweet-16-v2-macropad-kit/",
"maintainer": "ziptyze",
"processor": "RP2040",
"bootloader": "rp2040",
"board": "GENERIC_RP_RP2040",
"usb": {
"device_version": "1.0.0",
"pid": "0x5518",
"vid": "0x6F75"
},
"features": {
"bootmagic": true,
"encoder": true,
"extrakey": true,
"mousekey": true,
"nkro": false,
"rgb_matrix": true
},
"qmk": {
"locking": {
"enabled": true,
"resync": true
}
},
"ws2812": {
"pin": "GP6",
"driver": "vendor"
},
"matrix_pins": {
"cols": ["GP2", "GP9", "GP8", "GP7"],
"rows": ["GP26", "GP1", "GP18", "GP5"]
},
"diode_direction": "COL2ROW",
"dynamic_keymap": {
"layer_count": 10
},
"encoder": {
"enabled": true,
"rotary": [
{"pin_a": "GP27", "pin_b": "GP28"},
{"pin_a": "GP4", "pin_b": "GP3"}
]
},
"rgb_matrix": {
"animmations": {
"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",
"layout": [
{"flags": 4, "matrix": [0, 0], "x": 28, "y": 12},
{"flags": 4, "matrix": [0, 1], "x": 84, "y": 12},
{"flags": 4, "matrix": [0, 2], "x": 140, "y": 12},
{"flags": 4, "matrix": [0, 3], "x": 196, "y": 12},
{"flags": 2, "x": 196, "y": 17},
{"flags": 4, "matrix": [1, 3], "x": 196, "y": 28},
{"flags": 4, "matrix": [1, 2], "x": 140, "y": 28},
{"flags": 4, "matrix": [1, 1], "x": 84, "y": 28},
{"flags": 2, "x": 28, "y": 17},
{"flags": 4, "matrix": [1, 0], "x": 28, "y": 28},
{"flags": 4, "matrix": [2, 0], "x": 28, "y": 44},
{"flags": 4, "matrix": [2, 1], "x": 84, "y": 44},
{"flags": 4, "matrix": [2, 2], "x": 140, "y": 44},
{"flags": 4, "matrix": [2, 3], "x": 196, "y": 44},
{"flags": 2, "x": 196, "y": 47},
{"flags": 4, "matrix": [3, 3], "x": 196, "y": 60},
{"flags": 4, "matrix": [3, 2], "x": 140, "y": 60},
{"flags": 4, "matrix": [3, 1], "x": 84, "y": 60},
{"flags": 2, "x": 28, "y": 47},
{"flags": 4, "matrix": [3, 0], "x": 28, "y": 60}
],
"sleep": true
},
"community_layouts": [
"ortho_4x4"
],
"layouts": {
"LAYOUT_ortho_4x4": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0},
{"matrix": [0, 2], "x": 2, "y": 0},
{"matrix": [0, 3], "x": 3, "y": 0},
{"matrix": [1, 0], "x": 0, "y": 1},
{"matrix": [1, 1], "x": 1, "y": 1},
{"matrix": [1, 2], "x": 2, "y": 1},
{"matrix": [1, 3], "x": 3, "y": 1},
{"matrix": [2, 0], "x": 0, "y": 2},
{"matrix": [2, 1], "x": 1, "y": 2},
{"matrix": [2, 2], "x": 2, "y": 2},
{"matrix": [2, 3], "x": 3, "y": 2},
{"matrix": [3, 0], "x": 0, "y": 3},
{"matrix": [3, 1], "x": 1, "y": 3},
{"matrix": [3, 2], "x": 2, "y": 3},
{"matrix": [3, 3], "x": 3, "y": 3}
]
}
}
}
@@ -3,8 +3,7 @@
"keyboard_name": "sweet16v2",
"url": "1upkeyboards.com/shop/keyboard-kits/macro-pads/sweet-16-v2-macropad-kit/",
"maintainer": "ziptyze",
"bootloader": "atmel-dfu",
"processor": "atmega32u4",
"development_board": "elite_c",
"usb": {
"device_version": "1.0.0",
"pid": "0x5518",
@@ -15,7 +14,6 @@
"encoder": true,
"extrakey": true,
"mousekey": true,
"nkro": false,
"rgb_matrix": true
},
"qmk": {
@@ -36,7 +34,6 @@
"layer_count": 10
},
"encoder": {
"enabled": true,
"rotary": [
{"pin_a": "F6", "pin_b": "F5"},
{"pin_a": "D4", "pin_b": "D0"}
@@ -1,41 +0,0 @@
/* Copyright 2022 ziptyze
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_ortho_4x4(
KC_P7, KC_P8, KC_P9, KC_PMNS,
KC_P4, KC_P5, KC_P6, KC_PPLS,
KC_P1, KC_P2, KC_P3, KC_PSLS,
MO(1), KC_P0, KC_PDOT, KC_PENT
),
[1] = LAYOUT_ortho_4x4(
RM_TOGG, RM_HUEU, RM_SATU, RM_VALU,
RM_NEXT, RM_HUED, RM_SATD, RM_VALD,
RM_SPDD, RM_SPDU, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT
)
};
#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(RM_VALD, RM_VALU) },
[1] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }
};
#endif
@@ -0,0 +1,28 @@
{
"keyboard": "1upkeyboards/sweet16v2",
"keymap": "default",
"coonfig": {
"features": {
"encoder_map": true
}
},
"layout": "LAYOUT_ortho_4x4",
"layers": [
[
"KC_P7", "KC_P8", "KC_P8", "KC_PMNS",
"KC_P4", "KC_P5", "KC_P6", "KC_PPLS",
"KC_P1", "KC_P2", "KC_P3", "KC_PSLS",
"MO(1)", "KC_P0", "KC_PDOT", "KC_PENT"
],
[
"RM_TOGG", "RM_HUEU", "RM_SATU", "RM_VALU",
"RM_NEXT", "RM_HUED", "RM_SATD", "RM_VALD",
"RM_SPDD", "RM_SPDU", "_______", "_______",
"_______", "_______", "_______", "QK_BOOT"
]
],
"encoders": [
[{"ccw": "KC_VOLD", "cw": "KC_VOLU"}, {"ccw": "RM_VALD", "cw": "RM_VALU"}],
[{"ccw": "_______", "cw": "_______"}, {"ccw": "_______", "cw": "_______"}]
]
}
+7 -15
View File
@@ -1,26 +1,18 @@
# sweet16v2
A 4x4 macropad with RGB inswitch lighting and underglow.
A 4x4 macropad with per-key RGB lighting and underglow.
* Keyboard Maintainer: [ziptyze](https://github.com/ziptyze)
* Hardware Supported: 1upkeyboards Sweet 16 v2
* Hardware Availability: [1upkeyboards](https://1upkeyboards.com/)
Make example for this keyboard using an atmel-based controller (after setting up your build environment):
Make example for this keyboard (after setting up your build environment):
make 1upkeyboards/sweet16v2/promicro:default
make 1upkeyboards/sweet16v2:default
Flashing example for this keyboard using an atmel-based controller:
Flashing example for this keyboard:
make 1upkeyboards/sweet16v2/promicro:default:flash
Make example for this keyboard using an rp2040-based controller (after setting up your build environment):
make 1upkeyboards/sweet16v2/kb2040:default
Flashing example for this keyboard using an rp2040-based controller:
make 1upkeyboards/sweet16v2/kb2040:default:flash
make 1upkeyboards/sweet16v2: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).
@@ -30,10 +22,10 @@ Enter the bootloader in 3 ways for atmel-based controllers:
* **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 `RESET` if it is available
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available
Enter the bootloader in 2 ways for rp2040-based controllers:
* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard
* **Bootsel button**: Hold the bootsel button on controller and plug in the keyboard
* **Bootsel button**: Hold the bootsel button on controller and plug in the keyboard