36 KiB
QMK Breaking Changes - 2022 February 26 Changelog
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
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:
BOOTLOADERwithinrules.mkbootloaderwithininfo.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
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
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)