# QMK Breaking Changes - 2022 May 28 Changelog ## Notable Features :id=notable-features ### TODO ### Updated Keyboard Codebases :id=updated-keyboard-codebases The following keyboards have had their source moved within QMK: | Old Keyboard Name | New Keyboard Name | |-----------------------|--------------------| | absinthe | keyhive/absinthe | | amj40 | amjkeyboard/amj40 | | amj60 | amjkeyboard/amj60 | | amj96 | amjkeyboard/amj96 | | amjpad | amjkeyboard/amjpad | | at101_bh | viktus/at101_bh | | ergosaurus | keyhive/ergosaurus | | gmmk/pro/ansi | gmmk/pro/rev1/ansi | | gmmk/pro/iso | gmmk/pro/rev1/iso | | honeycomb | keyhive/honeycomb | | lattice60 | keyhive/lattice60 | | melody96 | ymdk/melody96 | | mt40 | mt/mt40 | | mt64rgb | mt/mt64rgb | | mt84 | mt/mt84 | | mt980 | mt/mt980 | | navi10 | keyhive/navi10 | | omnikey_bh | viktus/omnikey_bh | | opus | keyhive/opus | | smallice | keyhive/smallice | | southpole | keyhive/southpole | | uno | keyhive/uno | | ut472 | keyhive/ut472 | | wheatfield/blocked65 | mt/blocked65 | | wheatfield/split75 | mt/split75 | | z150_bh | viktus/z150_bh | ## Notable core changes :id=notable-core ### TODO --- ## Full changelist Core: * Quantum Painter ([#10174](https://github.com/qmk/qmk_firmware/pull/10174)) * Add support for encoder mapping. ([#13286](https://github.com/qmk/qmk_firmware/pull/13286)) * Add support for multiple switchs/solenoids to Haptic Feedback engine ([#15657](https://github.com/qmk/qmk_firmware/pull/15657)) * Add compile/make macro to core ([#15959](https://github.com/qmk/qmk_firmware/pull/15959)) * Add Reboot keycode to core ([#15990](https://github.com/qmk/qmk_firmware/pull/15990)) * Add support for multiple sensors to pmw3360 ([#15996](https://github.com/qmk/qmk_firmware/pull/15996)) * Asymmetric encoders, encoder tests. ([#16068](https://github.com/qmk/qmk_firmware/pull/16068)) * Add hacky via support for RGB Matrix ([#16086](https://github.com/qmk/qmk_firmware/pull/16086)) * Allow usage of AVRs minimal printf library ([#16266](https://github.com/qmk/qmk_firmware/pull/16266)) * Squeeze AVR some more with `-mrelax` and `-mcall-prologues` ([#16269](https://github.com/qmk/qmk_firmware/pull/16269)) * Heatmap incorrect matrix effect workaround ([#16315](https://github.com/qmk/qmk_firmware/pull/16315)) * Add SN74x154 driver and convert AL1 custom matrix ([#16331](https://github.com/qmk/qmk_firmware/pull/16331)) * Add customizable snake and knight animation increments ([#16337](https://github.com/qmk/qmk_firmware/pull/16337)) * Chibios USB protocol: allow overriding RAW Capacity ([#16339](https://github.com/qmk/qmk_firmware/pull/16339)) * HD44780 driver rework ([#16370](https://github.com/qmk/qmk_firmware/pull/16370)) * Update wb32-dfu ([#16438](https://github.com/qmk/qmk_firmware/pull/16438)) * Remove `send_unicode_hex_string()` ([#16518](https://github.com/qmk/qmk_firmware/pull/16518)) * Add :flash target for UF2 bootloaders ([#16525](https://github.com/qmk/qmk_firmware/pull/16525)) * Move `has_mouse_report_changed` function to `report.c` ([#16543](https://github.com/qmk/qmk_firmware/pull/16543)) * Move Doxygen docs to subdirectory ([#16561](https://github.com/qmk/qmk_firmware/pull/16561)) * Add Caps Word feature to core ([#16588](https://github.com/qmk/qmk_firmware/pull/16588)) * Add non blackpill F4x1 config files ([#16600](https://github.com/qmk/qmk_firmware/pull/16600)) * Force platform pin defs to be included ([#16611](https://github.com/qmk/qmk_firmware/pull/16611)) * Refactor CTPC logic to allow future converters ([#16621](https://github.com/qmk/qmk_firmware/pull/16621)) * Use a mutex guard for split shared memory ([#16647](https://github.com/qmk/qmk_firmware/pull/16647)) * Rename TICK to TICK_EVENT ([#16649](https://github.com/qmk/qmk_firmware/pull/16649)) * Add GET_TAPPING_TERM macro to reduce duplicate code ([#16681](https://github.com/qmk/qmk_firmware/pull/16681)) * add the ability to change the pwm frequency for the IS31FL3737B ([#16718](https://github.com/qmk/qmk_firmware/pull/16718)) * Joystick feature updates ([#16732](https://github.com/qmk/qmk_firmware/pull/16732)) * Add emulated eeprom support for STM32F303xE ([#16737](https://github.com/qmk/qmk_firmware/pull/16737)) * Refactor writePin to work with statements ([#16738](https://github.com/qmk/qmk_firmware/pull/16738)) * Add mechanism to limit available converters ([#16783](https://github.com/qmk/qmk_firmware/pull/16783)) * Implement XAP 'secure' core requirements ([#16843](https://github.com/qmk/qmk_firmware/pull/16843)) * rgblight: Add functions to stop blinking one or all but one layer ([#16859](https://github.com/qmk/qmk_firmware/pull/16859)) * Expose API for hardware unique ID ([#16869](https://github.com/qmk/qmk_firmware/pull/16869)) * Added support for Wb32fq95 ([#16871](https://github.com/qmk/qmk_firmware/pull/16871)) * Provide better config defaults for bluepill boards ([#16909](https://github.com/qmk/qmk_firmware/pull/16909)) * Joystick: Simplify report descriptor and clean up error messages ([#16926](https://github.com/qmk/qmk_firmware/pull/16926)) * Rename keymap_extras headers for consistency ([#16939](https://github.com/qmk/qmk_firmware/pull/16939)) * Sendstring keycode overhaul ([#16941](https://github.com/qmk/qmk_firmware/pull/16941)) * Move disable_jtag to platforms ([#16960](https://github.com/qmk/qmk_firmware/pull/16960)) * Remove ARM pgm_read_word workaround in rgblight ([#16961](https://github.com/qmk/qmk_firmware/pull/16961)) * Warn about LTO with arm_atsam, not ChibiOS. ([#17106](https://github.com/qmk/qmk_firmware/pull/17106)) CLI: * Rework generate-api CLI command to use .build directory ([#16441](https://github.com/qmk/qmk_firmware/pull/16441)) * Change data driven "str" type to represent a quoted string literal ([#16516](https://github.com/qmk/qmk_firmware/pull/16516)) * Bump the 'jsonschema' version ([#16635](https://github.com/qmk/qmk_firmware/pull/16635)) * Add frameworking for development board presets ([#16637](https://github.com/qmk/qmk_firmware/pull/16637)) * Extend 'qmk info' to handle keymap level overrides ([#16702](https://github.com/qmk/qmk_firmware/pull/16702)) * Data driven `g_led_config` ([#16728](https://github.com/qmk/qmk_firmware/pull/16728)) * Allow new-keyboard to use development_board presets ([#16785](https://github.com/qmk/qmk_firmware/pull/16785)) * Also format *.hpp files. ([#16997](https://github.com/qmk/qmk_firmware/pull/16997)) Submodule updates: * ChibiOS 21.11.1 update. ([#16251](https://github.com/qmk/qmk_firmware/pull/16251)) * Update ChibiOS-Contrib ([#16915](https://github.com/qmk/qmk_firmware/pull/16915)) Keyboards: * chore: Add personal GMMK Pro keymap ([#15320](https://github.com/qmk/qmk_firmware/pull/15320)) * move melody96 to ymdk vendor folder ([#15680](https://github.com/qmk/qmk_firmware/pull/15680)) * move amj keyboards into amjkeyboard vendor folder ([#15733](https://github.com/qmk/qmk_firmware/pull/15733)) * move z150_bh at101_bh omnikey_bh to viktus/ ([#16004](https://github.com/qmk/qmk_firmware/pull/16004)) * MS Sculpt Mobile refactor ([#16038](https://github.com/qmk/qmk_firmware/pull/16038)) * move keyhive exclusive boards into /keyhive ([#16084](https://github.com/qmk/qmk_firmware/pull/16084)) * move 麦田 boards into /mt ([#16095](https://github.com/qmk/qmk_firmware/pull/16095)) * Convert Wasdat Code custom matrix to SN74x138 driver ([#16257](https://github.com/qmk/qmk_firmware/pull/16257)) * Move GMMK Pro to allow for multiple revisions ([#16423](https://github.com/qmk/qmk_firmware/pull/16423)) * Updated pin mapping and readme. ([#16505](https://github.com/qmk/qmk_firmware/pull/16505)) * Map data driven `DESCRIPTION` as string literal ([#16523](https://github.com/qmk/qmk_firmware/pull/16523)) * remove unecessary layers ([#16559](https://github.com/qmk/qmk_firmware/pull/16559)) * Helix/rev2 move to split common ([#16723](https://github.com/qmk/qmk_firmware/pull/16723)) * Remove some layout exceptions ([#16957](https://github.com/qmk/qmk_firmware/pull/16957)) * Refactor legacy quantum keycodes in default-ish keymaps ([#17037](https://github.com/qmk/qmk_firmware/pull/17037)) Keyboard fixes: * gboards/gergoplex: move `COMBO_ENABLE` to keymap level ([#16667](https://github.com/qmk/qmk_firmware/pull/16667)) * usb-usb converter: community layout support ([#16773](https://github.com/qmk/qmk_firmware/pull/16773)) * Fix build of `keyhive/uno`. ([#16891](https://github.com/qmk/qmk_firmware/pull/16891)) * Fix uno ([#16892](https://github.com/qmk/qmk_firmware/pull/16892)) * converter/usb_usb: remove surplus commas ([#17024](https://github.com/qmk/qmk_firmware/pull/17024)) * Various fixes for g_led_config lint warnings ([#17104](https://github.com/qmk/qmk_firmware/pull/17104)) Others: * Add warning for CTPC/CONVERT_TO_PROTON_C. ([#16782](https://github.com/qmk/qmk_firmware/pull/16782)) * Add bluepill/blackpill development board presets ([#16806](https://github.com/qmk/qmk_firmware/pull/16806)) * Recommend pillow as part of manual MSYS install ([#17133](https://github.com/qmk/qmk_firmware/pull/17133)) Bugs: * Fix one-shot locked modifiers ([#16114](https://github.com/qmk/qmk_firmware/pull/16114)) * Fix missing definition for non-encoder case. ([#16593](https://github.com/qmk/qmk_firmware/pull/16593)) * Fixup builds. ([#16596](https://github.com/qmk/qmk_firmware/pull/16596)) * Missed some erroneous prints. ([#16597](https://github.com/qmk/qmk_firmware/pull/16597)) * Workaround for pin_def errors on KINETIS based builds ([#16614](https://github.com/qmk/qmk_firmware/pull/16614)) * Fix flipped logic bug with One Shot `OS_ON` / `OS_OFF` keys ([#16617](https://github.com/qmk/qmk_firmware/pull/16617)) * Redo workaround for pin_def errors on KINETIS ([#16620](https://github.com/qmk/qmk_firmware/pull/16620)) * Fix oneshot toggle logic ([#16630](https://github.com/qmk/qmk_firmware/pull/16630)) * Mousekeys fix ([#16640](https://github.com/qmk/qmk_firmware/pull/16640)) * Ignore transport defaults if SPLIT_KEYBOARD is unset ([#16706](https://github.com/qmk/qmk_firmware/pull/16706)) * Fixes #16705 : digital rain follows val ([#16716](https://github.com/qmk/qmk_firmware/pull/16716)) * Fix AVR backlight breathing: low brightness limit & exceeding breathing table max index ([#16770](https://github.com/qmk/qmk_firmware/pull/16770)) * Fixed usb read loops not reading until timeout ([#16827](https://github.com/qmk/qmk_firmware/pull/16827)) * [QP] Check BPP capabilities before loading the palette ([#16863](https://github.com/qmk/qmk_firmware/pull/16863)) * Fix #16859. ([#16865](https://github.com/qmk/qmk_firmware/pull/16865)) * Preinstall python dependencies before executing `qmk`. ([#16874](https://github.com/qmk/qmk_firmware/pull/16874)) * Fixup AVR builds. ([#16875](https://github.com/qmk/qmk_firmware/pull/16875)) * Fix kinetic mouse mode ([#16951](https://github.com/qmk/qmk_firmware/pull/16951)) * Enhancement and fixes of "Secure" feature ([#16958](https://github.com/qmk/qmk_firmware/pull/16958)) * Check for ongoing transfers on the OUT endpoint ([#16974](https://github.com/qmk/qmk_firmware/pull/16974)) * MSYS2 install: add some Python dependencies through Pacman ([#17025](https://github.com/qmk/qmk_firmware/pull/17025)) * Revert "Fix kinetic mouse mode (#16951)" ([#17095](https://github.com/qmk/qmk_firmware/pull/17095)) * Workaround for recent -Werror=array-bounds AVR issues ([#17136](https://github.com/qmk/qmk_firmware/pull/17136)) * Bug fix: Continue Caps Word when AltGr (right Alt) is held. ([#17156](https://github.com/qmk/qmk_firmware/pull/17156))