import { _ as _export_sfc, c as createElementBlock, o as openBlock, a8 as createStaticVNode } from "./chunks/framework.B9AX-CPi.js"; const __pageData = JSON.parse('{"title":"QMK Breaking Changes - 2021 February 27 Changelog","description":"","frontmatter":{},"headers":[],"relativePath":"ChangeLog/20210227.md","filePath":"ChangeLog/20210227.md"}'); const _sfc_main = { name: "ChangeLog/20210227.md" }; const _hoisted_1 = /* @__PURE__ */ createStaticVNode('
The following keyboards have had their source moved within QMK:
Old Keyboard Name | New Keyboard Name |
---|---|
bear_65 | jacky_studio/bear_65 |
s7_elephant/rev1 | jacky_studio/s7_elephant/rev1 |
s7_elephant/rev2 | jacky_studio/s7_elephant/rev2 |
aplx6 | aplyard/aplx6/rev1 |
southpaw75 | fr4/southpaw75 |
The Aplyard Aplx6 rev2 and the FR4Boards Unix60 have also been added as part of these changes.
Additionally, the handwired/bluepill/bluepill70
keyboard has been removed.
QMK's ChibiOS and ChibiOS-Contrib submodules have been updated to version 20.3.2.
Along with this, QMK now provides default configuration files for all commonly-supported ARM microcontrollers running on ChibiOS. As such, keyboards are now only required to define settings which differ from the defaults, thereby reducing the size of pull requests for keyboards running atop ChibiOS.
Python is now required to build QMK. The minimum Python version has been increased to 3.7.
The power of info.json
has been massively expanded. Most keyboard parameters can now be expressed in info.json
instead of config.h
/rules.mk
. This should make maintaining keyboards easier, and will enable tooling that can allow non-technical users to add and maintain QMK keyboards without writing any code.
To ease migration a new command has been provided, qmk generate-info-json -kb <keyboard>
. You can use this command to generate a complete info.json
file for a keyboard and then remove the duplicate information from config.h
and rules.mk
.
Detailed example showing how to generate a new info.json and identify duplicate keys:
user@hostname:~/qmk_firmware/keyboards/lets_split:0$ qmk generate-info-json > new-info.json\nuser@hostname:~/qmk_firmware/keyboards/lets_split:0$ mv new-info.json info.json\nuser@hostname:~/qmk_firmware/keyboards/lets_split:0$ qmk info\n⚠ lets_split/rev2: DEBOUNCE in config.h is overwriting debounce in info.json\n⚠ lets_split/rev2: DEVICE_VER in config.h is overwriting usb.device_ver in info.json\n⚠ lets_split/rev2: DIODE_DIRECTION in config.h is overwriting diode_direction in info.json\n⚠ lets_split/rev2: MANUFACTURER in config.h is overwriting manufacturer in info.json\n⚠ lets_split/rev2: RGB_DI_PIN in config.h is overwriting rgblight.pin in info.json\n⚠ lets_split/rev2: RGBLED_NUM in config.h is overwriting rgblight.led_count in info.json\n⚠ lets_split/rev2: PRODUCT_ID in config.h is overwriting usb.pid in info.json\n⚠ lets_split/rev2: VENDOR_ID in config.h is overwriting usb.vid in info.json\n⚠ lets_split/rev2: Matrix pins are specified in both info.json and config.h, the config.h values win.\n⚠ lets_split/rev2: LAYOUTS in rules.mk is overwriting community_layouts in info.json\n⚠ lets_split/rev2: Feature bootmagic is specified in both info.json and rules.mk, the rules.mk value wins.\n⚠ lets_split/rev2: Feature mousekey is specified in both info.json and rules.mk, the rules.mk value wins.\n⚠ lets_split/rev2: Feature extrakey is specified in both info.json and rules.mk, the rules.mk value wins.\n⚠ lets_split/rev2: Feature console is specified in both info.json and rules.mk, the rules.mk value wins.\n⚠ lets_split/rev2: Feature command is specified in both info.json and rules.mk, the rules.mk value wins.\n⚠ lets_split/rev2: Feature nkro is specified in both info.json and rules.mk, the rules.mk value wins.\n⚠ lets_split/rev2: Feature backlight is specified in both info.json and rules.mk, the rules.mk value wins.\n⚠ lets_split/rev2: Feature midi is specified in both info.json and rules.mk, the rules.mk value wins.\n⚠ lets_split/rev2: Feature audio is specified in both info.json and rules.mk, the rules.mk value wins.\n⚠ lets_split/rev2: Feature unicode is specified in both info.json and rules.mk, the rules.mk value wins.\n⚠ lets_split/rev2: Feature bluetooth is specified in both info.json and rules.mk, the rules.mk value wins.\n⚠ lets_split/rev2: Feature rgblight is specified in both info.json and rules.mk, the rules.mk value wins.\n⚠ lets_split/rev2: Feature sleep_led is specified in both info.json and rules.mk, the rules.mk value wins.\nKeyboard Name: Let's Split\nManufacturer: Wootpatoot\nWebsite:\nMaintainer: QMK Community\nKeyboard Folder: lets_split/rev2\nLayouts: LAYOUT, LAYOUT_ortho_4x12\nSize: 13 x 4\nProcessor: atmega32u4\nBootloader: caterina
unix60
, moved together with southpaw75
into fr4
folder (#11195)develop
branch (#11409)378edd9
, #11594, 27749e1
)stdbool.h
in uart.h
to fix compiler errors (#11728)sendyyeah/pix
) (#11154)QWIIC_ENABLE
in rules.mk
to be yes/no choice, adding QWIIC_DRIVERS
to allow for inclusion of specific drivers (#11426)bootloader_jump
function (#11418)ab375d3
, #11552)matrix_io_delay()
timing in quantum/matrix.c
(#9603)post_config.h
to be implemented in userspace (#11519)tap_code_delay(code, delay)
(#11913, #11938)I2C_KEYMAP_START
define (#11237)action_get_macro()
usages in user files (#11165)QMK_KEYBOARD_CONFIG_H
(#11576)arm_atsam
(#11672)transport.c
to QUANTUM_LIB_SRC
(#11751)MIDI_ENABLE_STRICT
from user keymaps (#11750)qmk json-keymap
(#11823)print.h
(#11863)tmk_core/common/action.c
: refactor for code size; merge multiple case
s into one (#11943)develop
branch is now formatted as part of CI tasks (#11893, #11905, #11907, #11928, #11936)info.json
(#11492)keyboard.jsonschema
to mirror qmk.constants.py
(#11688)info.json
and config.h
/rules.mk
(#11548)