qmk_firmware

QMK firmware for my keyboards (Corne, Sweep Ferris) and trackball (Ploopy Adept)
Log | Files | Refs | Submodules | LICENSE

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))