aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile8
-rw-r--r--builddefs/common_features.mk2
-rw-r--r--data/mappings/info_rules.hjson2
-rw-r--r--data/mappings/keyboard_aliases.hjson49
-rw-r--r--docs/config_options.md2
-rw-r--r--docs/features/led_matrix.md21
-rw-r--r--docs/features/pointing_device.md32
-rw-r--r--docs/features/rgb_matrix.md21
-rw-r--r--drivers/sensors/adns5050.c6
-rw-r--r--drivers/sensors/adns5050.h2
-rw-r--r--drivers/sensors/adns9800.c11
-rw-r--r--drivers/sensors/adns9800.h2
-rw-r--r--drivers/sensors/analog_joystick.c4
-rw-r--r--drivers/sensors/analog_joystick.h2
-rw-r--r--drivers/sensors/azoteq_iqs5xx.c100
-rw-r--r--drivers/sensors/azoteq_iqs5xx.h2
-rw-r--r--drivers/sensors/cirque_pinnacle.c7
-rw-r--r--drivers/sensors/cirque_pinnacle.h2
-rw-r--r--drivers/sensors/cirque_pinnacle_i2c.c21
-rw-r--r--drivers/sensors/cirque_pinnacle_spi.c41
-rw-r--r--drivers/sensors/paw3204.c16
-rw-r--r--drivers/sensors/paw3204.h2
-rw-r--r--drivers/sensors/pimoroni_trackball.c7
-rw-r--r--drivers/sensors/pimoroni_trackball.h2
-rw-r--r--drivers/sensors/pmw3320.c6
-rw-r--r--drivers/sensors/pmw3320.h2
-rw-r--r--drivers/sensors/pmw3389.c2
-rw-r--r--drivers/sensors/pmw33xx_common.c6
-rw-r--r--drivers/sensors/pmw33xx_common.h2
-rw-r--r--keyboards/1upkeyboards/pi50/config.h1
-rw-r--r--keyboards/1upkeyboards/pi50/pi50.c45
-rw-r--r--keyboards/cannonkeys/satisfaction75/rules.mk2
-rw-r--r--keyboards/converter/adb_usb/rules.mk2
-rw-r--r--keyboards/converter/sun_usb/rules.mk2
-rw-r--r--keyboards/converter/usb_usb/rules.mk2
-rw-r--r--keyboards/dailycraft/bat43/info.json3
-rw-r--r--keyboards/dailycraft/claw44/rev1/keyboard.json3
-rw-r--r--keyboards/dailycraft/sandbox/rev1/keyboard.json3
-rw-r--r--keyboards/dailycraft/sandbox/rev2/keyboard.json3
-rw-r--r--keyboards/dailycraft/wings42/rev1/keyboard.json3
-rw-r--r--keyboards/dailycraft/wings42/rev1_extkeys/keyboard.json3
-rw-r--r--keyboards/dailycraft/wings42/rev2/keyboard.json3
-rw-r--r--keyboards/delikeeb/flatbread60/keyboard.json3
-rw-r--r--keyboards/delikeeb/vaneela/keyboard.json3
-rw-r--r--keyboards/delikeeb/vaneelaex/keyboard.json3
-rw-r--r--keyboards/deltasplit75/v2/keyboard.json3
-rw-r--r--keyboards/dm9records/ergoinu/keyboard.json3
-rw-r--r--keyboards/doodboard/duckboard/keyboard.json3
-rw-r--r--keyboards/doodboard/duckboard_r2/keyboard.json3
-rw-r--r--keyboards/draculad/keyboard.json3
-rw-r--r--keyboards/drhigsby/bkf/keyboard.json3
-rw-r--r--keyboards/drhigsby/dubba175/keyboard.json3
-rw-r--r--keyboards/drhigsby/ogurec/info.json3
-rw-r--r--keyboards/drhigsby/packrat/keyboard.json3
-rw-r--r--keyboards/dumbo/keyboard.json3
-rw-r--r--keyboards/dumbpad/v0x/keyboard.json3
-rw-r--r--keyboards/dumbpad/v0x_dualencoder/keyboard.json3
-rw-r--r--keyboards/dumbpad/v0x_right/keyboard.json3
-rw-r--r--keyboards/dumbpad/v1x/keyboard.json3
-rw-r--r--keyboards/dumbpad/v1x_dualencoder/keyboard.json3
-rw-r--r--keyboards/dumbpad/v1x_oled/keyboard.json3
-rw-r--r--keyboards/dumbpad/v1x_right/keyboard.json3
-rw-r--r--keyboards/dumbpad/v3x/keyboard.json3
-rw-r--r--keyboards/durgod/dgk6x/rules.mk2
-rw-r--r--keyboards/earth_rover/keyboard.json3
-rw-r--r--keyboards/eco/info.json3
-rw-r--r--keyboards/elephant42/keyboard.json3
-rw-r--r--keyboards/emajesty/eiri/keyboard.json3
-rw-r--r--keyboards/emptystring/nqg/keyboard.json3
-rw-r--r--keyboards/ergodox_ez/rules.mk2
-rw-r--r--keyboards/ergoslab/rev1/keyboard.json3
-rw-r--r--keyboards/ergotravel/rev1/keyboard.json3
-rw-r--r--keyboards/evancookaudio/sleepingdinosaur/keyboard.json3
-rw-r--r--keyboards/evancookaudio/tenpad/keyboard.json3
-rw-r--r--keyboards/ferris/0_2/rules.mk2
-rw-r--r--keyboards/ffkeebs/puca/keyboard.json3
-rw-r--r--keyboards/flehrad/numbrero/keyboard.json3
-rw-r--r--keyboards/flehrad/snagpad/keyboard.json3
-rw-r--r--keyboards/flehrad/tradestation/keyboard.json3
-rw-r--r--keyboards/for_science/keyboard.json3
-rw-r--r--keyboards/fr4/southpaw75/keyboard.json3
-rw-r--r--keyboards/fr4/unix60/keyboard.json3
-rw-r--r--keyboards/fractal/keyboard.json3
-rw-r--r--keyboards/free_willy/keyboard.json3
-rw-r--r--keyboards/fungo/rev1/keyboard.json3
-rw-r--r--keyboards/funky40/keyboard.json3
-rw-r--r--keyboards/gl516/a52gl/keyboard.json3
-rw-r--r--keyboards/gl516/j73gl/keyboard.json3
-rw-r--r--keyboards/gl516/n51gl/keyboard.json3
-rw-r--r--keyboards/gowla/keyboard.json3
-rw-r--r--keyboards/halfcliff/keyboard.json3
-rw-r--r--keyboards/handwired/dygma/raise/rules.mk2
-rw-r--r--keyboards/handwired/wwa/soyuz/keyboard.json10
-rw-r--r--keyboards/handwired/wwa/soyuz/keymaps/default/keymap.c10
-rw-r--r--keyboards/handwired/wwa/soyuz/keymaps/default/rules.mk1
-rw-r--r--keyboards/handwired/wwa/soyuz/readme.md2
-rw-r--r--keyboards/helix/pico/rules.mk2
-rw-r--r--keyboards/helix/rev2/rules.mk2
-rw-r--r--keyboards/helix/rules.mk2
-rw-r--r--keyboards/hifumi/keyboard.json3
-rw-r--r--keyboards/horizon/keyboard.json3
-rw-r--r--keyboards/ibm/model_m/mschwingen/rules.mk2
-rw-r--r--keyboards/ibnuda/alicia_cook/keyboard.json3
-rw-r--r--keyboards/ibnuda/gurindam/keyboard.json3
-rw-r--r--keyboards/ibnuda/squiggle/rev1/keyboard.json3
-rw-r--r--keyboards/ivndbt/late9/rev1/keyboard.json3
-rwxr-xr-xkeyboards/ivndbt/neopad/rev1/keyboard.json3
-rw-r--r--keyboards/jiran/info.json3
-rw-r--r--keyboards/jorne/rev1/keyboard.json3
-rw-r--r--keyboards/latincompass/latinpad/keyboard.json3
-rw-r--r--keyboards/lets_split/info.json3
-rw-r--r--keyboards/lily58/glow_enc/keyboard.json3
-rw-r--r--keyboards/lily58/light/keyboard.json3
-rw-r--r--keyboards/lily58/rev1/keyboard.json3
-rw-r--r--keyboards/lime/rev1/keyboard.json3
-rw-r--r--keyboards/machkeyboards/mach3/keyboard.json3
-rw-r--r--keyboards/makrosu/keyboard.json3
-rw-r--r--keyboards/manta60/keyboard.json3
-rw-r--r--keyboards/maple_computing/6ball/keyboard.json3
-rw-r--r--keyboards/maple_computing/christmas_tree/v2017/keyboard.json3
-rw-r--r--keyboards/maple_computing/launchpad/keymaps/default_rgb/config.h18
-rw-r--r--keyboards/maple_computing/launchpad/keymaps/default_rgb/keymap.c76
-rw-r--r--keyboards/maple_computing/launchpad/keymaps/default_rgb/readme.md41
-rw-r--r--keyboards/maple_computing/launchpad/keymaps/default_rgb/rules.mk1
-rw-r--r--keyboards/maple_computing/launchpad/rev1/keyboard.json3
-rw-r--r--keyboards/maple_computing/minidox/rev1/keyboard.json3
-rw-r--r--keyboards/marksard/leftover30/keyboard.json3
-rw-r--r--keyboards/marksard/rhymestone/rev1/keyboard.json3
-rw-r--r--keyboards/maxipad/promicro/keyboard.json3
-rw-r--r--keyboards/mechwild/mokulua/mirrored/keyboard.json3
-rw-r--r--keyboards/mechwild/mokulua/standard/keyboard.json3
-rw-r--r--keyboards/mechwild/murphpad/keyboard.json3
-rw-r--r--keyboards/mechwild/sugarglider/rules.mk2
-rw-r--r--keyboards/mechwild/sugarglider/wide_oled/rules.mk2
-rw-r--r--keyboards/meow48/keyboard.json3
-rw-r--r--keyboards/merge/uc1/keyboard.json3
-rw-r--r--keyboards/minimacro5/keyboard.json3
-rw-r--r--keyboards/mint60/keyboard.json3
-rw-r--r--keyboards/mixi/keyboard.json3
-rw-r--r--keyboards/montsinger/rewind/keyboard.json3
-rw-r--r--keyboards/morizon/keyboard.json3
-rw-r--r--keyboards/mountainblocks/mb17/keyboard.json3
-rw-r--r--keyboards/nacly/sodium42/keyboard.json3
-rw-r--r--keyboards/nacly/sodium50/keyboard.json3
-rw-r--r--keyboards/nacly/sodium62/keyboard.json3
-rw-r--r--keyboards/nacly/splitreus62/keyboard.json3
-rw-r--r--keyboards/nacly/ua62/keyboard.json3
-rw-r--r--keyboards/newgame40/keyboard.json3
-rw-r--r--keyboards/nightly_boards/n9/keyboard.json3
-rw-r--r--keyboards/nightly_boards/ph_arisu/keyboard.json3
-rwxr-xr-xkeyboards/novelkeys/nk65/rules.mk2
-rw-r--r--keyboards/np12/keyboard.json3
-rw-r--r--keyboards/numatreus/keyboard.json3
-rw-r--r--keyboards/obosob/arch_36/keyboard.json3
-rw-r--r--keyboards/obosob/steal_this_keyboard/keyboard.json3
-rw-r--r--keyboards/ocean/addon/keyboard.json3
-rw-r--r--keyboards/ocean/gin_v2/keyboard.json3
-rw-r--r--keyboards/ocean/slamz/keyboard.json3
-rw-r--r--keyboards/ocean/stealth/keyboard.json3
-rw-r--r--keyboards/ocean/sus/keyboard.json3
-rw-r--r--keyboards/ocean/wang_ergo/keyboard.json3
-rw-r--r--keyboards/ocean/wang_v2/keyboard.json3
-rw-r--r--keyboards/ocean/yuri/keyboard.json3
-rw-r--r--keyboards/om60/keyboard.json3
-rw-r--r--keyboards/omkbd/ergodash/info.json3
-rw-r--r--keyboards/omkbd/runner3680/info.json3
-rw-r--r--keyboards/orthodox/rev1/keyboard.json3
-rw-r--r--keyboards/orthodox/rev3/keyboard.json3
-rw-r--r--keyboards/pabile/p18/keyboard.json3
-rw-r--r--keyboards/pabile/p20/ver1/keyboard.json3
-rw-r--r--keyboards/pabile/p20/ver2/keyboard.json3
-rw-r--r--keyboards/pabile/p40/keyboard.json3
-rw-r--r--keyboards/pabile/p40_ortho/keyboard.json3
-rw-r--r--keyboards/pabile/p42/keyboard.json3
-rw-r--r--keyboards/peej/tripel/info.json3
-rw-r--r--keyboards/peranekofactory/tone/rev1/keyboard.json3
-rw-r--r--keyboards/peranekofactory/tone/rev2/keyboard.json3
-rw-r--r--keyboards/pica40/rev1/keyboard.json3
-rw-r--r--keyboards/pimentoso/paddino02/rev1/keyboard.json3
-rw-r--r--keyboards/pimentoso/paddino02/rev2/left/keyboard.json3
-rw-r--r--keyboards/pimentoso/paddino02/rev2/right/keyboard.json3
-rw-r--r--keyboards/pimentoso/touhoupad/keyboard.json3
-rw-r--r--keyboards/pinky/3/keyboard.json3
-rw-r--r--keyboards/pinky/4/keyboard.json3
-rw-r--r--keyboards/plum47/keyboard.json3
-rw-r--r--keyboards/psuieee/pluto12/keyboard.json3
-rw-r--r--keyboards/pteron36/keyboard.json3
-rw-r--r--keyboards/rainkeebs/rainkeeb/keyboard.json3
-rw-r--r--keyboards/rart/rart4x4/keyboard.json3
-rw-r--r--keyboards/rart/rart67m/keyboard.json3
-rw-r--r--keyboards/rart/rartlite/keyboard.json3
-rw-r--r--keyboards/rart/rartpad/keyboard.json3
-rw-r--r--keyboards/rate/pistachio_mp/keyboard.json3
-rw-r--r--keyboards/recompile_keys/choco60/rev1/keyboard.json3
-rw-r--r--keyboards/recompile_keys/cocoa40/keyboard.json3
-rw-r--r--keyboards/recompile_keys/nomu30/rev1/keyboard.json3
-rw-r--r--keyboards/rect44/keyboard.json3
-rw-r--r--keyboards/redox/rules.mk2
-rw-r--r--keyboards/redox_media/keyboard.json3
-rwxr-xr-xkeyboards/reviung/reviung34/keyboard.json3
-rw-r--r--keyboards/reviung/reviung39/keyboard.json3
-rw-r--r--keyboards/reviung/reviung41/keyboard.json3
-rw-r--r--keyboards/reviung/reviung5/keyboard.json3
-rw-r--r--keyboards/reviung/reviung53/keyboard.json3
-rw-r--r--keyboards/rgbkb/zen/rev1/keyboard.json3
-rw-r--r--keyboards/rgbkb/zen/rev2/keyboard.json3
-rw-r--r--keyboards/rpiguy9907/southpaw66/keyboard.json3
-rw-r--r--keyboards/rura66/rev1/keyboard.json3
-rw-r--r--keyboards/ryanbaekr/rb1/keyboard.json3
-rw-r--r--keyboards/sirius/uni660/rev2/rules.mk2
-rw-r--r--keyboards/splitkb/elora/rev1/myriad.c124
-rw-r--r--keyboards/tzarc/djinn/config.h2
-rw-r--r--keyboards/tzarc/djinn/graphics/theme_djinn_default.c51
-rw-r--r--keyboards/tzarc/djinn/rules.mk2
-rw-r--r--keyboards/tzarc/ghoul/rules.mk2
-rw-r--r--keyboards/winry/winry25tc/keyboard.json4
-rw-r--r--lib/python/qmk/cli/ci/validate_aliases.py6
-rw-r--r--lib/python/qmk/cli/list/keyboards.py3
-rw-r--r--lib/python/qmk/cli/migrate.py4
-rw-r--r--lib/python/qmk/cli/resolve_alias.py2
-rw-r--r--lib/python/qmk/info.py11
-rw-r--r--lib/python/qmk/keyboard.py34
-rw-r--r--lib/python/qmk/path.py6
-rw-r--r--quantum/led_matrix/led_matrix.c55
-rw-r--r--quantum/led_matrix/led_matrix.h4
-rw-r--r--quantum/pointing_device/pointing_device.c42
-rw-r--r--quantum/pointing_device/pointing_device.h27
-rw-r--r--quantum/process_keycode/process_oneshot.c25
-rw-r--r--quantum/process_keycode/process_oneshot.h10
-rw-r--r--quantum/process_keycode/process_quantum.c76
-rw-r--r--quantum/process_keycode/process_quantum.h10
-rw-r--r--quantum/process_keycode/process_underglow.c5
-rw-r--r--quantum/quantum.c95
-rw-r--r--quantum/quantum.h1
-rw-r--r--quantum/rgb_matrix/rgb_matrix.c56
-rw-r--r--quantum/rgb_matrix/rgb_matrix.h4
-rw-r--r--readme.md4
-rw-r--r--tests/pointing/test_pointing.cpp20
-rw-r--r--tests/test_common/pointing_device_driver.c3
239 files changed, 851 insertions, 920 deletions
diff --git a/Makefile b/Makefile
index f1e3bf856f..5bb4f0d8eb 100644
--- a/Makefile
+++ b/Makefile
@@ -115,7 +115,7 @@ endef
TRY_TO_MATCH_RULE_FROM_LIST = $(eval $(call TRY_TO_MATCH_RULE_FROM_LIST_HELPER,$1))$(RULE_FOUND)
# As TRY_TO_MATCH_RULE_FROM_LIST_HELPER, but with additional
-# resolution of DEFAULT_FOLDER and keyboard_aliases.hjson for provided rule
+# resolution of keyboard_aliases.hjson for provided rule
define TRY_TO_MATCH_RULE_FROM_LIST_HELPER_KB
# Split on ":", padding with empty strings to avoid indexing issues
TOKEN1:=$$(shell python3 -c "import sys; print((sys.argv[1].split(':',1)+[''])[0])" $$(RULE))
@@ -255,7 +255,7 @@ endef
# if we are going to compile all keyboards, match the rest of the rule
# for each of them
define PARSE_ALL_KEYBOARDS
- $$(eval $$(call PARSE_ALL_IN_LIST,PARSE_KEYBOARD,$(shell $(QMK_BIN) list-keyboards --no-resolve-defaults)))
+ $$(eval $$(call PARSE_ALL_IN_LIST,PARSE_KEYBOARD,$(shell $(QMK_BIN) list-keyboards)))
endef
# Prints a list of all known keymaps for the given keyboard
@@ -447,7 +447,7 @@ git-submodules: git-submodule
.PHONY: list-keyboards
list-keyboards:
- $(QMK_BIN) list-keyboards --no-resolve-defaults | tr '\n' ' '
+ $(QMK_BIN) list-keyboards | tr '\n' ' '
.PHONY: list-tests
list-tests:
@@ -455,7 +455,7 @@ list-tests:
.PHONY: generate-keyboards-file
generate-keyboards-file:
- $(QMK_BIN) list-keyboards --no-resolve-defaults
+ $(QMK_BIN) list-keyboards
.PHONY: clean
clean:
diff --git a/builddefs/common_features.mk b/builddefs/common_features.mk
index ca60873bec..90231c9a96 100644
--- a/builddefs/common_features.mk
+++ b/builddefs/common_features.mk
@@ -29,6 +29,8 @@ QUANTUM_SRC += \
$(QUANTUM_DIR)/logging/debug.c \
$(QUANTUM_DIR)/logging/sendchar.c \
$(QUANTUM_DIR)/process_keycode/process_default_layer.c \
+ $(QUANTUM_DIR)/process_keycode/process_oneshot.c \
+ $(QUANTUM_DIR)/process_keycode/process_quantum.c \
include $(QUANTUM_DIR)/nvm/rules.mk
diff --git a/data/mappings/info_rules.hjson b/data/mappings/info_rules.hjson
index 238957f170..d43d83c3ea 100644
--- a/data/mappings/info_rules.hjson
+++ b/data/mappings/info_rules.hjson
@@ -53,8 +53,8 @@
"WS2812_DRIVER": {"info_key": "ws2812.driver"},
// Items we want flagged in lint
- "DEFAULT_FOLDER": {"info_key": "_deprecated.default_folder", "deprecated": true},
"CTPC": {"info_key": "_invalid.ctpc", "invalid": true, "replace_with": "CONVERT_TO=proton_c"},
"CONVERT_TO_PROTON_C": {"info_key": "_invalid.ctpc", "invalid": true, "replace_with": "CONVERT_TO=proton_c"},
+ "DEFAULT_FOLDER": {"info_key": "_invalid.default_folder", "invalid": true},
"VIAL_ENABLE": {"info_key": "_invalid.vial", "invalid": true}
}
diff --git a/data/mappings/keyboard_aliases.hjson b/data/mappings/keyboard_aliases.hjson
index 86850af7a4..13c3b81305 100644
--- a/data/mappings/keyboard_aliases.hjson
+++ b/data/mappings/keyboard_aliases.hjson
@@ -2258,5 +2258,54 @@
},
"zsa/planck_ez": {
"target": "zsa/planck_ez/base"
+ },
+ // DEFAULT_FOLDER removed during 2025 Q3 cycle
+ "cannonkeys/satisfaction75": {
+ "target": "cannonkeys/satisfaction75/rev1"
+ },
+ "converter/adb_usb": {
+ "target": "converter/adb_usb/rev1"
+ },
+ "converter/sun_usb": {
+ "target": "converter/sun_usb/type5"
+ },
+ "converter/usb_usb": {
+ "target": "converter/usb_usb/hasu"
+ },
+ "durgod/dgk6x": {
+ "target": "durgod/dgk6x/hades_ansi"
+ },
+ "ergodox_ez": {
+ "target": "ergodox_ez/base"
+ },
+ "ferris/0_2": {
+ "target": "ferris/0_2/base"
+ },
+ "handwired/dygma/raise": {
+ "target": "handwired/dygma/raise/ansi"
+ },
+ "helix/pico": {
+ "target": "helix/pico/base"
+ },
+ "helix": {
+ "target": "helix/rev2/base"
+ },
+ "helix/rev2": {
+ "target": "helix/rev2/base"
+ },
+ "ibm/model_m/mschwingen": {
+ "target": "ibm/model_m/mschwingen/led_wired"
+ },
+ "mechwild/sugarglider": {
+ "target": "mechwild/sugarglider/wide_oled/f401"
+ },
+ "mechwild/sugarglider/wide_oled": {
+ "target": "mechwild/sugarglider/wide_oled/f401"
+ },
+ "novelkeys/nk65": {
+ "target": "novelkeys/nk65/base"
+ },
+ "sirius/uni660/rev2": {
+ "target": "sirius/uni660/rev2/ansi"
}
}
diff --git a/docs/config_options.md b/docs/config_options.md
index b2a2117693..91c17cf09d 100644
--- a/docs/config_options.md
+++ b/docs/config_options.md
@@ -364,8 +364,6 @@ This is a [make](https://www.gnu.org/software/make/manual/make.html) file that i
## Build Options
-* `DEFAULT_FOLDER`
- * Used to specify a default folder when a keyboard has more than one sub-folder.
* `FIRMWARE_FORMAT`
* Defines which format (bin, hex) is copied to the root `qmk_firmware` folder after building.
* `SRC`
diff --git a/docs/features/led_matrix.md b/docs/features/led_matrix.md
index 113b13f03b..28d24bc400 100644
--- a/docs/features/led_matrix.md
+++ b/docs/features/led_matrix.md
@@ -214,9 +214,30 @@ led_matrix_mode(LED_MATRIX_CUSTOM_my_cool_effect);
For inspiration and examples, check out the built-in effects under `quantum/led_matrix/animations/`.
+## Naming
+
+If you wish to be able to use the name of an effect in your code -- say for a display indicator -- then you can enable the function `led_matrix_get_mode_name` in the following manner:
+
+In your keymap's `config.h`:
+```c
+#define LED_MATRIX_MODE_NAME_ENABLE
+```
+
+In your `keymap.c`
+```c
+const char* effect_name = led_matrix_get_mode_name(led_matrix_get_mode());
+// do something with `effect_name`, like `oled_write_ln(effect_name, false);`
+```
+
+::: info
+`led_matrix_get_mode_name()` is not enabled by default as it increases the amount of flash memory used by the firmware based on the number of effects enabled.
+:::
+
+
## Additional `config.h` Options {#additional-configh-options}
```c
+#define LED_MATRIX_MODE_NAME_ENABLE // enables led_matrix_get_mode_name()
#define LED_MATRIX_KEYRELEASES // reactive effects respond to keyreleases (instead of keypresses)
#define LED_MATRIX_TIMEOUT 0 // number of milliseconds to wait until led automatically turns off
#define LED_MATRIX_SLEEP // turn off effects when suspended
diff --git a/docs/features/pointing_device.md b/docs/features/pointing_device.md
index a139df9dc4..f25ea1b033 100644
--- a/docs/features/pointing_device.md
+++ b/docs/features/pointing_device.md
@@ -379,7 +379,7 @@ POINTING_DEVICE_DRIVER = custom
Using the custom driver will require implementing the following functions:
```c
-void pointing_device_driver_init(void) {}
+bool pointing_device_driver_init(void) { return true; }
report_mouse_t pointing_device_driver_get_report(report_mouse_t mouse_report) { return mouse_report; }
uint16_t pointing_device_driver_get_cpi(void) { return 0; }
void pointing_device_driver_set_cpi(uint16_t cpi) {}
@@ -467,20 +467,22 @@ If there is a `_RIGHT` configuration option or callback, the [common configurati
## Callbacks and Functions
-| Function | Description |
-| ---------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- |
-| `pointing_device_init_kb(void)` | Callback to allow for keyboard level initialization. Useful for additional hardware sensors. |
-| `pointing_device_init_user(void)` | Callback to allow for user level initialization. Useful for additional hardware sensors. |
-| `pointing_device_task_kb(mouse_report)` | Callback that sends sensor data, so keyboard code can intercept and modify the data. Returns a mouse report. |
-| `pointing_device_task_user(mouse_report)` | Callback that sends sensor data, so user code can intercept and modify the data. Returns a mouse report. |
-| `pointing_device_handle_buttons(buttons, pressed, button)` | Callback to handle hardware button presses. Returns a `uint8_t`. |
-| `pointing_device_get_cpi(void)` | Gets the current CPI/DPI setting from the sensor, if supported. |
-| `pointing_device_set_cpi(uint16_t)` | Sets the CPI/DPI, if supported. |
-| `pointing_device_get_report(void)` | Returns the current mouse report (as a `report_mouse_t` data structure). |
-| `pointing_device_set_report(mouse_report)` | Sets the mouse report to the assigned `report_mouse_t` data structured passed to the function. |
-| `pointing_device_send(void)` | Sends the current mouse report to the host system. Function can be replaced. |
-| `has_mouse_report_changed(new_report, old_report)` | Compares the old and new `report_mouse_t` data and returns true only if it has changed. |
-| `pointing_device_adjust_by_defines(mouse_report)` | Applies rotations and invert configurations to a raw mouse report. |
+| Function | Description |
+| ------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- |
+| `pointing_device_init_kb(void)` | Callback to allow for keyboard level initialization. Useful for additional hardware sensors. |
+| `pointing_device_init_user(void)` | Callback to allow for user level initialization. Useful for additional hardware sensors. |
+| `pointing_device_task_kb(mouse_report)` | Callback that sends sensor data, so keyboard code can intercept and modify the data. Returns a mouse report. |
+| `pointing_device_task_user(mouse_report)` | Callback that sends sensor data, so user code can intercept and modify the data. Returns a mouse report. |
+| `pointing_device_handle_buttons(buttons, pressed, button)` | Callback to handle hardware button presses. Returns a `uint8_t`. |
+| `pointing_device_get_cpi(void)` | Gets the current CPI/DPI setting from the sensor, if supported. |
+| `pointing_device_set_cpi(uint16_t)` | Sets the CPI/DPI, if supported. |
+| `pointing_device_get_report(void)` | Returns the current mouse report (as a `report_mouse_t` data structure). |
+| `pointing_device_set_report(mouse_report)` | Sets the mouse report to the assigned `report_mouse_t` data structured passed to the function. |
+| `pointing_device_send(void)` | Sends the current mouse report to the host system. Function can be replaced. |
+| `has_mouse_report_changed(new_report, old_report)` | Compares the old and new `report_mouse_t` data and returns true only if it has changed. |
+| `pointing_device_adjust_by_defines(mouse_report)` | Applies rotations and invert configurations to a raw mouse report. |
+| `pointing_device_get_status(void)` | Returns device status as `pointing_device_status_t` a good return is `POINTING_DEVICE_STATUS_SUCCESS`. |
+| `pointing_device_set_status(pointing_device_status_t status)` | Sets device status, anything other than `POINTING_DEVICE_STATUS_SUCCESS` will disable reports from the device.|
## Split Keyboard Callbacks and Functions
diff --git a/docs/features/rgb_matrix.md b/docs/features/rgb_matrix.md
index ca50fc5257..8f50b28c03 100644
--- a/docs/features/rgb_matrix.md
+++ b/docs/features/rgb_matrix.md
@@ -365,9 +365,30 @@ These are shorthands to popular colors. The `RGB` ones can be passed to the `set
These are defined in [`color.h`](https://github.com/qmk/qmk_firmware/blob/master/quantum/color.h). Feel free to add to this list!
+## Naming
+
+If you wish to be able to use the name of an effect in your code -- say for a display indicator -- then you can enable the function `rgb_matrix_get_mode_name` in the following manner:
+
+In your keymap's `config.h`:
+```c
+#define RGB_MATRIX_MODE_NAME_ENABLE
+```
+
+In your `keymap.c`
+```c
+const char* effect_name = rgb_matrix_get_mode_name(rgb_matrix_get_mode());
+// do something with `effect_name`, like `oled_write_ln(effect_name, false);`
+```
+
+::: info
+`rgb_matrix_get_mode_name()` is not enabled by default as it increases the amount of flash memory used by the firmware based on the number of effects enabled.
+:::
+
+
## Additional `config.h` Options {#additional-configh-options}
```c
+#define RGB_MATRIX_MODE_NAME_ENABLE // enables rgb_matrix_get_mode_name()
#define RGB_MATRIX_KEYRELEASES // reactive effects respond to keyreleases (instead of keypresses)
#define RGB_MATRIX_TIMEOUT 0 // number of milliseconds to wait until rgb automatically turns off
#define RGB_MATRIX_SLEEP // turn off effects when suspended
diff --git a/drivers/sensors/adns5050.c b/drivers/sensors/adns5050.c
index 1768c9f3b4..ac4c95b0c2 100644
--- a/drivers/sensors/adns5050.c
+++ b/drivers/sensors/adns5050.c
@@ -55,7 +55,7 @@ const pointing_device_driver_t adns5050_pointing_device_driver = {
static bool powered_down = false;
-void adns5050_init(void) {
+bool adns5050_init(void) {
// Initialize the ADNS serial pins.
gpio_set_pin_output(ADNS5050_SCLK_PIN);
gpio_set_pin_output(ADNS5050_SDIO_PIN);
@@ -75,6 +75,8 @@ void adns5050_init(void) {
// gets the adns ready for write commands
// (for example, setting the dpi).
adns5050_read_burst();
+
+ return adns5050_check_signature();
}
// Perform a synchronization with the ADNS.
@@ -220,7 +222,7 @@ uint16_t adns5050_get_cpi(void) {
return (uint16_t)((cpival & 0b10000) * 125);
}
-bool adns5050_check_signature(void) {
+bool __attribute__((weak)) adns5050_check_signature(void) {
uint8_t pid = adns5050_read_reg(REG_PRODUCT_ID);
uint8_t rid = adns5050_read_reg(REG_REVISION_ID);
uint8_t pid2 = adns5050_read_reg(REG_PRODUCT_ID2);
diff --git a/drivers/sensors/adns5050.h b/drivers/sensors/adns5050.h
index 4dfcbc3c70..004c54f560 100644
--- a/drivers/sensors/adns5050.h
+++ b/drivers/sensors/adns5050.h
@@ -75,7 +75,7 @@ const pointing_device_driver_t adns5050_pointing_device_driver;
// A bunch of functions to implement the ADNS5050-specific serial protocol.
// Note that the "serial.h" driver is insufficient, because it does not
// manually manipulate a serial clock signal.
-void adns5050_init(void);
+bool adns5050_init(void);
void adns5050_sync(void);
uint8_t adns5050_serial_read(void);
void adns5050_serial_write(uint8_t data);
diff --git a/drivers/sensors/adns9800.c b/drivers/sensors/adns9800.c
index 0dbc528351..f5958dd350 100644
--- a/drivers/sensors/adns9800.c
+++ b/drivers/sensors/adns9800.c
@@ -115,7 +115,14 @@ uint8_t adns9800_read(uint8_t reg_addr) {
return data;
}
-void adns9800_init(void) {
+bool __attribute__((weak)) adns9800_check_signature(void) {
+ if (adns9800_read(REG_Product_ID) != 0x33) {
+ return false;
+ }
+ return true;
+}
+
+bool adns9800_init(void) {
gpio_set_pin_output(ADNS9800_CS_PIN);
spi_init();
@@ -178,6 +185,8 @@ void adns9800_init(void) {
adns9800_write(REG_LASER_CTRL0, laser_ctrl0 & 0xf0);
adns9800_set_cpi(ADNS9800_CPI);
+
+ return adns9800_check_signature();
}
config_adns9800_t adns9800_get_config(void) {
diff --git a/drivers/sensors/adns9800.h b/drivers/sensors/adns9800.h
index 023f31b132..797aaf3cd0 100644
--- a/drivers/sensors/adns9800.h
+++ b/drivers/sensors/adns9800.h
@@ -63,7 +63,7 @@ typedef struct {
const pointing_device_driver_t adns9800_pointing_device_driver;
-void adns9800_init(void);
+bool adns9800_init(void);
config_adns9800_t adns9800_get_config(void);
void adns9800_set_config(config_adns9800_t);
uint16_t adns9800_get_cpi(void);
diff --git a/drivers/sensors/analog_joystick.c b/drivers/sensors/analog_joystick.c
index 93bbaa1b51..eec97e8eed 100644
--- a/drivers/sensors/analog_joystick.c
+++ b/drivers/sensors/analog_joystick.c
@@ -135,7 +135,7 @@ report_analog_joystick_t analog_joystick_read(void) {
return report;
}
-void analog_joystick_init(void) {
+bool analog_joystick_init(void) {
gpio_set_pin_input_high(ANALOG_JOYSTICK_X_AXIS_PIN);
gpio_set_pin_input_high(ANALOG_JOYSTICK_Y_AXIS_PIN);
@@ -152,6 +152,8 @@ void analog_joystick_init(void) {
maxAxisValues[0] = xOrigin + 100;
maxAxisValues[1] = yOrigin + 100;
#endif
+
+ return true;
}
report_mouse_t analog_joystick_get_report(report_mouse_t mouse_report) {
diff --git a/drivers/sensors/analog_joystick.h b/drivers/sensors/analog_joystick.h
index c84da83db1..4838f502f1 100644
--- a/drivers/sensors/analog_joystick.h
+++ b/drivers/sensors/analog_joystick.h
@@ -51,5 +51,5 @@ typedef struct {
bool button;
} report_analog_joystick_t;
report_analog_joystick_t analog_joystick_read(void);
-void analog_joystick_init(void);
+bool analog_joystick_init(void);
report_mouse_t analog_joystick_get_report(report_mouse_t mouse_report);
diff --git a/drivers/sensors/azoteq_iqs5xx.c b/drivers/sensors/azoteq_iqs5xx.c
index ae26ee60cf..7586ac52d1 100644
--- a/drivers/sensors/azoteq_iqs5xx.c
+++ b/drivers/sensors/azoteq_iqs5xx.c
@@ -321,7 +321,7 @@ void azoteq_iqs5xx_setup_resolution(void) {
static i2c_status_t azoteq_iqs5xx_init_status = 1;
-void azoteq_iqs5xx_init(void) {
+bool azoteq_iqs5xx_init(void) {
i2c_init();
i2c_ping_address(AZOTEQ_IQS5XX_ADDRESS, 1); // wake
azoteq_iqs5xx_reset_suspend(true, false, true);
@@ -349,67 +349,65 @@ void azoteq_iqs5xx_init(void) {
azoteq_iqs5xx_init_status |= azoteq_iqs5xx_set_gesture_config(true);
wait_ms(AZOTEQ_IQS5XX_REPORT_RATE + 1);
}
+
+ return azoteq_iqs5xx_init_status == I2C_STATUS_SUCCESS;
};
report_mouse_t azoteq_iqs5xx_get_report(report_mouse_t mouse_report) {
report_mouse_t temp_report = {0};
- if (azoteq_iqs5xx_init_status == I2C_STATUS_SUCCESS) {
- azoteq_iqs5xx_base_data_t base_data = {0};
- i2c_status_t status = azoteq_iqs5xx_get_base_data(&base_data);
- bool ignore_movement = false;
+ azoteq_iqs5xx_base_data_t base_data = {0};
+ i2c_status_t status = azoteq_iqs5xx_get_base_data(&base_data);
+ bool ignore_movement = false;
- if (status == I2C_STATUS_SUCCESS) {
+ if (status == I2C_STATUS_SUCCESS) {
#ifdef POINTING_DEVICE_DEBUG
- if (base_data.previous_cycle_time > AZOTEQ_IQS5XX_REPORT_RATE) {
- pd_dprintf("IQS5XX - previous cycle time missed, took: %dms\n", base_data.previous_cycle_time);
- }
+ if (base_data.previous_cycle_time > AZOTEQ_IQS5XX_REPORT_RATE) {
+ pd_dprintf("IQS5XX - previous cycle time missed, took: %dms\n", base_data.previous_cycle_time);
+ }
#endif
- if (base_data.gesture_events_0.single_tap || base_data.gesture_events_0.press_and_hold) {
- pd_dprintf("IQS5XX - Single tap/hold.\n");
- temp_report.buttons = pointing_device_handle_buttons(temp_report.buttons, true, POINTING_DEVICE_BUTTON1);
- } else if (base_data.gesture_events_1.two_finger_tap) {
- pd_dprintf("IQS5XX - Two finger tap.\n");
- temp_report.buttons = pointing_device_handle_buttons(temp_report.buttons, true, POINTING_DEVICE_BUTTON2);
- } else if (base_data.gesture_events_0.swipe_x_neg) {
- pd_dprintf("IQS5XX - X-.\n");
- temp_report.buttons = pointing_device_handle_buttons(temp_report.buttons, true, POINTING_DEVICE_BUTTON4);
- ignore_movement = true;
- } else if (base_data.gesture_events_0.swipe_x_pos) {
- pd_dprintf("IQS5XX - X+.\n");
- temp_report.buttons = pointing_device_handle_buttons(temp_report.buttons, true, POINTING_DEVICE_BUTTON5);
- ignore_movement = true;
- } else if (base_data.gesture_events_0.swipe_y_neg) {
- pd_dprintf("IQS5XX - Y-.\n");
- temp_report.buttons = pointing_device_handle_buttons(temp_report.buttons, true, POINTING_DEVICE_BUTTON6);
- ignore_movement = true;
- } else if (base_data.gesture_events_0.swipe_y_pos) {
- pd_dprintf("IQS5XX - Y+.\n");
- temp_report.buttons = pointing_device_handle_buttons(temp_report.buttons, true, POINTING_DEVICE_BUTTON3);
- ignore_movement = true;
- } else if (base_data.gesture_events_1.zoom) {
- if (AZOTEQ_IQS5XX_COMBINE_H_L_BYTES(base_data.x.h, base_data.x.l) < 0) {
- pd_dprintf("IQS5XX - Zoom out.\n");
- temp_report.buttons = pointing_device_handle_buttons(temp_report.buttons, true, POINTING_DEVICE_BUTTON7);
- } else if (AZOTEQ_IQS5XX_COMBINE_H_L_BYTES(base_data.x.h, base_data.x.l) > 0) {
- pd_dprintf("IQS5XX - Zoom in.\n");
- temp_report.buttons = pointing_device_handle_buttons(temp_report.buttons, true, POINTING_DEVICE_BUTTON8);
- }
- } else if (base_data.gesture_events_1.scroll) {
- pd_dprintf("IQS5XX - Scroll.\n");
- temp_report.h = CONSTRAIN_HID(AZOTEQ_IQS5XX_COMBINE_H_L_BYTES(base_data.x.h, base_data.x.l));
- temp_report.v = CONSTRAIN_HID(AZOTEQ_IQS5XX_COMBINE_H_L_BYTES(base_data.y.h, base_data.y.l));
+ if (base_data.gesture_events_0.single_tap || base_data.gesture_events_0.press_and_hold) {
+ pd_dprintf("IQS5XX - Single tap/hold.\n");
+ temp_report.buttons = pointing_device_handle_buttons(temp_report.buttons, true, POINTING_DEVICE_BUTTON1);
+ } else if (base_data.gesture_events_1.two_finger_tap) {
+ pd_dprintf("IQS5XX - Two finger tap.\n");
+ temp_report.buttons = pointing_device_handle_buttons(temp_report.buttons, true, POINTING_DEVICE_BUTTON2);
+ } else if (base_data.gesture_events_0.swipe_x_neg) {
+ pd_dprintf("IQS5XX - X-.\n");
+ temp_report.buttons = pointing_device_handle_buttons(temp_report.buttons, true, POINTING_DEVICE_BUTTON4);
+ ignore_movement = true;
+ } else if (base_data.gesture_events_0.swipe_x_pos) {
+ pd_dprintf("IQS5XX - X+.\n");
+ temp_report.buttons = pointing_device_handle_buttons(temp_report.buttons, true, POINTING_DEVICE_BUTTON5);
+ ignore_movement = true;
+ } else if (base_data.gesture_events_0.swipe_y_neg) {
+ pd_dprintf("IQS5XX - Y-.\n");
+ temp_report.buttons = pointing_device_handle_buttons(temp_report.buttons, true, POINTING_DEVICE_BUTTON6);
+ ignore_movement = true;
+ } else if (base_data.gesture_events_0.swipe_y_pos) {
+ pd_dprintf("IQS5XX - Y+.\n");
+ temp_report.buttons = pointing_device_handle_buttons(temp_report.buttons, true, POINTING_DEVICE_BUTTON3);
+ ignore_movement = true;
+ } else if (base_data.gesture_events_1.zoom) {
+ if (AZOTEQ_IQS5XX_COMBINE_H_L_BYTES(base_data.x.h, base_data.x.l) < 0) {
+ pd_dprintf("IQS5XX - Zoom out.\n");
+ temp_report.buttons = pointing_device_handle_buttons(temp_report.buttons, true, POINTING_DEVICE_BUTTON7);
+ } else if (AZOTEQ_IQS5XX_COMBINE_H_L_BYTES(base_data.x.h, base_data.x.l) > 0) {
+ pd_dprintf("IQS5XX - Zoom in.\n");
+ temp_report.buttons = pointing_device_handle_buttons(temp_report.buttons, true, POINTING_DEVICE_BUTTON8);
}
- if (base_data.number_of_fingers == 1 && !ignore_movement) {
- temp_report.x = CONSTRAIN_HID_XY(AZOTEQ_IQS5XX_COMBINE_H_L_BYTES(base_data.x.h, base_data.x.l));
- temp_report.y = CONSTRAIN_HID_XY(AZOTEQ_IQS5XX_COMBINE_H_L_BYTES(base_data.y.h, base_data.y.l));
- }
-
- } else {
- pd_dprintf("IQS5XX - get report failed, i2c status: %d \n", status);
+ } else if (base_data.gesture_events_1.scroll) {
+ pd_dprintf("IQS5XX - Scroll.\n");
+ temp_report.h = CONSTRAIN_HID(AZOTEQ_IQS5XX_COMBINE_H_L_BYTES(base_data.x.h, base_data.x.l));
+ temp_report.v = CONSTRAIN_HID(AZOTEQ_IQS5XX_COMBINE_H_L_BYTES(base_data.y.h, base_data.y.l));
}
+ if (base_data.number_of_fingers == 1 && !ignore_movement) {
+ temp_report.x = CONSTRAIN_HID_XY(AZOTEQ_IQS5XX_COMBINE_H_L_BYTES(base_data.x.h, base_data.x.l));
+ temp_report.y = CONSTRAIN_HID_XY(AZOTEQ_IQS5XX_COMBINE_H_L_BYTES(base_data.y.h, base_data.y.l));
+ }
+
} else {
- pd_dprintf("IQS5XX - Init failed, i2c status: %d \n", azoteq_iqs5xx_init_status);
+ pd_dprintf("IQS5XX - get report failed, i2c status: %d \n", status);
}
return temp_report;
diff --git a/drivers/sensors/azoteq_iqs5xx.h b/drivers/sensors/azoteq_iqs5xx.h
index eb01903e33..1a70ac6149 100644
--- a/drivers/sensors/azoteq_iqs5xx.h
+++ b/drivers/sensors/azoteq_iqs5xx.h
@@ -180,7 +180,7 @@ typedef struct {
const pointing_device_driver_t azoteq_iqs5xx_pointing_device_driver;
-void azoteq_iqs5xx_init(void);
+bool azoteq_iqs5xx_init(void);
i2c_status_t azoteq_iqs5xx_wake(void);
report_mouse_t azoteq_iqs5xx_get_report(report_mouse_t mouse_report);
i2c_status_t azoteq_iqs5xx_get_report_rate(azoteq_iqs5xx_report_rate_t *report_rate, azoteq_iqs5xx_charging_modes_t mode, bool end_session);
diff --git a/drivers/sensors/cirque_pinnacle.c b/drivers/sensors/cirque_pinnacle.c
index 893cb98bf0..45072ae874 100644
--- a/drivers/sensors/cirque_pinnacle.c
+++ b/drivers/sensors/cirque_pinnacle.c
@@ -18,7 +18,6 @@
# endif
#endif
-bool touchpad_init;
uint16_t scale_data = CIRQUE_PINNACLE_DEFAULT_SCALE;
void cirque_pinnacle_clear_flags(void);
@@ -232,14 +231,14 @@ bool cirque_pinnacle_connected(void) {
}
/* Pinnacle-based TM040040/TM035035/TM023023 Functions */
-void cirque_pinnacle_init(void) {
+bool cirque_pinnacle_init(void) {
#if defined(POINTING_DEVICE_DRIVER_cirque_pinnacle_spi)
spi_init();
#elif defined(POINTING_DEVICE_DRIVER_cirque_pinnacle_i2c)
i2c_init();
#endif
- touchpad_init = true;
+ bool touchpad_init = true;
// send a RESET command now, in case QMK had a soft-reset without a power cycle
RAP_Write(HOSTREG__SYSCONFIG1, HOSTREG__SYSCONFIG1__RESET);
@@ -293,6 +292,8 @@ void cirque_pinnacle_init(void) {
#ifndef CIRQUE_PINNACLE_SKIP_SENSOR_CHECK
touchpad_init = cirque_pinnacle_connected();
#endif
+
+ return touchpad_init;
}
pinnacle_data_t cirque_pinnacle_read_data(void) {
diff --git a/drivers/sensors/cirque_pinnacle.h b/drivers/sensors/cirque_pinnacle.h
index 1a17e539a4..3541d62463 100644
--- a/drivers/sensors/cirque_pinnacle.h
+++ b/drivers/sensors/cirque_pinnacle.h
@@ -114,7 +114,7 @@ typedef struct {
#define cirque_pinnacle_spi_pointing_device_driver cirque_pinnacle_pointing_device_driver
const pointing_device_driver_t cirque_pinnacle_pointing_device_driver;
-void cirque_pinnacle_init(void);
+bool cirque_pinnacle_init(void);
void cirque_pinnacle_calibrate(void);
void cirque_pinnacle_cursor_smoothing(bool enable);
pinnacle_data_t cirque_pinnacle_read_data(void);
diff --git a/drivers/sensors/cirque_pinnacle_i2c.c b/drivers/sensors/cirque_pinnacle_i2c.c
index a3622e9d60..8d766c69d9 100644
--- a/drivers/sensors/cirque_pinnacle_i2c.c
+++ b/drivers/sensors/cirque_pinnacle_i2c.c
@@ -7,29 +7,22 @@
#define WRITE_MASK 0x80
#define READ_MASK 0xA0
-extern bool touchpad_init;
-
/* RAP Functions */
// Reads <count> Pinnacle registers starting at <address>
void RAP_ReadBytes(uint8_t address, uint8_t* data, uint8_t count) {
uint8_t cmdByte = READ_MASK | address; // Form the READ command byte
- if (touchpad_init) {
- i2c_write_register(CIRQUE_PINNACLE_ADDR << 1, cmdByte, NULL, 0, CIRQUE_PINNACLE_TIMEOUT);
- if (i2c_read_register(CIRQUE_PINNACLE_ADDR << 1, cmdByte, data, count, CIRQUE_PINNACLE_TIMEOUT) != I2C_STATUS_SUCCESS) {
- pd_dprintf("error cirque_pinnacle i2c_read_register\n");
- touchpad_init = false;
- }
+ i2c_write_register(CIRQUE_PINNACLE_ADDR << 1, cmdByte, NULL, 0, CIRQUE_PINNACLE_TIMEOUT);
+ if (i2c_read_register(CIRQUE_PINNACLE_ADDR << 1, cmdByte, data, count, CIRQUE_PINNACLE_TIMEOUT) != I2C_STATUS_SUCCESS) {
+ pd_dprintf("error cirque_pinnacle i2c_read_register\n");
+ pointing_device_set_status(POINTING_DEVICE_STATUS_FAILED);
}
}
// Writes single-byte <data> to <address>
void RAP_Write(uint8_t address, uint8_t data) {
uint8_t cmdByte = WRITE_MASK | address; // Form the WRITE command byte
-
- if (touchpad_init) {
- if (i2c_write_register(CIRQUE_PINNACLE_ADDR << 1, cmdByte, &data, sizeof(data), CIRQUE_PINNACLE_TIMEOUT) != I2C_STATUS_SUCCESS) {
- pd_dprintf("error cirque_pinnacle i2c_write_register\n");
- touchpad_init = false;
- }
+ if (i2c_write_register(CIRQUE_PINNACLE_ADDR << 1, cmdByte, &data, sizeof(data), CIRQUE_PINNACLE_TIMEOUT) != I2C_STATUS_SUCCESS) {
+ pd_dprintf("error cirque_pinnacle i2c_write_register\n");
+ pointing_device_set_status(POINTING_DEVICE_STATUS_FAILED);
}
}
diff --git a/drivers/sensors/cirque_pinnacle_spi.c b/drivers/sensors/cirque_pinnacle_spi.c
index 5cb39aebb0..eefdb4d0a7 100644
--- a/drivers/sensors/cirque_pinnacle_spi.c
+++ b/drivers/sensors/cirque_pinnacle_spi.c
@@ -7,40 +7,35 @@
#define READ_MASK 0xA0
#define FILLER_BYTE 0xFC
-extern bool touchpad_init;
-
/* RAP Functions */
// Reads <count> Pinnacle registers starting at <address>
void RAP_ReadBytes(uint8_t address, uint8_t* data, uint8_t count) {
uint8_t cmdByte = READ_MASK | address; // Form the READ command byte
- if (touchpad_init) {
- if (spi_start(CIRQUE_PINNACLE_SPI_CS_PIN, CIRQUE_PINNACLE_SPI_LSBFIRST, CIRQUE_PINNACLE_SPI_MODE, CIRQUE_PINNACLE_SPI_DIVISOR)) {
- spi_write(cmdByte); // write command byte, receive filler
- spi_write(FILLER_BYTE); // write & receive filler
- spi_write(FILLER_BYTE); // write & receive filler
- for (uint8_t i = 0; i < count; i++) {
- data[i] = spi_write(FILLER_BYTE); // write filler, receive data on the third filler send
- }
- } else {
- pd_dprintf("error cirque_pinnacle spi_start read\n");
- touchpad_init = false;
+
+ if (spi_start(CIRQUE_PINNACLE_SPI_CS_PIN, CIRQUE_PINNACLE_SPI_LSBFIRST, CIRQUE_PINNACLE_SPI_MODE, CIRQUE_PINNACLE_SPI_DIVISOR)) {
+ spi_write(cmdByte); // write command byte, receive filler
+ spi_write(FILLER_BYTE); // write & receive filler
+ spi_write(FILLER_BYTE); // write & receive filler
+ for (uint8_t i = 0; i < count; i++) {
+ data[i] = spi_write(FILLER_BYTE); // write filler, receive data on the third filler send
}
- spi_stop();
+ } else {
+ pd_dprintf("error cirque_pinnacle spi_start read\n");
+ pointing_device_set_status(POINTING_DEVICE_STATUS_FAILED);
}
+ spi_stop();
}
// Writes single-byte <data> to <address>
void RAP_Write(uint8_t address, uint8_t data) {
uint8_t cmdByte = WRITE_MASK | address; // Form the WRITE command byte
- if (touchpad_init) {
- if (spi_start(CIRQUE_PINNACLE_SPI_CS_PIN, CIRQUE_PINNACLE_SPI_LSBFIRST, CIRQUE_PINNACLE_SPI_MODE, CIRQUE_PINNACLE_SPI_DIVISOR)) {
- spi_write(cmdByte);
- spi_write(data);
- } else {
- pd_dprintf("error cirque_pinnacle spi_start write\n");
- touchpad_init = false;
- }
- spi_stop();
+ if (spi_start(CIRQUE_PINNACLE_SPI_CS_PIN, CIRQUE_PINNACLE_SPI_LSBFIRST, CIRQUE_PINNACLE_SPI_MODE, CIRQUE_PINNACLE_SPI_DIVISOR)) {
+ spi_write(cmdByte);
+ spi_write(data);
+ } else {
+ pd_dprintf("error cirque_pinnacle spi_start write\n");
+ pointing_device_set_status(POINTING_DEVICE_STATUS_FAILED);
}
+ spi_stop();
}
diff --git a/drivers/sensors/paw3204.c b/drivers/sensors/paw3204.c
index 475821f175..228b7fa986 100644
--- a/drivers/sensors/paw3204.c
+++ b/drivers/sensors/paw3204.c
@@ -58,7 +58,15 @@ const pointing_device_driver_t paw3204_pointing_device_driver = {
.get_cpi = paw3204_get_cpi,
};
-void paw3204_init(void) {
+uint8_t read_pid_paw3204(void) {
+ return paw3204_read_reg(REG_PID1);
+}
+
+bool __attribute__((weak)) paw3204_check_signature(void) {
+ return (read_pid_paw3204() == 0x30);
+}
+
+bool paw3204_init(void) {
gpio_set_pin_output(PAW3204_SCLK_PIN); // setclockpin to output
gpio_set_pin_input_high(PAW3204_SDIO_PIN); // set datapin input high
@@ -69,6 +77,8 @@ void paw3204_init(void) {
paw3204_read_reg(0x01); // read id2
// PAW3204_write_reg(REG_SETUP,0x06); // dont reset sensor and set cpi 1600
paw3204_write_reg(REG_IMGTRASH, 0x32); // write image trashhold
+
+ return paw3204_check_signature();
}
uint8_t paw3204_serial_read(void) {
@@ -175,10 +185,6 @@ uint16_t paw3204_get_cpi(void) {
return cpival;
}
-uint8_t read_pid_paw3204(void) {
- return paw3204_read_reg(REG_PID1);
-}
-
report_mouse_t paw3204_get_report(report_mouse_t mouse_report) {
report_paw3204_t data = paw3204_read();
if (data.isMotion) {
diff --git a/drivers/sensors/paw3204.h b/drivers/sensors/paw3204.h
index a4bb8e16a6..11759d64c3 100644
--- a/drivers/sensors/paw3204.h
+++ b/drivers/sensors/paw3204.h
@@ -50,7 +50,7 @@ const pointing_device_driver_t paw3204_pointing_device_driver;
* @return true Initialization was a success
* @return false Initialization failed, do not proceed operation
*/
-void paw3204_init(void);
+bool paw3204_init(void);
/**
* @brief Reads and clears the current delta, and motion register values on the
diff --git a/drivers/sensors/pimoroni_trackball.c b/drivers/sensors/pimoroni_trackball.c
index 06e5042953..daa5786554 100644
--- a/drivers/sensors/pimoroni_trackball.c
+++ b/drivers/sensors/pimoroni_trackball.c
@@ -82,9 +82,12 @@ i2c_status_t read_pimoroni_trackball(pimoroni_data_t *data) {
return status;
}
-__attribute__((weak)) void pimoroni_trackball_device_init(void) {
+__attribute__((weak)) bool pimoroni_trackball_device_init(void) {
i2c_init();
- pimoroni_trackball_set_rgbw(0x00, 0x00, 0x00, 0x00);
+ uint8_t rgbw_data[4] = {0};
+ i2c_status_t status = i2c_write_register(PIMORONI_TRACKBALL_ADDRESS << 1, PIMORONI_TRACKBALL_REG_LED_RED, rgbw_data, sizeof(rgbw_data), PIMORONI_TRACKBALL_TIMEOUT);
+
+ return (status == I2C_STATUS_SUCCESS);
}
int16_t pimoroni_trackball_get_offsets(uint8_t negative_dir, uint8_t positive_dir, uint8_t scale) {
diff --git a/drivers/sensors/pimoroni_trackball.h b/drivers/sensors/pimoroni_trackball.h
index 1904214a74..4b8a2548ae 100644
--- a/drivers/sensors/pimoroni_trackball.h
+++ b/drivers/sensors/pimoroni_trackball.h
@@ -52,7 +52,7 @@ typedef struct {
const pointing_device_driver_t pimoroni_trackball_pointing_device_driver;
-void pimoroni_trackball_device_init(void);
+bool pimoroni_trackball_device_init(void);
void pimoroni_trackball_set_rgbw(uint8_t red, uint8_t green, uint8_t blue, uint8_t white);
int16_t pimoroni_trackball_get_offsets(uint8_t negative_dir, uint8_t positive_dir, uint8_t scale);
uint16_t pimoroni_trackball_get_cpi(void);
diff --git a/drivers/sensors/pmw3320.c b/drivers/sensors/pmw3320.c
index 74fefd4c53..db74540ec1 100644
--- a/drivers/sensors/pmw3320.c
+++ b/drivers/sensors/pmw3320.c
@@ -30,7 +30,7 @@ const pointing_device_driver_t pmw3320_pointing_device_drivera = {
.get_cpi = pmw3320_get_cpi,
};
-void pmw3320_init(void) {
+bool pmw3320_init(void) {
// Initialize sensor serial pins.
gpio_set_pin_output(PMW3320_SCLK_PIN);
gpio_set_pin_output(PMW3320_SDIO_PIN);
@@ -56,6 +56,8 @@ void pmw3320_init(void) {
pmw3320_write_reg(REG_Led_Control, 0x4);
// Disable rest mode
pmw3320_write_reg(REG_Performance, 0x80);
+
+ return pmw3320_check_signature();
}
// Perform a synchronization with sensor.
@@ -192,7 +194,7 @@ void pmw3320_set_cpi(uint16_t cpi) {
pmw3320_write_reg(REG_Resolution, 0x20 | cpival);
}
-bool pmw3320_check_signature(void) {
+bool __attribute__((weak)) pmw3320_check_signature(void) {
uint8_t pid = pmw3320_read_reg(REG_Product_ID);
uint8_t pid2 = pmw3320_read_reg(REG_Inverse_Product_ID);
diff --git a/drivers/sensors/pmw3320.h b/drivers/sensors/pmw3320.h
index cfff25bd8a..42fd72a52c 100644
--- a/drivers/sensors/pmw3320.h
+++ b/drivers/sensors/pmw3320.h
@@ -61,7 +61,7 @@ const pointing_device_driver_t pmw3320_pointing_device_driver;
// Mostly taken from ADNS5050 driver.
// Note that the "serial.h" driver is insufficient, because it does not
// manually manipulate a serial clock signal.
-void pmw3320_init(void);
+bool pmw3320_init(void);
void pmw3320_sync(void);
uint8_t pmw3320_serial_read(void);
void pmw3320_serial_write(uint8_t data);
diff --git a/drivers/sensors/pmw3389.c b/drivers/sensors/pmw3389.c
index 85d2c8a429..efa90c2100 100644
--- a/drivers/sensors/pmw3389.c
+++ b/drivers/sensors/pmw3389.c
@@ -29,4 +29,4 @@ void pmw33xx_set_cpi(uint8_t sensor, uint16_t cpi) {
}
// PID, Inverse PID
-const uint8_t pmw33xx_firmware_signature[2] PROGMEM = {0x42, 0xBD};
+const uint8_t pmw33xx_firmware_signature[2] PROGMEM = {0x47, 0xB8};
diff --git a/drivers/sensors/pmw33xx_common.c b/drivers/sensors/pmw33xx_common.c
index f3285ec497..61e309ea27 100644
--- a/drivers/sensors/pmw33xx_common.c
+++ b/drivers/sensors/pmw33xx_common.c
@@ -102,7 +102,7 @@ uint8_t pmw33xx_read(uint8_t sensor, uint8_t reg_addr) {
return data;
}
-bool pmw33xx_check_signature(uint8_t sensor) {
+__attribute__((weak)) bool pmw33xx_check_signature(uint8_t sensor) {
uint8_t signature_dump[2] = {
pmw33xx_read(sensor, REG_Product_ID),
pmw33xx_read(sensor, REG_Inverse_Product_ID),
@@ -236,8 +236,8 @@ pmw33xx_report_t pmw33xx_read_burst(uint8_t sensor) {
return report;
}
-void pmw33xx_init_wrapper(void) {
- pmw33xx_init(0);
+bool pmw33xx_init_wrapper(void) {
+ return pmw33xx_init(0);
}
void pmw33xx_set_cpi_wrapper(uint16_t cpi) {
diff --git a/drivers/sensors/pmw33xx_common.h b/drivers/sensors/pmw33xx_common.h
index 82303ba6d9..8fb10b1b2f 100644
--- a/drivers/sensors/pmw33xx_common.h
+++ b/drivers/sensors/pmw33xx_common.h
@@ -177,7 +177,7 @@ uint8_t pmw33xx_read(uint8_t sensor, uint8_t reg_addr);
*/
bool pmw33xx_write(uint8_t sensor, uint8_t reg_addr, uint8_t data);
-void pmw33xx_init_wrapper(void);
+bool pmw33xx_init_wrapper(void);
void pmw33xx_set_cpi_wrapper(uint16_t cpi);
uint16_t pmw33xx_get_cpi_wrapper(void);
report_mouse_t pmw33xx_get_report(report_mouse_t mouse_report);
diff --git a/keyboards/1upkeyboards/pi50/config.h b/keyboards/1upkeyboards/pi50/config.h
index e20a9854a5..8d40ecdaec 100644
--- a/keyboards/1upkeyboards/pi50/config.h
+++ b/keyboards/1upkeyboards/pi50/config.h
@@ -8,3 +8,4 @@
#define I2C_DRIVER I2CD1
#define OLED_BRIGHTNESS 128
#define OLED_FONT_H "keyboards/1upkeyboards/pi50/lib/glcdfont.c"
+#define RGB_MATRIX_MODE_NAME_ENABLE
diff --git a/keyboards/1upkeyboards/pi50/pi50.c b/keyboards/1upkeyboards/pi50/pi50.c
index cc0cdbe333..c55b2669ef 100644
--- a/keyboards/1upkeyboards/pi50/pi50.c
+++ b/keyboards/1upkeyboards/pi50/pi50.c
@@ -18,49 +18,6 @@
#include <ctype.h>
#include <stdio.h>
-#if defined(RGB_MATRIX_EFFECT)
-# undef RGB_MATRIX_EFFECT
-#endif // defined(RGB_MATRIX_EFFECT)
-
-#define RGB_MATRIX_EFFECT(x) RGB_MATRIX_EFFECT_##x,
-enum {
- RGB_MATRIX_EFFECT_NONE,
-#include "rgb_matrix_effects.inc"
-#undef RGB_MATRIX_EFFECT
-#ifdef RGB_MATRIX_CUSTOM_KB
-# include "rgb_matrix_kb.inc"
-#endif
-#ifdef RGB_MATRIX_CUSTOM_USER
-# include "rgb_matrix_user.inc"
-#endif
-#if defined(COMMUNITY_MODULES_ENABLE) && __has_include("rgb_matrix_community_modules.inc")
-# include "rgb_matrix_community_modules.inc"
-#endif
-};
-
-#define RGB_MATRIX_EFFECT(x) \
- case RGB_MATRIX_EFFECT_##x: \
- return #x;
-const char* rgb_matrix_name(uint8_t effect) {
- switch (effect) {
- case RGB_MATRIX_EFFECT_NONE:
- return "NONE";
-#include "rgb_matrix_effects.inc"
-#undef RGB_MATRIX_EFFECT
-#ifdef RGB_MATRIX_CUSTOM_KB
-# include "rgb_matrix_kb.inc"
-#endif
-#ifdef RGB_MATRIX_CUSTOM_USER
-# include "rgb_matrix_user.inc"
-#endif
-#if defined(COMMUNITY_MODULES_ENABLE) && __has_include("rgb_matrix_community_modules.inc")
-# include "rgb_matrix_community_modules.inc"
-#endif
- default:
- return "UNKNOWN";
- }
-}
-
#ifdef OLED_ENABLE
static uint32_t oled_logo_timer = 0;
@@ -154,7 +111,7 @@ void user_oled_magic(void) {
oled_write_P(led_state.num_lock ? PSTR("Num(x) ") : PSTR("Num( ) "), false);
oled_write_P(led_state.scroll_lock ? PSTR("Scrl(x)") : PSTR("Scrl( )"), false);
- char *mode_name = strdup(rgb_matrix_name(rgb_matrix_get_mode()));
+ char *mode_name = strdup(rgb_matrix_get_mode_name(rgb_matrix_get_mode()));
if (mode_name != NULL) {
int len = strlen(mode_name);
bool capitalize_next = true;
diff --git a/keyboards/cannonkeys/satisfaction75/rules.mk b/keyboards/cannonkeys/satisfaction75/rules.mk
index c92469d1bd..25eebb9054 100644
--- a/keyboards/cannonkeys/satisfaction75/rules.mk
+++ b/keyboards/cannonkeys/satisfaction75/rules.mk
@@ -5,5 +5,3 @@ VPATH += keyboards/cannonkeys/lib/satisfaction75
SRC += satisfaction_encoder.c \
satisfaction_oled.c \
satisfaction_core.c
-
-DEFAULT_FOLDER = cannonkeys/satisfaction75/rev1 \ No newline at end of file
diff --git a/keyboards/converter/adb_usb/rules.mk b/keyboards/converter/adb_usb/rules.mk
index 28df56c337..b4a73249dd 100644
--- a/keyboards/converter/adb_usb/rules.mk
+++ b/keyboards/converter/adb_usb/rules.mk
@@ -3,5 +3,3 @@ CUSTOM_MATRIX = yes
SRC += matrix.c adb.c led.c
# OPT_DEFS += -DADB_MOUSE_ENABLE -DMOUSE_ENABLE
-
-DEFAULT_FOLDER = converter/adb_usb/rev1
diff --git a/keyboards/converter/sun_usb/rules.mk b/keyboards/converter/sun_usb/rules.mk
index d3ec00c5d5..0268798cc0 100644
--- a/keyboards/converter/sun_usb/rules.mk
+++ b/keyboards/converter/sun_usb/rules.mk
@@ -3,5 +3,3 @@ CUSTOM_MATRIX = yes
SRC += matrix.c led.c
UART_DRIVER_REQUIRED = yes
-
-DEFAULT_FOLDER = converter/sun_usb/type5
diff --git a/keyboards/converter/usb_usb/rules.mk b/keyboards/converter/usb_usb/rules.mk
index 1e278514f6..682fa821ef 100644
--- a/keyboards/converter/usb_usb/rules.mk
+++ b/keyboards/converter/usb_usb/rules.mk
@@ -1,5 +1,3 @@
CUSTOM_MATRIX = yes
SRC += custom_matrix.cpp
-
-DEFAULT_FOLDER = converter/usb_usb/hasu
diff --git a/keyboards/dailycraft/bat43/info.json b/keyboards/dailycraft/bat43/info.json
index 90e14e3434..a8b6f83792 100644
--- a/keyboards/dailycraft/bat43/info.json
+++ b/keyboards/dailycraft/bat43/info.json
@@ -18,6 +18,5 @@
"rows": ["E6", "D7", "C6", "D4", "F7", "F6", "F5", "F4"]
},
"diode_direction": "COL2ROW",
- "processor": "atmega32u4",
- "bootloader": "caterina"
+ "development_board": "promicro"
}
diff --git a/keyboards/dailycraft/claw44/rev1/keyboard.json b/keyboards/dailycraft/claw44/rev1/keyboard.json
index 2391bc262f..c10fa57cb3 100644
--- a/keyboards/dailycraft/claw44/rev1/keyboard.json
+++ b/keyboards/dailycraft/claw44/rev1/keyboard.json
@@ -18,8 +18,7 @@
"pin": "D2"
}
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"features": {
"bootmagic": false,
"mousekey": false,
diff --git a/keyboards/dailycraft/sandbox/rev1/keyboard.json b/keyboards/dailycraft/sandbox/rev1/keyboard.json
index 50a114457d..19e4e924b2 100644
--- a/keyboards/dailycraft/sandbox/rev1/keyboard.json
+++ b/keyboards/dailycraft/sandbox/rev1/keyboard.json
@@ -12,8 +12,7 @@
"rows": ["B5", "B4"]
},
"diode_direction": "COL2ROW",
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"features": {
"bootmagic": true,
"mousekey": true,
diff --git a/keyboards/dailycraft/sandbox/rev2/keyboard.json b/keyboards/dailycraft/sandbox/rev2/keyboard.json
index b1991cf56c..d94593cced 100644
--- a/keyboards/dailycraft/sandbox/rev2/keyboard.json
+++ b/keyboards/dailycraft/sandbox/rev2/keyboard.json
@@ -18,8 +18,7 @@
"pin": "D2"
}
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"features": {
"bootmagic": true,
"mousekey": true,
diff --git a/keyboards/dailycraft/wings42/rev1/keyboard.json b/keyboards/dailycraft/wings42/rev1/keyboard.json
index 307b675d06..3f71586581 100644
--- a/keyboards/dailycraft/wings42/rev1/keyboard.json
+++ b/keyboards/dailycraft/wings42/rev1/keyboard.json
@@ -18,8 +18,7 @@
"pin": "D2"
}
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"features": {
"bootmagic": true,
"mousekey": true,
diff --git a/keyboards/dailycraft/wings42/rev1_extkeys/keyboard.json b/keyboards/dailycraft/wings42/rev1_extkeys/keyboard.json
index ef5b4331b1..a3ea3c2b45 100644
--- a/keyboards/dailycraft/wings42/rev1_extkeys/keyboard.json
+++ b/keyboards/dailycraft/wings42/rev1_extkeys/keyboard.json
@@ -18,8 +18,7 @@
"pin": "D2"
}
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"features": {
"bootmagic": true,
"mousekey": true,
diff --git a/keyboards/dailycraft/wings42/rev2/keyboard.json b/keyboards/dailycraft/wings42/rev2/keyboard.json
index 4d41f54f3b..7ed0fb9967 100644
--- a/keyboards/dailycraft/wings42/rev2/keyboard.json
+++ b/keyboards/dailycraft/wings42/rev2/keyboard.json
@@ -24,8 +24,7 @@
{ "pin_a": "B6", "pin_b": "B2" }
]
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"features": {
"bootmagic": true,
"encoder": true,
diff --git a/keyboards/delikeeb/flatbread60/keyboard.json b/keyboards/delikeeb/flatbread60/keyboard.json
index eabb301dc0..2536df862d 100644
--- a/keyboards/delikeeb/flatbread60/keyboard.json
+++ b/keyboards/delikeeb/flatbread60/keyboard.json
@@ -46,8 +46,7 @@
"rows": ["F6", "B1", "B3", "B2", "B6"]
},
"diode_direction": "COL2ROW",
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT_ortho_5x12": {
"layout": [
diff --git a/keyboards/delikeeb/vaneela/keyboard.json b/keyboards/delikeeb/vaneela/keyboard.json
index 8e30581e70..7a467a59aa 100644
--- a/keyboards/delikeeb/vaneela/keyboard.json
+++ b/keyboards/delikeeb/vaneela/keyboard.json
@@ -25,8 +25,7 @@
"rows": ["F6", "F7", "B3", "B2", "B6"]
},
"diode_direction": "COL2ROW",
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT_ortho_5x12": {
"layout": [
diff --git a/keyboards/delikeeb/vaneelaex/keyboard.json b/keyboards/delikeeb/vaneelaex/keyboard.json
index 1890c860e6..295ad722b5 100644
--- a/keyboards/delikeeb/vaneelaex/keyboard.json
+++ b/keyboards/delikeeb/vaneelaex/keyboard.json
@@ -25,8 +25,7 @@
"rows": ["D3", "D2", "D1", "D0", "B2", "B6"]
},
"diode_direction": "COL2ROW",
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT_ss_6x12": {
"layout": [
diff --git a/keyboards/deltasplit75/v2/keyboard.json b/keyboards/deltasplit75/v2/keyboard.json
index 031d2b9185..efd4217f13 100644
--- a/keyboards/deltasplit75/v2/keyboard.json
+++ b/keyboards/deltasplit75/v2/keyboard.json
@@ -24,8 +24,7 @@
"ws2812": {
"pin": "D3"
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"features": {
"bootmagic": false,
"mousekey": true,
diff --git a/keyboards/dm9records/ergoinu/keyboard.json b/keyboards/dm9records/ergoinu/keyboard.json
index 0e124d1a21..05150f5e06 100644
--- a/keyboards/dm9records/ergoinu/keyboard.json
+++ b/keyboards/dm9records/ergoinu/keyboard.json
@@ -25,8 +25,7 @@
"ws2812": {
"pin": "B6"
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"features": {
"bootmagic": true,
"mousekey": true,
diff --git a/keyboards/doodboard/duckboard/keyboard.json b/keyboards/doodboard/duckboard/keyboard.json
index 7e88a22e10..b5f07ead98 100644
--- a/keyboards/doodboard/duckboard/keyboard.json
+++ b/keyboards/doodboard/duckboard/keyboard.json
@@ -37,8 +37,7 @@
"ws2812": {
"pin": "D3"
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/doodboard/duckboard_r2/keyboard.json b/keyboards/doodboard/duckboard_r2/keyboard.json
index 6cbf51bcb4..cffb2904e3 100644
--- a/keyboards/doodboard/duckboard_r2/keyboard.json
+++ b/keyboards/doodboard/duckboard_r2/keyboard.json
@@ -40,8 +40,7 @@
"bootmagic": {
"matrix": [0, 1]
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/draculad/keyboard.json b/keyboards/draculad/keyboard.json
index c72bda7c38..9c21b2a97d 100644
--- a/keyboards/draculad/keyboard.json
+++ b/keyboards/draculad/keyboard.json
@@ -48,8 +48,7 @@
"pin": "D2"
}
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"features": {
"bootmagic": false,
"mousekey": true,
diff --git a/keyboards/drhigsby/bkf/keyboard.json b/keyboards/drhigsby/bkf/keyboard.json
index 76808f93de..17f1adc364 100644
--- a/keyboards/drhigsby/bkf/keyboard.json
+++ b/keyboards/drhigsby/bkf/keyboard.json
@@ -31,8 +31,7 @@
{"pin_a": "F4", "pin_b": "F5"}
]
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT_625uC": {
"layout": [
diff --git a/keyboards/drhigsby/dubba175/keyboard.json b/keyboards/drhigsby/dubba175/keyboard.json
index 0f395d10ff..f1d55d1855 100644
--- a/keyboards/drhigsby/dubba175/keyboard.json
+++ b/keyboards/drhigsby/dubba175/keyboard.json
@@ -25,8 +25,7 @@
"rows": ["B1", "B3", "B2", "B5"]
},
"diode_direction": "COL2ROW",
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/drhigsby/ogurec/info.json b/keyboards/drhigsby/ogurec/info.json
index 7e65e924e2..bc43e1563a 100644
--- a/keyboards/drhigsby/ogurec/info.json
+++ b/keyboards/drhigsby/ogurec/info.json
@@ -25,6 +25,5 @@
"rows": ["F6", "B6", "B2"]
},
"diode_direction": "COL2ROW",
- "processor": "atmega32u4",
- "bootloader": "caterina"
+ "development_board": "promicro"
}
diff --git a/keyboards/drhigsby/packrat/keyboard.json b/keyboards/drhigsby/packrat/keyboard.json
index b41b383aee..8713ec034d 100644
--- a/keyboards/drhigsby/packrat/keyboard.json
+++ b/keyboards/drhigsby/packrat/keyboard.json
@@ -31,8 +31,7 @@
{"pin_a": "F5", "pin_b": "F4"}
]
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT_3uc": {
"layout": [
diff --git a/keyboards/dumbo/keyboard.json b/keyboards/dumbo/keyboard.json
index 8026f22790..4f8f04c06c 100644
--- a/keyboards/dumbo/keyboard.json
+++ b/keyboards/dumbo/keyboard.json
@@ -32,8 +32,7 @@
"pin": "D2"
}
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"features": {
"bootmagic": false,
"mousekey": true,
diff --git a/keyboards/dumbpad/v0x/keyboard.json b/keyboards/dumbpad/v0x/keyboard.json
index f0cecd8063..9d25d80494 100644
--- a/keyboards/dumbpad/v0x/keyboard.json
+++ b/keyboards/dumbpad/v0x/keyboard.json
@@ -15,8 +15,7 @@
"bootmagic": {
"matrix": [3, 0]
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"features": {
"bootmagic": true,
"mousekey": true,
diff --git a/keyboards/dumbpad/v0x_dualencoder/keyboard.json b/keyboards/dumbpad/v0x_dualencoder/keyboard.json
index 71b501cedd..0754f301b7 100644
--- a/keyboards/dumbpad/v0x_dualencoder/keyboard.json
+++ b/keyboards/dumbpad/v0x_dualencoder/keyboard.json
@@ -16,8 +16,7 @@
"bootmagic": {
"matrix": [3, 0]
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"features": {
"bootmagic": true,
"mousekey": true,
diff --git a/keyboards/dumbpad/v0x_right/keyboard.json b/keyboards/dumbpad/v0x_right/keyboard.json
index 883f2f785d..f581dd8e87 100644
--- a/keyboards/dumbpad/v0x_right/keyboard.json
+++ b/keyboards/dumbpad/v0x_right/keyboard.json
@@ -15,8 +15,7 @@
"bootmagic": {
"matrix": [3, 4]
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"features": {
"bootmagic": true,
"mousekey": true,
diff --git a/keyboards/dumbpad/v1x/keyboard.json b/keyboards/dumbpad/v1x/keyboard.json
index 9ab78e1a9f..c78bbfef04 100644
--- a/keyboards/dumbpad/v1x/keyboard.json
+++ b/keyboards/dumbpad/v1x/keyboard.json
@@ -15,8 +15,7 @@
"bootmagic": {
"matrix": [3, 0]
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"features": {
"bootmagic": true,
"mousekey": true,
diff --git a/keyboards/dumbpad/v1x_dualencoder/keyboard.json b/keyboards/dumbpad/v1x_dualencoder/keyboard.json
index f3aeafe625..413d1970a0 100644
--- a/keyboards/dumbpad/v1x_dualencoder/keyboard.json
+++ b/keyboards/dumbpad/v1x_dualencoder/keyboard.json
@@ -16,8 +16,7 @@
"bootmagic": {
"matrix": [3, 0]
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"features": {
"bootmagic": true,
"mousekey": true,
diff --git a/keyboards/dumbpad/v1x_oled/keyboard.json b/keyboards/dumbpad/v1x_oled/keyboard.json
index 3a437699b8..6547b9ca39 100644
--- a/keyboards/dumbpad/v1x_oled/keyboard.json
+++ b/keyboards/dumbpad/v1x_oled/keyboard.json
@@ -13,8 +13,7 @@
{"pin_a": "E6", "pin_b": "D7"}
]
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"features": {
"bootmagic": false,
"mousekey": false,
diff --git a/keyboards/dumbpad/v1x_right/keyboard.json b/keyboards/dumbpad/v1x_right/keyboard.json
index 583d60bc5d..b9a62f2e69 100644
--- a/keyboards/dumbpad/v1x_right/keyboard.json
+++ b/keyboards/dumbpad/v1x_right/keyboard.json
@@ -15,8 +15,7 @@
"bootmagic": {
"matrix": [3, 4]
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"features": {
"bootmagic": true,
"mousekey": true,
diff --git a/keyboards/dumbpad/v3x/keyboard.json b/keyboards/dumbpad/v3x/keyboard.json
index 7ea29cd9ad..58b8da5b3a 100644
--- a/keyboards/dumbpad/v3x/keyboard.json
+++ b/keyboards/dumbpad/v3x/keyboard.json
@@ -55,8 +55,7 @@
"ws2812": {
"pin": "D1"
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"features": {
"bootmagic": true,
"mousekey": false,
diff --git a/keyboards/durgod/dgk6x/rules.mk b/keyboards/durgod/dgk6x/rules.mk
index 597f5bbcf9..c74ac83e91 100644
--- a/keyboards/durgod/dgk6x/rules.mk
+++ b/keyboards/durgod/dgk6x/rules.mk
@@ -1,4 +1,2 @@
# Do not put the microcontroller into power saving mode
NO_SUSPEND_POWER_DOWN = yes
-
-DEFAULT_FOLDER=durgod/dgk6x/hades_ansi
diff --git a/keyboards/earth_rover/keyboard.json b/keyboards/earth_rover/keyboard.json
index 516585ca24..b3f5d2bae4 100644
--- a/keyboards/earth_rover/keyboard.json
+++ b/keyboards/earth_rover/keyboard.json
@@ -25,8 +25,7 @@
"rows": ["D4", "C6", "D7", "E6"]
},
"diode_direction": "COL2ROW",
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/eco/info.json b/keyboards/eco/info.json
index f62d91a01f..a234ea2399 100644
--- a/keyboards/eco/info.json
+++ b/keyboards/eco/info.json
@@ -6,8 +6,7 @@
"vid": "0x1337",
"pid": "0x6006"
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"qmk": {
"locking": {
"enabled": true,
diff --git a/keyboards/elephant42/keyboard.json b/keyboards/elephant42/keyboard.json
index d1d321623e..60b135b086 100644
--- a/keyboards/elephant42/keyboard.json
+++ b/keyboards/elephant42/keyboard.json
@@ -54,8 +54,7 @@
"ws2812": {
"pin": "D3"
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"features": {
"bootmagic": true,
"mousekey": false,
diff --git a/keyboards/emajesty/eiri/keyboard.json b/keyboards/emajesty/eiri/keyboard.json
index 2ad711bf9e..3dd0ab0888 100644
--- a/keyboards/emajesty/eiri/keyboard.json
+++ b/keyboards/emajesty/eiri/keyboard.json
@@ -19,8 +19,7 @@
"rows": ["B4", "B5", "B2", "B6"]
},
"diode_direction": "COL2ROW",
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/emptystring/nqg/keyboard.json b/keyboards/emptystring/nqg/keyboard.json
index 17116704c7..226ab34303 100644
--- a/keyboards/emptystring/nqg/keyboard.json
+++ b/keyboards/emptystring/nqg/keyboard.json
@@ -18,8 +18,7 @@
"rows": ["B6", "B2", "B3", "B1"]
},
"diode_direction": "COL2ROW",
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/ergodox_ez/rules.mk b/keyboards/ergodox_ez/rules.mk
index 187d9dd8e2..9c0392f5d0 100644
--- a/keyboards/ergodox_ez/rules.mk
+++ b/keyboards/ergodox_ez/rules.mk
@@ -14,5 +14,3 @@ AUDIO_SUPPORTED = no
BACKLIGHT_SUPPORTED = no
MOUSE_SHARED_EP = no
-
-DEFAULT_FOLDER = ergodox_ez/base
diff --git a/keyboards/ergoslab/rev1/keyboard.json b/keyboards/ergoslab/rev1/keyboard.json
index 0d017d7a97..59e3e038e9 100644
--- a/keyboards/ergoslab/rev1/keyboard.json
+++ b/keyboards/ergoslab/rev1/keyboard.json
@@ -25,8 +25,7 @@
"ws2812": {
"pin": "D3"
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"features": {
"bootmagic": false,
"mousekey": true,
diff --git a/keyboards/ergotravel/rev1/keyboard.json b/keyboards/ergotravel/rev1/keyboard.json
index 0c34bf04bd..803653fb70 100644
--- a/keyboards/ergotravel/rev1/keyboard.json
+++ b/keyboards/ergotravel/rev1/keyboard.json
@@ -25,8 +25,7 @@
"ws2812": {
"pin": "D3"
},
- "bootloader": "caterina",
- "processor": "atmega32u4",
+ "development_board": "promicro",
"features": {
"bootmagic": false,
"mousekey": true,
diff --git a/keyboards/evancookaudio/sleepingdinosaur/keyboard.json b/keyboards/evancookaudio/sleepingdinosaur/keyboard.json
index c6b77a26c8..4bedb82481 100644
--- a/keyboards/evancookaudio/sleepingdinosaur/keyboard.json
+++ b/keyboards/evancookaudio/sleepingdinosaur/keyboard.json
@@ -21,8 +21,7 @@
"rows": ["D1", "D0", "D4", "C6", "D7"]
},
"diode_direction": "COL2ROW",
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/evancookaudio/tenpad/keyboard.json b/keyboards/evancookaudio/tenpad/keyboard.json
index 46107a1c9b..c52556b4f4 100644
--- a/keyboards/evancookaudio/tenpad/keyboard.json
+++ b/keyboards/evancookaudio/tenpad/keyboard.json
@@ -21,8 +21,7 @@
"rows": ["D0", "D1"]
},
"diode_direction": "COL2ROW",
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT_ortho_2x5": {
"layout": [
diff --git a/keyboards/ferris/0_2/rules.mk b/keyboards/ferris/0_2/rules.mk
index 11b9d33a69..c04c3c92ed 100644
--- a/keyboards/ferris/0_2/rules.mk
+++ b/keyboards/ferris/0_2/rules.mk
@@ -2,5 +2,3 @@ CUSTOM_MATRIX = lite
SRC += matrix.c
I2C_DRIVER_REQUIRED = yes
-
-DEFAULT_FOLDER = ferris/0_2/base
diff --git a/keyboards/ffkeebs/puca/keyboard.json b/keyboards/ffkeebs/puca/keyboard.json
index e79032593a..3e3acdb1e1 100644
--- a/keyboards/ffkeebs/puca/keyboard.json
+++ b/keyboards/ffkeebs/puca/keyboard.json
@@ -54,8 +54,7 @@
"ws2812": {
"pin": "D4"
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layout_aliases": {
"LAYOUT": "LAYOUT_all"
},
diff --git a/keyboards/flehrad/numbrero/keyboard.json b/keyboards/flehrad/numbrero/keyboard.json
index ac21bb0fbb..353712358a 100644
--- a/keyboards/flehrad/numbrero/keyboard.json
+++ b/keyboards/flehrad/numbrero/keyboard.json
@@ -24,8 +24,7 @@
"rows": ["F6", "B5", "B4", "E6", "F7"]
},
"diode_direction": "COL2ROW",
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layout_aliases": {
"LAYOUT_numbrero_numpad": "LAYOUT_numpad",
"LAYOUT_numbrero_ortho": "LAYOUT_ortho"
diff --git a/keyboards/flehrad/snagpad/keyboard.json b/keyboards/flehrad/snagpad/keyboard.json
index d1a2f3ddee..641e6efedd 100644
--- a/keyboards/flehrad/snagpad/keyboard.json
+++ b/keyboards/flehrad/snagpad/keyboard.json
@@ -24,8 +24,7 @@
"rows": ["D1", "D0", "D4", "C6", "D7"]
},
"diode_direction": "COL2ROW",
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"community_layouts": ["ortho_5x4", "numpad_5x4"],
"layouts": {
"LAYOUT_ortho_5x4": {
diff --git a/keyboards/flehrad/tradestation/keyboard.json b/keyboards/flehrad/tradestation/keyboard.json
index b753ce2f8e..55b75c4d51 100644
--- a/keyboards/flehrad/tradestation/keyboard.json
+++ b/keyboards/flehrad/tradestation/keyboard.json
@@ -24,8 +24,7 @@
"rows": ["D1", "C6", "D4", "D0"]
},
"diode_direction": "COL2ROW",
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"community_layouts": ["ortho_4x4"],
"layout_aliases": {
"LAYOUT_tradestation": "LAYOUT_4x2u"
diff --git a/keyboards/for_science/keyboard.json b/keyboards/for_science/keyboard.json
index 5ae7808d42..62718933cd 100644
--- a/keyboards/for_science/keyboard.json
+++ b/keyboards/for_science/keyboard.json
@@ -26,8 +26,7 @@
"rows": ["D4", "D7", "E6", "B4", "B5"]
},
"diode_direction": "ROW2COL",
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT_split_4x5_3": {
"layout": [
diff --git a/keyboards/fr4/southpaw75/keyboard.json b/keyboards/fr4/southpaw75/keyboard.json
index dc919b2ee4..c5d5094c96 100644
--- a/keyboards/fr4/southpaw75/keyboard.json
+++ b/keyboards/fr4/southpaw75/keyboard.json
@@ -25,8 +25,7 @@
"rows": ["D3", "D2", "D1", "D0", "D4", "C6", "D7", "E6", "B4"]
},
"diode_direction": "COL2ROW",
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/fr4/unix60/keyboard.json b/keyboards/fr4/unix60/keyboard.json
index 97da97dd0e..7f7bc3fbc7 100644
--- a/keyboards/fr4/unix60/keyboard.json
+++ b/keyboards/fr4/unix60/keyboard.json
@@ -19,8 +19,7 @@
"rows": ["D3", "D2", "D1", "D0", "D4", "C6", "D7"]
},
"diode_direction": "COL2ROW",
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"community_layouts": [
"60_hhkb"
],
diff --git a/keyboards/fractal/keyboard.json b/keyboards/fractal/keyboard.json
index 1e322e63b4..38a8bf4593 100644
--- a/keyboards/fractal/keyboard.json
+++ b/keyboards/fractal/keyboard.json
@@ -13,8 +13,7 @@
"rows": ["B1", "F7", "F6", "F5", "F4"]
},
"diode_direction": "COL2ROW",
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"features": {
"bootmagic": true,
"mousekey": true,
diff --git a/keyboards/free_willy/keyboard.json b/keyboards/free_willy/keyboard.json
index 815f5808f5..d6d7d2d155 100644
--- a/keyboards/free_willy/keyboard.json
+++ b/keyboards/free_willy/keyboard.json
@@ -19,8 +19,7 @@
"rows": ["F4", "F5", "F6", "F7"]
},
"diode_direction": "COL2ROW",
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/fungo/rev1/keyboard.json b/keyboards/fungo/rev1/keyboard.json
index 0b0abec8e7..e494bce0ad 100644
--- a/keyboards/fungo/rev1/keyboard.json
+++ b/keyboards/fungo/rev1/keyboard.json
@@ -40,8 +40,7 @@
"resync": true
}
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"debounce": 3,
"tapping": {
"toggle": 3
diff --git a/keyboards/funky40/keyboard.json b/keyboards/funky40/keyboard.json
index 0658fc4974..856a9262f0 100644
--- a/keyboards/funky40/keyboard.json
+++ b/keyboards/funky40/keyboard.json
@@ -24,8 +24,7 @@
"rows": ["D4", "C6", "B4", "B5"]
},
"diode_direction": "COL2ROW",
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/gl516/a52gl/keyboard.json b/keyboards/gl516/a52gl/keyboard.json
index ad4921f635..4167f7ffc1 100644
--- a/keyboards/gl516/a52gl/keyboard.json
+++ b/keyboards/gl516/a52gl/keyboard.json
@@ -8,8 +8,7 @@
"pid": "0xE8D1",
"device_version": "0.0.1"
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"features": {
"bootmagic": true,
"mousekey": true,
diff --git a/keyboards/gl516/j73gl/keyboard.json b/keyboards/gl516/j73gl/keyboard.json
index 5fba198a71..06f1a8d763 100644
--- a/keyboards/gl516/j73gl/keyboard.json
+++ b/keyboards/gl516/j73gl/keyboard.json
@@ -26,8 +26,7 @@
"ws2812": {
"pin": "D3"
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"features": {
"bootmagic": true,
"mousekey": true,
diff --git a/keyboards/gl516/n51gl/keyboard.json b/keyboards/gl516/n51gl/keyboard.json
index c1ea4ab579..388541c23a 100644
--- a/keyboards/gl516/n51gl/keyboard.json
+++ b/keyboards/gl516/n51gl/keyboard.json
@@ -31,8 +31,7 @@
{"pin_a": "D7", "pin_b": "E6", "resolution": 3}
]
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"features": {
"bootmagic": true,
"mousekey": true,
diff --git a/keyboards/gowla/keyboard.json b/keyboards/gowla/keyboard.json
index f4f0b96838..0922862146 100644
--- a/keyboards/gowla/keyboard.json
+++ b/keyboards/gowla/keyboard.json
@@ -19,8 +19,7 @@
"rows": ["D1", "D0", "D4"]
},
"diode_direction": "ROW2COL",
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT_ortho_3x3": {
"layout": [
diff --git a/keyboards/halfcliff/keyboard.json b/keyboards/halfcliff/keyboard.json
index 7d780c016a..3cc2b0de33 100644
--- a/keyboards/halfcliff/keyboard.json
+++ b/keyboards/halfcliff/keyboard.json
@@ -29,8 +29,7 @@
"ws2812": {
"pin": "D3"
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"features": {
"bootmagic": false,
"mousekey": false,
diff --git a/keyboards/handwired/dygma/raise/rules.mk b/keyboards/handwired/dygma/raise/rules.mk
index cd02f80200..195edabcae 100644
--- a/keyboards/handwired/dygma/raise/rules.mk
+++ b/keyboards/handwired/dygma/raise/rules.mk
@@ -7,5 +7,3 @@ CUSTOM_MATRIX = lite
I2C_DRIVER_REQUIRED = yes
SRC += matrix.c
-
-DEFAULT_FOLDER = handwired/dygma/raise/ansi
diff --git a/keyboards/handwired/wwa/soyuz/keyboard.json b/keyboards/handwired/wwa/soyuz/keyboard.json
index 4b3a015a35..b922af10a2 100644
--- a/keyboards/handwired/wwa/soyuz/keyboard.json
+++ b/keyboards/handwired/wwa/soyuz/keyboard.json
@@ -8,7 +8,8 @@
"bootmagic": true,
"extrakey": true,
"mousekey": true,
- "nkro": true
+ "nkro": true,
+ "encoder" : true
},
"matrix_pins": {
"cols": ["GP0", "GP1", "GP2", "GP3", "GP4", "GP5", "GP6"],
@@ -20,6 +21,13 @@
"pid": "0x0004",
"vid": "0x5757"
},
+ "encoder": {
+ "rotary": [
+ {"pin_a": "GP16", "pin_b": "GP17"},
+ {"pin_a": "GP18", "pin_b": "GP19"},
+ {"pin_a": "GP20", "pin_b": "GP21"}
+ ]
+ },
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/handwired/wwa/soyuz/keymaps/default/keymap.c b/keyboards/handwired/wwa/soyuz/keymaps/default/keymap.c
index af0eb592dc..c1d75ffc54 100644
--- a/keyboards/handwired/wwa/soyuz/keymaps/default/keymap.c
+++ b/keyboards/handwired/wwa/soyuz/keymaps/default/keymap.c
@@ -3,11 +3,17 @@
#include QMK_KEYBOARD_H
-
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT(
KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10,
KC_F11, KC_F12, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17,
KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24
)
-}; \ No newline at end of file
+};
+
+
+#if defined(ENCODER_MAP_ENABLE)
+const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
+ [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
+};
+#endif
diff --git a/keyboards/handwired/wwa/soyuz/keymaps/default/rules.mk b/keyboards/handwired/wwa/soyuz/keymaps/default/rules.mk
new file mode 100644
index 0000000000..ee32568148
--- /dev/null
+++ b/keyboards/handwired/wwa/soyuz/keymaps/default/rules.mk
@@ -0,0 +1 @@
+ENCODER_MAP_ENABLE = yes
diff --git a/keyboards/handwired/wwa/soyuz/readme.md b/keyboards/handwired/wwa/soyuz/readme.md
index 69f8ef9d76..01a3b60dfe 100644
--- a/keyboards/handwired/wwa/soyuz/readme.md
+++ b/keyboards/handwired/wwa/soyuz/readme.md
@@ -2,7 +2,7 @@
![soyuz](https://i.imgur.com/KwwORGSh.jpeg)
-21 Key and 3 MIDI Potentiometers Macro Keyboard
+21 Key, 3 Encoder
* Keyboard Maintainer: [spacehangover](https://github.com/spacehangover)
* Hardware Supported: RP2040 Handwired
diff --git a/keyboards/helix/pico/rules.mk b/keyboards/helix/pico/rules.mk
index 449df9caa6..e18b8fb0c4 100644
--- a/keyboards/helix/pico/rules.mk
+++ b/keyboards/helix/pico/rules.mk
@@ -3,5 +3,3 @@ LED_BACK_ENABLE = no # LED backlight (Enable WS2812 RGB underlight.)
LED_UNDERGLOW_ENABLE = no # LED underglow (Enable WS2812 RGB underlight.)
LED_ANIMATIONS = yes # LED animations
IOS_DEVICE_ENABLE = no # connect to IOS device (iPad,iPhone)
-
-DEFAULT_FOLDER = helix/pico/base
diff --git a/keyboards/helix/rev2/rules.mk b/keyboards/helix/rev2/rules.mk
index 4f830403f4..e827ae111f 100644
--- a/keyboards/helix/rev2/rules.mk
+++ b/keyboards/helix/rev2/rules.mk
@@ -7,5 +7,3 @@ LED_BACK_ENABLE = no # LED backlight (Enable WS2812 RGB underlight.)
LED_UNDERGLOW_ENABLE = no # LED underglow (Enable WS2812 RGB underlight.)
LED_ANIMATIONS = yes # LED animations
IOS_DEVICE_ENABLE = no # connect to IOS device (iPad,iPhone)
-
-DEFAULT_FOLDER = helix/rev2/base
diff --git a/keyboards/helix/rules.mk b/keyboards/helix/rules.mk
index f743d48d0e..a2f233cf91 100644
--- a/keyboards/helix/rules.mk
+++ b/keyboards/helix/rules.mk
@@ -1,3 +1 @@
-DEFAULT_FOLDER = helix/rev2
-
HELIX_TOP_DIR := $(patsubst %/,%,$(dir $(lastword $(MAKEFILE_LIST))))
diff --git a/keyboards/hifumi/keyboard.json b/keyboards/hifumi/keyboard.json
index 320c14a2be..e859ceef69 100644
--- a/keyboards/hifumi/keyboard.json
+++ b/keyboards/hifumi/keyboard.json
@@ -39,8 +39,7 @@
"ws2812": {
"pin": "D3"
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/horizon/keyboard.json b/keyboards/horizon/keyboard.json
index 8dabea33a3..cb70b74470 100644
--- a/keyboards/horizon/keyboard.json
+++ b/keyboards/horizon/keyboard.json
@@ -26,8 +26,7 @@
"rows": ["D3", "D2", "D1", "F4"]
},
"diode_direction": "COL2ROW",
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/ibm/model_m/mschwingen/rules.mk b/keyboards/ibm/model_m/mschwingen/rules.mk
index 65761bcf9a..e9091cdbae 100644
--- a/keyboards/ibm/model_m/mschwingen/rules.mk
+++ b/keyboards/ibm/model_m/mschwingen/rules.mk
@@ -5,5 +5,3 @@ UART_DRIVER_REQUIRED = yes
SPI_DRIVER_REQUIRED = yes
OPT_DEFS += -DSLEEP_LED_ENABLE
-
-DEFAULT_FOLDER = ibm/model_m/mschwingen/led_wired
diff --git a/keyboards/ibnuda/alicia_cook/keyboard.json b/keyboards/ibnuda/alicia_cook/keyboard.json
index ba9e22f63b..d8a98f92ed 100644
--- a/keyboards/ibnuda/alicia_cook/keyboard.json
+++ b/keyboards/ibnuda/alicia_cook/keyboard.json
@@ -19,8 +19,7 @@
"rows": ["D2", "D3", "F4", "F5"]
},
"diode_direction": "COL2ROW",
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT_all": {
"layout": [
diff --git a/keyboards/ibnuda/gurindam/keyboard.json b/keyboards/ibnuda/gurindam/keyboard.json
index f136c8ecb2..72fdba4f7f 100644
--- a/keyboards/ibnuda/gurindam/keyboard.json
+++ b/keyboards/ibnuda/gurindam/keyboard.json
@@ -43,8 +43,7 @@
"rows": ["B5", "B4", "E6", "D7", "C6", "D4", "D0", "D1", "D2"]
},
"diode_direction": "COL2ROW",
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/ibnuda/squiggle/rev1/keyboard.json b/keyboards/ibnuda/squiggle/rev1/keyboard.json
index 41061674a9..e614da39bd 100644
--- a/keyboards/ibnuda/squiggle/rev1/keyboard.json
+++ b/keyboards/ibnuda/squiggle/rev1/keyboard.json
@@ -19,8 +19,7 @@
"pin": "D0"
}
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"features": {
"bootmagic": false,
"mousekey": false,
diff --git a/keyboards/ivndbt/late9/rev1/keyboard.json b/keyboards/ivndbt/late9/rev1/keyboard.json
index a9bc229588..523ae83492 100644
--- a/keyboards/ivndbt/late9/rev1/keyboard.json
+++ b/keyboards/ivndbt/late9/rev1/keyboard.json
@@ -24,8 +24,7 @@
"nkro": true,
"oled": true
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/ivndbt/neopad/rev1/keyboard.json b/keyboards/ivndbt/neopad/rev1/keyboard.json
index a07852acf0..f40f06549b 100755
--- a/keyboards/ivndbt/neopad/rev1/keyboard.json
+++ b/keyboards/ivndbt/neopad/rev1/keyboard.json
@@ -28,8 +28,7 @@
{"pin_a": "D4", "pin_b": "C6"}
]
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"tapping": {
"toggle": 2
},
diff --git a/keyboards/jiran/info.json b/keyboards/jiran/info.json
index b06266ec8c..00c4239781 100644
--- a/keyboards/jiran/info.json
+++ b/keyboards/jiran/info.json
@@ -19,6 +19,5 @@
"pin": "D1"
}
},
- "processor": "atmega32u4",
- "bootloader": "caterina"
+ "development_board": "promicro"
}
diff --git a/keyboards/jorne/rev1/keyboard.json b/keyboards/jorne/rev1/keyboard.json
index 4e905e4bfc..7fffc8be02 100644
--- a/keyboards/jorne/rev1/keyboard.json
+++ b/keyboards/jorne/rev1/keyboard.json
@@ -32,8 +32,7 @@
"ws2812": {
"pin": "D3"
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"features": {
"bootmagic": false,
"mousekey": true,
diff --git a/keyboards/latincompass/latinpad/keyboard.json b/keyboards/latincompass/latinpad/keyboard.json
index 2efc370ad3..3b4563b1ca 100644
--- a/keyboards/latincompass/latinpad/keyboard.json
+++ b/keyboards/latincompass/latinpad/keyboard.json
@@ -65,8 +65,7 @@
"ws2812": {
"pin": "D3"
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/lets_split/info.json b/keyboards/lets_split/info.json
index 9152226cab..dc46a7eb66 100644
--- a/keyboards/lets_split/info.json
+++ b/keyboards/lets_split/info.json
@@ -1,6 +1,5 @@
{
"maintainer": "qmk",
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"community_layouts": ["ortho_4x12"]
}
diff --git a/keyboards/lily58/glow_enc/keyboard.json b/keyboards/lily58/glow_enc/keyboard.json
index 9f7a2760aa..63ee5b6a99 100644
--- a/keyboards/lily58/glow_enc/keyboard.json
+++ b/keyboards/lily58/glow_enc/keyboard.json
@@ -44,8 +44,7 @@
"max_brightness": 120,
"split_count": [36, 36]
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"build": {
"lto": true
},
diff --git a/keyboards/lily58/light/keyboard.json b/keyboards/lily58/light/keyboard.json
index 0eadf11eb6..738a9418a6 100644
--- a/keyboards/lily58/light/keyboard.json
+++ b/keyboards/lily58/light/keyboard.json
@@ -45,8 +45,7 @@
"max_brightness": 120,
"split_count": [35, 35]
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"build": {
"lto": true
},
diff --git a/keyboards/lily58/rev1/keyboard.json b/keyboards/lily58/rev1/keyboard.json
index 3488b0e2b5..f23d4dbaa1 100644
--- a/keyboards/lily58/rev1/keyboard.json
+++ b/keyboards/lily58/rev1/keyboard.json
@@ -27,8 +27,7 @@
"ws2812": {
"pin": "D3"
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/lime/rev1/keyboard.json b/keyboards/lime/rev1/keyboard.json
index 50fc82ae19..b61a91a0da 100644
--- a/keyboards/lime/rev1/keyboard.json
+++ b/keyboards/lime/rev1/keyboard.json
@@ -42,8 +42,7 @@
"qmk": {
"tap_keycode_delay": 10
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"features": {
"bootmagic": false,
"mousekey": false,
diff --git a/keyboards/machkeyboards/mach3/keyboard.json b/keyboards/machkeyboards/mach3/keyboard.json
index 126845a37d..383f4a738e 100644
--- a/keyboards/machkeyboards/mach3/keyboard.json
+++ b/keyboards/machkeyboards/mach3/keyboard.json
@@ -26,8 +26,7 @@
"levels": 5,
"breathing": true
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT_3x3": {
"layout": [
diff --git a/keyboards/makrosu/keyboard.json b/keyboards/makrosu/keyboard.json
index e79a03f475..1e83c20aa7 100644
--- a/keyboards/makrosu/keyboard.json
+++ b/keyboards/makrosu/keyboard.json
@@ -34,8 +34,7 @@
"bootmagic": {
"matrix": [0, 5]
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/manta60/keyboard.json b/keyboards/manta60/keyboard.json
index 007f015379..84af2a2752 100644
--- a/keyboards/manta60/keyboard.json
+++ b/keyboards/manta60/keyboard.json
@@ -53,8 +53,7 @@
"ws2812": {
"pin": "D3"
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/maple_computing/6ball/keyboard.json b/keyboards/maple_computing/6ball/keyboard.json
index 335294e51e..f68f2ec8ba 100644
--- a/keyboards/maple_computing/6ball/keyboard.json
+++ b/keyboards/maple_computing/6ball/keyboard.json
@@ -38,8 +38,7 @@
"rows": ["F5"]
},
"diode_direction": "COL2ROW",
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/maple_computing/christmas_tree/v2017/keyboard.json b/keyboards/maple_computing/christmas_tree/v2017/keyboard.json
index d2ebc781d6..6682c574c9 100644
--- a/keyboards/maple_computing/christmas_tree/v2017/keyboard.json
+++ b/keyboards/maple_computing/christmas_tree/v2017/keyboard.json
@@ -8,8 +8,7 @@
"pid": "0x3070",
"device_version": "20.1.7"
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"features": {
"backlight": true,
"bootmagic": false,
diff --git a/keyboards/maple_computing/launchpad/keymaps/default_rgb/config.h b/keyboards/maple_computing/launchpad/keymaps/default_rgb/config.h
deleted file mode 100644
index c50e010375..0000000000
--- a/keyboards/maple_computing/launchpad/keymaps/default_rgb/config.h
+++ /dev/null
@@ -1,18 +0,0 @@
-#pragma once
-
-/* Underlight Configuration */
-#define WS2812_DI_PIN F4
-#define RGBLIGHT_EFFECT_BREATHING
-#define RGBLIGHT_EFFECT_RAINBOW_MOOD
-#define RGBLIGHT_EFFECT_RAINBOW_SWIRL
-#define RGBLIGHT_EFFECT_SNAKE
-#define RGBLIGHT_EFFECT_KNIGHT
-#define RGBLIGHT_EFFECT_CHRISTMAS
-#define RGBLIGHT_EFFECT_STATIC_GRADIENT
-#define RGBLIGHT_EFFECT_RGB_TEST
-#define RGBLIGHT_EFFECT_ALTERNATING
-#define RGBLIGHT_EFFECT_TWINKLE
-#define RGBLIGHT_LED_COUNT 2 // Number of LEDs
-#define RGBLIGHT_HUE_STEP 10
-#define RGBLIGHT_SAT_STEP 17
-#define RGBLIGHT_VAL_STEP 17
diff --git a/keyboards/maple_computing/launchpad/keymaps/default_rgb/keymap.c b/keyboards/maple_computing/launchpad/keymaps/default_rgb/keymap.c
deleted file mode 100644
index 0b2335af98..0000000000
--- a/keyboards/maple_computing/launchpad/keymaps/default_rgb/keymap.c
+++ /dev/null
@@ -1,76 +0,0 @@
-// Below layout is based upon /u/That-Canadian's planck layout
-#include QMK_KEYBOARD_H
-
-extern keymap_config_t keymap_config;
-
-// Each layer gets a name for readability, which is then used in the keymap matrix below.
-// The underscores don't mean anything - you can have a layer called STUFF or any other name.
-// Layer names don't all need to be of the same length, obviously, and you can also skip them
-// entirely and just use numbers.
-enum layer_names {
- _QWERTY,
- _RGB,
- _FUNC
-};
-
-// Defines for task manager and such
-#define CALTDEL LCTL(LALT(KC_DEL))
-#define TSKMGR LCTL(LSFT(KC_ESC))
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- /* Qwerty
- * ,-------------.
- * | 1 | 2 |
- * |------+------|
- * | 3 | 4 |
- * |------+------|
- * | 5 | 6 |
- * |------+------|
- * | FUNC | RGB |
- * `-------------'
- */
- [_QWERTY] = LAYOUT(
- KC_1, KC_2,
- KC_3, KC_4,
- KC_5, KC_6,
- MO(_FUNC), TG(_RGB)
- ),
-
- /* RGB
- * ,-------------.
- * | Mode-| Mode+|
- * |------+------|
- * | HUE- | HUE+ |
- * |------+------|
- * | SAT- | SAT+ |
- * |------+------|
- * |RGBTOG| |
- * `-------------'
- */
- [_RGB] = LAYOUT(
- UG_PREV, UG_NEXT,
- UG_HUED, UG_HUEU,
- UG_SATD, UG_SATU,
- UG_TOGG, KC_TRNS
- ),
-
- /* Function
- * ,-------------.
- * | Q |CALDEL|
- * |------+------|
- * | A |TSKMGR|
- * |------+------|
- * | Z | X |
- * |------+------|
- * | | C |
- * `-------------'
- */
- [_FUNC] = LAYOUT(
- KC_Q, CALTDEL,
- KC_A, TSKMGR,
- KC_Z, KC_X,
- _______, KC_C
- )
-
-};
diff --git a/keyboards/maple_computing/launchpad/keymaps/default_rgb/readme.md b/keyboards/maple_computing/launchpad/keymaps/default_rgb/readme.md
deleted file mode 100644
index 3f15ff9bc3..0000000000
--- a/keyboards/maple_computing/launchpad/keymaps/default_rgb/readme.md
+++ /dev/null
@@ -1,41 +0,0 @@
-# Launch Pad
-
-![Launch Pad](https://i.imgur.com/WVTe0Ku.png)
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
-
-A budget-minded, 4-8 key macro-pad with built in legs, plate & case.
-
-Supports MX & Alps switches. 2x 1u or 1x 2u supported for each row.
-
-Supports 2u PCB-Mount stabilizers.
-
-Runs off of 1x Pro Micro & 8x diodes (1n4148).
-
-Optional "Reset" switch can be used on the PCB.
-
-A fantastic project for beginners to learn to solder, veteran's of the hobby who want to add an easy macro-pad to their collection, and everyone in between.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
-
-Make example for this keyboard (after setting up your build environment):
-
- make launchpad/rev1:default
-
-See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information.
-
-# Under Glow
-
-![Underglow](https://i.imgur.com/3zFIOmu.jpg)
-
-SpaceCat now provides an underglow add-on kit. Please refer to the picture above for wiring.
-
-Make example for this keyboard (after setting up your build environment):
-
- make launchpad/rev1:default_rgb
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
-
-Due to PCB tolerance issues outside of our control, the snap-apart legs included on the PCB may need extra padding to prevent a small amount of wobbling once placed properly. We have included small, clear, and semi-permanent "glue dots" in each order (PCB Only -and- Full Kit) to help with this. You may also use plastic wrap, tape, Elmer's glue, hot glue, rubber cement, etc. We advise against using anything more "permanent" in case you wish to make changes to your Launch Pad in the future. It is also best to attach legs after all of your soldering and building is finished, to get the most accurate feel for your Launch Pad.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
diff --git a/keyboards/maple_computing/launchpad/keymaps/default_rgb/rules.mk b/keyboards/maple_computing/launchpad/keymaps/default_rgb/rules.mk
deleted file mode 100644
index 1e3cebb145..0000000000
--- a/keyboards/maple_computing/launchpad/keymaps/default_rgb/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-RGBLIGHT_ENABLE = yes
diff --git a/keyboards/maple_computing/launchpad/rev1/keyboard.json b/keyboards/maple_computing/launchpad/rev1/keyboard.json
index 272a2eef6d..9f7a23c7c8 100644
--- a/keyboards/maple_computing/launchpad/rev1/keyboard.json
+++ b/keyboards/maple_computing/launchpad/rev1/keyboard.json
@@ -30,8 +30,7 @@
"rows": ["C6", "B1", "B3", "D7"]
},
"diode_direction": "COL2ROW",
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"features": {
"bootmagic": false,
"mousekey": false,
diff --git a/keyboards/maple_computing/minidox/rev1/keyboard.json b/keyboards/maple_computing/minidox/rev1/keyboard.json
index 340a8bd39e..a11c2d94e6 100644
--- a/keyboards/maple_computing/minidox/rev1/keyboard.json
+++ b/keyboards/maple_computing/minidox/rev1/keyboard.json
@@ -18,8 +18,7 @@
"pin": "D0"
}
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"features": {
"bootmagic": false,
"mousekey": true,
diff --git a/keyboards/marksard/leftover30/keyboard.json b/keyboards/marksard/leftover30/keyboard.json
index 1b1131d6fc..9983935f66 100644
--- a/keyboards/marksard/leftover30/keyboard.json
+++ b/keyboards/marksard/leftover30/keyboard.json
@@ -56,8 +56,7 @@
"ws2812": {
"pin": "D3"
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT_all": {
"layout": [
diff --git a/keyboards/marksard/rhymestone/rev1/keyboard.json b/keyboards/marksard/rhymestone/rev1/keyboard.json
index 3fe23d6d94..aaff1515e0 100644
--- a/keyboards/marksard/rhymestone/rev1/keyboard.json
+++ b/keyboards/marksard/rhymestone/rev1/keyboard.json
@@ -44,8 +44,7 @@
"static_gradient": true
}
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"features": {
"bootmagic": false,
"mousekey": false,
diff --git a/keyboards/maxipad/promicro/keyboard.json b/keyboards/maxipad/promicro/keyboard.json
index 1499162155..d48a1c9d11 100644
--- a/keyboards/maxipad/promicro/keyboard.json
+++ b/keyboards/maxipad/promicro/keyboard.json
@@ -4,6 +4,5 @@
"rows": ["B6", "B2", "B3", "B1", "F7"]
},
"diode_direction": "COL2ROW",
- "processor": "atmega32u4",
- "bootloader": "caterina"
+ "development_board": "promicro"
}
diff --git a/keyboards/mechwild/mokulua/mirrored/keyboard.json b/keyboards/mechwild/mokulua/mirrored/keyboard.json
index dc66c0c53a..e76314f869 100644
--- a/keyboards/mechwild/mokulua/mirrored/keyboard.json
+++ b/keyboards/mechwild/mokulua/mirrored/keyboard.json
@@ -61,8 +61,7 @@
"ws2812": {
"pin": "B6"
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layout_aliases": {
"LAYOUT_mirrored": "LAYOUT"
},
diff --git a/keyboards/mechwild/mokulua/standard/keyboard.json b/keyboards/mechwild/mokulua/standard/keyboard.json
index f3eccd921f..e9c81c7e6d 100644
--- a/keyboards/mechwild/mokulua/standard/keyboard.json
+++ b/keyboards/mechwild/mokulua/standard/keyboard.json
@@ -61,8 +61,7 @@
"ws2812": {
"pin": "B6"
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layout_aliases": {
"LAYOUT_standard": "LAYOUT"
},
diff --git a/keyboards/mechwild/murphpad/keyboard.json b/keyboards/mechwild/murphpad/keyboard.json
index 8ab90bd937..a79810afd7 100644
--- a/keyboards/mechwild/murphpad/keyboard.json
+++ b/keyboards/mechwild/murphpad/keyboard.json
@@ -59,8 +59,7 @@
"ws2812": {
"pin": "F4"
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/mechwild/sugarglider/rules.mk b/keyboards/mechwild/sugarglider/rules.mk
index a01a95a868..73a141ac91 100644
--- a/keyboards/mechwild/sugarglider/rules.mk
+++ b/keyboards/mechwild/sugarglider/rules.mk
@@ -7,5 +7,3 @@ CUSTOM_MATRIX = lite
VPATH += drivers/gpio
SRC += mcp23018.c matrix.c
I2C_DRIVER_REQUIRED = yes
-
-DEFAULT_FOLDER = mechwild/sugarglider/wide_oled
diff --git a/keyboards/mechwild/sugarglider/wide_oled/rules.mk b/keyboards/mechwild/sugarglider/wide_oled/rules.mk
index 23e6cab873..a77f1a8af2 100644
--- a/keyboards/mechwild/sugarglider/wide_oled/rules.mk
+++ b/keyboards/mechwild/sugarglider/wide_oled/rules.mk
@@ -2,5 +2,3 @@
# change yes to no to disable
#
WIDE_OLED_ENABLE = yes
-
-DEFAULT_FOLDER = mechwild/sugarglider/wide_oled/f401
diff --git a/keyboards/meow48/keyboard.json b/keyboards/meow48/keyboard.json
index 7861555648..f3b1453547 100644
--- a/keyboards/meow48/keyboard.json
+++ b/keyboards/meow48/keyboard.json
@@ -43,8 +43,7 @@
"rows": ["D4", "C6", "D7", "E6", "B4", "B5", "F4", "F5"]
},
"diode_direction": "COL2ROW",
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/merge/uc1/keyboard.json b/keyboards/merge/uc1/keyboard.json
index 496b9a6b5f..4d0393399f 100644
--- a/keyboards/merge/uc1/keyboard.json
+++ b/keyboards/merge/uc1/keyboard.json
@@ -48,8 +48,7 @@
{"pin_a": "F5", "pin_b": "F6"}
]
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/minimacro5/keyboard.json b/keyboards/minimacro5/keyboard.json
index 033bc1e85a..b868a3b058 100644
--- a/keyboards/minimacro5/keyboard.json
+++ b/keyboards/minimacro5/keyboard.json
@@ -34,8 +34,7 @@
{"pin_a": "C6", "pin_b": "E6", "resolution": 2}
]
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"features": {
"bootmagic": false,
"encoder": true,
diff --git a/keyboards/mint60/keyboard.json b/keyboards/mint60/keyboard.json
index 1bb54aebd9..9e581ce7b8 100644
--- a/keyboards/mint60/keyboard.json
+++ b/keyboards/mint60/keyboard.json
@@ -51,8 +51,7 @@
"ws2812": {
"pin": "D3"
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/mixi/keyboard.json b/keyboards/mixi/keyboard.json
index a08d54b883..bde1eb6390 100644
--- a/keyboards/mixi/keyboard.json
+++ b/keyboards/mixi/keyboard.json
@@ -35,8 +35,7 @@
{"pin_a": "B1", "pin_b": "B3"}
]
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"features": {
"bootmagic": false,
"command": true,
diff --git a/keyboards/montsinger/rewind/keyboard.json b/keyboards/montsinger/rewind/keyboard.json
index ddb6ab6496..46468d4c67 100644
--- a/keyboards/montsinger/rewind/keyboard.json
+++ b/keyboards/montsinger/rewind/keyboard.json
@@ -27,8 +27,7 @@
"rows": ["B5", "B4", "D2", "D3", "B2"]
},
"diode_direction": "ROW2COL",
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT_ortho_5x10": {
"layout": [
diff --git a/keyboards/morizon/keyboard.json b/keyboards/morizon/keyboard.json
index 13999e5753..1b3dba08d4 100644
--- a/keyboards/morizon/keyboard.json
+++ b/keyboards/morizon/keyboard.json
@@ -26,8 +26,7 @@
"rows": ["D3", "D2", "D1", "D0", "D4", "C6", "D7", "E6", "B4", "B5"]
},
"diode_direction": "COL2ROW",
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/mountainblocks/mb17/keyboard.json b/keyboards/mountainblocks/mb17/keyboard.json
index 9103f7775f..d8ef466def 100644
--- a/keyboards/mountainblocks/mb17/keyboard.json
+++ b/keyboards/mountainblocks/mb17/keyboard.json
@@ -26,8 +26,7 @@
"rows": ["F4", "B1", "B3", "B2", "B6"]
},
"diode_direction": "COL2ROW",
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT_numpad_5x4": {
"layout": [
diff --git a/keyboards/nacly/sodium42/keyboard.json b/keyboards/nacly/sodium42/keyboard.json
index a1d7b65ab3..97b6a837c5 100644
--- a/keyboards/nacly/sodium42/keyboard.json
+++ b/keyboards/nacly/sodium42/keyboard.json
@@ -35,8 +35,7 @@
"pin": "D3"
}
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/nacly/sodium50/keyboard.json b/keyboards/nacly/sodium50/keyboard.json
index e41495755f..dd1604c480 100644
--- a/keyboards/nacly/sodium50/keyboard.json
+++ b/keyboards/nacly/sodium50/keyboard.json
@@ -35,8 +35,7 @@
"pin": "D3"
}
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/nacly/sodium62/keyboard.json b/keyboards/nacly/sodium62/keyboard.json
index ab16bf45fa..64cb488159 100644
--- a/keyboards/nacly/sodium62/keyboard.json
+++ b/keyboards/nacly/sodium62/keyboard.json
@@ -36,8 +36,7 @@
"pin": "D3"
}
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/nacly/splitreus62/keyboard.json b/keyboards/nacly/splitreus62/keyboard.json
index d356578690..567cb6d6db 100644
--- a/keyboards/nacly/splitreus62/keyboard.json
+++ b/keyboards/nacly/splitreus62/keyboard.json
@@ -42,8 +42,7 @@
"ws2812": {
"pin": "B1"
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/nacly/ua62/keyboard.json b/keyboards/nacly/ua62/keyboard.json
index 0bf01308f5..85fbbd431c 100644
--- a/keyboards/nacly/ua62/keyboard.json
+++ b/keyboards/nacly/ua62/keyboard.json
@@ -26,8 +26,7 @@
"rows": ["D3", "D2", "D1", "D0", "D4"]
},
"diode_direction": "ROW2COL",
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/newgame40/keyboard.json b/keyboards/newgame40/keyboard.json
index ad59f2bcd0..62c567cb40 100644
--- a/keyboards/newgame40/keyboard.json
+++ b/keyboards/newgame40/keyboard.json
@@ -39,8 +39,7 @@
"ws2812": {
"pin": "F6"
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"community_layouts": ["ortho_4x10"],
"layouts": {
"LAYOUT_ortho_4x10": {
diff --git a/keyboards/nightly_boards/n9/keyboard.json b/keyboards/nightly_boards/n9/keyboard.json
index e3d8a3be84..f99ff31258 100644
--- a/keyboards/nightly_boards/n9/keyboard.json
+++ b/keyboards/nightly_boards/n9/keyboard.json
@@ -46,8 +46,7 @@
"ws2812": {
"pin": "F5"
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/nightly_boards/ph_arisu/keyboard.json b/keyboards/nightly_boards/ph_arisu/keyboard.json
index afcbdd905a..7d64536c1a 100644
--- a/keyboards/nightly_boards/ph_arisu/keyboard.json
+++ b/keyboards/nightly_boards/ph_arisu/keyboard.json
@@ -25,8 +25,7 @@
"rows": ["D3", "D2", "D1", "D0", "D4", "C6", "D7", "E6", "B4", "B5"]
},
"diode_direction": "COL2ROW",
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/novelkeys/nk65/rules.mk b/keyboards/novelkeys/nk65/rules.mk
index c0d789a5a6..3b7a32713c 100755
--- a/keyboards/novelkeys/nk65/rules.mk
+++ b/keyboards/novelkeys/nk65/rules.mk
@@ -11,5 +11,3 @@ SRC = keyboards/wilba_tech/wt_main.c \
keyboards/wilba_tech/wt_rgb_backlight.c \
drivers/led/issi/is31fl3733.c \
quantum/color.c
-
-DEFAULT_FOLDER = novelkeys/nk65/base
diff --git a/keyboards/np12/keyboard.json b/keyboards/np12/keyboard.json
index 435f2db3b7..d12307f117 100644
--- a/keyboards/np12/keyboard.json
+++ b/keyboards/np12/keyboard.json
@@ -25,8 +25,7 @@
{"pin_a": "F4", "pin_b": "F5"}
]
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/numatreus/keyboard.json b/keyboards/numatreus/keyboard.json
index 3441a769e1..5a9df0f429 100644
--- a/keyboards/numatreus/keyboard.json
+++ b/keyboards/numatreus/keyboard.json
@@ -33,8 +33,7 @@
"led_count": 6,
"max_brightness": 200
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/obosob/arch_36/keyboard.json b/keyboards/obosob/arch_36/keyboard.json
index 791c08d3f1..661d335daa 100644
--- a/keyboards/obosob/arch_36/keyboard.json
+++ b/keyboards/obosob/arch_36/keyboard.json
@@ -34,8 +34,7 @@
"ws2812": {
"pin": "D3"
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"community_layouts": ["split_3x5_3"],
"layouts": {
"LAYOUT_split_3x5_3": {
diff --git a/keyboards/obosob/steal_this_keyboard/keyboard.json b/keyboards/obosob/steal_this_keyboard/keyboard.json
index 4865f54283..60abd1ecf9 100644
--- a/keyboards/obosob/steal_this_keyboard/keyboard.json
+++ b/keyboards/obosob/steal_this_keyboard/keyboard.json
@@ -8,8 +8,7 @@
"pid": "0x50AD",
"device_version": "0.0.1"
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"features": {
"bootmagic": false,
"extrakey": true,
diff --git a/keyboards/ocean/addon/keyboard.json b/keyboards/ocean/addon/keyboard.json
index 0793a7082a..671c04cba0 100644
--- a/keyboards/ocean/addon/keyboard.json
+++ b/keyboards/ocean/addon/keyboard.json
@@ -19,8 +19,7 @@
"rows": ["C6", "D7", "E6", "B4", "B5"]
},
"diode_direction": "ROW2COL",
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/ocean/gin_v2/keyboard.json b/keyboards/ocean/gin_v2/keyboard.json
index d20aa5916f..08a7f29b8c 100644
--- a/keyboards/ocean/gin_v2/keyboard.json
+++ b/keyboards/ocean/gin_v2/keyboard.json
@@ -18,8 +18,7 @@
"rows": ["D1", "D0", "D4", "C6", "D7", "E6", "B4", "B5"]
},
"diode_direction": "ROW2COL",
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/ocean/slamz/keyboard.json b/keyboards/ocean/slamz/keyboard.json
index cf3ed54426..65bc91eebe 100644
--- a/keyboards/ocean/slamz/keyboard.json
+++ b/keyboards/ocean/slamz/keyboard.json
@@ -18,8 +18,7 @@
"rows": ["D2", "D1", "D0", "D4"]
},
"diode_direction": "ROW2COL",
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/ocean/stealth/keyboard.json b/keyboards/ocean/stealth/keyboard.json
index a15d2fffac..0f0070de63 100644
--- a/keyboards/ocean/stealth/keyboard.json
+++ b/keyboards/ocean/stealth/keyboard.json
@@ -18,8 +18,7 @@
"rows": ["D1"]
},
"diode_direction": "ROW2COL",
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/ocean/sus/keyboard.json b/keyboards/ocean/sus/keyboard.json
index 3ac426f6aa..ebbb247035 100644
--- a/keyboards/ocean/sus/keyboard.json
+++ b/keyboards/ocean/sus/keyboard.json
@@ -19,8 +19,7 @@
"rows": ["B5", "B4", "E6", "D7"]
},
"diode_direction": "ROW2COL",
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT_ortho_4x3": {
"layout": [
diff --git a/keyboards/ocean/wang_ergo/keyboard.json b/keyboards/ocean/wang_ergo/keyboard.json
index d552028bc6..e32f21d802 100644
--- a/keyboards/ocean/wang_ergo/keyboard.json
+++ b/keyboards/ocean/wang_ergo/keyboard.json
@@ -18,8 +18,7 @@
"rows": ["F4", "F5", "F6", "F7"]
},
"diode_direction": "ROW2COL",
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layout_aliases": {
"LAYOUT": "LAYOUT_all"
},
diff --git a/keyboards/ocean/wang_v2/keyboard.json b/keyboards/ocean/wang_v2/keyboard.json
index 79ef6b3697..e64345db2f 100644
--- a/keyboards/ocean/wang_v2/keyboard.json
+++ b/keyboards/ocean/wang_v2/keyboard.json
@@ -18,8 +18,7 @@
"rows": ["F4", "F5", "F6", "F7"]
},
"diode_direction": "ROW2COL",
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/ocean/yuri/keyboard.json b/keyboards/ocean/yuri/keyboard.json
index aeb4cd895d..fee89b9de7 100644
--- a/keyboards/ocean/yuri/keyboard.json
+++ b/keyboards/ocean/yuri/keyboard.json
@@ -19,8 +19,7 @@
"rows": ["F4", "F5", "F6", "F7"]
},
"diode_direction": "ROW2COL",
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/om60/keyboard.json b/keyboards/om60/keyboard.json
index 08eb898b01..d91f28f8af 100644
--- a/keyboards/om60/keyboard.json
+++ b/keyboards/om60/keyboard.json
@@ -49,8 +49,7 @@
"ws2812": {
"pin": "D3"
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/omkbd/ergodash/info.json b/keyboards/omkbd/ergodash/info.json
index 306a3970bb..18138dd692 100644
--- a/keyboards/omkbd/ergodash/info.json
+++ b/keyboards/omkbd/ergodash/info.json
@@ -1,6 +1,5 @@
{
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"split": {
"enabled": true
}
diff --git a/keyboards/omkbd/runner3680/info.json b/keyboards/omkbd/runner3680/info.json
index c626b2e3b4..e06cb1243c 100644
--- a/keyboards/omkbd/runner3680/info.json
+++ b/keyboards/omkbd/runner3680/info.json
@@ -1,6 +1,5 @@
{
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"features": {
"bootmagic": false,
"extrakey": false,
diff --git a/keyboards/orthodox/rev1/keyboard.json b/keyboards/orthodox/rev1/keyboard.json
index 0444009f2b..bd08fc19d2 100644
--- a/keyboards/orthodox/rev1/keyboard.json
+++ b/keyboards/orthodox/rev1/keyboard.json
@@ -17,8 +17,7 @@
"pin": "D0"
}
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/orthodox/rev3/keyboard.json b/keyboards/orthodox/rev3/keyboard.json
index 61d8281f55..411df12f98 100644
--- a/keyboards/orthodox/rev3/keyboard.json
+++ b/keyboards/orthodox/rev3/keyboard.json
@@ -17,8 +17,7 @@
"pin": "D0"
}
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/pabile/p18/keyboard.json b/keyboards/pabile/p18/keyboard.json
index bf3380038a..12b7006680 100644
--- a/keyboards/pabile/p18/keyboard.json
+++ b/keyboards/pabile/p18/keyboard.json
@@ -27,8 +27,7 @@
{"pin_a": "F6", "pin_b": "F5"}
]
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/pabile/p20/ver1/keyboard.json b/keyboards/pabile/p20/ver1/keyboard.json
index 3e3a16a6d9..2cc5fed1ee 100644
--- a/keyboards/pabile/p20/ver1/keyboard.json
+++ b/keyboards/pabile/p20/ver1/keyboard.json
@@ -22,8 +22,7 @@
{"pin_a": "F7", "pin_b": "B1"}
]
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT_numpad_5x4": {
"layout": [
diff --git a/keyboards/pabile/p20/ver2/keyboard.json b/keyboards/pabile/p20/ver2/keyboard.json
index cdacbf3aec..b82959af7a 100644
--- a/keyboards/pabile/p20/ver2/keyboard.json
+++ b/keyboards/pabile/p20/ver2/keyboard.json
@@ -15,8 +15,7 @@
"rows": ["C6", "D7", "E6", "B4", "B5"]
},
"diode_direction": "COL2ROW",
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT_numpad_5x4": {
"layout": [
diff --git a/keyboards/pabile/p40/keyboard.json b/keyboards/pabile/p40/keyboard.json
index fbe4896687..de4eca82ac 100644
--- a/keyboards/pabile/p40/keyboard.json
+++ b/keyboards/pabile/p40/keyboard.json
@@ -20,8 +20,7 @@
"rows": ["F6", "B3", "B2", "B6"]
},
"diode_direction": "COL2ROW",
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"community_layouts": ["ortho_4x10"],
"layouts": {
"LAYOUT_ortho_4x10": {
diff --git a/keyboards/pabile/p40_ortho/keyboard.json b/keyboards/pabile/p40_ortho/keyboard.json
index 3e5d9ea504..838c58235c 100644
--- a/keyboards/pabile/p40_ortho/keyboard.json
+++ b/keyboards/pabile/p40_ortho/keyboard.json
@@ -19,8 +19,7 @@
"rows": ["D1", "D0", "F4", "F5"]
},
"diode_direction": "COL2ROW",
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT_ortho_4x10": {
"layout": [
diff --git a/keyboards/pabile/p42/keyboard.json b/keyboards/pabile/p42/keyboard.json
index 42c8964332..8311becdfc 100644
--- a/keyboards/pabile/p42/keyboard.json
+++ b/keyboards/pabile/p42/keyboard.json
@@ -20,8 +20,7 @@
"rows": ["D1", "D0", "D4", "C6"]
},
"diode_direction": "COL2ROW",
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/peej/tripel/info.json b/keyboards/peej/tripel/info.json
index 7a5c12461a..e716e20cfe 100644
--- a/keyboards/peej/tripel/info.json
+++ b/keyboards/peej/tripel/info.json
@@ -20,6 +20,5 @@
"rows": ["C6", "D4", "D0", "B4", "E6", "D7", "D1", "D2", "D3"]
},
"diode_direction": "COL2ROW",
- "processor": "atmega32u4",
- "bootloader": "caterina"
+ "development_board": "promicro"
}
diff --git a/keyboards/peranekofactory/tone/rev1/keyboard.json b/keyboards/peranekofactory/tone/rev1/keyboard.json
index fb7b41b27a..9e9f7013c2 100644
--- a/keyboards/peranekofactory/tone/rev1/keyboard.json
+++ b/keyboards/peranekofactory/tone/rev1/keyboard.json
@@ -27,8 +27,7 @@
},
"tap_keycode_delay": 100
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"matrix_pins": {
"direct": [
["D4", "C6", "D7", "E6", "F6", "F7", "B1", "B3"]
diff --git a/keyboards/peranekofactory/tone/rev2/keyboard.json b/keyboards/peranekofactory/tone/rev2/keyboard.json
index fb7b41b27a..9e9f7013c2 100644
--- a/keyboards/peranekofactory/tone/rev2/keyboard.json
+++ b/keyboards/peranekofactory/tone/rev2/keyboard.json
@@ -27,8 +27,7 @@
},
"tap_keycode_delay": 100
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"matrix_pins": {
"direct": [
["D4", "C6", "D7", "E6", "F6", "F7", "B1", "B3"]
diff --git a/keyboards/pica40/rev1/keyboard.json b/keyboards/pica40/rev1/keyboard.json
index 85c2221a13..a616a2e497 100644
--- a/keyboards/pica40/rev1/keyboard.json
+++ b/keyboards/pica40/rev1/keyboard.json
@@ -1,6 +1,5 @@
{
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"diode_direction": "COL2ROW",
"matrix_pins": {
"cols": ["D2", "B5", "B4", "E6", "D7"],
diff --git a/keyboards/pimentoso/paddino02/rev1/keyboard.json b/keyboards/pimentoso/paddino02/rev1/keyboard.json
index b0fddff9d3..30ac2a9a06 100644
--- a/keyboards/pimentoso/paddino02/rev1/keyboard.json
+++ b/keyboards/pimentoso/paddino02/rev1/keyboard.json
@@ -24,8 +24,7 @@
"rows": ["D1", "D0", "D4"]
},
"diode_direction": "ROW2COL",
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/pimentoso/paddino02/rev2/left/keyboard.json b/keyboards/pimentoso/paddino02/rev2/left/keyboard.json
index f89552220d..ff9687b2b1 100644
--- a/keyboards/pimentoso/paddino02/rev2/left/keyboard.json
+++ b/keyboards/pimentoso/paddino02/rev2/left/keyboard.json
@@ -24,8 +24,7 @@
"rows": ["D0", "D4", "D1"]
},
"diode_direction": "COL2ROW",
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/pimentoso/paddino02/rev2/right/keyboard.json b/keyboards/pimentoso/paddino02/rev2/right/keyboard.json
index 1148564a05..006eca8794 100644
--- a/keyboards/pimentoso/paddino02/rev2/right/keyboard.json
+++ b/keyboards/pimentoso/paddino02/rev2/right/keyboard.json
@@ -24,8 +24,7 @@
"rows": ["F4", "F6", "F5"]
},
"diode_direction": "COL2ROW",
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/pimentoso/touhoupad/keyboard.json b/keyboards/pimentoso/touhoupad/keyboard.json
index fed01eb5a6..5407d49e59 100644
--- a/keyboards/pimentoso/touhoupad/keyboard.json
+++ b/keyboards/pimentoso/touhoupad/keyboard.json
@@ -35,8 +35,7 @@
"rows": ["D4"]
},
"diode_direction": "COL2ROW",
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/pinky/3/keyboard.json b/keyboards/pinky/3/keyboard.json
index f02b6c72d0..9ca44c26f3 100644
--- a/keyboards/pinky/3/keyboard.json
+++ b/keyboards/pinky/3/keyboard.json
@@ -17,8 +17,7 @@
"pin": "D2"
}
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layout_aliases": {
"LAYOUT": "LAYOUT_split_3x7_4"
},
diff --git a/keyboards/pinky/4/keyboard.json b/keyboards/pinky/4/keyboard.json
index 68b1dcb14c..bc651638ac 100644
--- a/keyboards/pinky/4/keyboard.json
+++ b/keyboards/pinky/4/keyboard.json
@@ -17,8 +17,7 @@
"pin": "D2"
}
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layout_aliases": {
"LAYOUT": "LAYOUT_split_4x7_4"
},
diff --git a/keyboards/plum47/keyboard.json b/keyboards/plum47/keyboard.json
index 2c6e009300..00efab2c28 100644
--- a/keyboards/plum47/keyboard.json
+++ b/keyboards/plum47/keyboard.json
@@ -2,7 +2,7 @@
"manufacturer": "Masayuki Takagi",
"keyboard_name": "plum47",
"maintainer": "awh-tokyo",
- "bootloader": "caterina",
+ "development_board": "promicro",
"diode_direction": "COL2ROW",
"features": {
"bootmagic": true,
@@ -14,7 +14,6 @@
"cols": ["F4", "F5", "F6", "F7", "B1", "B3", "B2", "B6", "B5", "B4", "E6", "D7"],
"rows": ["D1", "D0", "D4", "C6"]
},
- "processor": "atmega32u4",
"url": "ihttps://github.com/takagi/plum47_buildguide",
"usb": {
"device_version": "1.0.0",
diff --git a/keyboards/psuieee/pluto12/keyboard.json b/keyboards/psuieee/pluto12/keyboard.json
index 02db5bc0a1..815c3b5949 100644
--- a/keyboards/psuieee/pluto12/keyboard.json
+++ b/keyboards/psuieee/pluto12/keyboard.json
@@ -31,8 +31,7 @@
{"pin_a": "B6", "pin_b": "B2"}
]
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/pteron36/keyboard.json b/keyboards/pteron36/keyboard.json
index 783e1e8db0..5daca888e9 100644
--- a/keyboards/pteron36/keyboard.json
+++ b/keyboards/pteron36/keyboard.json
@@ -54,8 +54,7 @@
"ws2812": {
"pin": "B6"
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"community_layouts": ["split_3x5_3"],
"layouts": {
"LAYOUT_split_3x5_3": {
diff --git a/keyboards/rainkeebs/rainkeeb/keyboard.json b/keyboards/rainkeebs/rainkeeb/keyboard.json
index 2d4a2ac5b9..b14ea45dde 100644
--- a/keyboards/rainkeebs/rainkeeb/keyboard.json
+++ b/keyboards/rainkeebs/rainkeeb/keyboard.json
@@ -32,8 +32,7 @@
{"pin_a": "B2", "pin_b": "B6"}
]
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/rart/rart4x4/keyboard.json b/keyboards/rart/rart4x4/keyboard.json
index a18e4a4606..13d7ca3345 100644
--- a/keyboards/rart/rart4x4/keyboard.json
+++ b/keyboards/rart/rart4x4/keyboard.json
@@ -54,8 +54,7 @@
{"pin_a": "D7", "pin_b": "E6"}
]
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"community_layouts": ["ortho_4x4"],
"layouts": {
"LAYOUT_ortho_4x4": {
diff --git a/keyboards/rart/rart67m/keyboard.json b/keyboards/rart/rart67m/keyboard.json
index bade7834fd..a9ab73ce57 100644
--- a/keyboards/rart/rart67m/keyboard.json
+++ b/keyboards/rart/rart67m/keyboard.json
@@ -26,8 +26,7 @@
"rows": ["D3", "D2", "D4", "F6", "B3", "B4", "B2", "B5"]
},
"diode_direction": "COL2ROW",
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layout_aliases": {
"LAYOUT_all": "LAYOUT"
},
diff --git a/keyboards/rart/rartlite/keyboard.json b/keyboards/rart/rartlite/keyboard.json
index df9180d622..48325bf391 100644
--- a/keyboards/rart/rartlite/keyboard.json
+++ b/keyboards/rart/rartlite/keyboard.json
@@ -29,8 +29,7 @@
"num_lock": "F6",
"on_state": 0
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT_right_numpad": {
"layout": [
diff --git a/keyboards/rart/rartpad/keyboard.json b/keyboards/rart/rartpad/keyboard.json
index cc3f7120d2..70195fc4bf 100644
--- a/keyboards/rart/rartpad/keyboard.json
+++ b/keyboards/rart/rartpad/keyboard.json
@@ -57,8 +57,7 @@
"twinkle": true
}
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"community_layouts": ["ortho_5x4", "numpad_5x4"],
"layouts": {
"LAYOUT_ortho_5x4": {
diff --git a/keyboards/rate/pistachio_mp/keyboard.json b/keyboards/rate/pistachio_mp/keyboard.json
index 71e3244523..cea6190b84 100644
--- a/keyboards/rate/pistachio_mp/keyboard.json
+++ b/keyboards/rate/pistachio_mp/keyboard.json
@@ -39,8 +39,7 @@
{"pin_a": "F4", "pin_b": "F5"}
]
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/recompile_keys/choco60/rev1/keyboard.json b/keyboards/recompile_keys/choco60/rev1/keyboard.json
index 4e5a8903bd..6c0b363011 100644
--- a/keyboards/recompile_keys/choco60/rev1/keyboard.json
+++ b/keyboards/recompile_keys/choco60/rev1/keyboard.json
@@ -19,6 +19,5 @@
"pin": "D3"
}
},
- "processor": "atmega32u4",
- "bootloader": "caterina"
+ "development_board": "promicro"
}
diff --git a/keyboards/recompile_keys/cocoa40/keyboard.json b/keyboards/recompile_keys/cocoa40/keyboard.json
index 9fad026ea7..a576e54551 100644
--- a/keyboards/recompile_keys/cocoa40/keyboard.json
+++ b/keyboards/recompile_keys/cocoa40/keyboard.json
@@ -28,8 +28,7 @@
"pin": "D2"
}
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/recompile_keys/nomu30/rev1/keyboard.json b/keyboards/recompile_keys/nomu30/rev1/keyboard.json
index 01afb9fe7d..8865eb0535 100644
--- a/keyboards/recompile_keys/nomu30/rev1/keyboard.json
+++ b/keyboards/recompile_keys/nomu30/rev1/keyboard.json
@@ -10,6 +10,5 @@
"rows": ["D1", "D0", "D4"]
},
"diode_direction": "COL2ROW",
- "processor": "atmega32u4",
- "bootloader": "caterina"
+ "development_board": "promicro"
}
diff --git a/keyboards/rect44/keyboard.json b/keyboards/rect44/keyboard.json
index c863bec9a3..7e0202cde7 100644
--- a/keyboards/rect44/keyboard.json
+++ b/keyboards/rect44/keyboard.json
@@ -37,8 +37,7 @@
"rows": ["D3", "D2", "F5", "F4"]
},
"diode_direction": "COL2ROW",
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT_all": {
"layout": [
diff --git a/keyboards/redox/rules.mk b/keyboards/redox/rules.mk
index a2f52752e0..4df55cd220 100644
--- a/keyboards/redox/rules.mk
+++ b/keyboards/redox/rules.mk
@@ -1,5 +1,3 @@
-DEFAULT_FOLDER = redox/rev1/base
-
# Disable unsupported hardware
AUDIO_SUPPORTED = no
BACKLIGHT_SUPPORTED = no
diff --git a/keyboards/redox_media/keyboard.json b/keyboards/redox_media/keyboard.json
index dba5657ea2..145d9116ca 100644
--- a/keyboards/redox_media/keyboard.json
+++ b/keyboards/redox_media/keyboard.json
@@ -36,8 +36,7 @@
"pin": "D0"
}
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/reviung/reviung34/keyboard.json b/keyboards/reviung/reviung34/keyboard.json
index 7495b7cc9d..d7e6fe422a 100755
--- a/keyboards/reviung/reviung34/keyboard.json
+++ b/keyboards/reviung/reviung34/keyboard.json
@@ -26,8 +26,7 @@
"rows": ["F4", "F5", "F6", "F7"]
},
"diode_direction": "COL2ROW",
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"community_layouts": [
"split_3x5_2"
],
diff --git a/keyboards/reviung/reviung39/keyboard.json b/keyboards/reviung/reviung39/keyboard.json
index e18c1c163e..b57100d1eb 100644
--- a/keyboards/reviung/reviung39/keyboard.json
+++ b/keyboards/reviung/reviung39/keyboard.json
@@ -49,8 +49,7 @@
"rows": ["F4", "F5", "F6", "F7", "B1", "B3", "B2"]
},
"diode_direction": "COL2ROW",
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layout_aliases": {
"LAYOUT_reviung39": "LAYOUT"
},
diff --git a/keyboards/reviung/reviung41/keyboard.json b/keyboards/reviung/reviung41/keyboard.json
index b44827c3d2..f0ad524da2 100644
--- a/keyboards/reviung/reviung41/keyboard.json
+++ b/keyboards/reviung/reviung41/keyboard.json
@@ -49,8 +49,7 @@
"rows": ["F4", "F5", "F6", "F7", "B1", "B3", "B2"]
},
"diode_direction": "COL2ROW",
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layout_aliases": {
"LAYOUT_reviung41": "LAYOUT"
},
diff --git a/keyboards/reviung/reviung5/keyboard.json b/keyboards/reviung/reviung5/keyboard.json
index 7e7101c0ab..014cbb288a 100644
--- a/keyboards/reviung/reviung5/keyboard.json
+++ b/keyboards/reviung/reviung5/keyboard.json
@@ -53,8 +53,7 @@
{"pin_a": "D0", "pin_b": "D1"}
]
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layout_aliases": {
"LAYOUT_reviung5": "LAYOUT"
},
diff --git a/keyboards/reviung/reviung53/keyboard.json b/keyboards/reviung/reviung53/keyboard.json
index 15f896e7d4..0468912f82 100644
--- a/keyboards/reviung/reviung53/keyboard.json
+++ b/keyboards/reviung/reviung53/keyboard.json
@@ -47,8 +47,7 @@
"rows": ["D0", "D4", "C6", "D7", "E6", "B4", "B5"]
},
"diode_direction": "COL2ROW",
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layout_aliases": {
"LAYOUT_reviung53": "LAYOUT"
},
diff --git a/keyboards/rgbkb/zen/rev1/keyboard.json b/keyboards/rgbkb/zen/rev1/keyboard.json
index b35381f607..94164016bb 100644
--- a/keyboards/rgbkb/zen/rev1/keyboard.json
+++ b/keyboards/rgbkb/zen/rev1/keyboard.json
@@ -38,8 +38,7 @@
"ws2812": {
"pin": "D1"
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/rgbkb/zen/rev2/keyboard.json b/keyboards/rgbkb/zen/rev2/keyboard.json
index 917274f186..d34fd7afb1 100644
--- a/keyboards/rgbkb/zen/rev2/keyboard.json
+++ b/keyboards/rgbkb/zen/rev2/keyboard.json
@@ -56,8 +56,7 @@
"ws2812": {
"pin": "B6"
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/rpiguy9907/southpaw66/keyboard.json b/keyboards/rpiguy9907/southpaw66/keyboard.json
index c751ee6d8e..980d217806 100644
--- a/keyboards/rpiguy9907/southpaw66/keyboard.json
+++ b/keyboards/rpiguy9907/southpaw66/keyboard.json
@@ -35,8 +35,7 @@
"tapping": {
"term": 400
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/rura66/rev1/keyboard.json b/keyboards/rura66/rev1/keyboard.json
index cb9ad6f29a..3dc41aabd4 100644
--- a/keyboards/rura66/rev1/keyboard.json
+++ b/keyboards/rura66/rev1/keyboard.json
@@ -55,8 +55,7 @@
"ws2812": {
"pin": "D3"
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/ryanbaekr/rb1/keyboard.json b/keyboards/ryanbaekr/rb1/keyboard.json
index a7222869e0..8b1b1a5a82 100644
--- a/keyboards/ryanbaekr/rb1/keyboard.json
+++ b/keyboards/ryanbaekr/rb1/keyboard.json
@@ -7,8 +7,7 @@
"pid": "0x0001",
"device_version": "0.0.3"
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"features": {
"bootmagic": true,
"extrakey": true,
diff --git a/keyboards/sirius/uni660/rev2/rules.mk b/keyboards/sirius/uni660/rev2/rules.mk
index c03b052c56..18d234d62a 100644
--- a/keyboards/sirius/uni660/rev2/rules.mk
+++ b/keyboards/sirius/uni660/rev2/rules.mk
@@ -3,5 +3,3 @@ CUSTOM_MATRIX = lite
# project specific files
SRC += matrix.c
UART_DRIVER_REQUIRED = yes
-
-DEFAULT_FOLDER = sirius/uni660/rev2/ansi
diff --git a/keyboards/splitkb/elora/rev1/myriad.c b/keyboards/splitkb/elora/rev1/myriad.c
index 8bb6054df9..0263821b81 100644
--- a/keyboards/splitkb/elora/rev1/myriad.c
+++ b/keyboards/splitkb/elora/rev1/myriad.c
@@ -9,10 +9,10 @@
#include "analog.h"
typedef struct __attribute__((__packed__)) {
- char magic_numbers[3];
- uint8_t version_major;
- uint8_t version_minor;
- uint8_t version_patch;
+ char magic_numbers[3];
+ uint8_t version_major;
+ uint8_t version_minor;
+ uint8_t version_patch;
uint32_t checksum;
uint16_t payload_length;
} myriad_header_t;
@@ -20,34 +20,36 @@ typedef struct __attribute__((__packed__)) {
typedef struct __attribute__((__packed__)) {
uint16_t vendor_id;
uint16_t product_id;
- uint8_t revision;
+ uint8_t revision;
} identity_record_t;
static bool myriad_reader(uint8_t *data, uint16_t length) {
- const uint8_t eeprom_address = 0x50; // 1010 000 - NOT shifted for R/W bit
- const uint16_t i2c_timeout = 100; // in milliseconds
+ const uint8_t eeprom_address = 0x50; // 1010 000 - NOT shifted for R/W bit
+ const uint16_t i2c_timeout = 100; // in milliseconds
- uint8_t num_pages = (length / 256) + 1;
+ uint8_t num_pages = (length / 256) + 1;
uint8_t last_page_size = length % 256;
for (int i = 0; i < num_pages; i++) {
- uint8_t reg = 0; // We always start on a page boundary, so this is always zero
+ uint8_t reg = 0; // We always start on a page boundary, so this is always zero
uint16_t read_length;
if (i == num_pages - 1) {
read_length = last_page_size;
} else {
read_length = 256;
}
- i2c_status_t s = i2c_read_register((eeprom_address + i) << 1, reg, &(data[i*256]), read_length, i2c_timeout);
- if (s != I2C_STATUS_SUCCESS) { return false; }
+ i2c_status_t s = i2c_read_register((eeprom_address + i) << 1, reg, &(data[i * 256]), read_length, i2c_timeout);
+ if (s != I2C_STATUS_SUCCESS) {
+ return false;
+ }
}
return true;
}
static bool verify_header(myriad_header_t *header) {
- char magic_numbers[] = {'M', 'Y', 'R'};
- uint8_t version_major = 1;
- uint16_t version_minor = 0;
+ char magic_numbers[] = {'M', 'Y', 'R'};
+ uint8_t version_major = 1;
+ uint16_t version_minor = 0;
for (int i = 0; i < sizeof(magic_numbers); i++) {
// Check that the header starts with 'MYR', indicating that this is indeed a Myriad card.
@@ -82,16 +84,15 @@ static bool verify_checksum(uint8_t *data, uint16_t length, uint32_t checksum) {
const uint32_t MOD_ADLER = 65521;
uint32_t a = 1, b = 0;
- size_t index;
-
+ size_t index;
+
// Process each byte of the data in order
- for (index = 0; index < length; ++index)
- {
+ for (index = 0; index < length; ++index) {
a = (a + data[index]) % MOD_ADLER;
b = (b + a) % MOD_ADLER;
}
uint32_t calculated = ((b << 16) | a);
-
+
return calculated == checksum;
}
@@ -108,9 +109,9 @@ static int16_t locate_entry(uint8_t entry_type, uint8_t entry_data_length, uint8
while (offset < maximum) {
if (data[offset] == entry_type) {
// Type matches!
- if (data[offset+1] == entry_data_length) {
+ if (data[offset + 1] == entry_data_length) {
// We found what we are looking for, so return payload reference.
- return offset+2;
+ return offset + 2;
} else {
// The entry is the wrong length?
return -2;
@@ -118,7 +119,7 @@ static int16_t locate_entry(uint8_t entry_type, uint8_t entry_data_length, uint8
} else {
// No type match, so skip this one
// We skip the type byte, the length byte, and any potential data (with length stored in the length byte)
- offset += 2 + data[offset+1];
+ offset += 2 + data[offset + 1];
}
}
@@ -127,13 +128,15 @@ static int16_t locate_entry(uint8_t entry_type, uint8_t entry_data_length, uint8
}
static bool read_card_identity(uint8_t *data, uint16_t length, identity_record_t *record) {
- const uint8_t identity_type = 0x01;
+ const uint8_t identity_type = 0x01;
const uint8_t entry_data_length = sizeof(identity_record_t);
- int16_t result = locate_entry(identity_type, entry_data_length, data, 0, length);
- if (result < 0) { return false; }
+ int16_t result = locate_entry(identity_type, entry_data_length, data, 0, length);
+ if (result < 0) {
+ return false;
+ }
for (int i = 0; i < sizeof(identity_record_t); i++) {
- ((uint8_t*)record)[i] = data[result + i];
+ ((uint8_t *)record)[i] = data[result + i];
}
return true;
}
@@ -141,27 +144,37 @@ static bool read_card_identity(uint8_t *data, uint16_t length, identity_record_t
static myriad_card_t _detect_myriad(void) {
gpio_set_pin_input(MYRIAD_PRESENT);
wait_ms(100);
- // The pin has an external pull-up, and a Myriad card shorts it to ground.
- #ifndef MYRIAD_OVERRIDE_PRESENCE
+// The pin has an external pull-up, and a Myriad card shorts it to ground.
+#ifndef MYRIAD_OVERRIDE_PRESENCE
if (gpio_read_pin(MYRIAD_PRESENT)) {
return NONE;
}
- #endif
+#endif
// Attempt to read header
myriad_header_t header;
- if (!myriad_reader((uint8_t*)&header, sizeof(header))) { return INVALID; }
- if (!verify_header(&header)) { return INVALID; }
+ if (!myriad_reader((uint8_t *)&header, sizeof(header))) {
+ return INVALID;
+ }
+ if (!verify_header(&header)) {
+ return INVALID;
+ }
// Now that we have determined that the header is valid
// and we know the payload length, read the entire thing
- uint8_t data[2048]; // Guaranteed to be large enough.
- uint16_t data_size = sizeof(header)+header.payload_length;
- if (!myriad_reader(data, data_size)) { return INVALID; }
- if (!verify_checksum(data, data_size, header.checksum)) { return INVALID; }
+ uint8_t data[2048]; // Guaranteed to be large enough.
+ uint16_t data_size = sizeof(header) + header.payload_length;
+ if (!myriad_reader(data, data_size)) {
+ return INVALID;
+ }
+ if (!verify_checksum(data, data_size, header.checksum)) {
+ return INVALID;
+ }
identity_record_t identity;
- if (!read_card_identity(data, data_size, &identity)) { return INVALID; }
+ if (!read_card_identity(data, data_size, &identity)) {
+ return INVALID;
+ }
if (identity.vendor_id == 0x0001 && identity.product_id == 0x0001) {
return SKB_ENCODER;
@@ -201,7 +214,7 @@ static void myr_encoder_init(void) {
}
static uint16_t myr_joystick_timer;
-static void myr_joystick_init(void) {
+static void myr_joystick_init(void) {
gpio_set_pin_input_high(MYRIAD_GPIO1); // Press
myr_joystick_timer = timer_read();
@@ -235,7 +248,7 @@ static myriad_card_t myriad_card_init(void) {
bool myriad_hook_matrix(matrix_row_t current_matrix[]) {
myriad_card_t card = myriad_card_init();
- uint8_t word = 0;
+ uint8_t word = 0;
if (card == SKB_SWITCHES) {
word |= ((!gpio_read_pin(MYRIAD_GPIO3)) & 1) << 0;
@@ -252,7 +265,7 @@ bool myriad_hook_matrix(matrix_row_t current_matrix[]) {
// 5 bytes of on-board keys, so we are the 6th
bool matrix_has_changed = current_matrix[5] ^ word;
- current_matrix[5] = word;
+ current_matrix[5] = word;
return matrix_has_changed;
}
@@ -261,16 +274,20 @@ static pin_t encoders_pad_a[NUM_ENCODERS_MAX_PER_SIDE];
static pin_t encoders_pad_b[NUM_ENCODERS_MAX_PER_SIDE];
uint8_t myriad_hook_encoder(uint8_t index, bool pad_b) {
- if (myriad_card_init() != SKB_ENCODER) { return 0; }
+ if (myriad_card_init() != SKB_ENCODER) {
+ return 0;
+ }
// 3 onboard encoders, so we are number 4
- pin_t pin = pad_b ? encoders_pad_b[index] : encoders_pad_a[index];
+ pin_t pin = pad_b ? encoders_pad_b[index] : encoders_pad_a[index];
encoders_pad_a[3] = MYRIAD_GPIO2;
encoders_pad_b[3] = MYRIAD_GPIO3;
return gpio_read_pin(pin) ? 1 : 0;
}
report_mouse_t pointing_device_driver_get_report(report_mouse_t mouse_report) {
- if (myriad_card_init() != SKB_JOYSTICK) { return mouse_report; }
+ if (myriad_card_init() != SKB_JOYSTICK) {
+ return mouse_report;
+ }
if (timer_elapsed(myr_joystick_timer) < 10) {
wait_ms(2);
@@ -286,10 +303,10 @@ report_mouse_t pointing_device_driver_get_report(report_mouse_t mouse_report) {
// Create a dead zone in the middle where the mouse doesn't move
const int16_t dead_zone = 10;
- if ((y < 0 && y > -1*dead_zone) || (y > 0 && y < dead_zone)) {
+ if ((y < 0 && y > -1 * dead_zone) || (y > 0 && y < dead_zone)) {
y = 0;
}
- if ((x < 0 && x > -1*dead_zone) || (x > 0 && x < dead_zone)) {
+ if ((x < 0 && x > -1 * dead_zone) || (x > 0 && x < dead_zone)) {
x = 0;
}
@@ -298,10 +315,18 @@ report_mouse_t pointing_device_driver_get_report(report_mouse_t mouse_report) {
y = abs(y) * y / 5000;
// Clamp final value to make sure we don't under/overflow
- if (y < -127) { y = -127; }
- if (y > 127) { y = 127; }
- if (x < -127) { x = -127; }
- if (x > 127) { x = 127; }
+ if (y < -127) {
+ y = -127;
+ }
+ if (y > 127) {
+ y = 127;
+ }
+ if (x < -127) {
+ x = -127;
+ }
+ if (x > 127) {
+ x = 127;
+ }
mouse_report.x = x;
mouse_report.y = y;
@@ -309,7 +334,8 @@ report_mouse_t pointing_device_driver_get_report(report_mouse_t mouse_report) {
return mouse_report;
}
-void pointing_device_driver_init(void) {
+bool pointing_device_driver_init(void) {
gpio_set_pin_input(MYRIAD_ADC1); // Y
gpio_set_pin_input(MYRIAD_ADC2); // X
+ return true;
} \ No newline at end of file
diff --git a/keyboards/tzarc/djinn/config.h b/keyboards/tzarc/djinn/config.h
index 24357b6a35..717ce4ee50 100644
--- a/keyboards/tzarc/djinn/config.h
+++ b/keyboards/tzarc/djinn/config.h
@@ -50,3 +50,5 @@
#ifndef STARTUP_SONG
# define STARTUP_SONG SONG(STARTUP_SOUND)
#endif // STARTUP_SONG
+
+#define RGB_MATRIX_MODE_NAME_ENABLE
diff --git a/keyboards/tzarc/djinn/graphics/theme_djinn_default.c b/keyboards/tzarc/djinn/graphics/theme_djinn_default.c
index 739a0817b0..03535587c4 100644
--- a/keyboards/tzarc/djinn/graphics/theme_djinn_default.c
+++ b/keyboards/tzarc/djinn/graphics/theme_djinn_default.c
@@ -31,55 +31,6 @@ static painter_image_handle_t lock_scrl_off;
static painter_font_handle_t thintel;
//----------------------------------------------------------
-// RGB Matrix naming
-#if defined(RGB_MATRIX_ENABLE)
-# include <rgb_matrix.h>
-
-# if defined(RGB_MATRIX_EFFECT)
-# undef RGB_MATRIX_EFFECT
-# endif // defined(RGB_MATRIX_EFFECT)
-
-# define RGB_MATRIX_EFFECT(x) RGB_MATRIX_EFFECT_##x,
-enum {
- RGB_MATRIX_EFFECT_NONE,
-# include "rgb_matrix_effects.inc"
-# ifdef RGB_MATRIX_CUSTOM_KB
-# include "rgb_matrix_kb.inc"
-# endif
-# ifdef RGB_MATRIX_CUSTOM_USER
-# include "rgb_matrix_user.inc"
-# endif
-# if defined(COMMUNITY_MODULES_ENABLE) && __has_include("rgb_matrix_community_modules.inc")
-# include "rgb_matrix_community_modules.inc"
-# endif
-# undef RGB_MATRIX_EFFECT
-};
-
-# define RGB_MATRIX_EFFECT(x) \
- case RGB_MATRIX_EFFECT_##x: \
- return #x;
-const char *rgb_matrix_name(uint8_t effect) {
- switch (effect) {
- case RGB_MATRIX_EFFECT_NONE:
- return "NONE";
-# include "rgb_matrix_effects.inc"
-# ifdef RGB_MATRIX_CUSTOM_KB
-# include "rgb_matrix_kb.inc"
-# endif
-# ifdef RGB_MATRIX_CUSTOM_USER
-# include "rgb_matrix_user.inc"
-# endif
-# if defined(COMMUNITY_MODULES_ENABLE) && __has_include("rgb_matrix_community_modules.inc")
-# include "rgb_matrix_community_modules.inc"
-# endif
-# undef RGB_MATRIX_EFFECT
- default:
- return "UNKNOWN";
- }
-}
-#endif // defined(RGB_MATRIX_ENABLE)
-
-//----------------------------------------------------------
// UI Initialisation
void keyboard_post_init_display(void) {
djinn_logo = qp_load_image_mem(gfx_djinn);
@@ -163,7 +114,7 @@ void draw_ui_user(bool force_redraw) {
if (hue_redraw || rgb_effect_redraw) {
static int max_rgb_xpos = 0;
xpos = 16;
- snprintf(buf, sizeof(buf), "rgb: %s", rgb_matrix_name(curr_effect));
+ snprintf(buf, sizeof(buf), "rgb: %s", rgb_matrix_get_mode_name(curr_effect));
for (int i = 5; i < sizeof(buf); ++i) {
if (buf[i] == 0)
diff --git a/keyboards/tzarc/djinn/rules.mk b/keyboards/tzarc/djinn/rules.mk
index d5060d9814..91dc4fe478 100644
--- a/keyboards/tzarc/djinn/rules.mk
+++ b/keyboards/tzarc/djinn/rules.mk
@@ -8,5 +8,3 @@ SRC += \
djinn_portscan_matrix.c \
djinn_split_sync.c \
djinn_usbpd.c
-
-DEFAULT_FOLDER = tzarc/djinn/rev2
diff --git a/keyboards/tzarc/ghoul/rules.mk b/keyboards/tzarc/ghoul/rules.mk
index 4bf96d9824..a9abdfe116 100644
--- a/keyboards/tzarc/ghoul/rules.mk
+++ b/keyboards/tzarc/ghoul/rules.mk
@@ -1,6 +1,4 @@
CUSTOM_MATRIX = lite
QUANTUM_PAINTER_DRIVERS = ssd1351_spi
-DEFAULT_FOLDER = tzarc/ghoul/rev1/stm32
-
ANALOG_DRIVER_REQUIRED = yes
diff --git a/keyboards/winry/winry25tc/keyboard.json b/keyboards/winry/winry25tc/keyboard.json
index c2682daa9a..ebe3d0cc77 100644
--- a/keyboards/winry/winry25tc/keyboard.json
+++ b/keyboards/winry/winry25tc/keyboard.json
@@ -3,8 +3,8 @@
"manufacturer": "SpiderIsland",
"maintainer": "qmk",
"usb": {
- "vid": "0xFEED",
- "pid": "0x0000",
+ "vid": "0xF1F1",
+ "pid": "0x0025",
"device_version": "0.0.1"
},
"ws2812": {
diff --git a/lib/python/qmk/cli/ci/validate_aliases.py b/lib/python/qmk/cli/ci/validate_aliases.py
index 7f781d4397..8b062dbe56 100644
--- a/lib/python/qmk/cli/ci/validate_aliases.py
+++ b/lib/python/qmk/cli/ci/validate_aliases.py
@@ -2,7 +2,7 @@
"""
from milc import cli
-from qmk.keyboard import resolve_keyboard, keyboard_folder, keyboard_alias_definitions
+from qmk.keyboard import keyboard_folder, keyboard_alias_definitions
def _safe_keyboard_folder(target):
@@ -17,10 +17,6 @@ def _target_keyboard_exists(target):
if not target:
return False
- # If the target directory existed but there was no rules.mk or rules.mk was incorrectly parsed, then we can't build it.
- if not resolve_keyboard(target):
- return False
-
# If the target directory exists but it itself has an invalid alias or invalid rules.mk, then we can't build it either.
if not _safe_keyboard_folder(target):
return False
diff --git a/lib/python/qmk/cli/list/keyboards.py b/lib/python/qmk/cli/list/keyboards.py
index 405b9210e4..8b6c451673 100644
--- a/lib/python/qmk/cli/list/keyboards.py
+++ b/lib/python/qmk/cli/list/keyboards.py
@@ -5,10 +5,9 @@ from milc import cli
import qmk.keyboard
[email protected]('--no-resolve-defaults', arg_only=True, action='store_false', help='Ignore any "DEFAULT_FOLDER" within keyboards rules.mk')
@cli.subcommand("List the keyboards currently defined within QMK")
def list_keyboards(cli):
"""List the keyboards currently defined within QMK
"""
- for keyboard_name in qmk.keyboard.list_keyboards(cli.args.no_resolve_defaults):
+ for keyboard_name in qmk.keyboard.list_keyboards():
print(keyboard_name)
diff --git a/lib/python/qmk/cli/migrate.py b/lib/python/qmk/cli/migrate.py
index 0bab5c1949..d0f195d737 100644
--- a/lib/python/qmk/cli/migrate.py
+++ b/lib/python/qmk/cli/migrate.py
@@ -6,14 +6,14 @@ from dotty_dict import dotty
from milc import cli
-from qmk.keyboard import keyboard_completer, keyboard_folder, resolve_keyboard
+from qmk.keyboard import keyboard_completer, keyboard_folder
from qmk.info import info_json, find_info_json
from qmk.json_encoders import InfoJSONEncoder
from qmk.json_schema import json_load
def _candidate_files(keyboard):
- kb_dir = Path(resolve_keyboard(keyboard))
+ kb_dir = Path(keyboard)
cur_dir = Path('keyboards')
files = []
diff --git a/lib/python/qmk/cli/resolve_alias.py b/lib/python/qmk/cli/resolve_alias.py
index b9ffb46618..dff2242b28 100644
--- a/lib/python/qmk/cli/resolve_alias.py
+++ b/lib/python/qmk/cli/resolve_alias.py
@@ -5,7 +5,7 @@ from milc import cli
@cli.argument('--allow-unknown', arg_only=True, action='store_true', help="Return original if rule is not a valid keyboard.")
@cli.argument('keyboard', arg_only=True, help='The keyboard\'s name')
[email protected]('Resolve DEFAULT_FOLDER and any keyboard_aliases for provided rule')
[email protected]('Resolve any keyboard_aliases for provided rule')
def resolve_alias(cli):
try:
print(keyboard_folder(cli.args.keyboard))
diff --git a/lib/python/qmk/info.py b/lib/python/qmk/info.py
index d95fd3d799..db8a02d132 100644
--- a/lib/python/qmk/info.py
+++ b/lib/python/qmk/info.py
@@ -223,12 +223,6 @@ def _validate(keyboard, info_data):
def info_json(keyboard, force_layout=None):
"""Generate the info.json data for a specific keyboard.
"""
- cur_dir = Path('keyboards')
- root_rules_mk = parse_rules_mk_file(cur_dir / keyboard / 'rules.mk')
-
- if 'DEFAULT_FOLDER' in root_rules_mk:
- keyboard = root_rules_mk['DEFAULT_FOLDER']
-
info_data = {
'keyboard_name': str(keyboard),
'keyboard_folder': str(keyboard),
@@ -1005,11 +999,6 @@ def find_info_json(keyboard):
keyboard_parent = keyboard_path.parent
info_jsons = [keyboard_path / 'info.json', keyboard_path / 'keyboard.json']
- # Add DEFAULT_FOLDER before parents, if present
- rules = rules_mk(keyboard)
- if 'DEFAULT_FOLDER' in rules:
- info_jsons.append(Path(rules['DEFAULT_FOLDER']) / 'info.json')
-
# Add in parent folders for least specific
for _ in range(5):
if keyboard_parent == base_path:
diff --git a/lib/python/qmk/keyboard.py b/lib/python/qmk/keyboard.py
index fcf5b5b158..254dc62309 100644
--- a/lib/python/qmk/keyboard.py
+++ b/lib/python/qmk/keyboard.py
@@ -99,8 +99,6 @@ def find_keyboard_from_dir():
keymap_index = len(current_path.parts) - current_path.parts.index('keymaps') - 1
current_path = current_path.parents[keymap_index]
- current_path = resolve_keyboard(current_path)
-
if qmk.path.is_keyboard(current_path):
return str(current_path)
@@ -121,7 +119,7 @@ def find_readme(keyboard):
def keyboard_folder(keyboard):
"""Returns the actual keyboard folder.
- This checks aliases and DEFAULT_FOLDER to resolve the actual path for a keyboard.
+ This checks aliases to resolve the actual path for a keyboard.
"""
aliases = keyboard_alias_definitions()
@@ -131,8 +129,6 @@ def keyboard_folder(keyboard):
if keyboard == last_keyboard:
break
- keyboard = resolve_keyboard(keyboard)
-
if not qmk.path.is_keyboard(keyboard):
raise ValueError(f'Invalid keyboard: {keyboard}')
@@ -158,7 +154,7 @@ def keyboard_aliases(keyboard):
def keyboard_folder_or_all(keyboard):
"""Returns the actual keyboard folder.
- This checks aliases and DEFAULT_FOLDER to resolve the actual path for a keyboard.
+ This checks aliases to resolve the actual path for a keyboard.
If the supplied argument is "all", it returns an AllKeyboards object.
"""
if keyboard == 'all':
@@ -179,32 +175,18 @@ def keyboard_completer(prefix, action, parser, parsed_args):
return list_keyboards()
-def list_keyboards(resolve_defaults=True):
- """Returns a list of all keyboards - optionally processing any DEFAULT_FOLDER.
+def list_keyboards():
+ """Returns a list of all keyboards
"""
# We avoid pathlib here because this is performance critical code.
- paths = []
- for marker in ['rules.mk', 'keyboard.json']:
- kb_wildcard = os.path.join(base_path, "**", marker)
- paths += [path for path in glob(kb_wildcard, recursive=True) if os.path.sep + 'keymaps' + os.path.sep not in path]
+ kb_wildcard = os.path.join(base_path, "**", 'keyboard.json')
+ paths = [path for path in glob(kb_wildcard, recursive=True) if os.path.sep + 'keymaps' + os.path.sep not in path]
found = map(_find_name, paths)
- if resolve_defaults:
- found = map(resolve_keyboard, found)
return sorted(set(found))
-@lru_cache(maxsize=None)
-def resolve_keyboard(keyboard):
- cur_dir = Path('keyboards')
- rules = parse_rules_mk_file(cur_dir / keyboard / 'rules.mk')
- while 'DEFAULT_FOLDER' in rules and keyboard != rules['DEFAULT_FOLDER']:
- keyboard = rules['DEFAULT_FOLDER']
- rules = parse_rules_mk_file(cur_dir / keyboard / 'rules.mk')
- return keyboard
-
-
def config_h(keyboard):
"""Parses all the config.h files for a keyboard.
@@ -216,7 +198,7 @@ def config_h(keyboard):
"""
config = {}
cur_dir = Path('keyboards')
- keyboard = Path(resolve_keyboard(keyboard))
+ keyboard = Path(keyboard)
for dir in keyboard.parts:
cur_dir = cur_dir / dir
@@ -235,7 +217,7 @@ def rules_mk(keyboard):
a dictionary representing the content of the entire rules.mk tree for a keyboard
"""
cur_dir = Path('keyboards')
- keyboard = Path(resolve_keyboard(keyboard))
+ keyboard = Path(keyboard)
rules = parse_rules_mk_file(cur_dir / keyboard / 'rules.mk')
for i, dir in enumerate(keyboard.parts):
diff --git a/lib/python/qmk/path.py b/lib/python/qmk/path.py
index c47ed18362..1739689adf 100644
--- a/lib/python/qmk/path.py
+++ b/lib/python/qmk/path.py
@@ -21,11 +21,9 @@ def is_keyboard(keyboard_name):
if Path(keyboard_name).is_absolute():
return False
- keyboard_path = QMK_FIRMWARE / 'keyboards' / keyboard_name
- rules_mk = keyboard_path / 'rules.mk'
- keyboard_json = keyboard_path / 'keyboard.json'
+ keyboard_json = QMK_FIRMWARE / 'keyboards' / keyboard_name / 'keyboard.json'
- return rules_mk.exists() or keyboard_json.exists()
+ return keyboard_json.exists()
def under_qmk_firmware(path=Path(os.environ['ORIG_CWD'])):
diff --git a/quantum/led_matrix/led_matrix.c b/quantum/led_matrix/led_matrix.c
index 7a0e8a5ebb..9c8004cc17 100644
--- a/quantum/led_matrix/led_matrix.c
+++ b/quantum/led_matrix/led_matrix.c
@@ -107,7 +107,11 @@ void eeconfig_update_led_matrix_default(void) {
void eeconfig_debug_led_matrix(void) {
dprintf("led_matrix_eeconfig EEPROM\n");
dprintf("led_matrix_eeconfig.enable = %d\n", led_matrix_eeconfig.enable);
+#ifdef LED_MATRIX_MODE_NAME_ENABLE
+ dprintf("led_matrix_eeconfig.mode = %d (%s)\n", led_matrix_eeconfig.mode, led_matrix_get_mode_name(led_matrix_eeconfig.mode));
+#else
dprintf("led_matrix_eeconfig.mode = %d\n", led_matrix_eeconfig.mode);
+#endif // LED_MATRIX_MODE_NAME_ENABLE
dprintf("led_matrix_eeconfig.val = %d\n", led_matrix_eeconfig.val);
dprintf("led_matrix_eeconfig.speed = %d\n", led_matrix_eeconfig.speed);
dprintf("led_matrix_eeconfig.flags = %d\n", led_matrix_eeconfig.flags);
@@ -525,7 +529,11 @@ void led_matrix_mode_eeprom_helper(uint8_t mode, bool write_to_eeprom) {
}
led_task_state = STARTING;
eeconfig_flag_led_matrix(write_to_eeprom);
- dprintf("led matrix mode [%s]: %u\n", (write_to_eeprom) ? "EEPROM" : "NOEEPROM", led_matrix_eeconfig.mode);
+#ifdef LED_MATRIX_MODE_NAME_ENABLE
+ dprintf("led matrix mode [%s]: %u (%s)\n", (write_to_eeprom) ? "EEPROM" : "NOEEPROM", (unsigned)led_matrix_eeconfig.mode, led_matrix_get_mode_name(led_matrix_eeconfig.mode));
+#else
+ dprintf("led matrix mode [%s]: %u\n", (write_to_eeprom) ? "EEPROM" : "NOEEPROM", (unsigned)led_matrix_eeconfig.mode);
+#endif // LED_MATRIX_MODE_NAME_ENABLE
}
void led_matrix_mode_noeeprom(uint8_t mode) {
led_matrix_mode_eeprom_helper(mode, false);
@@ -652,3 +660,48 @@ void led_matrix_set_flags(led_flags_t flags) {
void led_matrix_set_flags_noeeprom(led_flags_t flags) {
led_matrix_set_flags_eeprom_helper(flags, false);
}
+
+// LED Matrix naming
+#undef LED_MATRIX_EFFECT
+#ifdef LED_MATRIX_MODE_NAME_ENABLE
+const char *led_matrix_get_mode_name(uint8_t mode) {
+ switch (mode) {
+ case LED_MATRIX_NONE:
+ return "NONE";
+
+# define LED_MATRIX_EFFECT(name, ...) \
+ case LED_MATRIX_##name: \
+ return #name;
+# include "led_matrix_effects.inc"
+# undef LED_MATRIX_EFFECT
+
+# ifdef COMMUNITY_MODULES_ENABLE
+# define LED_MATRIX_EFFECT(name, ...) \
+ case LED_MATRIX_COMMUNITY_MODULE_##name: \
+ return #name;
+# include "led_matrix_community_modules.inc"
+# undef LED_MATRIX_EFFECT
+# endif // COMMUNITY_MODULES_ENABLE
+
+# if defined(LED_MATRIX_CUSTOM_KB) || defined(LED_MATRIX_CUSTOM_USER)
+# define LED_MATRIX_EFFECT(name, ...) \
+ case LED_MATRIX_CUSTOM_##name: \
+ return #name;
+
+# ifdef LED_MATRIX_CUSTOM_KB
+# include "led_matrix_kb.inc"
+# endif // LED_MATRIX_CUSTOM_KB
+
+# ifdef LED_MATRIX_CUSTOM_USER
+# include "led_matrix_user.inc"
+# endif // LED_MATRIX_CUSTOM_USER
+
+# undef LED_MATRIX_EFFECT
+# endif // LED_MATRIX_CUSTOM_KB || LED_MATRIX_CUSTOM_USER
+
+ default:
+ return "UNKNOWN";
+ }
+}
+# undef LED_MATRIX_EFFECT
+#endif // LED_MATRIX_MODE_NAME_ENABLE
diff --git a/quantum/led_matrix/led_matrix.h b/quantum/led_matrix/led_matrix.h
index 0dfe33ffab..9a49515ab2 100644
--- a/quantum/led_matrix/led_matrix.h
+++ b/quantum/led_matrix/led_matrix.h
@@ -184,6 +184,10 @@ led_flags_t led_matrix_get_flags(void);
void led_matrix_set_flags(led_flags_t flags);
void led_matrix_set_flags_noeeprom(led_flags_t flags);
+#ifdef LED_MATRIX_MODE_NAME_ENABLE
+const char *led_matrix_get_mode_name(uint8_t mode);
+#endif // LED_MATRIX_MODE_NAME_ENABLE
+
static inline bool led_matrix_check_finished_leds(uint8_t led_idx) {
#if defined(LED_MATRIX_SPLIT)
if (is_keyboard_left()) {
diff --git a/quantum/pointing_device/pointing_device.c b/quantum/pointing_device/pointing_device.c
index 564c2d294c..fe88d5a1af 100644
--- a/quantum/pointing_device/pointing_device.c
+++ b/quantum/pointing_device/pointing_device.c
@@ -80,8 +80,10 @@ uint16_t pointing_device_get_shared_cpi(void) {
#endif // defined(SPLIT_POINTING_ENABLE)
-static report_mouse_t local_mouse_report = {};
-static bool pointing_device_force_send = false;
+static report_mouse_t local_mouse_report = {};
+static bool pointing_device_force_send = false;
+static pointing_device_status_t pointing_device_status = POINTING_DEVICE_STATUS_UNKNOWN;
+
#ifdef POINTING_DEVICE_HIRES_SCROLL_ENABLE
static uint16_t hires_scroll_resolution;
#endif
@@ -90,7 +92,9 @@ static uint16_t hires_scroll_resolution;
#define POINTING_DEVICE_DRIVER(name) POINTING_DEVICE_DRIVER_CONCAT(name)
#ifdef POINTING_DEVICE_DRIVER_custom
-__attribute__((weak)) void pointing_device_driver_init(void) {}
+__attribute__((weak)) bool pointing_device_driver_init(void) {
+ return false;
+}
__attribute__((weak)) report_mouse_t pointing_device_driver_get_report(report_mouse_t mouse_report) {
return mouse_report;
}
@@ -179,7 +183,11 @@ __attribute__((weak)) void pointing_device_init(void) {
if ((POINTING_DEVICE_THIS_SIDE))
#endif
{
- pointing_device_driver->init();
+ if (pointing_device_driver->init()) {
+ pointing_device_status = POINTING_DEVICE_STATUS_SUCCESS;
+ } else {
+ pointing_device_status = POINTING_DEVICE_STATUS_INIT_FAILED;
+ }
#ifdef POINTING_DEVICE_MOTION_PIN
# ifdef POINTING_DEVICE_MOTION_PIN_ACTIVE_LOW
gpio_set_pin_input_high(POINTING_DEVICE_MOTION_PIN);
@@ -201,6 +209,28 @@ __attribute__((weak)) void pointing_device_init(void) {
}
/**
+ * @brief Gets status of pointing device
+ *
+ * Returns current pointing device status
+ * @return pointing_device_status_t
+ */
+__attribute__((weak)) pointing_device_status_t pointing_device_get_status(void) {
+#ifdef SPLIT_POINTING_ENABLE
+ // Assume target side is always good, split transaction checksum should stop additional reports being generated.
+ return POINTING_DEVICE_THIS_SIDE ? pointing_device_status : POINTING_DEVICE_STATUS_SUCCESS;
+#else
+ return pointing_device_status;
+#endif
+}
+
+/**
+ * @brief Sets status of pointing device
+ */
+void pointing_device_set_status(pointing_device_status_t status) {
+ pointing_device_status = status;
+}
+
+/**
* @brief Sends processed mouse report to host
*
* This sends the mouse report generated by pointing_device_task if changed since the last report. Once send zeros mouse report except buttons.
@@ -281,6 +311,10 @@ __attribute__((weak)) bool pointing_device_task(void) {
last_exec = timer_read32();
#endif
+ if (pointing_device_get_status() != POINTING_DEVICE_STATUS_SUCCESS) {
+ return false;
+ }
+
// Gather report info
#ifdef POINTING_DEVICE_MOTION_PIN
# if defined(SPLIT_POINTING_ENABLE)
diff --git a/quantum/pointing_device/pointing_device.h b/quantum/pointing_device/pointing_device.h
index e7a0819ed9..5dfb9ce196 100644
--- a/quantum/pointing_device/pointing_device.h
+++ b/quantum/pointing_device/pointing_device.h
@@ -23,7 +23,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "report.h"
typedef struct {
- void (*init)(void);
+ bool (*init)(void);
report_mouse_t (*get_report)(report_mouse_t mouse_report);
void (*set_cpi)(uint16_t);
uint16_t (*get_cpi)(void);
@@ -75,7 +75,7 @@ typedef struct {
# include "drivers/sensors/pmw33xx_common.h"
# define POINTING_DEVICE_MOTION_PIN_ACTIVE_LOW
#else
-void pointing_device_driver_init(void);
+bool pointing_device_driver_init(void);
report_mouse_t pointing_device_driver_get_report(report_mouse_t mouse_report);
uint16_t pointing_device_driver_get_cpi(void);
void pointing_device_driver_set_cpi(uint16_t cpi);
@@ -92,6 +92,13 @@ typedef enum {
POINTING_DEVICE_BUTTON8,
} pointing_device_buttons_t;
+typedef enum {
+ POINTING_DEVICE_STATUS_UNKNOWN,
+ POINTING_DEVICE_STATUS_INIT_FAILED,
+ POINTING_DEVICE_STATUS_FAILED,
+ POINTING_DEVICE_STATUS_SUCCESS,
+} pointing_device_status_t;
+
#ifdef MOUSE_EXTENDED_REPORT
typedef int32_t xy_clamp_range_t;
#else
@@ -107,13 +114,15 @@ typedef int16_t hv_clamp_range_t;
#define CONSTRAIN_HID(amt) ((amt) < INT8_MIN ? INT8_MIN : ((amt) > INT8_MAX ? INT8_MAX : (amt)))
#define CONSTRAIN_HID_XY(amt) ((amt) < MOUSE_REPORT_XY_MIN ? MOUSE_REPORT_XY_MIN : ((amt) > MOUSE_REPORT_XY_MAX ? MOUSE_REPORT_XY_MAX : (amt)))
-void pointing_device_init(void);
-bool pointing_device_task(void);
-bool pointing_device_send(void);
-report_mouse_t pointing_device_get_report(void);
-void pointing_device_set_report(report_mouse_t mouse_report);
-uint16_t pointing_device_get_cpi(void);
-void pointing_device_set_cpi(uint16_t cpi);
+void pointing_device_init(void);
+bool pointing_device_task(void);
+bool pointing_device_send(void);
+report_mouse_t pointing_device_get_report(void);
+void pointing_device_set_report(report_mouse_t mouse_report);
+uint16_t pointing_device_get_cpi(void);
+void pointing_device_set_cpi(uint16_t cpi);
+pointing_device_status_t pointing_device_get_status(void);
+void pointing_device_set_status(pointing_device_status_t status);
void pointing_device_init_kb(void);
void pointing_device_init_user(void);
diff --git a/quantum/process_keycode/process_oneshot.c b/quantum/process_keycode/process_oneshot.c
new file mode 100644
index 0000000000..6c43da1011
--- /dev/null
+++ b/quantum/process_keycode/process_oneshot.c
@@ -0,0 +1,25 @@
+// Copyright 2025 QMK
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include "process_oneshot.h"
+#include "action_util.h"
+
+bool process_oneshot(uint16_t keycode, keyrecord_t *record) {
+#ifndef NO_ACTION_ONESHOT
+ if (record->event.pressed) {
+ switch (keycode) {
+ case QK_ONE_SHOT_TOGGLE:
+ oneshot_toggle();
+ return false;
+ case QK_ONE_SHOT_ON:
+ oneshot_enable();
+ return false;
+ case QK_ONE_SHOT_OFF:
+ oneshot_disable();
+ return false;
+ }
+ }
+#endif
+
+ return true;
+}
diff --git a/quantum/process_keycode/process_oneshot.h b/quantum/process_keycode/process_oneshot.h
new file mode 100644
index 0000000000..11445b9b38
--- /dev/null
+++ b/quantum/process_keycode/process_oneshot.h
@@ -0,0 +1,10 @@
+// Copyright 2025 QMK
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#pragma once
+
+#include <stdint.h>
+#include <stdbool.h>
+#include "action.h"
+
+bool process_oneshot(uint16_t keycode, keyrecord_t *record);
diff --git a/quantum/process_keycode/process_quantum.c b/quantum/process_keycode/process_quantum.c
new file mode 100644
index 0000000000..703e00755b
--- /dev/null
+++ b/quantum/process_keycode/process_quantum.c
@@ -0,0 +1,76 @@
+// Copyright 2025 QMK
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include "process_quantum.h"
+#include "quantum.h"
+
+#ifdef ENABLE_COMPILE_KEYCODE
+/** \brief Compiles the firmware, and adds the flash command based on keyboard bootloader
+ */
+static void send_make_command(void) {
+# ifdef NO_ACTION_ONESHOT
+ const uint8_t temp_mod = mod_config(get_mods());
+# else
+ const uint8_t temp_mod = mod_config(get_mods() | get_oneshot_mods());
+ clear_oneshot_mods();
+# endif
+ clear_mods();
+
+ SEND_STRING_DELAY("qmk", TAP_CODE_DELAY);
+ if (temp_mod & MOD_MASK_SHIFT) { // if shift is held, flash rather than compile
+ SEND_STRING_DELAY(" flash ", TAP_CODE_DELAY);
+ } else {
+ SEND_STRING_DELAY(" compile ", TAP_CODE_DELAY);
+ }
+# if defined(CONVERTER_ENABLED)
+ SEND_STRING_DELAY("-kb " QMK_KEYBOARD " -km " QMK_KEYMAP " -e CONVERT_TO=" CONVERTER_TARGET SS_TAP(X_ENTER), TAP_CODE_DELAY);
+# else
+ SEND_STRING_DELAY("-kb " QMK_KEYBOARD " -km " QMK_KEYMAP SS_TAP(X_ENTER), TAP_CODE_DELAY);
+# endif
+ if (temp_mod & MOD_MASK_SHIFT && temp_mod & MOD_MASK_CTRL) {
+ reset_keyboard();
+ }
+}
+#endif
+
+bool process_quantum(uint16_t keycode, keyrecord_t *record) {
+ if (record->event.pressed) {
+ switch (keycode) {
+#ifndef NO_RESET
+ case QK_BOOTLOADER:
+ reset_keyboard();
+ return false;
+ case QK_REBOOT:
+ soft_reset_keyboard();
+ return false;
+#endif
+#ifndef NO_DEBUG
+ case QK_DEBUG_TOGGLE:
+ debug_enable ^= 1;
+ if (debug_enable) {
+ print("DEBUG: enabled.\n");
+ } else {
+ print("DEBUG: disabled.\n");
+ }
+ return false;
+#endif
+ case QK_CLEAR_EEPROM:
+#ifdef NO_RESET
+ eeconfig_init();
+#else
+ eeconfig_disable();
+ soft_reset_keyboard();
+#endif
+ return false;
+#ifdef ENABLE_COMPILE_KEYCODE
+ case QK_MAKE:
+ send_make_command();
+ return false;
+#endif
+ default:
+ break;
+ }
+ }
+
+ return true;
+}
diff --git a/quantum/process_keycode/process_quantum.h b/quantum/process_keycode/process_quantum.h
new file mode 100644
index 0000000000..5c2462be01
--- /dev/null
+++ b/quantum/process_keycode/process_quantum.h
@@ -0,0 +1,10 @@
+// Copyright 2025 QMK
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#pragma once
+
+#include <stdint.h>
+#include <stdbool.h>
+#include "action.h"
+
+bool process_quantum(uint16_t keycode, keyrecord_t *record);
diff --git a/quantum/process_keycode/process_underglow.c b/quantum/process_keycode/process_underglow.c
index b8d8989ef3..78006ee099 100644
--- a/quantum/process_keycode/process_underglow.c
+++ b/quantum/process_keycode/process_underglow.c
@@ -200,6 +200,11 @@ bool process_underglow(uint16_t keycode, keyrecord_t *record) {
}
#endif
return false;
+#ifdef VELOCIKEY_ENABLE
+ case QK_VELOCIKEY_TOGGLE:
+ velocikey_toggle();
+ return false;
+#endif
}
}
diff --git a/quantum/quantum.c b/quantum/quantum.c
index 0bb6ee0a91..cc20c7db2b 100644
--- a/quantum/quantum.c
+++ b/quantum/quantum.c
@@ -15,6 +15,7 @@
*/
#include "quantum.h"
+#include "process_quantum.h"
#ifdef BACKLIGHT_ENABLE
# include "process_backlight.h"
@@ -84,6 +85,10 @@
# include "process_layer_lock.h"
#endif
+#ifndef NO_ACTION_ONESHOT
+# include "process_oneshot.h"
+#endif
+
#ifdef AUDIO_ENABLE
# ifndef GOODBYE_SONG
# define GOODBYE_SONG SONG(GOODBYE_SOUND)
@@ -174,10 +179,6 @@ __attribute__((weak)) bool pre_process_record_user(uint16_t keycode, keyrecord_t
return true;
}
-__attribute__((weak)) bool process_action_kb(keyrecord_t *record) {
- return true;
-}
-
__attribute__((weak)) bool process_record_modules(uint16_t keycode, keyrecord_t *record) {
return true;
}
@@ -292,9 +293,10 @@ void post_process_record_quantum(keyrecord_t *record) {
post_process_record_kb(keycode, record);
}
-/* Core keycode function, hands off handling to other functions,
- then processes internal quantum keycodes, and then processes
- ACTIONs. */
+/** \brief Core keycode function
+ *
+ * Hands off handling to other quantum/process_keycode/ functions
+ */
bool process_record_quantum(keyrecord_t *record) {
uint16_t keycode = get_record_keycode(record, true);
@@ -439,85 +441,14 @@ bool process_record_quantum(keyrecord_t *record) {
#ifdef CONNECTION_ENABLE
process_connection(keycode, record) &&
#endif
- true)) {
- return false;
- }
-
- if (record->event.pressed) {
- switch (keycode) {
-#ifndef NO_RESET
- case QK_BOOTLOADER:
- reset_keyboard();
- return false;
- case QK_REBOOT:
- soft_reset_keyboard();
- return false;
-#endif
-#ifndef NO_DEBUG
- case QK_DEBUG_TOGGLE:
- debug_enable ^= 1;
- if (debug_enable) {
- print("DEBUG: enabled.\n");
- } else {
- print("DEBUG: disabled.\n");
- }
-#endif
- return false;
- case QK_CLEAR_EEPROM:
-#ifdef NO_RESET
- eeconfig_init();
-#else
- eeconfig_disable();
- soft_reset_keyboard();
-#endif
- return false;
-#ifdef VELOCIKEY_ENABLE
- case QK_VELOCIKEY_TOGGLE:
- velocikey_toggle();
- return false;
-#endif
#ifndef NO_ACTION_ONESHOT
- case QK_ONE_SHOT_TOGGLE:
- oneshot_toggle();
- break;
- case QK_ONE_SHOT_ON:
- oneshot_enable();
- break;
- case QK_ONE_SHOT_OFF:
- oneshot_disable();
- break;
-#endif
-#ifdef ENABLE_COMPILE_KEYCODE
- case QK_MAKE: // Compiles the firmware, and adds the flash command based on keyboard bootloader
- {
-# ifdef NO_ACTION_ONESHOT
- const uint8_t temp_mod = mod_config(get_mods());
-# else
- const uint8_t temp_mod = mod_config(get_mods() | get_oneshot_mods());
- clear_oneshot_mods();
-# endif
- clear_mods();
-
- SEND_STRING_DELAY("qmk", TAP_CODE_DELAY);
- if (temp_mod & MOD_MASK_SHIFT) { // if shift is held, flash rather than compile
- SEND_STRING_DELAY(" flash ", TAP_CODE_DELAY);
- } else {
- SEND_STRING_DELAY(" compile ", TAP_CODE_DELAY);
- }
-# if defined(CONVERTER_ENABLED)
- SEND_STRING_DELAY("-kb " QMK_KEYBOARD " -km " QMK_KEYMAP " -e CONVERT_TO=" CONVERTER_TARGET SS_TAP(X_ENTER), TAP_CODE_DELAY);
-# else
- SEND_STRING_DELAY("-kb " QMK_KEYBOARD " -km " QMK_KEYMAP SS_TAP(X_ENTER), TAP_CODE_DELAY);
-# endif
- if (temp_mod & MOD_MASK_SHIFT && temp_mod & MOD_MASK_CTRL) {
- reset_keyboard();
- }
- }
+ process_oneshot(keycode, record) &&
#endif
- }
+ process_quantum(keycode, record))) {
+ return false;
}
- return process_action_kb(record);
+ return true;
}
void set_single_default_layer(uint8_t default_layer) {
diff --git a/quantum/quantum.h b/quantum/quantum.h
index 3a994e9a03..0036cd784b 100644
--- a/quantum/quantum.h
+++ b/quantum/quantum.h
@@ -263,7 +263,6 @@ uint16_t get_event_keycode(keyevent_t event, bool update_layer_cache);
bool pre_process_record_quantum(keyrecord_t *record);
bool pre_process_record_kb(uint16_t keycode, keyrecord_t *record);
bool pre_process_record_user(uint16_t keycode, keyrecord_t *record);
-bool process_action_kb(keyrecord_t *record);
bool process_record_kb(uint16_t keycode, keyrecord_t *record);
bool process_record_user(uint16_t keycode, keyrecord_t *record);
void post_process_record_kb(uint16_t keycode, keyrecord_t *record);
diff --git a/quantum/rgb_matrix/rgb_matrix.c b/quantum/rgb_matrix/rgb_matrix.c
index 2679c48342..ab0aa17512 100644
--- a/quantum/rgb_matrix/rgb_matrix.c
+++ b/quantum/rgb_matrix/rgb_matrix.c
@@ -109,7 +109,11 @@ void eeconfig_update_rgb_matrix_default(void) {
void eeconfig_debug_rgb_matrix(void) {
dprintf("rgb_matrix_config EEPROM\n");
dprintf("rgb_matrix_config.enable = %d\n", rgb_matrix_config.enable);
+#ifdef RGB_MATRIX_MODE_NAME_ENABLE
+ dprintf("rgb_matrix_config.mode = %d (%s)\n", rgb_matrix_config.mode, rgb_matrix_get_mode_name(rgb_matrix_config.mode));
+#else
dprintf("rgb_matrix_config.mode = %d\n", rgb_matrix_config.mode);
+#endif // RGB_MATRIX_MODE_NAME_ENABLE
dprintf("rgb_matrix_config.hsv.h = %d\n", rgb_matrix_config.hsv.h);
dprintf("rgb_matrix_config.hsv.s = %d\n", rgb_matrix_config.hsv.s);
dprintf("rgb_matrix_config.hsv.v = %d\n", rgb_matrix_config.hsv.v);
@@ -560,7 +564,11 @@ void rgb_matrix_mode_eeprom_helper(uint8_t mode, bool write_to_eeprom) {
}
rgb_task_state = STARTING;
eeconfig_flag_rgb_matrix(write_to_eeprom);
- dprintf("rgb matrix mode [%s]: %u\n", (write_to_eeprom) ? "EEPROM" : "NOEEPROM", rgb_matrix_config.mode);
+#ifdef RGB_MATRIX_MODE_NAME_ENABLE
+ dprintf("rgb matrix mode [%s]: %u (%s)\n", (write_to_eeprom) ? "EEPROM" : "NOEEPROM", (unsigned)rgb_matrix_config.mode, rgb_matrix_get_mode_name(rgb_matrix_config.mode));
+#else
+ dprintf("rgb matrix mode [%s]: %u\n", (write_to_eeprom) ? "EEPROM" : "NOEEPROM", (unsigned)rgb_matrix_config.mode);
+#endif // RGB_MATRIX_MODE_NAME_ENABLE
}
void rgb_matrix_mode_noeeprom(uint8_t mode) {
rgb_matrix_mode_eeprom_helper(mode, false);
@@ -738,3 +746,49 @@ void rgb_matrix_set_flags(led_flags_t flags) {
void rgb_matrix_set_flags_noeeprom(led_flags_t flags) {
rgb_matrix_set_flags_eeprom_helper(flags, false);
}
+
+//----------------------------------------------------------
+// RGB Matrix naming
+#undef RGB_MATRIX_EFFECT
+#ifdef RGB_MATRIX_MODE_NAME_ENABLE
+const char *rgb_matrix_get_mode_name(uint8_t mode) {
+ switch (mode) {
+ case RGB_MATRIX_NONE:
+ return "NONE";
+
+# define RGB_MATRIX_EFFECT(name, ...) \
+ case RGB_MATRIX_##name: \
+ return #name;
+# include "rgb_matrix_effects.inc"
+# undef RGB_MATRIX_EFFECT
+
+# ifdef COMMUNITY_MODULES_ENABLE
+# define RGB_MATRIX_EFFECT(name, ...) \
+ case RGB_MATRIX_COMMUNITY_MODULE_##name: \
+ return #name;
+# include "rgb_matrix_community_modules.inc"
+# undef RGB_MATRIX_EFFECT
+# endif // COMMUNITY_MODULES_ENABLE
+
+# if defined(RGB_MATRIX_CUSTOM_KB) || defined(RGB_MATRIX_CUSTOM_USER)
+# define RGB_MATRIX_EFFECT(name, ...) \
+ case RGB_MATRIX_CUSTOM_##name: \
+ return #name;
+
+# ifdef RGB_MATRIX_CUSTOM_KB
+# include "rgb_matrix_kb.inc"
+# endif // RGB_MATRIX_CUSTOM_KB
+
+# ifdef RGB_MATRIX_CUSTOM_USER
+# include "rgb_matrix_user.inc"
+# endif // RGB_MATRIX_CUSTOM_USER
+
+# undef RGB_MATRIX_EFFECT
+# endif // RGB_MATRIX_CUSTOM_KB || RGB_MATRIX_CUSTOM_USER
+
+ default:
+ return "UNKNOWN";
+ }
+}
+# undef RGB_MATRIX_EFFECT
+#endif // RGB_MATRIX_MODE_NAME_ENABLE
diff --git a/quantum/rgb_matrix/rgb_matrix.h b/quantum/rgb_matrix/rgb_matrix.h
index c6b302631e..a91dded4a8 100644
--- a/quantum/rgb_matrix/rgb_matrix.h
+++ b/quantum/rgb_matrix/rgb_matrix.h
@@ -220,6 +220,10 @@ void rgb_matrix_set_flags(led_flags_t flags);
void rgb_matrix_set_flags_noeeprom(led_flags_t flags);
void rgb_matrix_update_pwm_buffers(void);
+#ifdef RGB_MATRIX_MODE_NAME_ENABLE
+const char *rgb_matrix_get_mode_name(uint8_t mode);
+#endif // RGB_MATRIX_MODE_NAME_ENABLE
+
#ifndef RGBLIGHT_ENABLE
# define eeconfig_update_rgblight_current eeconfig_force_flush_rgb_matrix
# define rgblight_reload_from_eeprom rgb_matrix_reload_from_eeprom
diff --git a/readme.md b/readme.md
index 62aed12066..e5c0d41b7b 100644
--- a/readme.md
+++ b/readme.md
@@ -1,3 +1,7 @@
+# THIS IS THE DEVELOP BRANCH
+
+Warning- This is the `develop` branch of QMK Firmware. You may encounter broken code here. Please see [Breaking Changes](https://docs.qmk.fm/#/breaking_changes) for more information.
+
# Quantum Mechanical Keyboard Firmware
[![Current Version](https://img.shields.io/github/tag/qmk/qmk_firmware.svg)](https://github.com/qmk/qmk_firmware/tags)
diff --git a/tests/pointing/test_pointing.cpp b/tests/pointing/test_pointing.cpp
index d59d014925..bd886b18a2 100644
--- a/tests/pointing/test_pointing.cpp
+++ b/tests/pointing/test_pointing.cpp
@@ -12,6 +12,26 @@ using testing::_;
class Pointing : public TestFixture {};
class PointingButtonsViaMousekeysParametrized : public ::testing::WithParamInterface<std::pair<KeymapKey, uint8_t>>, public Pointing {};
+TEST_F(Pointing, NoMovementOnInitFailure) {
+ TestDriver driver;
+
+ pointing_device_set_status(POINTING_DEVICE_STATUS_INIT_FAILED);
+ pd_set_x(-50);
+ pd_set_y(100);
+ EXPECT_NO_MOUSE_REPORT(driver);
+ run_one_scan_loop();
+
+ pointing_device_set_status(POINTING_DEVICE_STATUS_SUCCESS);
+ EXPECT_MOUSE_REPORT(driver, (-50, 100, 0, 0, 0));
+ run_one_scan_loop();
+
+ pd_clear_movement();
+ // EXPECT_EMPTY_MOUSE_REPORT(driver);
+ run_one_scan_loop();
+
+ VERIFY_AND_CLEAR(driver);
+}
+
TEST_F(Pointing, SendMouseIsNotCalledWithNoInput) {
TestDriver driver;
EXPECT_NO_MOUSE_REPORT(driver);
diff --git a/tests/test_common/pointing_device_driver.c b/tests/test_common/pointing_device_driver.c
index b64dbad506..42c7a814a4 100644
--- a/tests/test_common/pointing_device_driver.c
+++ b/tests/test_common/pointing_device_driver.c
@@ -22,8 +22,9 @@ typedef struct {
static pd_config_t pd_config = {0};
-void pointing_device_driver_init(void) {
+bool pointing_device_driver_init(void) {
pd_set_init(true);
+ return pd_config.initiated;
}
report_mouse_t pointing_device_driver_get_report(report_mouse_t mouse_report) {