# QMK Breaking Change - 2020 Nov 28 Changelog | QMK Firmware
Documentation for QMK Firmware

Skip to content

# QMK Breaking Change - 2020 Nov 28 Changelog ​

Four times a year QMK runs a process for merging Breaking Changes. A Breaking Change is any change which modifies how QMK behaves in a way that is incompatible or potentially dangerous. We limit these changes to 4 times per year so that users can have confidence that updating their QMK tree will not break their keymaps.

## Changes Requiring User Action ​

### Relocated Keyboards ​

#### Reduce Helix keyboard build variation (#8669) ​

The build commands for the Helix keyboard are:

    make <helix_build_name>:<keymap_name>

For `<helix_build_name>`, specify the one in the rightmost column of the table below, such as `helix`,`helix/pico`.

before Oct 17 2019 | Oct 17 2019 | Mar 10 2020 | Nov 28 2020
--- | --- | --- | ---
helix/rev1 | helix/rev1 | helix/rev1 | helix/rev1
helix/pico | helix/pico | helix/pico | helix/pico
| helix/pico/back | helix/pico/back | helix/pico/back
| helix/pico/under | helix/pico/under | helix/pico/under
|  | helix/pico/sc | --
|  | helix/pico/sc/back | helix/pico/sc
|  | helix/pico/sc/under | --
helix/rev2 (=helix) | helix/rev2 (=helix) | helix/rev2 (=helix) | --
| helix/rev2/back | helix/rev2/back | --
| helix/rev2/back/oled | helix/rev2/back/oled | ( --> helix/rev2/back)
| helix/rev2/oled | helix/rev2/oled | helix/rev2　(=helix)
| helix/rev2/oled/back | helix/rev2/oled/back | helix/rev2/back
| helix/rev2/oled/under | helix/rev2/oled/under | helix/rev2/under
|  | helix/rev2/sc | --
|  | helix/rev2/sc/back | --
|  | helix/rev2/sc/oled | --
|  | helix/rev2/sc/oledback | helix/rev2/sc
|  | helix/rev2/sc/oledunder | --
|  | helix/rev2/sc/under | --
| helix/rev2/under | helix/rev2/under | --
| helix/rev2/under/oled | helix/rev2/under/oled | ( --> helix/rev2/under)

#### Update the Speedo firmware for v3.0 (#10657) ​

The Speedo keyboard has moved to `cozykeys/speedo/v2` as the designer prepares to release the Speedo v3.0.

Previous Name | New Name
--- | ---
speedo | cozykeys/speedo/v2
-- | cozykeys/speedo/v3 new

#### Maartenwut/Maarten name change to evyd13/Evy (#10274) ​

Maartenwut has rebranded as @evyd13, and all released Maartenwut boards have moved.

Previous Name | New Name
--- | ---
maartenwut/atom47/rev2 | evyd13/atom47/rev2
maartenwut/atom47/rev3 | evyd13/atom47/rev3
maartenwut/eon40 | evyd13/eon40
maartenwut/eon65 | evyd13/eon65
maartenwut/eon75 | evyd13/eon75
maartenwut/eon87 | evyd13/eon87
maartenwut/eon95 | evyd13/eon95
maartenwut/gh80_1800 | evyd13/gh80_1800
maartenwut/gh80_3700 | evyd13/gh80_3700
maartenwut/minitomic | evyd13/minitomic
maartenwut/mx5160 | evyd13/mx5160
maartenwut/nt660 | evyd13/nt660
maartenwut/omrontkl | evyd13/omrontkl
maartenwut/plain60 | evyd13/plain60
maartenwut/pockettype | evyd13/pockettype
maartenwut/quackfire | evyd13/quackfire
maartenwut/solheim68 | evyd13/solheim68
maartenwut/ta65 | evyd13/ta65
maartenwut/wasdat | evyd13/wasdat
maartenwut/wasdat_code | evyd13/wasdat_code
maartenwut/wonderland | evyd13/wonderland

#### Xelus Valor and Dawn60 Refactors (#10512, #10584) ​

The Valor and Dawn60 keyboards by Xelus22 both now require their revisions to be specified when compiling.

Previous Name | New Name
--- | ---
xelus/dawn60 | xelus/dawn60/rev1
xelus/valor | xelus/valor/rev1

### Updated Keyboard Codebases ​

#### AEboards EXT65 Refactor (#10820) ​

The EXT65 codebase has been reworked so keymaps can be used with either revision.

## Core Changes ​

### Fixes ​

- Reconnect the USB if users wake up a computer from the keyboard to restore the USB state (#10088)
- Fix cursor position bug in oled_write_raw functions (#10800)

### Additions and Enhancements ​

- Allow MATRIX_ROWS to be greater than 32 (#10183)
- Add support for soft serial to ATmega32U2 (#10204)
- Allow direct control of MIDI velocity value (#9940)
- Joystick 16-bit support (#10439)
- Allow encoder resolutions to be set per encoder (#10259)
- Share button state from mousekey to pointing_device (#10179)
- Add advanced/efficient RGB Matrix Indicators (#8564)
- OLED display update interval support (#10388)
- Per-Key Retro Tapping (#10622)
- Allow backlight duty cycle limit (#10260)
- Add step sequencer feature (#9703)
- Added `add_oneshot_mods` & `del_oneshot_mods` (#10549)
- Add AT90USB support for serial.c (#10706)
- Auto shift: support repeats and early registration (#9826)

### Clean-ups and Optimizations ​

- Haptic and solenoid cleanup (#9700)
- XD75 cleanup (#10524)
- Minor change to behavior allowing display updates to continue between task ticks (#10750)
- Change some GPIO manipulations in matrix.c to be atomic (#10491)
- combine repeated lines of code for ATmega32U2, ATmega16U2, ATmega328 and ATmega328P (#10837)
- Remove references to HD44780 (#10735)

## QMK Infrastructure and Internals ​

- Add ability to build a subset of all keyboards based on platform. (#10420)
- Initialise EEPROM drivers at startup, instead of upon first execution (#10438)
- Make bootloader_jump weak for ChibiOS (#10417)
- Support for STM32 GPIOF,G,H,I,J,K (#10206)
- Add milc as a dependency and remove the installed milc (#10563)
- ChibiOS upgrade: early init conversions (#10214)
- ChibiOS upgrade: configuration file migrator (#9952)
- Add definition based on currently-selected serial driver. (#10716)
- Allow for modification of output RGB values when using rgblight/rgb_matrix. (#10638)
- Allow keyboards/keymaps to execute code at each main loop iteration (#10530)
- qmk cformat (#10767)
- Add a Make variable to easily enable DEBUG_MATRIX_SCAN_RATE on the command line (#10824)
- update Chibios OS USB for the OTG driver (#8893)
- Fixup version.h writing when using `SKIP_VERSION=yes` (#10972, #10974)
- Rename ledmatrix.h to match .c file (#7949)
- Split RGB_MATRIX_ENABLE into _ENABLE and _DRIVER (#10231)
- Split LED_MATRIX_ENABLE into _ENABLE and _DRIVER (#10840)