Back to Qmk Firmware

QMK Breaking Changes - 2022 February 26 Changelog

docs/ChangeLog/20220226.md

4.036.4 KB
Original Source

QMK Breaking Changes - 2022 February 26 Changelog

Notable Features {#notable-features}

Default USB Polling rate now 1kHz (#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)

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 documentation for further configuration options.

Changes Requiring User Action {#changes-requiring-user-action}

Legacy macro and action_function system removed (#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.

Create a build error if no bootloader is specified (#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)

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 NameNew Keyboard Name
6ballmaple_computing/6ball
7skbsalicylic_acid3/7skb
7splussalicylic_acid3/7splus
acr60mechkeys/acr60
adalyntominabox1/adalyn
ajisai74salicylic_acid3/ajisai74
aleth4225keys/aleth42
alicia_cookibnuda/alicia_cook
allison_numpadprototypist/allison_numpad
allisonprototypist/allison
alu84mechkeys/alu84
angel17kakunpc/angel17
angel64/alphakakunpc/angel64/alpha
angel64/rev1kakunpc/angel64/rev1
arch_36obosob/arch_36
bakeneko60kkatano/bakeneko60
bakeneko65/rev2kkatano/bakeneko65/rev2
bakeneko65/rev3kkatano/bakeneko65/rev3
bakeneko80kkatano/bakeneko80
barleycornyiancardesigns/barleycorn
bat43/rev1dailycraft/bat43/rev1
bat43/rev2dailycraft/bat43/rev2
bigseries/1keywoodkeys/bigseries/1key
bigseries/2keywoodkeys/bigseries/2key
bigseries/3keywoodkeys/bigseries/3key
bigseries/4keywoodkeys/bigseries/4key
bkfdrhigsby/bkf
business_card/alphakakunpc/business_card/alpha
business_card/betakakunpc/business_card/beta
butterstickgboards/butterstick
c39maple_computing/c39
cassette4225keys/cassette42
chidorikagizaraya/chidori
chiliydkb/chili
chimera_ergoglenpickle/chimera_ergo
chimera_lsglenpickle/chimera_ls
chimera_orthoglenpickle/chimera_ortho
chimera_ortho_plusglenpickle/chimera_ortho_plus
choco60recompile_keys/choco60
choc_tarokakunpc/choc_taro
christmas_treemaple_computing/christmas_tree
claw44/rev1dailycraft/claw44/rev1
cocoa40recompile_keys/cocoa40
comet46satt/comet46
cu24capsunlocked/cu24
cu75capsunlocked/cu75
cu80capsunlocked/cu80/v1
delilahrainkeebs/delilah
diverge3unikeyboard/diverge3
divergetm2unikeyboard/divergetm2
dozen0yynmt/dozen0
dubba175drhigsby/dubba175
eggmanqpockets/eggman
ergo42biacco42/ergo42
ergoarrowssalicylic_acid3/ergoarrows
ergodash/miniomkbd/ergodash/mini
ergodash/rev1omkbd/ergodash/rev1
ergodox_infinityinput_club/ergodox_infinity
ergotacogboards/ergotaco
espectromechkeys/espectro
felixunikeyboard/felix
four_bangerbpiphany/four_banger
freyrhnahkb/freyr
geminate60weirdo/geminate60
georgigboards/georgi
gergogboards/gergo
getta25salicylic_acid3/getta25
ginghamyiancardesigns/gingham
gurindamibnuda/gurindam
halberdkagizaraya/halberd
hecomi/alphatakashiski/hecomi/alpha
hid_liberbpiphany/hid_liber
id67/default_rgbidobao/id67/default_rgb
id67/rgbidobao/id67/rgb
id80idobao/id80/v1
id87idobao/id87/v1
idoboidobao/id75/v1
infinity60input_club/infinity60
ivy/rev1maple_computing/ivy/rev1
jisplit89salicylic_acid3/jisplit89
jnaomaple_computing/jnao
just60ydkb/just60
kagamidgetyynmt/kagamidget
kelowna/rgb64weirdo/kelowna/rgb64
kprepublic/bm65hsrgb_isokprepublic/bm65hsrgb_iso/rev1
kprepublic/bm68hsrgbkprepublic/bm68hsrgb/rev1
k_typeinput_club/k_type
latin17rgblatincompass/latin17rgb
latin47blelatincompass/latin47ble
latin60rgblatincompass/latin60rgb
latin64blelatincompass/latin64ble
latin6rgblatincompass/latin6rgb
latinpadblelatincompass/latinpadble
latinpadlatincompass/latinpad
launchpad/rev1maple_computing/launchpad/rev1
lck75lyso1/lck75
le_chiffretominabox1/le_chiffre
lefishelyso1/lefishe
lets_split_eh/ehmaple_computing/lets_split_eh/eh
ls_60weirdo/ls_60
m3n3vanmatthewdias/m3n3van
mechmini/v1mechkeys/mechmini/v1
mechmini/v2mechkeys/mechmini/v2
meirawoodkeys/meira
meishi2biacco42/meishi2
meishibiacco42/meishi
minidox/rev1maple_computing/minidox/rev1
minimmatthewdias/minim
miorecompile_keys/mio
model_vmatthewdias/model_v
montexidobao/montex/v1
nafudasalicylic_acid3/nafuda
naiping/np64weirdo/naiping/np64
naiping/nphhkbweirdo/naiping/nphhkb
naiping/npminilaweirdo/naiping/npminila
naked48salicylic_acid3/naked48
naked60salicylic_acid3/naked60
naked64salicylic_acid3/naked64
namecard2x4takashiski/namecard2x4
nebula12spaceholdings/nebula12
nebula68bspaceholdings/nebula68b
nebula68spaceholdings/nebula68
niu_minikbdfans/niu_mini
nk1novelkeys/nk1
nk65novelkeys/nk65
nk87novelkeys/nk87
nknl7ensalicylic_acid3/nknl7en
nknl7jpsalicylic_acid3/nknl7jp
nomu30recompile_keys/nomu30
novelpadnovelkeys/novelpad
ogurecdrhigsby/ogurec
otaku_split/rev0takashiski/otaku_split/rev0
otaku_split/rev1takashiski/otaku_split/rev1
owl8dailycraft/owl8
packratdrhigsby/packrat
pistachio_mprate/pistachio_mp
pistachio_prorate/pistachio_pro
pistachiorate/pistachio
plexus75checkerboards/plexus75
pursuit40checkerboards/pursuit40
qaztominabox1/qaz
quarkcheckerboards/quark
rabbit_capture_plankakunpc/rabbit_capture_plan
rainkeebrainkeebs/rainkeeb
reviung33reviung/reviung33
reviung34reviung/reviung34
reviung39reviung/reviung39
reviung41reviung/reviung41
reviung53reviung/reviung53
reviung5reviung/reviung5
reviung61reviung/reviung61
runner3680/3x6omkbd/runner3680/3x6
runner3680/3x7omkbd/runner3680/3x7
runner3680/3x8omkbd/runner3680/3x8
runner3680/4x6omkbd/runner3680/4x6
runner3680/4x7omkbd/runner3680/4x7
runner3680/4x8omkbd/runner3680/4x8
runner3680/5x6_5x8omkbd/runner3680/5x6_5x8
runner3680/5x6omkbd/runner3680/5x6
runner3680/5x7omkbd/runner3680/5x7
runner3680/5x8omkbd/runner3680/5x8
scarletbandanawoodkeys/scarletbandana
scythekagizaraya/scythe
seigaihayiancardesigns/seigaiha
setta21salicylic_acid3/setta21
space_space/rev1qpockets/space_space/rev1
space_space/rev2qpockets/space_space/rev2
spiderisland/winry25tcwinry/winry25tc
splitreus62nacly/splitreus62
squiggle/rev1ibnuda/squiggle/rev1
standasideedi/standaside
steal_this_keyboardobosob/steal_this_keyboard
stellahnahkb/stella
suihankey/alphakakunpc/suihankey/alpha
suihankey/rev1kakunpc/suihankey/rev1
suihankey/splitkakunpc/suihankey/split
thedogkeyboardkakunpc/thedogkeyboard
the_rulermaple_computing/the_ruler
tiger910weirdo/tiger910
treadstone32marksard/treadstone32
treadstone48/rev1marksard/treadstone48/rev1
treadstone48/rev2marksard/treadstone48/rev2
txuumatthewdias/txuu
ua62nacly/ua62
underscore33/rev1tominabox1/underscore33/rev1
underscore33/rev2tominabox1/underscore33/rev2
vn66hnahkb/vn66
wallabykkatano/wallaby
wantenqpockets/wanten
whitefoxinput_club/whitefox
wings42/rev1dailycraft/wings42/rev1
wings42/rev1_extkeysdailycraft/wings42/rev1_extkeys
wings42/rev2dailycraft/wings42/rev2
yasuirainkeebs/yasui
yd60mqymdk/yd60mq
yd68ydkb/yd68
ymd75ymdk/ymd75
ymd96ymdk/ymd96
ymdk_np21ymdk/np21
yureikkatano/yurei
zinc25keys/zinc
zinc/rev125keys/zinc/rev1
zinc/reva25keys/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)
  • Don't send keyboard reports that propagate no changes to the host (#14065)
  • Custom matrix lite support for split keyboards (#14674)
  • Add sym_defer_pr debouncer type (#14948)
  • Add RGB matrix & LED Matrix support for IS31FL3742A, IS31FL3743A, IS31FL3745, IS31FL3746A (#14989)
  • New combo configuration options (#15083)
  • IS31FL3733 driver for LED Matrix (#15088)
  • Add open-drain GPIO support. (#15282)
  • Make (un)register code functions weak (#15285)
  • Split support for pointing devices. (#15304)
  • Added cancel_key_lock function (#15321)
  • Remove matrix_is_modified() and debounce_is_active() (#15349)
  • Change default USB Polling rate to 1kHz (#15352)
  • Implement MAGIC_TOGGLE_CONTROL_CAPSLOCK (#15368)
  • Tidy up existing i2c_master implementations (#15376)
  • Generalize Unicode defines (#15409)
  • Added external spi flash driver. (#15419)
  • Remove Deprecated USB Polling comment from vusb.c (#15420)
  • Expand rotational range for PMW3360 Optical Sensor (#15431)
  • ChibiOS SVN mirror script update (#15435)
  • Refactor bootloader_jump() implementations (#15450)
  • added missing audio_off_user() callback (#15457)
  • Migrate serial_uart usages to UART driver (#15479)
  • Migrate RN42 to UART driver and refactor (#15492)
  • pwm3360 driver cleanup and diff reduction to adns9800 (#15559)
  • Advanced deferred_exec for core-side code. (#15579)
  • Adjust tap_code16 to account for TAP_HOLD_CAPS_DELAY (#15635)
  • Slight tidy up of keyboard task loop (#15725)
  • Unify the key up/down behaviour of RGB keycodes (#15730)
  • Add PMW3389 optical sensor Support (Updated) (#15740)
  • ChibiOS: add support for HID Programmable Buttons (#15787)
  • ChibiOS: shorten USB disconnect state on boot to 50ms (#15805)
  • Add init function to clear previous matrix effect (#15815)
  • Optimize initialization of PMW3360 Sensor (#15821)
  • Add Pixel Flow RGB matrix effect (#15829)
  • PMW3389 Revert Firmware load during Initilization (#15859)
  • Combo TAP_CODE_DELAY and clear_weak_mods (#15866)
  • Relocate matrix_scan_quantum tasks (#15882)
  • Adjust mouse key defaults (#15883)
  • RGB Matrix: Reload from EEPROM (#15923)
  • Enable a default task throttle for split pointing. (#15925)
  • Move mcp23018 driver to core (#15944)
  • Relocate matrix_init_quantum content (#15953)
  • Align location of some host led logic (#15954)
  • Rename some Quantum keycodes (#15968)
  • Migrate more makefile utilities to builddefs sub-directory (#16002)
  • Various Makefile optimisations (#16015)
  • Add support for STM32L432, STM32L442. (#16016)
  • EEPROM refactor: remove eeprom_teensy.c by default, use transient instead (#16020)
  • Deprecate Split Transaction status field (#16023)
  • Rip out old macro and action_function system (#16025)
  • Add a script that simplifies running commands under docker. (#16028)
  • Add support for Q-series on the ckled2001 LED driver (#16051)
  • Remove unused suspend_idle (#16063)
  • Initial migration of suspend callbacks (#16067)
  • Add layout change callbacks to VIA (#16087)
  • Rename AdafruitBLE to BluefruitLE (#16127)
  • Update outputselect to use platform connected state API (#16185)
  • Remove default pointing device driver. (#16190)
  • Add SN74x138 demultiplexer driver (#16217)
  • Standardise error output. (#16220)
  • Followup to #16220, more test error output. (#16221)
  • Misc size regression script improvements. (#16268)
  • Align existing pca9555 driver to better match mcp23018 API (#16277)
  • Size checks print out target firmware file instead (#16290)

CLI:

  • develop changelog generator: use the PR title instead (#15537)
  • develop changelog generator: skip code formatting in listing (#16215)

Keyboards:

  • Durgod: Increase scan rate by using wait_us timer (#14091)
  • Add another GMMK Pro ANSI Keymap with custom RGB. (#14243)
  • Parse USB device version BCD (#14580)
  • Add vitoni keymap for GMMK Pro (ISO) (#15006)
  • Move bm65hsrgb_iso and bm68hsrgb to rev1/ to prepare for updates to the boards (#15132)
  • Convert ergoinu to SPLIT_KEYBOARD (#15305)
  • Convert not_so_minidox to SPLIT_KEYBOARD (#15306)
  • Added new handwired keyboard Wakizashi 40 (#15336)
  • Convert ai03/orbit to SPLIT_KEYBOARD (#15340)
  • Remove manual enable of LTO within user keymaps (#15378)
  • Move to organization folder (#15481)
  • Convert some more boards to Matrix Lite (#15489)
  • Organize Reviung boards into a directory (#15636)
  • move winry25tc to winry/ (#15637)
  • Rename ymdk_np21 to np21 + move to ymdk vendor folder (#15641)
  • move ymd96 to ymdk vendor folder (#15643)
  • move ymd75 to ymdk vendor folder (#15645)
  • move yd60mq to ymdk vendor folder (#15647)
  • rename idobo to idobao/id75, move to vendor folder (#15661)
  • move ID67 to IDOBAO vendor folder (#15662)
  • move ID80 to IDOBAO vendor folder (#15665)
  • move ID87 to IDOBAO vendor folder (#15667)
  • move montex to IDOBAO vendor folder (#15668)
  • move @yangdigi 's keyboards to a YDKB folder (#15681)
  • move @kkatano 's keyboards to kkatano user folder (#15684)
  • Sol 3 Keyboard from RGBKB (#15687)
  • move cu24, cu75, cu80/v1 into capsunlocked folder (#15758)
  • move mechkeys keyboards into the mechkeys/ vendor folder (#15760)
  • move @lyso1 's boards into lyso1/ (#15767)
  • move prototypist boards into vendor folder (#15780)
  • move @yiancar 's boards into yiancardesigns/ (#15781)
  • move novelkeys keyboards to vendor folder (#15783)
  • move @weirdo-f 's keyboards into weirdo/ (#15785)
  • move @marksard 's boards to marksard/ (#15786)
  • move input club keyboards into vendor folder (#15788)
  • move @monksoffunk 's boards into 25keys/ (#15789)
  • move @Salicylic-acid3 's keyboards to salicylic-acid3/ (#15791)
  • move @rainkeebs 's keyboards to rainkeebs/ (#15797)
  • move standaside into edi/ (#15798)
  • move @obosob 's boards into obosob/ (#15799)
  • move @nacly 's boards to nacly/ (#15801)
  • move @kakunpc 's keebs into kakunpc/ (#15814)
  • move @qpocket 's keyboards to qpocket/ (#15827)
  • BDN9 keymap (#15924)
  • move @matthewdias 's keebs into matthewdias/ (#15991)
  • move id80 and id75 to v1 to accommodate for id75 v2 and id80 v3 (#15992)
  • Remove action_function() from LFKeyboards boards (#15993)
  • move @latincompass (aka @18438880 , @haierwangwei2005)'s boards to /latincompass (#16039)
  • move g heavy industry boards into /gboards (#16040)
  • move @drhigsby 's boards into /drhigsby (#16041)
  • More keyboard rules.mk cleanups (#16044)
  • move @That-Canadian 's boards into /maple_computing (#16050)
  • move @takai 's keyboards into /recompile_keys (#16053)
  • move @satt99 's comet46 to satt/ (#16059)
  • move @ka2hiro 's boards into /kagizaraya (#16070)
  • move @GlenPickle 's chimera* boards into a folder (#16072)
  • move @yynmt 's boards into /yynmt (#16075)
  • move @Biacco42 's keebs into /biacco42 (#16080)
  • move unikeyboard boards to /unikeyboard (#16081)
  • move four_banger to bpiphany (#16082)
  • move @takashiski 's keebs into /takashiski (#16089)
  • move hid_liber to /bpiphany (#16091)
  • move spaceholdings boards into /spaceholdings (#16096)
  • move @7-rate 's keebs to /rate (#16099)
  • move @npspears 's boards into /checkerboards (#16100)
  • move @vuhopkep 's keebs into /hnahkb (#16102)
  • move @ibnuda 's keebs into /ibnuda (#16108)
  • move @tominabox1 's keebs into /tominabox1 (#16109)
  • move niu_mini to /kbdfans (#16112)
  • move woodkeys.click keyboards to /woodkeys (#16113)
  • move @omkbd 's boards to /omkbd (#16116)
  • Overhaul Tractyl Manuform (#16134)
  • Reduce firmware size for dztech/dz60rgb_wkl/v2_1:via (#16254)

Keyboard fixes:

  • Fix build failure for UT47 (#15483)
  • Update grs_70ec to use newer custom matrix (#15609)
  • fix compiler issue with Tractyl Manuform 4x6 (#15646)
  • Fix CI. (#15828)
  • Yet another bad DEFAULT_FOLDER fix. (#15904)
  • Fix build failures for mschwingen/modelm (#15987)
  • rocketboard_16: Fix mismatched LUT sizes (#15997)
  • Fix erroneous SRC for Clueboard 66 hotswap (#16007)
  • Fix handwired/ms_sculpt_mobile default keymap (#16032)
  • Re-org Hillside folders as new model prep. Fix default keymap. (#16128)
  • Fix up default folder locations. Again. (#16135)
  • Sol3 rgb fix (#16157)
  • Add missing BOOTLOADER for a handful of boards (#16225)
  • Remove half implemented micronucleus bootloader support (#16252)
  • Fixup bootloaders. (#16256)
  • Fix idobao/id80/v3 compilation errors (#16280)
  • Remove parent-relative paths from keyboards. (#16282)
  • Bodge for helix build failures (#16376)

Others:

  • Add a clarification to an error message (#15207)
  • Clang-format tweaks (#15906)
  • Add example implementations for compatible MCUs list (#15935)
  • Add version.h to gitignore (#16222)
  • Update keyboard mapping for all moved boards this cycle (#16312)
  • Align docs to new-keyboard behaviour (#16357)
  • Align new-keyboard with recent schema updates (#16378)

Bugs:

  • Fixes potential wpm sampling overflow, along with code comment fixes (#15277)
  • Add missing define for unicode common (#15416)
  • Fix for SPI write timing in PMW3360 driver (#15519)
  • Documentation Typo fix (#15538)
  • fix a typo (#15557)
  • Fix avr serial compile (#15589)
  • More AVR GPIO compilation fixes. (#15592)
  • Fix bug and code regression for Split Common (#15603)
  • Include missing string.h include in split (#15606)
  • Fixes for bootloader refactor build failures (#15638)
  • Update pmw3360 driver after reading the datasheet top to bottom. Fix some outdated refs. (#15682)
  • Fix split pointing for analog joystick (#15691)
  • Fix broken bootloader builds in develop. (#15880)
  • Fix optical sensor firmware upload (#15919)
  • Pass in the keyrecord_t of the dual-role/tapping key when calling per-key tap hold functions (#15938)
  • fixed typo in orange HSV colors decalartion (#15976)
  • Fix hack for chibiOS reset name (#15984)
  • Fix right side ws2812 leds having two indices (#15985)
  • Workaround in Makefile for recursive rule matching (#15988)
  • Fix BACKLIGHT_CAPS_LOCK warning (#15999)
  • Fix compilation issues for led indicators (#16001)
  • ChibiOS timer fixes (#16017)
  • Fix bootloader_jump for certain CTRL boards (#16026)
  • Fix up issue with PROGMEM and hand_swap_config (#16027)
  • Don't make EEPROM size assumptions with dynamic keymaps. (#16054)
  • fix missed .noci in reviung move (#16107)
  • Fix issues with Python Tests (#16162)
  • Fixup multibuild filegen (#16166)
  • Remove old .gitignore entry. Add more macOS junk exclusions. (#16167)
  • Fixup builds so that teensy EEPROM knows which MCU it's targeting. (#16168)
  • Create a build error if no bootloader is specified. (#16181)
  • Ensure version.h is recreated each build. (#16188)
  • Add custom to list of valid bootloader types in info.json (#16228)
  • Fix layer_state restoration at end of dynamic macro feature #16208 (#16230)
  • Minor additions #12795 (#16276)
  • Various fixes for matrix _RIGHT handling (#16292)
  • Fix slashes in build_full_test.mk (#16300)
  • ps2/avr: use the correct file name (#16316)
  • Fix compilation of ChibiOS UART driver (#16348)
  • Various fixes for new-keyboard (#16358)
  • Allow NO_PIN within data driven configuration (#16359)