qmk_firmware/ChangeLog/20220226.md

36 KiB

QMK Breaking Changes - 2022 February 26 Changelog

Notable Features :id=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 :id=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 :id=updated-keyboard-codebases

The following keyboards have had their source moved within QMK:

Old Keyboard Name New Keyboard Name
6ball maple_computing/6ball
7skb salicylic_acid3/7skb
7splus salicylic_acid3/7splus
acr60 mechkeys/acr60
adalyn tominabox1/adalyn
ajisai74 salicylic_acid3/ajisai74
aleth42 25keys/aleth42
alicia_cook ibnuda/alicia_cook
allison_numpad prototypist/allison_numpad
allison prototypist/allison
alu84 mechkeys/alu84
angel17 kakunpc/angel17
angel64/alpha kakunpc/angel64/alpha
angel64/rev1 kakunpc/angel64/rev1
arch_36 obosob/arch_36
bakeneko60 kkatano/bakeneko60
bakeneko65/rev2 kkatano/bakeneko65/rev2
bakeneko65/rev3 kkatano/bakeneko65/rev3
bakeneko80 kkatano/bakeneko80
barleycorn yiancardesigns/barleycorn
bat43/rev1 dailycraft/bat43/rev1
bat43/rev2 dailycraft/bat43/rev2
bigseries/1key woodkeys/bigseries/1key
bigseries/2key woodkeys/bigseries/2key
bigseries/3key woodkeys/bigseries/3key
bigseries/4key woodkeys/bigseries/4key
bkf drhigsby/bkf
business_card/alpha kakunpc/business_card/alpha
business_card/beta kakunpc/business_card/beta
butterstick gboards/butterstick
c39 maple_computing/c39
cassette42 25keys/cassette42
chidori kagizaraya/chidori
chili ydkb/chili
chimera_ergo glenpickle/chimera_ergo
chimera_ls glenpickle/chimera_ls
chimera_ortho glenpickle/chimera_ortho
chimera_ortho_plus glenpickle/chimera_ortho_plus
choco60 recompile_keys/choco60
choc_taro kakunpc/choc_taro
christmas_tree maple_computing/christmas_tree
claw44/rev1 dailycraft/claw44/rev1
cocoa40 recompile_keys/cocoa40
comet46 satt/comet46
cu24 capsunlocked/cu24
cu75 capsunlocked/cu75
cu80 capsunlocked/cu80/v1
delilah rainkeebs/delilah
diverge3 unikeyboard/diverge3
divergetm2 unikeyboard/divergetm2
dozen0 yynmt/dozen0
dubba175 drhigsby/dubba175
eggman qpockets/eggman
ergo42 biacco42/ergo42
ergoarrows salicylic_acid3/ergoarrows
ergodash/mini omkbd/ergodash/mini
ergodash/rev1 omkbd/ergodash/rev1
ergodox_infinity input_club/ergodox_infinity
ergotaco gboards/ergotaco
espectro mechkeys/espectro
felix unikeyboard/felix
four_banger bpiphany/four_banger
freyr hnahkb/freyr
geminate60 weirdo/geminate60
georgi gboards/georgi
gergo gboards/gergo
getta25 salicylic_acid3/getta25
gingham yiancardesigns/gingham
gurindam ibnuda/gurindam
halberd kagizaraya/halberd
hecomi/alpha takashiski/hecomi/alpha
hid_liber bpiphany/hid_liber
id67/default_rgb idobao/id67/default_rgb
id67/rgb idobao/id67/rgb
id80 idobao/id80/v1
id87 idobao/id87/v1
idobo idobao/id75/v1
infinity60 input_club/infinity60
ivy/rev1 maple_computing/ivy/rev1
jisplit89 salicylic_acid3/jisplit89
jnao maple_computing/jnao
just60 ydkb/just60
kagamidget yynmt/kagamidget
kelowna/rgb64 weirdo/kelowna/rgb64
kprepublic/bm65hsrgb_iso kprepublic/bm65hsrgb_iso/rev1
kprepublic/bm68hsrgb kprepublic/bm68hsrgb/rev1
k_type input_club/k_type
latin17rgb latincompass/latin17rgb
latin47ble latincompass/latin47ble
latin60rgb latincompass/latin60rgb
latin64ble latincompass/latin64ble
latin6rgb latincompass/latin6rgb
latinpadble latincompass/latinpadble
latinpad latincompass/latinpad
launchpad/rev1 maple_computing/launchpad/rev1
lck75 lyso1/lck75
le_chiffre tominabox1/le_chiffre
lefishe lyso1/lefishe
lets_split_eh/eh maple_computing/lets_split_eh/eh
ls_60 weirdo/ls_60
m3n3van matthewdias/m3n3van
mechmini/v1 mechkeys/mechmini/v1
mechmini/v2 mechkeys/mechmini/v2
meira woodkeys/meira
meishi2 biacco42/meishi2
meishi biacco42/meishi
minidox/rev1 maple_computing/minidox/rev1
minim matthewdias/minim
mio recompile_keys/mio
model_v matthewdias/model_v
montex idobao/montex/v1
nafuda salicylic_acid3/nafuda
naiping/np64 weirdo/naiping/np64
naiping/nphhkb weirdo/naiping/nphhkb
naiping/npminila weirdo/naiping/npminila
naked48 salicylic_acid3/naked48
naked60 salicylic_acid3/naked60
naked64 salicylic_acid3/naked64
namecard2x4 takashiski/namecard2x4
nebula12 spaceholdings/nebula12
nebula68b spaceholdings/nebula68b
nebula68 spaceholdings/nebula68
niu_mini kbdfans/niu_mini
nk1 novelkeys/nk1
nk65 novelkeys/nk65
nk87 novelkeys/nk87
nknl7en salicylic_acid3/nknl7en
nknl7jp salicylic_acid3/nknl7jp
nomu30 recompile_keys/nomu30
novelpad novelkeys/novelpad
ogurec drhigsby/ogurec
otaku_split/rev0 takashiski/otaku_split/rev0
otaku_split/rev1 takashiski/otaku_split/rev1
owl8 dailycraft/owl8
packrat drhigsby/packrat
pistachio_mp rate/pistachio_mp
pistachio_pro rate/pistachio_pro
pistachio rate/pistachio
plexus75 checkerboards/plexus75
pursuit40 checkerboards/pursuit40
qaz tominabox1/qaz
quark checkerboards/quark
rabbit_capture_plan kakunpc/rabbit_capture_plan
rainkeeb rainkeebs/rainkeeb
reviung33 reviung/reviung33
reviung34 reviung/reviung34
reviung39 reviung/reviung39
reviung41 reviung/reviung41
reviung53 reviung/reviung53
reviung5 reviung/reviung5
reviung61 reviung/reviung61
runner3680/3x6 omkbd/runner3680/3x6
runner3680/3x7 omkbd/runner3680/3x7
runner3680/3x8 omkbd/runner3680/3x8
runner3680/4x6 omkbd/runner3680/4x6
runner3680/4x7 omkbd/runner3680/4x7
runner3680/4x8 omkbd/runner3680/4x8
runner3680/5x6_5x8 omkbd/runner3680/5x6_5x8
runner3680/5x6 omkbd/runner3680/5x6
runner3680/5x7 omkbd/runner3680/5x7
runner3680/5x8 omkbd/runner3680/5x8
scarletbandana woodkeys/scarletbandana
scythe kagizaraya/scythe
seigaiha yiancardesigns/seigaiha
setta21 salicylic_acid3/setta21
space_space/rev1 qpockets/space_space/rev1
space_space/rev2 qpockets/space_space/rev2
spiderisland/winry25tc winry/winry25tc
splitreus62 nacly/splitreus62
squiggle/rev1 ibnuda/squiggle/rev1
standaside edi/standaside
steal_this_keyboard obosob/steal_this_keyboard
stella hnahkb/stella
suihankey/alpha kakunpc/suihankey/alpha
suihankey/rev1 kakunpc/suihankey/rev1
suihankey/split kakunpc/suihankey/split
thedogkeyboard kakunpc/thedogkeyboard
the_ruler maple_computing/the_ruler
tiger910 weirdo/tiger910
treadstone32 marksard/treadstone32
treadstone48/rev1 marksard/treadstone48/rev1
treadstone48/rev2 marksard/treadstone48/rev2
txuu matthewdias/txuu
ua62 nacly/ua62
underscore33/rev1 tominabox1/underscore33/rev1
underscore33/rev2 tominabox1/underscore33/rev2
vn66 hnahkb/vn66
wallaby kkatano/wallaby
wanten qpockets/wanten
whitefox input_club/whitefox
wings42/rev1 dailycraft/wings42/rev1
wings42/rev1_extkeys dailycraft/wings42/rev1_extkeys
wings42/rev2 dailycraft/wings42/rev2
yasui rainkeebs/yasui
yd60mq ymdk/yd60mq
yd68 ydkb/yd68
ymd75 ymdk/ymd75
ymd96 ymdk/ymd96
ymdk_np21 ymdk/np21
yurei kkatano/yurei
zinc 25keys/zinc
zinc/rev1 25keys/zinc/rev1
zinc/reva 25keys/zinc/reva

Notable core changes :id=notable-core

New MCU Support :id=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)