20220226.md (37267B)
1 # QMK Breaking Changes - 2022 February 26 Changelog 2 3 ## Notable Features {#notable-features} 4 5 ### Default USB Polling rate now 1kHz ([#15352](https://github.com/qmk/qmk_firmware/pull/15352)) 6 7 The default USB Polling rate has been aligned across supported platforms to now be 1ms/1kHz. 8 9 Something something *Lets go gamers!* 10 11 ### Split support for pointing devices ([#15304](https://github.com/qmk/qmk_firmware/pull/15304)) 12 13 Pointing devices can now be shared across a split keyboard with support for a single pointing device or a pointing device on each side. 14 15 See the [Pointing Device](../features/pointing_device) documentation for further configuration options. 16 17 ## Changes Requiring User Action {#changes-requiring-user-action} 18 19 ### Legacy macro and action_function system removed ([#16025](https://github.com/qmk/qmk_firmware/pull/16025)) 20 21 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). 22 23 ### Create a build error if no bootloader is specified ([#16181](https://github.com/qmk/qmk_firmware/pull/16181)) 24 25 Bootloader configuration is no longer assumed. Keyboards must now set either: 26 27 * `BOOTLOADER` within `rules.mk` 28 * `bootloader` within `info.json` 29 30 ### Rename `AdafruitBLE` to `BluefruitLE` ([#16127](https://github.com/qmk/qmk_firmware/pull/16127)) 31 32 In preparation of future bluetooth work, the `AdafruitBLE` integration has been renamed to allow potential for any other Adafruit BLE products. 33 34 ### Updated Keyboard Codebases {#updated-keyboard-codebases} 35 36 The following keyboards have had their source moved within QMK: 37 38 | Old Keyboard Name | New Keyboard Name | 39 |----------------------------|------------------------------------| 40 | 6ball | maple_computing/6ball | 41 | 7skb | salicylic_acid3/7skb | 42 | 7splus | salicylic_acid3/7splus | 43 | acr60 | mechkeys/acr60 | 44 | adalyn | tominabox1/adalyn | 45 | ajisai74 | salicylic_acid3/ajisai74 | 46 | aleth42 | 25keys/aleth42 | 47 | alicia_cook | ibnuda/alicia_cook | 48 | allison_numpad | prototypist/allison_numpad | 49 | allison | prototypist/allison | 50 | alu84 | mechkeys/alu84 | 51 | angel17 | kakunpc/angel17 | 52 | angel64/alpha | kakunpc/angel64/alpha | 53 | angel64/rev1 | kakunpc/angel64/rev1 | 54 | arch_36 | obosob/arch_36 | 55 | bakeneko60 | kkatano/bakeneko60 | 56 | bakeneko65/rev2 | kkatano/bakeneko65/rev2 | 57 | bakeneko65/rev3 | kkatano/bakeneko65/rev3 | 58 | bakeneko80 | kkatano/bakeneko80 | 59 | barleycorn | yiancardesigns/barleycorn | 60 | bat43/rev1 | dailycraft/bat43/rev1 | 61 | bat43/rev2 | dailycraft/bat43/rev2 | 62 | bigseries/1key | woodkeys/bigseries/1key | 63 | bigseries/2key | woodkeys/bigseries/2key | 64 | bigseries/3key | woodkeys/bigseries/3key | 65 | bigseries/4key | woodkeys/bigseries/4key | 66 | bkf | drhigsby/bkf | 67 | business_card/alpha | kakunpc/business_card/alpha | 68 | business_card/beta | kakunpc/business_card/beta | 69 | butterstick | gboards/butterstick | 70 | c39 | maple_computing/c39 | 71 | cassette42 | 25keys/cassette42 | 72 | chidori | kagizaraya/chidori | 73 | chili | ydkb/chili | 74 | chimera_ergo | glenpickle/chimera_ergo | 75 | chimera_ls | glenpickle/chimera_ls | 76 | chimera_ortho | glenpickle/chimera_ortho | 77 | chimera_ortho_plus | glenpickle/chimera_ortho_plus | 78 | choco60 | recompile_keys/choco60 | 79 | choc_taro | kakunpc/choc_taro | 80 | christmas_tree | maple_computing/christmas_tree | 81 | claw44/rev1 | dailycraft/claw44/rev1 | 82 | cocoa40 | recompile_keys/cocoa40 | 83 | comet46 | satt/comet46 | 84 | cu24 | capsunlocked/cu24 | 85 | cu75 | capsunlocked/cu75 | 86 | cu80 | capsunlocked/cu80/v1 | 87 | delilah | rainkeebs/delilah | 88 | diverge3 | unikeyboard/diverge3 | 89 | divergetm2 | unikeyboard/divergetm2 | 90 | dozen0 | yynmt/dozen0 | 91 | dubba175 | drhigsby/dubba175 | 92 | eggman | qpockets/eggman | 93 | ergo42 | biacco42/ergo42 | 94 | ergoarrows | salicylic_acid3/ergoarrows | 95 | ergodash/mini | omkbd/ergodash/mini | 96 | ergodash/rev1 | omkbd/ergodash/rev1 | 97 | ergodox_infinity | input_club/ergodox_infinity | 98 | ergotaco | gboards/ergotaco | 99 | espectro | mechkeys/espectro | 100 | felix | unikeyboard/felix | 101 | four_banger | bpiphany/four_banger | 102 | freyr | hnahkb/freyr | 103 | geminate60 | weirdo/geminate60 | 104 | georgi | gboards/georgi | 105 | gergo | gboards/gergo | 106 | getta25 | salicylic_acid3/getta25 | 107 | gingham | yiancardesigns/gingham | 108 | gurindam | ibnuda/gurindam | 109 | halberd | kagizaraya/halberd | 110 | hecomi/alpha | takashiski/hecomi/alpha | 111 | hid_liber | bpiphany/hid_liber | 112 | id67/default_rgb | idobao/id67/default_rgb | 113 | id67/rgb | idobao/id67/rgb | 114 | id80 | idobao/id80/v1 | 115 | id87 | idobao/id87/v1 | 116 | idobo | idobao/id75/v1 | 117 | infinity60 | input_club/infinity60 | 118 | ivy/rev1 | maple_computing/ivy/rev1 | 119 | jisplit89 | salicylic_acid3/jisplit89 | 120 | jnao | maple_computing/jnao | 121 | just60 | ydkb/just60 | 122 | kagamidget | yynmt/kagamidget | 123 | kelowna/rgb64 | weirdo/kelowna/rgb64 | 124 | kprepublic/bm65hsrgb_iso | kprepublic/bm65hsrgb_iso/rev1 | 125 | kprepublic/bm68hsrgb | kprepublic/bm68hsrgb/rev1 | 126 | k_type | input_club/k_type | 127 | latin17rgb | latincompass/latin17rgb | 128 | latin47ble | latincompass/latin47ble | 129 | latin60rgb | latincompass/latin60rgb | 130 | latin64ble | latincompass/latin64ble | 131 | latin6rgb | latincompass/latin6rgb | 132 | latinpadble | latincompass/latinpadble | 133 | latinpad | latincompass/latinpad | 134 | launchpad/rev1 | maple_computing/launchpad/rev1 | 135 | lck75 | lyso1/lck75 | 136 | le_chiffre | tominabox1/le_chiffre | 137 | lefishe | lyso1/lefishe | 138 | lets_split_eh/eh | maple_computing/lets_split_eh/eh | 139 | ls_60 | weirdo/ls_60 | 140 | m3n3van | matthewdias/m3n3van | 141 | mechmini/v1 | mechkeys/mechmini/v1 | 142 | mechmini/v2 | mechkeys/mechmini/v2 | 143 | meira | woodkeys/meira | 144 | meishi2 | biacco42/meishi2 | 145 | meishi | biacco42/meishi | 146 | minidox/rev1 | maple_computing/minidox/rev1 | 147 | minim | matthewdias/minim | 148 | mio | recompile_keys/mio | 149 | model_v | matthewdias/model_v | 150 | montex | idobao/montex/v1 | 151 | nafuda | salicylic_acid3/nafuda | 152 | naiping/np64 | weirdo/naiping/np64 | 153 | naiping/nphhkb | weirdo/naiping/nphhkb | 154 | naiping/npminila | weirdo/naiping/npminila | 155 | naked48 | salicylic_acid3/naked48 | 156 | naked60 | salicylic_acid3/naked60 | 157 | naked64 | salicylic_acid3/naked64 | 158 | namecard2x4 | takashiski/namecard2x4 | 159 | nebula12 | spaceholdings/nebula12 | 160 | nebula68b | spaceholdings/nebula68b | 161 | nebula68 | spaceholdings/nebula68 | 162 | niu_mini | kbdfans/niu_mini | 163 | nk1 | novelkeys/nk1 | 164 | nk65 | novelkeys/nk65 | 165 | nk87 | novelkeys/nk87 | 166 | nknl7en | salicylic_acid3/nknl7en | 167 | nknl7jp | salicylic_acid3/nknl7jp | 168 | nomu30 | recompile_keys/nomu30 | 169 | novelpad | novelkeys/novelpad | 170 | ogurec | drhigsby/ogurec | 171 | otaku_split/rev0 | takashiski/otaku_split/rev0 | 172 | otaku_split/rev1 | takashiski/otaku_split/rev1 | 173 | owl8 | dailycraft/owl8 | 174 | packrat | drhigsby/packrat | 175 | pistachio_mp | rate/pistachio_mp | 176 | pistachio_pro | rate/pistachio_pro | 177 | pistachio | rate/pistachio | 178 | plexus75 | checkerboards/plexus75 | 179 | pursuit40 | checkerboards/pursuit40 | 180 | qaz | tominabox1/qaz | 181 | quark | checkerboards/quark | 182 | rabbit_capture_plan | kakunpc/rabbit_capture_plan | 183 | rainkeeb | rainkeebs/rainkeeb | 184 | reviung33 | reviung/reviung33 | 185 | reviung34 | reviung/reviung34 | 186 | reviung39 | reviung/reviung39 | 187 | reviung41 | reviung/reviung41 | 188 | reviung53 | reviung/reviung53 | 189 | reviung5 | reviung/reviung5 | 190 | reviung61 | reviung/reviung61 | 191 | runner3680/3x6 | omkbd/runner3680/3x6 | 192 | runner3680/3x7 | omkbd/runner3680/3x7 | 193 | runner3680/3x8 | omkbd/runner3680/3x8 | 194 | runner3680/4x6 | omkbd/runner3680/4x6 | 195 | runner3680/4x7 | omkbd/runner3680/4x7 | 196 | runner3680/4x8 | omkbd/runner3680/4x8 | 197 | runner3680/5x6_5x8 | omkbd/runner3680/5x6_5x8 | 198 | runner3680/5x6 | omkbd/runner3680/5x6 | 199 | runner3680/5x7 | omkbd/runner3680/5x7 | 200 | runner3680/5x8 | omkbd/runner3680/5x8 | 201 | scarletbandana | woodkeys/scarletbandana | 202 | scythe | kagizaraya/scythe | 203 | seigaiha | yiancardesigns/seigaiha | 204 | setta21 | salicylic_acid3/setta21 | 205 | space_space/rev1 | qpockets/space_space/rev1 | 206 | space_space/rev2 | qpockets/space_space/rev2 | 207 | spiderisland/winry25tc | winry/winry25tc | 208 | splitreus62 | nacly/splitreus62 | 209 | squiggle/rev1 | ibnuda/squiggle/rev1 | 210 | standaside | edi/standaside | 211 | steal_this_keyboard | obosob/steal_this_keyboard | 212 | stella | hnahkb/stella | 213 | suihankey/alpha | kakunpc/suihankey/alpha | 214 | suihankey/rev1 | kakunpc/suihankey/rev1 | 215 | suihankey/split | kakunpc/suihankey/split | 216 | thedogkeyboard | kakunpc/thedogkeyboard | 217 | the_ruler | maple_computing/the_ruler | 218 | tiger910 | weirdo/tiger910 | 219 | treadstone32 | marksard/treadstone32 | 220 | treadstone48/rev1 | marksard/treadstone48/rev1 | 221 | treadstone48/rev2 | marksard/treadstone48/rev2 | 222 | txuu | matthewdias/txuu | 223 | ua62 | nacly/ua62 | 224 | underscore33/rev1 | tominabox1/underscore33/rev1 | 225 | underscore33/rev2 | tominabox1/underscore33/rev2 | 226 | vn66 | hnahkb/vn66 | 227 | wallaby | kkatano/wallaby | 228 | wanten | qpockets/wanten | 229 | whitefox | input_club/whitefox | 230 | wings42/rev1 | dailycraft/wings42/rev1 | 231 | wings42/rev1_extkeys | dailycraft/wings42/rev1_extkeys | 232 | wings42/rev2 | dailycraft/wings42/rev2 | 233 | yasui | rainkeebs/yasui | 234 | yd60mq | ymdk/yd60mq | 235 | yd68 | ydkb/yd68 | 236 | ymd75 | ymdk/ymd75 | 237 | ymd96 | ymdk/ymd96 | 238 | ymdk_np21 | ymdk/np21 | 239 | yurei | kkatano/yurei | 240 | zinc | 25keys/zinc | 241 | zinc/rev1 | 25keys/zinc/rev1 | 242 | zinc/reva | 25keys/zinc/reva | 243 244 ## Notable core changes {#notable-core} 245 246 ### New MCU Support {#new-mcu-support} 247 248 Building on previous cycles, QMK firmware picked up support for a couple extra MCU variants: 249 250 * STM32L432 251 * STM32L442 252 253 ### New Drivers 254 255 QMK now has core-supplied support for the following device peripherals: 256 257 #### LED 258 259 * IS31FL3742A 260 * IS31FL3743A 261 * IS31FL3745 262 * IS31FL3746A 263 264 #### GPIO 265 266 * SN74x138 267 * mcp23018 268 269 --- 270 271 ## Full changelist 272 273 Core: 274 * Initial pass at data driven new-keyboard subcommand ([#12795](https://github.com/qmk/qmk_firmware/pull/12795)) 275 * Don't send keyboard reports that propagate no changes to the host ([#14065](https://github.com/qmk/qmk_firmware/pull/14065)) 276 * Custom matrix lite support for split keyboards ([#14674](https://github.com/qmk/qmk_firmware/pull/14674)) 277 * Add sym_defer_pr debouncer type ([#14948](https://github.com/qmk/qmk_firmware/pull/14948)) 278 * Add RGB matrix & LED Matrix support for IS31FL3742A, IS31FL3743A, IS31FL3745, IS31FL3746A ([#14989](https://github.com/qmk/qmk_firmware/pull/14989)) 279 * New combo configuration options ([#15083](https://github.com/qmk/qmk_firmware/pull/15083)) 280 * IS31FL3733 driver for LED Matrix ([#15088](https://github.com/qmk/qmk_firmware/pull/15088)) 281 * Add open-drain GPIO support. ([#15282](https://github.com/qmk/qmk_firmware/pull/15282)) 282 * Make (un)register code functions weak ([#15285](https://github.com/qmk/qmk_firmware/pull/15285)) 283 * Split support for pointing devices. ([#15304](https://github.com/qmk/qmk_firmware/pull/15304)) 284 * Added cancel_key_lock function ([#15321](https://github.com/qmk/qmk_firmware/pull/15321)) 285 * Remove matrix_is_modified() and debounce_is_active() ([#15349](https://github.com/qmk/qmk_firmware/pull/15349)) 286 * Change default USB Polling rate to 1kHz ([#15352](https://github.com/qmk/qmk_firmware/pull/15352)) 287 * Implement MAGIC_TOGGLE_CONTROL_CAPSLOCK ([#15368](https://github.com/qmk/qmk_firmware/pull/15368)) 288 * Tidy up existing i2c_master implementations ([#15376](https://github.com/qmk/qmk_firmware/pull/15376)) 289 * Generalize Unicode defines ([#15409](https://github.com/qmk/qmk_firmware/pull/15409)) 290 * Added external spi flash driver. ([#15419](https://github.com/qmk/qmk_firmware/pull/15419)) 291 * Remove Deprecated USB Polling comment from vusb.c ([#15420](https://github.com/qmk/qmk_firmware/pull/15420)) 292 * Expand rotational range for PMW3360 Optical Sensor ([#15431](https://github.com/qmk/qmk_firmware/pull/15431)) 293 * ChibiOS SVN mirror script update ([#15435](https://github.com/qmk/qmk_firmware/pull/15435)) 294 * Refactor `bootloader_jump()` implementations ([#15450](https://github.com/qmk/qmk_firmware/pull/15450)) 295 * added missing audio_off_user() callback ([#15457](https://github.com/qmk/qmk_firmware/pull/15457)) 296 * Migrate serial_uart usages to UART driver ([#15479](https://github.com/qmk/qmk_firmware/pull/15479)) 297 * Migrate RN42 to UART driver and refactor ([#15492](https://github.com/qmk/qmk_firmware/pull/15492)) 298 * pwm3360 driver cleanup and diff reduction to adns9800 ([#15559](https://github.com/qmk/qmk_firmware/pull/15559)) 299 * Advanced deferred_exec for core-side code. ([#15579](https://github.com/qmk/qmk_firmware/pull/15579)) 300 * Adjust tap_code16 to account for TAP_HOLD_CAPS_DELAY ([#15635](https://github.com/qmk/qmk_firmware/pull/15635)) 301 * Slight tidy up of keyboard task loop ([#15725](https://github.com/qmk/qmk_firmware/pull/15725)) 302 * Unify the key up/down behaviour of RGB keycodes ([#15730](https://github.com/qmk/qmk_firmware/pull/15730)) 303 * Add PMW3389 optical sensor Support (Updated) ([#15740](https://github.com/qmk/qmk_firmware/pull/15740)) 304 * ChibiOS: add support for HID Programmable Buttons ([#15787](https://github.com/qmk/qmk_firmware/pull/15787)) 305 * ChibiOS: shorten USB disconnect state on boot to 50ms ([#15805](https://github.com/qmk/qmk_firmware/pull/15805)) 306 * Add init function to clear previous matrix effect ([#15815](https://github.com/qmk/qmk_firmware/pull/15815)) 307 * Optimize initialization of PMW3360 Sensor ([#15821](https://github.com/qmk/qmk_firmware/pull/15821)) 308 * Add Pixel Flow RGB matrix effect ([#15829](https://github.com/qmk/qmk_firmware/pull/15829)) 309 * PMW3389 Revert Firmware load during Initilization ([#15859](https://github.com/qmk/qmk_firmware/pull/15859)) 310 * Combo `TAP_CODE_DELAY` and `clear_weak_mods` ([#15866](https://github.com/qmk/qmk_firmware/pull/15866)) 311 * Relocate matrix_scan_quantum tasks ([#15882](https://github.com/qmk/qmk_firmware/pull/15882)) 312 * Adjust mouse key defaults ([#15883](https://github.com/qmk/qmk_firmware/pull/15883)) 313 * RGB Matrix: Reload from EEPROM ([#15923](https://github.com/qmk/qmk_firmware/pull/15923)) 314 * Enable a default task throttle for split pointing. ([#15925](https://github.com/qmk/qmk_firmware/pull/15925)) 315 * Move mcp23018 driver to core ([#15944](https://github.com/qmk/qmk_firmware/pull/15944)) 316 * Relocate matrix_init_quantum content ([#15953](https://github.com/qmk/qmk_firmware/pull/15953)) 317 * Align location of some host led logic ([#15954](https://github.com/qmk/qmk_firmware/pull/15954)) 318 * Rename some Quantum keycodes ([#15968](https://github.com/qmk/qmk_firmware/pull/15968)) 319 * Migrate more makefile utilities to builddefs sub-directory ([#16002](https://github.com/qmk/qmk_firmware/pull/16002)) 320 * Various Makefile optimisations ([#16015](https://github.com/qmk/qmk_firmware/pull/16015)) 321 * Add support for STM32L432, STM32L442. ([#16016](https://github.com/qmk/qmk_firmware/pull/16016)) 322 * EEPROM refactor: remove `eeprom_teensy.c` by default, use transient instead ([#16020](https://github.com/qmk/qmk_firmware/pull/16020)) 323 * Deprecate Split Transaction status field ([#16023](https://github.com/qmk/qmk_firmware/pull/16023)) 324 * Rip out old macro and action_function system ([#16025](https://github.com/qmk/qmk_firmware/pull/16025)) 325 * Add a script that simplifies running commands under docker. ([#16028](https://github.com/qmk/qmk_firmware/pull/16028)) 326 * Add support for Q-series on the ckled2001 LED driver ([#16051](https://github.com/qmk/qmk_firmware/pull/16051)) 327 * Remove unused suspend_idle ([#16063](https://github.com/qmk/qmk_firmware/pull/16063)) 328 * Initial migration of suspend callbacks ([#16067](https://github.com/qmk/qmk_firmware/pull/16067)) 329 * Add layout change callbacks to VIA ([#16087](https://github.com/qmk/qmk_firmware/pull/16087)) 330 * Rename `AdafruitBLE` to `BluefruitLE` ([#16127](https://github.com/qmk/qmk_firmware/pull/16127)) 331 * Update outputselect to use platform connected state API ([#16185](https://github.com/qmk/qmk_firmware/pull/16185)) 332 * Remove default pointing device driver. ([#16190](https://github.com/qmk/qmk_firmware/pull/16190)) 333 * Add SN74x138 demultiplexer driver ([#16217](https://github.com/qmk/qmk_firmware/pull/16217)) 334 * Standardise error output. ([#16220](https://github.com/qmk/qmk_firmware/pull/16220)) 335 * Followup to #16220, more test error output. ([#16221](https://github.com/qmk/qmk_firmware/pull/16221)) 336 * Misc size regression script improvements. ([#16268](https://github.com/qmk/qmk_firmware/pull/16268)) 337 * Align existing pca9555 driver to better match mcp23018 API ([#16277](https://github.com/qmk/qmk_firmware/pull/16277)) 338 * Size checks print out target firmware file instead ([#16290](https://github.com/qmk/qmk_firmware/pull/16290)) 339 340 CLI: 341 * `develop` changelog generator: use the PR title instead ([#15537](https://github.com/qmk/qmk_firmware/pull/15537)) 342 * `develop` changelog generator: skip code formatting in listing ([#16215](https://github.com/qmk/qmk_firmware/pull/16215)) 343 344 Keyboards: 345 * Durgod: Increase scan rate by using wait_us timer ([#14091](https://github.com/qmk/qmk_firmware/pull/14091)) 346 * Add another GMMK Pro ANSI Keymap with custom RGB. ([#14243](https://github.com/qmk/qmk_firmware/pull/14243)) 347 * Parse USB device version BCD ([#14580](https://github.com/qmk/qmk_firmware/pull/14580)) 348 * Add vitoni keymap for GMMK Pro (ISO) ([#15006](https://github.com/qmk/qmk_firmware/pull/15006)) 349 * Move bm65hsrgb_iso and bm68hsrgb to rev1/ to prepare for updates to the boards ([#15132](https://github.com/qmk/qmk_firmware/pull/15132)) 350 * Convert ergoinu to SPLIT_KEYBOARD ([#15305](https://github.com/qmk/qmk_firmware/pull/15305)) 351 * Convert not_so_minidox to SPLIT_KEYBOARD ([#15306](https://github.com/qmk/qmk_firmware/pull/15306)) 352 * Added new handwired keyboard Wakizashi 40 ([#15336](https://github.com/qmk/qmk_firmware/pull/15336)) 353 * Convert ai03/orbit to SPLIT_KEYBOARD ([#15340](https://github.com/qmk/qmk_firmware/pull/15340)) 354 * Remove manual enable of LTO within user keymaps ([#15378](https://github.com/qmk/qmk_firmware/pull/15378)) 355 * Move to organization folder ([#15481](https://github.com/qmk/qmk_firmware/pull/15481)) 356 * Convert some more boards to Matrix Lite ([#15489](https://github.com/qmk/qmk_firmware/pull/15489)) 357 * Organize Reviung boards into a directory ([#15636](https://github.com/qmk/qmk_firmware/pull/15636)) 358 * move winry25tc to winry/ ([#15637](https://github.com/qmk/qmk_firmware/pull/15637)) 359 * Rename ymdk_np21 to np21 + move to ymdk vendor folder ([#15641](https://github.com/qmk/qmk_firmware/pull/15641)) 360 * move ymd96 to ymdk vendor folder ([#15643](https://github.com/qmk/qmk_firmware/pull/15643)) 361 * move ymd75 to ymdk vendor folder ([#15645](https://github.com/qmk/qmk_firmware/pull/15645)) 362 * move yd60mq to ymdk vendor folder ([#15647](https://github.com/qmk/qmk_firmware/pull/15647)) 363 * rename idobo to idobao/id75, move to vendor folder ([#15661](https://github.com/qmk/qmk_firmware/pull/15661)) 364 * move ID67 to IDOBAO vendor folder ([#15662](https://github.com/qmk/qmk_firmware/pull/15662)) 365 * move ID80 to IDOBAO vendor folder ([#15665](https://github.com/qmk/qmk_firmware/pull/15665)) 366 * move ID87 to IDOBAO vendor folder ([#15667](https://github.com/qmk/qmk_firmware/pull/15667)) 367 * move montex to IDOBAO vendor folder ([#15668](https://github.com/qmk/qmk_firmware/pull/15668)) 368 * move @yangdigi 's keyboards to a YDKB folder ([#15681](https://github.com/qmk/qmk_firmware/pull/15681)) 369 * move @kkatano 's keyboards to kkatano user folder ([#15684](https://github.com/qmk/qmk_firmware/pull/15684)) 370 * Sol 3 Keyboard from RGBKB ([#15687](https://github.com/qmk/qmk_firmware/pull/15687)) 371 * move cu24, cu75, cu80/v1 into capsunlocked folder ([#15758](https://github.com/qmk/qmk_firmware/pull/15758)) 372 * move mechkeys keyboards into the mechkeys/ vendor folder ([#15760](https://github.com/qmk/qmk_firmware/pull/15760)) 373 * move @lyso1 's boards into lyso1/ ([#15767](https://github.com/qmk/qmk_firmware/pull/15767)) 374 * move prototypist boards into vendor folder ([#15780](https://github.com/qmk/qmk_firmware/pull/15780)) 375 * move @yiancar 's boards into yiancardesigns/ ([#15781](https://github.com/qmk/qmk_firmware/pull/15781)) 376 * move novelkeys keyboards to vendor folder ([#15783](https://github.com/qmk/qmk_firmware/pull/15783)) 377 * move @weirdo-f 's keyboards into weirdo/ ([#15785](https://github.com/qmk/qmk_firmware/pull/15785)) 378 * move @marksard 's boards to marksard/ ([#15786](https://github.com/qmk/qmk_firmware/pull/15786)) 379 * move input club keyboards into vendor folder ([#15788](https://github.com/qmk/qmk_firmware/pull/15788)) 380 * move @monksoffunk 's boards into 25keys/ ([#15789](https://github.com/qmk/qmk_firmware/pull/15789)) 381 * move @Salicylic-acid3 's keyboards to salicylic-acid3/ ([#15791](https://github.com/qmk/qmk_firmware/pull/15791)) 382 * move @rainkeebs 's keyboards to rainkeebs/ ([#15797](https://github.com/qmk/qmk_firmware/pull/15797)) 383 * move standaside into edi/ ([#15798](https://github.com/qmk/qmk_firmware/pull/15798)) 384 * move @obosob 's boards into obosob/ ([#15799](https://github.com/qmk/qmk_firmware/pull/15799)) 385 * move @nacly 's boards to nacly/ ([#15801](https://github.com/qmk/qmk_firmware/pull/15801)) 386 * move @kakunpc 's keebs into kakunpc/ ([#15814](https://github.com/qmk/qmk_firmware/pull/15814)) 387 * move @qpocket 's keyboards to qpocket/ ([#15827](https://github.com/qmk/qmk_firmware/pull/15827)) 388 * BDN9 keymap ([#15924](https://github.com/qmk/qmk_firmware/pull/15924)) 389 * move @matthewdias 's keebs into matthewdias/ ([#15991](https://github.com/qmk/qmk_firmware/pull/15991)) 390 * move id80 and id75 to v1 to accommodate for id75 v2 and id80 v3 ([#15992](https://github.com/qmk/qmk_firmware/pull/15992)) 391 * Remove `action_function()` from LFKeyboards boards ([#15993](https://github.com/qmk/qmk_firmware/pull/15993)) 392 * move @latincompass (aka @18438880 , @haierwangwei2005)'s boards to /latincompass ([#16039](https://github.com/qmk/qmk_firmware/pull/16039)) 393 * move g heavy industry boards into /gboards ([#16040](https://github.com/qmk/qmk_firmware/pull/16040)) 394 * move @drhigsby 's boards into /drhigsby ([#16041](https://github.com/qmk/qmk_firmware/pull/16041)) 395 * More keyboard rules.mk cleanups ([#16044](https://github.com/qmk/qmk_firmware/pull/16044)) 396 * move @That-Canadian 's boards into /maple_computing ([#16050](https://github.com/qmk/qmk_firmware/pull/16050)) 397 * move @takai 's keyboards into /recompile_keys ([#16053](https://github.com/qmk/qmk_firmware/pull/16053)) 398 * move @satt99 's comet46 to satt/ ([#16059](https://github.com/qmk/qmk_firmware/pull/16059)) 399 * move @ka2hiro 's boards into /kagizaraya ([#16070](https://github.com/qmk/qmk_firmware/pull/16070)) 400 * move @GlenPickle 's chimera* boards into a folder ([#16072](https://github.com/qmk/qmk_firmware/pull/16072)) 401 * move @yynmt 's boards into /yynmt ([#16075](https://github.com/qmk/qmk_firmware/pull/16075)) 402 * move @Biacco42 's keebs into /biacco42 ([#16080](https://github.com/qmk/qmk_firmware/pull/16080)) 403 * move unikeyboard boards to /unikeyboard ([#16081](https://github.com/qmk/qmk_firmware/pull/16081)) 404 * move four_banger to bpiphany ([#16082](https://github.com/qmk/qmk_firmware/pull/16082)) 405 * move @takashiski 's keebs into /takashiski ([#16089](https://github.com/qmk/qmk_firmware/pull/16089)) 406 * move hid_liber to /bpiphany ([#16091](https://github.com/qmk/qmk_firmware/pull/16091)) 407 * move spaceholdings boards into /spaceholdings ([#16096](https://github.com/qmk/qmk_firmware/pull/16096)) 408 * move @7-rate 's keebs to /rate ([#16099](https://github.com/qmk/qmk_firmware/pull/16099)) 409 * move @npspears 's boards into /checkerboards ([#16100](https://github.com/qmk/qmk_firmware/pull/16100)) 410 * move @vuhopkep 's keebs into /hnahkb ([#16102](https://github.com/qmk/qmk_firmware/pull/16102)) 411 * move @ibnuda 's keebs into /ibnuda ([#16108](https://github.com/qmk/qmk_firmware/pull/16108)) 412 * move @tominabox1 's keebs into /tominabox1 ([#16109](https://github.com/qmk/qmk_firmware/pull/16109)) 413 * move niu_mini to /kbdfans ([#16112](https://github.com/qmk/qmk_firmware/pull/16112)) 414 * move woodkeys.click keyboards to /woodkeys ([#16113](https://github.com/qmk/qmk_firmware/pull/16113)) 415 * move @omkbd 's boards to /omkbd ([#16116](https://github.com/qmk/qmk_firmware/pull/16116)) 416 * Overhaul Tractyl Manuform ([#16134](https://github.com/qmk/qmk_firmware/pull/16134)) 417 * Reduce firmware size for dztech/dz60rgb_wkl/v2_1:via ([#16254](https://github.com/qmk/qmk_firmware/pull/16254)) 418 419 Keyboard fixes: 420 * Fix build failure for UT47 ([#15483](https://github.com/qmk/qmk_firmware/pull/15483)) 421 * Update grs_70ec to use newer custom matrix ([#15609](https://github.com/qmk/qmk_firmware/pull/15609)) 422 * fix compiler issue with Tractyl Manuform 4x6 ([#15646](https://github.com/qmk/qmk_firmware/pull/15646)) 423 * Fix CI. ([#15828](https://github.com/qmk/qmk_firmware/pull/15828)) 424 * Yet another bad `DEFAULT_FOLDER` fix. ([#15904](https://github.com/qmk/qmk_firmware/pull/15904)) 425 * Fix build failures for `mschwingen/modelm` ([#15987](https://github.com/qmk/qmk_firmware/pull/15987)) 426 * `rocketboard_16`: Fix mismatched LUT sizes ([#15997](https://github.com/qmk/qmk_firmware/pull/15997)) 427 * Fix erroneous SRC for Clueboard 66 hotswap ([#16007](https://github.com/qmk/qmk_firmware/pull/16007)) 428 * Fix handwired/ms_sculpt_mobile default keymap ([#16032](https://github.com/qmk/qmk_firmware/pull/16032)) 429 * Re-org Hillside folders as new model prep. Fix default keymap. ([#16128](https://github.com/qmk/qmk_firmware/pull/16128)) 430 * Fix up default folder locations. Again. ([#16135](https://github.com/qmk/qmk_firmware/pull/16135)) 431 * Sol3 rgb fix ([#16157](https://github.com/qmk/qmk_firmware/pull/16157)) 432 * Add missing `BOOTLOADER` for a handful of boards ([#16225](https://github.com/qmk/qmk_firmware/pull/16225)) 433 * Remove half implemented micronucleus bootloader support ([#16252](https://github.com/qmk/qmk_firmware/pull/16252)) 434 * Fixup bootloaders. ([#16256](https://github.com/qmk/qmk_firmware/pull/16256)) 435 * Fix idobao/id80/v3 compilation errors ([#16280](https://github.com/qmk/qmk_firmware/pull/16280)) 436 * Remove parent-relative paths from keyboards. ([#16282](https://github.com/qmk/qmk_firmware/pull/16282)) 437 * Bodge for helix build failures ([#16376](https://github.com/qmk/qmk_firmware/pull/16376)) 438 439 Others: 440 * Add a clarification to an error message ([#15207](https://github.com/qmk/qmk_firmware/pull/15207)) 441 * Clang-format tweaks ([#15906](https://github.com/qmk/qmk_firmware/pull/15906)) 442 * Add example implementations for compatible MCUs list ([#15935](https://github.com/qmk/qmk_firmware/pull/15935)) 443 * Add version.h to gitignore ([#16222](https://github.com/qmk/qmk_firmware/pull/16222)) 444 * Update keyboard mapping for all moved boards this cycle ([#16312](https://github.com/qmk/qmk_firmware/pull/16312)) 445 * Align docs to new-keyboard behaviour ([#16357](https://github.com/qmk/qmk_firmware/pull/16357)) 446 * Align new-keyboard with recent schema updates ([#16378](https://github.com/qmk/qmk_firmware/pull/16378)) 447 448 Bugs: 449 * Fixes potential wpm sampling overflow, along with code comment fixes ([#15277](https://github.com/qmk/qmk_firmware/pull/15277)) 450 * Add missing define for unicode common ([#15416](https://github.com/qmk/qmk_firmware/pull/15416)) 451 * Fix for SPI write timing in PMW3360 driver ([#15519](https://github.com/qmk/qmk_firmware/pull/15519)) 452 * Documentation Typo fix ([#15538](https://github.com/qmk/qmk_firmware/pull/15538)) 453 * fix a typo ([#15557](https://github.com/qmk/qmk_firmware/pull/15557)) 454 * Fix avr serial compile ([#15589](https://github.com/qmk/qmk_firmware/pull/15589)) 455 * More AVR GPIO compilation fixes. ([#15592](https://github.com/qmk/qmk_firmware/pull/15592)) 456 * Fix bug and code regression for Split Common ([#15603](https://github.com/qmk/qmk_firmware/pull/15603)) 457 * Include missing string.h include in split ([#15606](https://github.com/qmk/qmk_firmware/pull/15606)) 458 * Fixes for bootloader refactor build failures ([#15638](https://github.com/qmk/qmk_firmware/pull/15638)) 459 * Update pmw3360 driver after reading the datasheet top to bottom. Fix some outdated refs. ([#15682](https://github.com/qmk/qmk_firmware/pull/15682)) 460 * Fix split pointing for analog joystick ([#15691](https://github.com/qmk/qmk_firmware/pull/15691)) 461 * Fix broken bootloader builds in develop. ([#15880](https://github.com/qmk/qmk_firmware/pull/15880)) 462 * Fix optical sensor firmware upload ([#15919](https://github.com/qmk/qmk_firmware/pull/15919)) 463 * 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)) 464 * fixed typo in orange HSV colors decalartion ([#15976](https://github.com/qmk/qmk_firmware/pull/15976)) 465 * Fix hack for chibiOS reset name ([#15984](https://github.com/qmk/qmk_firmware/pull/15984)) 466 * Fix right side ws2812 leds having two indices ([#15985](https://github.com/qmk/qmk_firmware/pull/15985)) 467 * Workaround in Makefile for recursive rule matching ([#15988](https://github.com/qmk/qmk_firmware/pull/15988)) 468 * Fix BACKLIGHT_CAPS_LOCK warning ([#15999](https://github.com/qmk/qmk_firmware/pull/15999)) 469 * Fix compilation issues for led indicators ([#16001](https://github.com/qmk/qmk_firmware/pull/16001)) 470 * ChibiOS timer fixes ([#16017](https://github.com/qmk/qmk_firmware/pull/16017)) 471 * Fix bootloader_jump for certain CTRL boards ([#16026](https://github.com/qmk/qmk_firmware/pull/16026)) 472 * Fix up issue with PROGMEM and hand_swap_config ([#16027](https://github.com/qmk/qmk_firmware/pull/16027)) 473 * Don't make EEPROM size assumptions with dynamic keymaps. ([#16054](https://github.com/qmk/qmk_firmware/pull/16054)) 474 * fix missed .noci in reviung move ([#16107](https://github.com/qmk/qmk_firmware/pull/16107)) 475 * Fix issues with Python Tests ([#16162](https://github.com/qmk/qmk_firmware/pull/16162)) 476 * Fixup multibuild filegen ([#16166](https://github.com/qmk/qmk_firmware/pull/16166)) 477 * Remove old .gitignore entry. Add more macOS junk exclusions. ([#16167](https://github.com/qmk/qmk_firmware/pull/16167)) 478 * Fixup builds so that teensy EEPROM knows which MCU it's targeting. ([#16168](https://github.com/qmk/qmk_firmware/pull/16168)) 479 * Create a build error if no bootloader is specified. ([#16181](https://github.com/qmk/qmk_firmware/pull/16181)) 480 * Ensure `version.h` is recreated each build. ([#16188](https://github.com/qmk/qmk_firmware/pull/16188)) 481 * Add `custom` to list of valid bootloader types in info.json ([#16228](https://github.com/qmk/qmk_firmware/pull/16228)) 482 * Fix `layer_state` restoration at end of dynamic macro feature #16208 ([#16230](https://github.com/qmk/qmk_firmware/pull/16230)) 483 * Minor additions #12795 ([#16276](https://github.com/qmk/qmk_firmware/pull/16276)) 484 * Various fixes for matrix _RIGHT handling ([#16292](https://github.com/qmk/qmk_firmware/pull/16292)) 485 * Fix slashes in build_full_test.mk ([#16300](https://github.com/qmk/qmk_firmware/pull/16300)) 486 * ps2/avr: use the correct file name ([#16316](https://github.com/qmk/qmk_firmware/pull/16316)) 487 * Fix compilation of ChibiOS UART driver ([#16348](https://github.com/qmk/qmk_firmware/pull/16348)) 488 * Various fixes for new-keyboard ([#16358](https://github.com/qmk/qmk_firmware/pull/16358)) 489 * Allow NO_PIN within data driven configuration ([#16359](https://github.com/qmk/qmk_firmware/pull/16359))