* Initial changelog pass * update generate-develop-pr-list content * Fix bad word-ness * Fix generate-develop-pr-list ignores * Update docs/ChangeLog/20220226.md Co-authored-by: Sergey Vlasov <sigprof@gmail.com> Co-authored-by: Sergey Vlasov <sigprof@gmail.com>
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:
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 :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)