import { _ as _export_sfc, c as createElementBlock, o as openBlock, a8 as createStaticVNode } from "./chunks/framework.DyMmIvSC.js"; const __pageData = JSON.parse('{"title":"QMK Breaking Changes - 2023 Aug 27 Changelog","description":"","frontmatter":{},"headers":[],"relativePath":"ChangeLog/20230827.md","filePath":"ChangeLog/20230827.md"}'); const _sfc_main = { name: "ChangeLog/20230827.md" }; const _hoisted_1 = /* @__PURE__ */ createStaticVNode('

QMK Breaking Changes - 2023 Aug 27 Changelog

Notable Changes

As per last few breaking changes cycles, there have been a lot of behind-the-scenes changes, mainly around migration of configurables into info.json files, cleanup of info.json files, additional layout definitions for keyboards, adding support for general community layouts to keyboards, as well as addressing technical debt.

One thing to note for this release -- qmk/qmk_firmware is no longer accepting PRs for keymaps other than for manufacturer-supported keymaps. User keymap workflow has been documented here for several years. This change is to progressively reduce the maintenance burden on the project, and to allow us to focus on the core features of QMK.

Existing user keymaps and userspace areas will likely be relocated/removed in the future -- non-building keymaps and userspace will be first targets, likely during the new breaking changes cycle. We will provide more information on Discord regarding this initiative as it becomes available.

RGB Matrix optimizations (#21134, #21135)

Most RGB Matrix implementations now check whether or not RGB LED data has changed and skip transmission if it hasn't. This was measured to improve scan frequency in cases of static or infrequently-changing colors.

Audio optimizations (#21496, #21498)

Some audio code relating to "notes" used double datatypes, which are implemented in software floating-point for most ARM microcontrollers. This has been changed to use float datatypes instead, which are implemented in hardware floating-point on most ARM microcontrollers. This change increases performance as well as reduces the firmware size by significant number of bytes.

AVR sees minimal (if any) benefit -- double was interpreted as float on AVR anyway.

Changes Requiring User Action

Updated Keyboard Codebases

Old Keyboard NameNew Keyboard Name
capsunlocked/cu80/v2_ansi/basecapsunlocked/cu80/v2/ansi
capsunlocked/cu80/v2_iso/basecapsunlocked/cu80/v2/iso
handwired/dactyl_manuform/3x5_3handwired/dactyl_minidox
handwired/dactyl_manuform/6x6_kinesishandwired/dactyl_kinesis
handwired/jscotto/scotto36handwired/scottokeebs/scotto36
handwired/jscotto/scotto40handwired/scottokeebs/scotto40
handwired/jscotto/scotto9handwired/scottokeebs/scotto9
handwired/jscotto/scottocmdhandwired/scottokeebs/scottocmd
handwired/jscotto/scottostarterhandwired/scottokeebs/scottostarter
hfdkb/keyboard_sw/k83inland/kb83
idb_60idb/idb_60
kamigakushijaykeeb/kamigakushi
kbdfans/kbd67mkiirgbkbdfans/kbd67/mkiirgb
modelhibm/model_m/modelh
vintacoarse/vinta

Remove encoder in-matrix workaround code (#20389)

Some keyboards "hacked" encoder support into spare slots in the key matrix in order to interoperate with VIA. This workaround is no longer necessary, and the code has been removed. If you have a keyboard that uses this workaround, you will need to update your keymap to use the new Encoder Map API instead.

Unicodemap keycodes rename (#21092)

The Unicodemap keycodes have been renamed:

OldNew
X(i)UM(i)
XP(i,j)UP(i,j)

Remove old OLED API code (#21651)

Old OLED code using ssd1306.c ssd1306.h, and SSD1306OLED and other similar files have been consolidated to use the standard OLED driver. External user keymaps will need to be updated to use the standard OLED driver accordingly.

Driver naming consolidation (#21551, #21558, #21580, #21594, #21624, #21710)

In most circumstances this won't affect users -- only keyboard designers with currently-unmerged boards. The only users affected are people who have modified existing keyboards in order to add/modify haptics, lighting, or bluetooth -- and only if the base keyboard did not configure them already. Driver naming has been modified to be lowercase.

RGBLight (RGBLIGHT_DRIVER / rgblight.driver):

OldNew
WS2812ws2812
APA102apa102

LED Matrix (LED_MATRIX_DRIVER / led_matrix.driver):

OldNew
IS31FL3731is31fl3731
IS31FL3742Ais31fl3742a
IS31FL3743Ais31fl3743a
IS31FL3745is31fl3745
IS31FL3746Ais31fl3746a
CKLED2001ckled2001

RGB Matrix (RGB_MATRIX_DRIVER / rgb_matrix.driver):

OldNew
AW20216aw20216
IS31FL3731is31fl3731
IS31FL3733is31fl3733
IS31FL3736is31fl3736
IS31FL3737is31fl3737
IS31FL3741is31fl3741
IS31FL3742Ais31fl3742a
IS31FL3743Ais31fl3743a
IS31FL3745is31fl3745
IS31FL3746Ais31fl3746a
CKLED2001ckled2001
WS2812ws2812

OLED (OLED_DRIVER):

OldNew
SSD1306ssd1306

Haptic (HAPTIC_DRIVER):

OldNew
DRV2605Ldrv2605l
SOLENOIDsolenoid

Bluetooth (BLUETOOTH_DRIVER / bluetooth.driver):

OldNew
BluefruitLEbluefruit_le
RN42rn42

Full changelist

Core:

CLI:

Submodule updates:

Keyboards:

Keyboard fixes:

Others:

Bugs:

', 49); const _hoisted_50 = [ _hoisted_1 ]; function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) { return openBlock(), createElementBlock("div", null, _hoisted_50); } const _20230827 = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]); export { __pageData, _20230827 as default };