2022-02-23 17:33:08 +00:00
# QMK Breaking Changes - 2022 February 26 Changelog
2024-05-30 12:00:41 +10:00
## Notable Features {#notable-features}
2022-02-23 17:33:08 +00:00
### Default USB Polling rate now 1kHz ([#15352](https://github.com/qmk/qmk_firmware/pull/15352))
The default USB Polling rate has been aligned across supported platforms to now be 1ms/1kHz.
Something something *Lets go gamers!*
### Split support for pointing devices ([#15304](https://github.com/qmk/qmk_firmware/pull/15304))
Pointing devices can now be shared across a split keyboard with support for a single pointing device or a pointing device on each side.
2024-06-02 12:42:24 +10:00
See the [Pointing Device ](../features/pointing_device ) documentation for further configuration options.
2022-02-23 17:33:08 +00:00
2024-05-30 12:00:41 +10:00
## Changes Requiring User Action {#changes-requiring-user-action}
2022-02-23 17:33:08 +00:00
### Legacy macro and action_function system removed ([#16025](https://github.com/qmk/qmk_firmware/pull/16025))
2024-05-30 12:00:41 +10:00
The long time deprecated `MACRO()` and `action_get_macro` methods have been removed. Where possible, existing usages have been migrated over to core [Macros ](../feature_macros ).
2022-02-23 17:33:08 +00:00
### Create a build error if no bootloader is specified ([#16181](https://github.com/qmk/qmk_firmware/pull/16181))
Bootloader configuration is no longer assumed. Keyboards must now set either:
* `BOOTLOADER` within `rules.mk`
* `bootloader` within `info.json`
### Rename `AdafruitBLE` to `BluefruitLE` ([#16127](https://github.com/qmk/qmk_firmware/pull/16127))
In preparation of future bluetooth work, the `AdafruitBLE` integration has been renamed to allow potential for any other Adafruit BLE products.
2024-05-30 12:00:41 +10:00
### Updated Keyboard Codebases {#updated-keyboard-codebases}
2022-02-23 17:33:08 +00:00
The following keyboards have had their source moved within QMK:
| Old Keyboard Name | New Keyboard Name |
|----------------------------|------------------------------------|
| 6ball | maple_computing/6ball |
| 7skb | salicylic_acid3/7skb |
| 7splus | salicylic_acid3/7splus |
| acr60 | mechkeys/acr60 |
| adalyn | tominabox1/adalyn |
| ajisai74 | salicylic_acid3/ajisai74 |
| aleth42 | 25keys/aleth42 |
| alicia_cook | ibnuda/alicia_cook |
| allison_numpad | prototypist/allison_numpad |
| allison | prototypist/allison |
| alu84 | mechkeys/alu84 |
| angel17 | kakunpc/angel17 |
| angel64/alpha | kakunpc/angel64/alpha |
| angel64/rev1 | kakunpc/angel64/rev1 |
| arch_36 | obosob/arch_36 |
| bakeneko60 | kkatano/bakeneko60 |
| bakeneko65/rev2 | kkatano/bakeneko65/rev2 |
| bakeneko65/rev3 | kkatano/bakeneko65/rev3 |
| bakeneko80 | kkatano/bakeneko80 |
| barleycorn | yiancardesigns/barleycorn |
| bat43/rev1 | dailycraft/bat43/rev1 |
| bat43/rev2 | dailycraft/bat43/rev2 |
| bigseries/1key | woodkeys/bigseries/1key |
| bigseries/2key | woodkeys/bigseries/2key |
| bigseries/3key | woodkeys/bigseries/3key |
| bigseries/4key | woodkeys/bigseries/4key |
| bkf | drhigsby/bkf |
| business_card/alpha | kakunpc/business_card/alpha |
| business_card/beta | kakunpc/business_card/beta |
| butterstick | gboards/butterstick |
| c39 | maple_computing/c39 |
| cassette42 | 25keys/cassette42 |
| chidori | kagizaraya/chidori |
| chili | ydkb/chili |
| chimera_ergo | glenpickle/chimera_ergo |
| chimera_ls | glenpickle/chimera_ls |
| chimera_ortho | glenpickle/chimera_ortho |
| chimera_ortho_plus | glenpickle/chimera_ortho_plus |
| choco60 | recompile_keys/choco60 |
| choc_taro | kakunpc/choc_taro |
| christmas_tree | maple_computing/christmas_tree |
| claw44/rev1 | dailycraft/claw44/rev1 |
| cocoa40 | recompile_keys/cocoa40 |
| comet46 | satt/comet46 |
| cu24 | capsunlocked/cu24 |
| cu75 | capsunlocked/cu75 |
| cu80 | capsunlocked/cu80/v1 |
| delilah | rainkeebs/delilah |
| diverge3 | unikeyboard/diverge3 |
| divergetm2 | unikeyboard/divergetm2 |
| dozen0 | yynmt/dozen0 |
| dubba175 | drhigsby/dubba175 |
| eggman | qpockets/eggman |
| ergo42 | biacco42/ergo42 |
| ergoarrows | salicylic_acid3/ergoarrows |
| ergodash/mini | omkbd/ergodash/mini |
| ergodash/rev1 | omkbd/ergodash/rev1 |
| ergodox_infinity | input_club/ergodox_infinity |
| ergotaco | gboards/ergotaco |
| espectro | mechkeys/espectro |
| felix | unikeyboard/felix |
| four_banger | bpiphany/four_banger |
| freyr | hnahkb/freyr |
| geminate60 | weirdo/geminate60 |
| georgi | gboards/georgi |
| gergo | gboards/gergo |
| getta25 | salicylic_acid3/getta25 |
| gingham | yiancardesigns/gingham |
| gurindam | ibnuda/gurindam |
| halberd | kagizaraya/halberd |
| hecomi/alpha | takashiski/hecomi/alpha |
| hid_liber | bpiphany/hid_liber |
| id67/default_rgb | idobao/id67/default_rgb |
| id67/rgb | idobao/id67/rgb |
| id80 | idobao/id80/v1 |
| id87 | idobao/id87/v1 |
| idobo | idobao/id75/v1 |
| infinity60 | input_club/infinity60 |
| ivy/rev1 | maple_computing/ivy/rev1 |
| jisplit89 | salicylic_acid3/jisplit89 |
| jnao | maple_computing/jnao |
| just60 | ydkb/just60 |
| kagamidget | yynmt/kagamidget |
| kelowna/rgb64 | weirdo/kelowna/rgb64 |
| kprepublic/bm65hsrgb_iso | kprepublic/bm65hsrgb_iso/rev1 |
| kprepublic/bm68hsrgb | kprepublic/bm68hsrgb/rev1 |
| k_type | input_club/k_type |
| latin17rgb | latincompass/latin17rgb |
| latin47ble | latincompass/latin47ble |
| latin60rgb | latincompass/latin60rgb |
| latin64ble | latincompass/latin64ble |
| latin6rgb | latincompass/latin6rgb |
| latinpadble | latincompass/latinpadble |
| latinpad | latincompass/latinpad |
| launchpad/rev1 | maple_computing/launchpad/rev1 |
| lck75 | lyso1/lck75 |
| le_chiffre | tominabox1/le_chiffre |
| lefishe | lyso1/lefishe |
| lets_split_eh/eh | maple_computing/lets_split_eh/eh |
| ls_60 | weirdo/ls_60 |
| m3n3van | matthewdias/m3n3van |
| mechmini/v1 | mechkeys/mechmini/v1 |
| mechmini/v2 | mechkeys/mechmini/v2 |
| meira | woodkeys/meira |
| meishi2 | biacco42/meishi2 |
| meishi | biacco42/meishi |
| minidox/rev1 | maple_computing/minidox/rev1 |
| minim | matthewdias/minim |
| mio | recompile_keys/mio |
| model_v | matthewdias/model_v |
| montex | idobao/montex/v1 |
| nafuda | salicylic_acid3/nafuda |
| naiping/np64 | weirdo/naiping/np64 |
| naiping/nphhkb | weirdo/naiping/nphhkb |
| naiping/npminila | weirdo/naiping/npminila |
| naked48 | salicylic_acid3/naked48 |
| naked60 | salicylic_acid3/naked60 |
| naked64 | salicylic_acid3/naked64 |
| namecard2x4 | takashiski/namecard2x4 |
| nebula12 | spaceholdings/nebula12 |
| nebula68b | spaceholdings/nebula68b |
| nebula68 | spaceholdings/nebula68 |
| niu_mini | kbdfans/niu_mini |
| nk1 | novelkeys/nk1 |
| nk65 | novelkeys/nk65 |
| nk87 | novelkeys/nk87 |
| nknl7en | salicylic_acid3/nknl7en |
| nknl7jp | salicylic_acid3/nknl7jp |
| nomu30 | recompile_keys/nomu30 |
| novelpad | novelkeys/novelpad |
| ogurec | drhigsby/ogurec |
| otaku_split/rev0 | takashiski/otaku_split/rev0 |
| otaku_split/rev1 | takashiski/otaku_split/rev1 |
| owl8 | dailycraft/owl8 |
| packrat | drhigsby/packrat |
| pistachio_mp | rate/pistachio_mp |
| pistachio_pro | rate/pistachio_pro |
| pistachio | rate/pistachio |
| plexus75 | checkerboards/plexus75 |
| pursuit40 | checkerboards/pursuit40 |
| qaz | tominabox1/qaz |
| quark | checkerboards/quark |
| rabbit_capture_plan | kakunpc/rabbit_capture_plan |
| rainkeeb | rainkeebs/rainkeeb |
| reviung33 | reviung/reviung33 |
| reviung34 | reviung/reviung34 |
| reviung39 | reviung/reviung39 |
| reviung41 | reviung/reviung41 |
| reviung53 | reviung/reviung53 |
| reviung5 | reviung/reviung5 |
| reviung61 | reviung/reviung61 |
| runner3680/3x6 | omkbd/runner3680/3x6 |
| runner3680/3x7 | omkbd/runner3680/3x7 |
| runner3680/3x8 | omkbd/runner3680/3x8 |
| runner3680/4x6 | omkbd/runner3680/4x6 |
| runner3680/4x7 | omkbd/runner3680/4x7 |
| runner3680/4x8 | omkbd/runner3680/4x8 |
| runner3680/5x6_5x8 | omkbd/runner3680/5x6_5x8 |
| runner3680/5x6 | omkbd/runner3680/5x6 |
| runner3680/5x7 | omkbd/runner3680/5x7 |
| runner3680/5x8 | omkbd/runner3680/5x8 |
| scarletbandana | woodkeys/scarletbandana |
| scythe | kagizaraya/scythe |
| seigaiha | yiancardesigns/seigaiha |
| setta21 | salicylic_acid3/setta21 |
| space_space/rev1 | qpockets/space_space/rev1 |
| space_space/rev2 | qpockets/space_space/rev2 |
| spiderisland/winry25tc | winry/winry25tc |
| splitreus62 | nacly/splitreus62 |
| squiggle/rev1 | ibnuda/squiggle/rev1 |
| standaside | edi/standaside |
| steal_this_keyboard | obosob/steal_this_keyboard |
| stella | hnahkb/stella |
| suihankey/alpha | kakunpc/suihankey/alpha |
| suihankey/rev1 | kakunpc/suihankey/rev1 |
| suihankey/split | kakunpc/suihankey/split |
| thedogkeyboard | kakunpc/thedogkeyboard |
| the_ruler | maple_computing/the_ruler |
| tiger910 | weirdo/tiger910 |
| treadstone32 | marksard/treadstone32 |
| treadstone48/rev1 | marksard/treadstone48/rev1 |
| treadstone48/rev2 | marksard/treadstone48/rev2 |
| txuu | matthewdias/txuu |
| ua62 | nacly/ua62 |
| underscore33/rev1 | tominabox1/underscore33/rev1 |
| underscore33/rev2 | tominabox1/underscore33/rev2 |
| vn66 | hnahkb/vn66 |
| wallaby | kkatano/wallaby |
| wanten | qpockets/wanten |
| whitefox | input_club/whitefox |
| wings42/rev1 | dailycraft/wings42/rev1 |
| wings42/rev1_extkeys | dailycraft/wings42/rev1_extkeys |
| wings42/rev2 | dailycraft/wings42/rev2 |
| yasui | rainkeebs/yasui |
| yd60mq | ymdk/yd60mq |
| yd68 | ydkb/yd68 |
| ymd75 | ymdk/ymd75 |
| ymd96 | ymdk/ymd96 |
| ymdk_np21 | ymdk/np21 |
| yurei | kkatano/yurei |
| zinc | 25keys/zinc |
| zinc/rev1 | 25keys/zinc/rev1 |
| zinc/reva | 25keys/zinc/reva |
2024-05-30 12:00:41 +10:00
## Notable core changes {#notable-core}
2022-02-23 17:33:08 +00:00
2024-05-30 12:00:41 +10:00
### New MCU Support {#new-mcu-support}
2022-02-23 17:33:08 +00:00
Building on previous cycles, QMK firmware picked up support for a couple extra MCU variants:
* STM32L432
* STM32L442
### New Drivers
QMK now has core-supplied support for the following device peripherals:
#### LED
* IS31FL3742A
* IS31FL3743A
* IS31FL3745
* IS31FL3746A
#### GPIO
* SN74x138
* mcp23018
---
## Full changelist
Core:
* Initial pass at data driven new-keyboard subcommand ([#12795 ](https://github.com/qmk/qmk_firmware/pull/12795 ))
* Don't send keyboard reports that propagate no changes to the host ([#14065 ](https://github.com/qmk/qmk_firmware/pull/14065 ))
* Custom matrix lite support for split keyboards ([#14674 ](https://github.com/qmk/qmk_firmware/pull/14674 ))
* Add sym_defer_pr debouncer type ([#14948 ](https://github.com/qmk/qmk_firmware/pull/14948 ))
* Add RGB matrix & LED Matrix support for IS31FL3742A, IS31FL3743A, IS31FL3745, IS31FL3746A ([#14989 ](https://github.com/qmk/qmk_firmware/pull/14989 ))
* New combo configuration options ([#15083 ](https://github.com/qmk/qmk_firmware/pull/15083 ))
* IS31FL3733 driver for LED Matrix ([#15088 ](https://github.com/qmk/qmk_firmware/pull/15088 ))
* Add open-drain GPIO support. ([#15282 ](https://github.com/qmk/qmk_firmware/pull/15282 ))
* Make (un)register code functions weak ([#15285 ](https://github.com/qmk/qmk_firmware/pull/15285 ))
* Split support for pointing devices. ([#15304 ](https://github.com/qmk/qmk_firmware/pull/15304 ))
* Added cancel_key_lock function ([#15321 ](https://github.com/qmk/qmk_firmware/pull/15321 ))
* Remove matrix_is_modified() and debounce_is_active() ([#15349 ](https://github.com/qmk/qmk_firmware/pull/15349 ))
* Change default USB Polling rate to 1kHz ([#15352 ](https://github.com/qmk/qmk_firmware/pull/15352 ))
* Implement MAGIC_TOGGLE_CONTROL_CAPSLOCK ([#15368 ](https://github.com/qmk/qmk_firmware/pull/15368 ))
* Tidy up existing i2c_master implementations ([#15376 ](https://github.com/qmk/qmk_firmware/pull/15376 ))
* Generalize Unicode defines ([#15409 ](https://github.com/qmk/qmk_firmware/pull/15409 ))
* Added external spi flash driver. ([#15419 ](https://github.com/qmk/qmk_firmware/pull/15419 ))
* Remove Deprecated USB Polling comment from vusb.c ([#15420 ](https://github.com/qmk/qmk_firmware/pull/15420 ))
* Expand rotational range for PMW3360 Optical Sensor ([#15431 ](https://github.com/qmk/qmk_firmware/pull/15431 ))
* ChibiOS SVN mirror script update ([#15435 ](https://github.com/qmk/qmk_firmware/pull/15435 ))
* Refactor `bootloader_jump()` implementations ([#15450 ](https://github.com/qmk/qmk_firmware/pull/15450 ))
* added missing audio_off_user() callback ([#15457 ](https://github.com/qmk/qmk_firmware/pull/15457 ))
* Migrate serial_uart usages to UART driver ([#15479 ](https://github.com/qmk/qmk_firmware/pull/15479 ))
* Migrate RN42 to UART driver and refactor ([#15492 ](https://github.com/qmk/qmk_firmware/pull/15492 ))
* pwm3360 driver cleanup and diff reduction to adns9800 ([#15559 ](https://github.com/qmk/qmk_firmware/pull/15559 ))
* Advanced deferred_exec for core-side code. ([#15579 ](https://github.com/qmk/qmk_firmware/pull/15579 ))
* Adjust tap_code16 to account for TAP_HOLD_CAPS_DELAY ([#15635 ](https://github.com/qmk/qmk_firmware/pull/15635 ))
* Slight tidy up of keyboard task loop ([#15725 ](https://github.com/qmk/qmk_firmware/pull/15725 ))
* Unify the key up/down behaviour of RGB keycodes ([#15730 ](https://github.com/qmk/qmk_firmware/pull/15730 ))
* Add PMW3389 optical sensor Support (Updated) ([#15740 ](https://github.com/qmk/qmk_firmware/pull/15740 ))
* ChibiOS: add support for HID Programmable Buttons ([#15787 ](https://github.com/qmk/qmk_firmware/pull/15787 ))
* ChibiOS: shorten USB disconnect state on boot to 50ms ([#15805 ](https://github.com/qmk/qmk_firmware/pull/15805 ))
* Add init function to clear previous matrix effect ([#15815 ](https://github.com/qmk/qmk_firmware/pull/15815 ))
* Optimize initialization of PMW3360 Sensor ([#15821 ](https://github.com/qmk/qmk_firmware/pull/15821 ))
* Add Pixel Flow RGB matrix effect ([#15829 ](https://github.com/qmk/qmk_firmware/pull/15829 ))
* PMW3389 Revert Firmware load during Initilization ([#15859 ](https://github.com/qmk/qmk_firmware/pull/15859 ))
* Combo `TAP_CODE_DELAY` and `clear_weak_mods` ([#15866 ](https://github.com/qmk/qmk_firmware/pull/15866 ))
* Relocate matrix_scan_quantum tasks ([#15882 ](https://github.com/qmk/qmk_firmware/pull/15882 ))
* Adjust mouse key defaults ([#15883 ](https://github.com/qmk/qmk_firmware/pull/15883 ))
* RGB Matrix: Reload from EEPROM ([#15923 ](https://github.com/qmk/qmk_firmware/pull/15923 ))
* Enable a default task throttle for split pointing. ([#15925 ](https://github.com/qmk/qmk_firmware/pull/15925 ))
* Move mcp23018 driver to core ([#15944 ](https://github.com/qmk/qmk_firmware/pull/15944 ))
* Relocate matrix_init_quantum content ([#15953 ](https://github.com/qmk/qmk_firmware/pull/15953 ))
* Align location of some host led logic ([#15954 ](https://github.com/qmk/qmk_firmware/pull/15954 ))
* Rename some Quantum keycodes ([#15968 ](https://github.com/qmk/qmk_firmware/pull/15968 ))
* Migrate more makefile utilities to builddefs sub-directory ([#16002 ](https://github.com/qmk/qmk_firmware/pull/16002 ))
* Various Makefile optimisations ([#16015 ](https://github.com/qmk/qmk_firmware/pull/16015 ))
* Add support for STM32L432, STM32L442. ([#16016 ](https://github.com/qmk/qmk_firmware/pull/16016 ))
* EEPROM refactor: remove `eeprom_teensy.c` by default, use transient instead ([#16020 ](https://github.com/qmk/qmk_firmware/pull/16020 ))
* Deprecate Split Transaction status field ([#16023 ](https://github.com/qmk/qmk_firmware/pull/16023 ))
* Rip out old macro and action_function system ([#16025 ](https://github.com/qmk/qmk_firmware/pull/16025 ))
* Add a script that simplifies running commands under docker. ([#16028 ](https://github.com/qmk/qmk_firmware/pull/16028 ))
* Add support for Q-series on the ckled2001 LED driver ([#16051 ](https://github.com/qmk/qmk_firmware/pull/16051 ))
* Remove unused suspend_idle ([#16063 ](https://github.com/qmk/qmk_firmware/pull/16063 ))
* Initial migration of suspend callbacks ([#16067 ](https://github.com/qmk/qmk_firmware/pull/16067 ))
* Add layout change callbacks to VIA ([#16087 ](https://github.com/qmk/qmk_firmware/pull/16087 ))
* Rename `AdafruitBLE` to `BluefruitLE` ([#16127 ](https://github.com/qmk/qmk_firmware/pull/16127 ))
* Update outputselect to use platform connected state API ([#16185 ](https://github.com/qmk/qmk_firmware/pull/16185 ))
* Remove default pointing device driver. ([#16190 ](https://github.com/qmk/qmk_firmware/pull/16190 ))
* Add SN74x138 demultiplexer driver ([#16217 ](https://github.com/qmk/qmk_firmware/pull/16217 ))
* Standardise error output. ([#16220 ](https://github.com/qmk/qmk_firmware/pull/16220 ))
* Followup to #16220 , more test error output. ([#16221 ](https://github.com/qmk/qmk_firmware/pull/16221 ))
* Misc size regression script improvements. ([#16268 ](https://github.com/qmk/qmk_firmware/pull/16268 ))
* Align existing pca9555 driver to better match mcp23018 API ([#16277 ](https://github.com/qmk/qmk_firmware/pull/16277 ))
* Size checks print out target firmware file instead ([#16290 ](https://github.com/qmk/qmk_firmware/pull/16290 ))
CLI:
* `develop` changelog generator: use the PR title instead ([#15537 ](https://github.com/qmk/qmk_firmware/pull/15537 ))
* `develop` changelog generator: skip code formatting in listing ([#16215 ](https://github.com/qmk/qmk_firmware/pull/16215 ))
Keyboards:
* Durgod: Increase scan rate by using wait_us timer ([#14091 ](https://github.com/qmk/qmk_firmware/pull/14091 ))
* Add another GMMK Pro ANSI Keymap with custom RGB. ([#14243 ](https://github.com/qmk/qmk_firmware/pull/14243 ))
* Parse USB device version BCD ([#14580 ](https://github.com/qmk/qmk_firmware/pull/14580 ))
* Add vitoni keymap for GMMK Pro (ISO) ([#15006 ](https://github.com/qmk/qmk_firmware/pull/15006 ))
* Move bm65hsrgb_iso and bm68hsrgb to rev1/ to prepare for updates to the boards ([#15132 ](https://github.com/qmk/qmk_firmware/pull/15132 ))
* Convert ergoinu to SPLIT_KEYBOARD ([#15305 ](https://github.com/qmk/qmk_firmware/pull/15305 ))
* Convert not_so_minidox to SPLIT_KEYBOARD ([#15306 ](https://github.com/qmk/qmk_firmware/pull/15306 ))
* Added new handwired keyboard Wakizashi 40 ([#15336 ](https://github.com/qmk/qmk_firmware/pull/15336 ))
* Convert ai03/orbit to SPLIT_KEYBOARD ([#15340 ](https://github.com/qmk/qmk_firmware/pull/15340 ))
* Remove manual enable of LTO within user keymaps ([#15378 ](https://github.com/qmk/qmk_firmware/pull/15378 ))
* Move to organization folder ([#15481 ](https://github.com/qmk/qmk_firmware/pull/15481 ))
* Convert some more boards to Matrix Lite ([#15489 ](https://github.com/qmk/qmk_firmware/pull/15489 ))
* Organize Reviung boards into a directory ([#15636 ](https://github.com/qmk/qmk_firmware/pull/15636 ))
* move winry25tc to winry/ ([#15637 ](https://github.com/qmk/qmk_firmware/pull/15637 ))
* Rename ymdk_np21 to np21 + move to ymdk vendor folder ([#15641 ](https://github.com/qmk/qmk_firmware/pull/15641 ))
* move ymd96 to ymdk vendor folder ([#15643 ](https://github.com/qmk/qmk_firmware/pull/15643 ))
* move ymd75 to ymdk vendor folder ([#15645 ](https://github.com/qmk/qmk_firmware/pull/15645 ))
* move yd60mq to ymdk vendor folder ([#15647 ](https://github.com/qmk/qmk_firmware/pull/15647 ))
* rename idobo to idobao/id75, move to vendor folder ([#15661 ](https://github.com/qmk/qmk_firmware/pull/15661 ))
* move ID67 to IDOBAO vendor folder ([#15662 ](https://github.com/qmk/qmk_firmware/pull/15662 ))
* move ID80 to IDOBAO vendor folder ([#15665 ](https://github.com/qmk/qmk_firmware/pull/15665 ))
* move ID87 to IDOBAO vendor folder ([#15667 ](https://github.com/qmk/qmk_firmware/pull/15667 ))
* move montex to IDOBAO vendor folder ([#15668 ](https://github.com/qmk/qmk_firmware/pull/15668 ))
* move @yangdigi 's keyboards to a YDKB folder ([#15681 ](https://github.com/qmk/qmk_firmware/pull/15681 ))
* move @kkatano 's keyboards to kkatano user folder ([#15684 ](https://github.com/qmk/qmk_firmware/pull/15684 ))
* Sol 3 Keyboard from RGBKB ([#15687 ](https://github.com/qmk/qmk_firmware/pull/15687 ))
* move cu24, cu75, cu80/v1 into capsunlocked folder ([#15758 ](https://github.com/qmk/qmk_firmware/pull/15758 ))
* move mechkeys keyboards into the mechkeys/ vendor folder ([#15760 ](https://github.com/qmk/qmk_firmware/pull/15760 ))
* move @lyso1 's boards into lyso1/ ([#15767 ](https://github.com/qmk/qmk_firmware/pull/15767 ))
* move prototypist boards into vendor folder ([#15780 ](https://github.com/qmk/qmk_firmware/pull/15780 ))
* move @yiancar 's boards into yiancardesigns/ ([#15781 ](https://github.com/qmk/qmk_firmware/pull/15781 ))
* move novelkeys keyboards to vendor folder ([#15783 ](https://github.com/qmk/qmk_firmware/pull/15783 ))
* move @weirdo -f 's keyboards into weirdo/ ([#15785 ](https://github.com/qmk/qmk_firmware/pull/15785 ))
* move @marksard 's boards to marksard/ ([#15786 ](https://github.com/qmk/qmk_firmware/pull/15786 ))
* move input club keyboards into vendor folder ([#15788 ](https://github.com/qmk/qmk_firmware/pull/15788 ))
* move @monksoffunk 's boards into 25keys/ ([#15789 ](https://github.com/qmk/qmk_firmware/pull/15789 ))
* move @Salicylic -acid3 's keyboards to salicylic-acid3/ ([#15791 ](https://github.com/qmk/qmk_firmware/pull/15791 ))
* move @rainkeebs 's keyboards to rainkeebs/ ([#15797 ](https://github.com/qmk/qmk_firmware/pull/15797 ))
* move standaside into edi/ ([#15798 ](https://github.com/qmk/qmk_firmware/pull/15798 ))
* move @obosob 's boards into obosob/ ([#15799 ](https://github.com/qmk/qmk_firmware/pull/15799 ))
* move @nacly 's boards to nacly/ ([#15801 ](https://github.com/qmk/qmk_firmware/pull/15801 ))
* move @kakunpc 's keebs into kakunpc/ ([#15814 ](https://github.com/qmk/qmk_firmware/pull/15814 ))
* move @qpocket 's keyboards to qpocket/ ([#15827 ](https://github.com/qmk/qmk_firmware/pull/15827 ))
* BDN9 keymap ([#15924 ](https://github.com/qmk/qmk_firmware/pull/15924 ))
* move @matthewdias 's keebs into matthewdias/ ([#15991 ](https://github.com/qmk/qmk_firmware/pull/15991 ))
* move id80 and id75 to v1 to accommodate for id75 v2 and id80 v3 ([#15992 ](https://github.com/qmk/qmk_firmware/pull/15992 ))
* Remove `action_function()` from LFKeyboards boards ([#15993 ](https://github.com/qmk/qmk_firmware/pull/15993 ))
* move @latincompass (aka @18438880 , @haierwangwei2005 )'s boards to /latincompass ([#16039 ](https://github.com/qmk/qmk_firmware/pull/16039 ))
* move g heavy industry boards into /gboards ([#16040 ](https://github.com/qmk/qmk_firmware/pull/16040 ))
* move @drhigsby 's boards into /drhigsby ([#16041 ](https://github.com/qmk/qmk_firmware/pull/16041 ))
* More keyboard rules.mk cleanups ([#16044 ](https://github.com/qmk/qmk_firmware/pull/16044 ))
* move @That -Canadian 's boards into /maple_computing ([#16050 ](https://github.com/qmk/qmk_firmware/pull/16050 ))
* move @takai 's keyboards into /recompile_keys ([#16053 ](https://github.com/qmk/qmk_firmware/pull/16053 ))
* move @satt99 's comet46 to satt/ ([#16059 ](https://github.com/qmk/qmk_firmware/pull/16059 ))
* move @ka2hiro 's boards into /kagizaraya ([#16070 ](https://github.com/qmk/qmk_firmware/pull/16070 ))
* move @GlenPickle 's chimera* boards into a folder ([#16072 ](https://github.com/qmk/qmk_firmware/pull/16072 ))
* move @yynmt 's boards into /yynmt ([#16075 ](https://github.com/qmk/qmk_firmware/pull/16075 ))
* move @Biacco42 's keebs into /biacco42 ([#16080 ](https://github.com/qmk/qmk_firmware/pull/16080 ))
* move unikeyboard boards to /unikeyboard ([#16081 ](https://github.com/qmk/qmk_firmware/pull/16081 ))
* move four_banger to bpiphany ([#16082 ](https://github.com/qmk/qmk_firmware/pull/16082 ))
* move @takashiski 's keebs into /takashiski ([#16089 ](https://github.com/qmk/qmk_firmware/pull/16089 ))
* move hid_liber to /bpiphany ([#16091 ](https://github.com/qmk/qmk_firmware/pull/16091 ))
* move spaceholdings boards into /spaceholdings ([#16096 ](https://github.com/qmk/qmk_firmware/pull/16096 ))
* move @7 -rate 's keebs to /rate ([#16099 ](https://github.com/qmk/qmk_firmware/pull/16099 ))
* move @npspears 's boards into /checkerboards ([#16100 ](https://github.com/qmk/qmk_firmware/pull/16100 ))
* move @vuhopkep 's keebs into /hnahkb ([#16102 ](https://github.com/qmk/qmk_firmware/pull/16102 ))
* move @ibnuda 's keebs into /ibnuda ([#16108 ](https://github.com/qmk/qmk_firmware/pull/16108 ))
* move @tominabox1 's keebs into /tominabox1 ([#16109 ](https://github.com/qmk/qmk_firmware/pull/16109 ))
* move niu_mini to /kbdfans ([#16112 ](https://github.com/qmk/qmk_firmware/pull/16112 ))
* move woodkeys.click keyboards to /woodkeys ([#16113 ](https://github.com/qmk/qmk_firmware/pull/16113 ))
* move @omkbd 's boards to /omkbd ([#16116 ](https://github.com/qmk/qmk_firmware/pull/16116 ))
* Overhaul Tractyl Manuform ([#16134 ](https://github.com/qmk/qmk_firmware/pull/16134 ))
* Reduce firmware size for dztech/dz60rgb_wkl/v2_1:via ([#16254 ](https://github.com/qmk/qmk_firmware/pull/16254 ))
Keyboard fixes:
* Fix build failure for UT47 ([#15483 ](https://github.com/qmk/qmk_firmware/pull/15483 ))
* Update grs_70ec to use newer custom matrix ([#15609 ](https://github.com/qmk/qmk_firmware/pull/15609 ))
* fix compiler issue with Tractyl Manuform 4x6 ([#15646 ](https://github.com/qmk/qmk_firmware/pull/15646 ))
* Fix CI. ([#15828 ](https://github.com/qmk/qmk_firmware/pull/15828 ))
* Yet another bad `DEFAULT_FOLDER` fix. ([#15904 ](https://github.com/qmk/qmk_firmware/pull/15904 ))
* Fix build failures for `mschwingen/modelm` ([#15987 ](https://github.com/qmk/qmk_firmware/pull/15987 ))
* `rocketboard_16` : Fix mismatched LUT sizes ([#15997 ](https://github.com/qmk/qmk_firmware/pull/15997 ))
* Fix erroneous SRC for Clueboard 66 hotswap ([#16007 ](https://github.com/qmk/qmk_firmware/pull/16007 ))
* Fix handwired/ms_sculpt_mobile default keymap ([#16032 ](https://github.com/qmk/qmk_firmware/pull/16032 ))
* Re-org Hillside folders as new model prep. Fix default keymap. ([#16128 ](https://github.com/qmk/qmk_firmware/pull/16128 ))
* Fix up default folder locations. Again. ([#16135 ](https://github.com/qmk/qmk_firmware/pull/16135 ))
* Sol3 rgb fix ([#16157 ](https://github.com/qmk/qmk_firmware/pull/16157 ))
* Add missing `BOOTLOADER` for a handful of boards ([#16225 ](https://github.com/qmk/qmk_firmware/pull/16225 ))
* Remove half implemented micronucleus bootloader support ([#16252 ](https://github.com/qmk/qmk_firmware/pull/16252 ))
* Fixup bootloaders. ([#16256 ](https://github.com/qmk/qmk_firmware/pull/16256 ))
* Fix idobao/id80/v3 compilation errors ([#16280 ](https://github.com/qmk/qmk_firmware/pull/16280 ))
* Remove parent-relative paths from keyboards. ([#16282 ](https://github.com/qmk/qmk_firmware/pull/16282 ))
* Bodge for helix build failures ([#16376 ](https://github.com/qmk/qmk_firmware/pull/16376 ))
Others:
* Add a clarification to an error message ([#15207 ](https://github.com/qmk/qmk_firmware/pull/15207 ))
* Clang-format tweaks ([#15906 ](https://github.com/qmk/qmk_firmware/pull/15906 ))
* Add example implementations for compatible MCUs list ([#15935 ](https://github.com/qmk/qmk_firmware/pull/15935 ))
* Add version.h to gitignore ([#16222 ](https://github.com/qmk/qmk_firmware/pull/16222 ))
* Update keyboard mapping for all moved boards this cycle ([#16312 ](https://github.com/qmk/qmk_firmware/pull/16312 ))
* Align docs to new-keyboard behaviour ([#16357 ](https://github.com/qmk/qmk_firmware/pull/16357 ))
* Align new-keyboard with recent schema updates ([#16378 ](https://github.com/qmk/qmk_firmware/pull/16378 ))
Bugs:
* Fixes potential wpm sampling overflow, along with code comment fixes ([#15277 ](https://github.com/qmk/qmk_firmware/pull/15277 ))
* Add missing define for unicode common ([#15416 ](https://github.com/qmk/qmk_firmware/pull/15416 ))
* Fix for SPI write timing in PMW3360 driver ([#15519 ](https://github.com/qmk/qmk_firmware/pull/15519 ))
* Documentation Typo fix ([#15538 ](https://github.com/qmk/qmk_firmware/pull/15538 ))
* fix a typo ([#15557 ](https://github.com/qmk/qmk_firmware/pull/15557 ))
* Fix avr serial compile ([#15589 ](https://github.com/qmk/qmk_firmware/pull/15589 ))
* More AVR GPIO compilation fixes. ([#15592 ](https://github.com/qmk/qmk_firmware/pull/15592 ))
* Fix bug and code regression for Split Common ([#15603 ](https://github.com/qmk/qmk_firmware/pull/15603 ))
* Include missing string.h include in split ([#15606 ](https://github.com/qmk/qmk_firmware/pull/15606 ))
* Fixes for bootloader refactor build failures ([#15638 ](https://github.com/qmk/qmk_firmware/pull/15638 ))
* Update pmw3360 driver after reading the datasheet top to bottom. Fix some outdated refs. ([#15682 ](https://github.com/qmk/qmk_firmware/pull/15682 ))
* Fix split pointing for analog joystick ([#15691 ](https://github.com/qmk/qmk_firmware/pull/15691 ))
* Fix broken bootloader builds in develop. ([#15880 ](https://github.com/qmk/qmk_firmware/pull/15880 ))
* Fix optical sensor firmware upload ([#15919 ](https://github.com/qmk/qmk_firmware/pull/15919 ))
* Pass in the keyrecord_t of the dual-role/tapping key when calling per-key tap hold functions ([#15938 ](https://github.com/qmk/qmk_firmware/pull/15938 ))
* fixed typo in orange HSV colors decalartion ([#15976 ](https://github.com/qmk/qmk_firmware/pull/15976 ))
* Fix hack for chibiOS reset name ([#15984 ](https://github.com/qmk/qmk_firmware/pull/15984 ))
* Fix right side ws2812 leds having two indices ([#15985 ](https://github.com/qmk/qmk_firmware/pull/15985 ))
* Workaround in Makefile for recursive rule matching ([#15988 ](https://github.com/qmk/qmk_firmware/pull/15988 ))
* Fix BACKLIGHT_CAPS_LOCK warning ([#15999 ](https://github.com/qmk/qmk_firmware/pull/15999 ))
* Fix compilation issues for led indicators ([#16001 ](https://github.com/qmk/qmk_firmware/pull/16001 ))
* ChibiOS timer fixes ([#16017 ](https://github.com/qmk/qmk_firmware/pull/16017 ))
* Fix bootloader_jump for certain CTRL boards ([#16026 ](https://github.com/qmk/qmk_firmware/pull/16026 ))
* Fix up issue with PROGMEM and hand_swap_config ([#16027 ](https://github.com/qmk/qmk_firmware/pull/16027 ))
* Don't make EEPROM size assumptions with dynamic keymaps. ([#16054 ](https://github.com/qmk/qmk_firmware/pull/16054 ))
* fix missed .noci in reviung move ([#16107 ](https://github.com/qmk/qmk_firmware/pull/16107 ))
* Fix issues with Python Tests ([#16162 ](https://github.com/qmk/qmk_firmware/pull/16162 ))
* Fixup multibuild filegen ([#16166 ](https://github.com/qmk/qmk_firmware/pull/16166 ))
* Remove old .gitignore entry. Add more macOS junk exclusions. ([#16167 ](https://github.com/qmk/qmk_firmware/pull/16167 ))
* Fixup builds so that teensy EEPROM knows which MCU it's targeting. ([#16168 ](https://github.com/qmk/qmk_firmware/pull/16168 ))
* Create a build error if no bootloader is specified. ([#16181 ](https://github.com/qmk/qmk_firmware/pull/16181 ))
* Ensure `version.h` is recreated each build. ([#16188 ](https://github.com/qmk/qmk_firmware/pull/16188 ))
* Add `custom` to list of valid bootloader types in info.json ([#16228 ](https://github.com/qmk/qmk_firmware/pull/16228 ))
* Fix `layer_state` restoration at end of dynamic macro feature #16208 ([#16230 ](https://github.com/qmk/qmk_firmware/pull/16230 ))
* Minor additions #12795 ([#16276 ](https://github.com/qmk/qmk_firmware/pull/16276 ))
* Various fixes for matrix _RIGHT handling ([#16292 ](https://github.com/qmk/qmk_firmware/pull/16292 ))
* Fix slashes in build_full_test.mk ([#16300 ](https://github.com/qmk/qmk_firmware/pull/16300 ))
* ps2/avr: use the correct file name ([#16316 ](https://github.com/qmk/qmk_firmware/pull/16316 ))
* Fix compilation of ChibiOS UART driver ([#16348 ](https://github.com/qmk/qmk_firmware/pull/16348 ))
* Various fixes for new-keyboard ([#16358 ](https://github.com/qmk/qmk_firmware/pull/16358 ))
* Allow NO_PIN within data driven configuration ([#16359 ](https://github.com/qmk/qmk_firmware/pull/16359 ))