# QMK Breaking Changes - 2022 February 26 Changelog ## Notable Features {#notable-features} ### 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. See the [Pointing Device](../feature_pointing_device) documentation for further configuration options. ## Changes Requiring User Action {#changes-requiring-user-action} ### Legacy macro and action_function system removed ([#16025](https://github.com/qmk/qmk_firmware/pull/16025)) 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). ### 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. ### Updated Keyboard Codebases {#updated-keyboard-codebases} 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 | ## Notable core changes {#notable-core} ### New MCU Support {#new-mcu-support} 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))