summaryrefslogtreecommitdiffstats
path: root/docs
diff options
context:
space:
mode:
Diffstat (limited to 'docs')
-rw-r--r--docs/ChangeLog/20200829.md2
-rw-r--r--docs/ChangeLog/20201128.md2
-rw-r--r--docs/ChangeLog/20210529.md192
-rw-r--r--docs/_summary.md2
-rw-r--r--docs/adc_driver.md154
-rw-r--r--docs/breaking_changes.md15
-rw-r--r--docs/breaking_changes_history.md1
-rw-r--r--docs/cli_commands.md48
-rw-r--r--docs/compatible_microcontrollers.md3
-rw-r--r--docs/feature_auto_shift.md27
-rw-r--r--docs/feature_backlight.md20
-rw-r--r--docs/feature_encoders.md9
-rw-r--r--docs/feature_leader_key.md13
-rw-r--r--docs/feature_led_matrix.md337
-rw-r--r--docs/feature_oled_driver.md2
-rw-r--r--docs/feature_rgb_matrix.md105
-rw-r--r--docs/feature_rgblight.md13
-rw-r--r--docs/feature_swap_hands.md2
-rw-r--r--docs/feature_unicode.md2
-rw-r--r--docs/feature_wpm.md67
-rw-r--r--docs/flashing.md26
-rw-r--r--docs/ja/compatible_microcontrollers.md3
-rw-r--r--docs/ja/feature_led_matrix.md2
-rw-r--r--docs/ja/feature_swap_hands.md2
-rw-r--r--docs/keycodes.md3
-rw-r--r--docs/one_shot_keys.md3
-rw-r--r--docs/serial_driver.md154
-rw-r--r--docs/ws2812_driver.md22
28 files changed, 1066 insertions, 165 deletions
diff --git a/docs/ChangeLog/20200829.md b/docs/ChangeLog/20200829.md
index 00e0bd1a28..c6abed5b30 100644
--- a/docs/ChangeLog/20200829.md
+++ b/docs/ChangeLog/20200829.md
@@ -5,7 +5,7 @@ Four times a year QMK runs a process for merging Breaking Changes. A Breaking Ch
## Changes Requiring User Action :id=changes-requiring-user-action
-### Relocated Keyboards :id-relocated-keyboards
+### Relocated Keyboards :id=relocated-keyboards
#### The Key Company project consolidation ([#9547](https://github.com/qmk/qmk_firmware/pull/9547))
#### relocating boards by flehrad to flehrad/ folder ([#9635](https://github.com/qmk/qmk_firmware/pull/9635))
diff --git a/docs/ChangeLog/20201128.md b/docs/ChangeLog/20201128.md
index 86abd384df..4441320295 100644
--- a/docs/ChangeLog/20201128.md
+++ b/docs/ChangeLog/20201128.md
@@ -5,7 +5,7 @@ Four times a year QMK runs a process for merging Breaking Changes. A Breaking Ch
## Changes Requiring User Action :id=changes-requiring-user-action
-### Relocated Keyboards :id-relocated-keyboards
+### Relocated Keyboards :id=relocated-keyboards
#### Reduce Helix keyboard build variation ([#8669](https://github.com/qmk/qmk_firmware/pull/8669))
diff --git a/docs/ChangeLog/20210529.md b/docs/ChangeLog/20210529.md
new file mode 100644
index 0000000000..d005aeed36
--- /dev/null
+++ b/docs/ChangeLog/20210529.md
@@ -0,0 +1,192 @@
+# QMK Breaking Changes - 2021 May 29 Changelog
+
+## Notable Changes :id=notable-changes
+
+### RGB Matrix support for split common ([#11055](https://github.com/qmk/qmk_firmware/pull/11055)) :id=rgb-matrix-split-common
+
+Split boards can now use RGB Matrix without defining a custom matrix.
+
+### Teensy 3.6 support ([#12258](https://github.com/qmk/qmk_firmware/pull/12258)) :id=teensy-3-6-support
+
+Added support for MK66F18 (Teensy 3.6) microcontroller.
+
+### New command: qmk console ([#12828](https://github.com/qmk/qmk_firmware/pull/12828)) :id=new-command-qmk-console
+
+A new `qmk console` command has been added for attaching to your keyboard's console. It operates similiarly to QMK Toolbox by allowing you to connect to one or more keyboard consoles to display debugging messages.
+
+### Improved command: qmk config :id=improve-command-qmk-config
+
+We've updated the `qmk config` command to show only the configuration items you have actually set. You can now display (almost) all of the available configuration options, along with their default values, using `qmk config -a`.
+
+### LED Matrix Improvements ([#12509](https://github.com/qmk/qmk_firmware/pull/12509), [#12580](https://github.com/qmk/qmk_firmware/pull/12580), [#12588](https://github.com/qmk/qmk_firmware/pull/12588), [#12633](https://github.com/qmk/qmk_firmware/pull/12633), [#12651](https://github.com/qmk/qmk_firmware/pull/12651), [#12685](https://github.com/qmk/qmk_firmware/pull/12685)) :id=led-matrix-improvements
+
+LED Matrix has been improved with effects, CIE1931 curves, and a task system.
+
+## Changes Requiring User Action :id=changes-requiring-user-action
+
+### Updated Keyboard Codebases :id=updated-keyboard-codebases
+
+* Durgod keyboard refactor in preparation for adding additional durgod keyboards ([#11978](https://github.com/qmk/qmk_firmware/pull/11978))
+* Updated Function96 with V2 files and removed chconf.h and halconf.h ([#12613](https://github.com/qmk/qmk_firmware/pull/12613))
+* [Keyboard] updated a vendor name / fixed minor keymap issues ([#12881](https://github.com/qmk/qmk_firmware/pull/12881))
+* [Keyboard] Corne - Remove legacy revision support ([#12226](https://github.com/qmk/qmk_firmware/pull/12226))
+
+The following keyboards have had their source moved within QMK:
+
+Old Keyboard Name | New Keyboard Name
+:---------------- | :----------------
+crkbd/rev1/common | crkbd/rev1
+function96 | function96/v1
+nckiibs/flatbread60 | delikeeb/flatbread60
+nckiibs/vaguettelite | delikeeb/vaguettelite
+nckiibs/vanana/rev1 | delikeeb/vanana/rev1
+nckiibs/vanana/rev2 | delikeeb/vanana/rev2
+nckiibs/vaneela | delikeeb/vaneela
+nckiibs/vaneelaex | delikeeb/vaneelaex
+nckiibs/waaffle/rev3/elite_c | delikeeb/waaffle/rev3/elite_c
+nckiibs/waaffle/rev3/pro_micro | delikeeb/waaffle/rev3/pro_micro
+
+The [Function96 V2](https://github.com/qmk/qmk_firmware/tree/0.13.0/keyboards/function96/v2) has also been added as part of these changes.
+
+The codebase for the [Durgod K320](https://github.com/qmk/qmk_firmware/tree/0.13.0/keyboards/durgod/k320) has been reworked in anticipation of additional Durgod keyboards gaining QMK support.
+
+Additionally, the `crkbd/rev1/legacy` keyboard has been removed.
+
+### Bootmagic Deprecation and Refactor ([#12172](https://github.com/qmk/qmk_firmware/pull/12172)) :id=bootmagic-deprecation-and-refactor
+
+QMK has decided to deprecate the full Bootmagic feature and leave Bootmagic Lite as the only remaining option.
+
+This pull request changes the behavior of `BOOTMAGIC_ENABLE` such that specifying `BOOTMAGIC_ENABLE = yes` enables Bootmagic Lite instead of full Bootmagic.
+
+If attempts to use Bootmagic functionality result in unexpected behavior, check your `rules.mk` file and change the `BOOTMAGIC_ENABLE` setting to specify either `lite` or `full`.
+
+#### Tentative Deprecation Schedule
+
+This is the current planned roadmap for the behavior of `BOOTMAGIC_ENABLE`:
+
+- From 2021 May 29, setting `BOOTMAGIC_ENABLE = yes` will enable Bootmagic Lite instead of full Bootmagic.
+- From 2021 Aug 28, `BOOTMAGIC_ENABLE` must be either `yes`, `lite`, or `no` – setting `BOOTMAGIC_ENABLE = full` will cause compilation to fail.
+- From 2021 Nov 27, `BOOTMAGIC_ENABLE` must be either `yes` or `no` – setting `BOOTMAGIC_ENABLE = lite` will cause compilation to fail.
+
+### Removal of LAYOUT_kc ([#12160](https://github.com/qmk/qmk_firmware/pull/12160)) :id=removal-of-layout-kc
+
+We've removed support for `LAYOUT_kc` macros, if your keymap uses one you will need to update it use a regular `LAYOUT` macro.
+
+### Encoder callbacks are now boolean ([#12805](https://github.com/qmk/qmk_firmware/pull/12805), [#12985](https://github.com/qmk/qmk_firmware/pull/12985)) :id=encoder-callback-boolean
+
+To allow for keyboards to override (or not) keymap level code the `encoder_update_kb` function has been changed from `void` to `bool`. You will need to update your function definition to reflect this and ensure that you return a `true` or `false` value.
+
+Example code before change:
+
+```c
+void encoder_update_kb(uint8_t index, bool clockwise) {
+ encoder_update_user(index, clockwise);
+}
+```
+
+Example code after change:
+
+```c
+bool encoder_update_kb(uint8_t index, bool clockwise) {
+ return encoder_update_user(index, clockwise);
+}
+```
+
+## Core Changes :id=core-changes
+
+### Fixes :id=core-fixes
+
+* Fix connection issue in split keyboards when slave and OLED display are connected via I2C (fixes #9335) ([#11487](https://github.com/qmk/qmk_firmware/pull/11487))
+* Terrazzo: Fix wrong LED Matrix function names ([#12561](https://github.com/qmk/qmk_firmware/pull/12561))
+* Apply the "NO_LIMITED_CONTROLLER_CONNECT" fix to atmega16u2 ([#12482](https://github.com/qmk/qmk_firmware/pull/12482))
+* Fix comment parsing ([#12750](https://github.com/qmk/qmk_firmware/pull/12750))
+* Turn OLED off on suspend in soundmonster Corne keymap ([#10419](https://github.com/qmk/qmk_firmware/pull/10419))
+* Fixup build errors on `develop` branch. ([#12723](https://github.com/qmk/qmk_firmware/pull/12723))
+* Fix syntax error when compiling for ARM ([#12866](https://github.com/qmk/qmk_firmware/pull/12866))
+* Add missing LED Matrix suspend code to suspend.c ([#12878](https://github.com/qmk/qmk_firmware/pull/12878))
+* Fix spelling mistake regarding LED Matrix in split_common. ([#12888](https://github.com/qmk/qmk_firmware/pull/12888))
+* [Keymap] Fix QWERTY/DVORAK status output for kzar keymap ([#12895](https://github.com/qmk/qmk_firmware/pull/12895))
+* Fixup housekeeping from being invoked twice per loop. ([#12933](https://github.com/qmk/qmk_firmware/pull/12933))
+* wait for matrix row signal to go HIGH for every row ([#12945](https://github.com/qmk/qmk_firmware/pull/12945))
+* ensure we do not conflict with existing keymap aliases ([#12976](https://github.com/qmk/qmk_firmware/pull/12976))
+* [Keyboard] Fix Terrazzo build failure ([#12977](https://github.com/qmk/qmk_firmware/pull/12977))
+* Do not hard set config in CPTC files ([#11864](https://github.com/qmk/qmk_firmware/pull/11864))
+
+### Additions and Enhancements :id=core-additions
+
+* ARM - Refactor SLEEP_LED to support more platforms ([#8403](https://github.com/qmk/qmk_firmware/pull/8403))
+* Add ability to toggle One Shot functionality ([#4198](https://github.com/qmk/qmk_firmware/pull/4198))
+* Add RGB Matrix support to Split Common ([#11055](https://github.com/qmk/qmk_firmware/pull/11055))
+* Add support for complementary outputs to the ChibiOS WS2812 PWM driver ([#11988](https://github.com/qmk/qmk_firmware/pull/11988))
+* Enable RGB Matrix for Corne ([#12091](https://github.com/qmk/qmk_firmware/pull/12091))
+* Set default OLED Update Interval for Split Keyboards to improve matrix scan performance ([#12107](https://github.com/qmk/qmk_firmware/pull/12107))
+* Add support for MK66F18 (Teensy 3.6) micro controller ([#12258](https://github.com/qmk/qmk_firmware/pull/12258))
+* Split RGB Matrix support for RGBKB Zygomorph ([#11083](https://github.com/qmk/qmk_firmware/pull/11083))
+* Add baudrate and circular buffer to ARM WS2812 SPI config ([#12216](https://github.com/qmk/qmk_firmware/pull/12216))
+* Add keyboard level weak function for slave matrix scan ([#12317](https://github.com/qmk/qmk_firmware/pull/12317))
+* Add link to schematic on EasyEDA for XD60 ([#12018](https://github.com/qmk/qmk_firmware/pull/12018))
+* Add Config functions for LED Matrix ([#12361](https://github.com/qmk/qmk_firmware/pull/12361))
+* Add pin definitions for MK66F18 ([#12419](https://github.com/qmk/qmk_firmware/pull/12419))
+* add kinesis/kint36 keyboard ([#10171](https://github.com/qmk/qmk_firmware/pull/10171))
+* Add support for producing UF2-format binaries. ([#12435](https://github.com/qmk/qmk_firmware/pull/12435))
+* Implement CIE1931 curve for LED Matrix ([#12417](https://github.com/qmk/qmk_firmware/pull/12417))
+* Change `BOOTMAGIC_ENABLE=yes` to use Bootmagic Lite ([#12172](https://github.com/qmk/qmk_firmware/pull/12172))
+* Add kzar keymap for Kinesis Advantage ([#12444](https://github.com/qmk/qmk_firmware/pull/12444))
+* LED Matrix: suspend code ([#12509](https://github.com/qmk/qmk_firmware/pull/12509))
+* LED Matrix: Task system ([#12580](https://github.com/qmk/qmk_firmware/pull/12580))
+* Add missing RGB_MODE_TWINKLE / RGB_M_TW keycodes ([#11935](https://github.com/qmk/qmk_firmware/pull/11935))
+* Enhancement of WPM feature ([#11727](https://github.com/qmk/qmk_firmware/pull/11727))
+* Add Per Key functionality for AutoShift ([#11536](https://github.com/qmk/qmk_firmware/pull/11536))
+* LED Matrix: Reactive effect buffers & advanced indicators ([#12588](https://github.com/qmk/qmk_firmware/pull/12588))
+* LED Matrix: support for Split keyboards ([#12633](https://github.com/qmk/qmk_firmware/pull/12633))
+* add setting to enable infinite timeout for leader key ([#6580](https://github.com/qmk/qmk_firmware/pull/6580), [#12721](https://github.com/qmk/qmk_firmware/pull/12721 "Fix bad PR merge for #6580"))
+* Update ADC driver for STM32F1xx, STM32F3xx, STM32F4xx ([#12403](https://github.com/qmk/qmk_firmware/pull/12403))
+* Add initial support for tinyuf2 bootloader (when hosted on F411 blackpill) ([#12600](https://github.com/qmk/qmk_firmware/pull/12600))
+* Add support for STM32F446 MCU ([#12619](https://github.com/qmk/qmk_firmware/pull/12619))
+* Add STM32L433 and L443 support ([#12063](https://github.com/qmk/qmk_firmware/pull/12063))
+* Added OLED fade out support ([#12086](https://github.com/qmk/qmk_firmware/pull/12086))
+* New command: `qmk console` ([#12828](https://github.com/qmk/qmk_firmware/pull/12828))
+* LED Matrix: Effects! ([#12651](https://github.com/qmk/qmk_firmware/pull/12651))
+* Add setup, clone, and env to the list of commands we allow even with broken modules ([#12868](https://github.com/qmk/qmk_firmware/pull/12868))
+* LED Matrix: Documentation ([#12685](https://github.com/qmk/qmk_firmware/pull/12685))
+* Add function to allow repeated blinking of one layer ([#12237](https://github.com/qmk/qmk_firmware/pull/12237))
+* Add support for up to 4 IS31FL3733 drivers ([#12342](https://github.com/qmk/qmk_firmware/pull/12342))
+* Convert Encoder callbacks to be boolean functions ([#12805](https://github.com/qmk/qmk_firmware/pull/12805), [#12985](https://github.com/qmk/qmk_firmware/pull/12985))
+* [Keymap] Update to Drashna keymap and user code (based on develop) ([#12936](https://github.com/qmk/qmk_firmware/pull/12936))
+* Add Full-duplex serial driver for ARM boards ([#9842](https://github.com/qmk/qmk_firmware/pull/9842))
+* Document LED_MATRIX_FRAMEBUFFER_EFFECTS ([#12987](https://github.com/qmk/qmk_firmware/pull/12987))
+* Backlight: add defines for default level and breathing state ([#12560](https://github.com/qmk/qmk_firmware/pull/12560), [#13024](https://github.com/qmk/qmk_firmware/pull/13024))
+* Add dire message about LUFA mass storage bootloader ([#13014](https://github.com/qmk/qmk_firmware/pull/13014))
+
+### Clean-ups and Optimizations :id=core-optimizations
+
+* Overhaul bootmagic logic to have single entrypoint ([#8532](https://github.com/qmk/qmk_firmware/pull/8532))
+* Refactor of USB code within split_common ([#11890](https://github.com/qmk/qmk_firmware/pull/11890))
+* Begin the process of deprecating `bin/qmk` in favor of the global CLI ([#12109](https://github.com/qmk/qmk_firmware/pull/12109))
+* LED Matrix: decouple from Backlight ([#12054](https://github.com/qmk/qmk_firmware/pull/12054))
+* Remove `FUNC()` ([#12161](https://github.com/qmk/qmk_firmware/pull/12161))
+* Move gpio wait logic to wait.h ([#12067](https://github.com/qmk/qmk_firmware/pull/12067))
+* LED Matrix: Clean up includes ([#12197](https://github.com/qmk/qmk_firmware/pull/12197))
+* Consistently use bin/qmk when that script is called ([#12286](https://github.com/qmk/qmk_firmware/pull/12286))
+* LED Matrix: Additional common_features.mk tweaks ([#12187](https://github.com/qmk/qmk_firmware/pull/12187))
+* LED Matrix: Fix up eeconfig code ([#12327](https://github.com/qmk/qmk_firmware/pull/12327))
+* Big quantum_keycodes cleanup ([#12249](https://github.com/qmk/qmk_firmware/pull/12249))
+* Fix up builds that are now too big for `develop` branch. ([#12495](https://github.com/qmk/qmk_firmware/pull/12495))
+* [Keyboard] kint36: switch to sym_eager_pk debouncing ([#12626](https://github.com/qmk/qmk_firmware/pull/12626))
+* [Keyboard] kint2pp: reduce input latency by ≈10ms ([#12625](https://github.com/qmk/qmk_firmware/pull/12625))
+* eeprom driver: Refactor where eeprom driver initialisation (and EEPROM emulation initialisation) occurs to make it non-target-specific. ([#12671](https://github.com/qmk/qmk_firmware/pull/12671))
+* Change RGB/LED Matrix to use a simple define for USB suspend ([#12697](https://github.com/qmk/qmk_firmware/pull/12697), [#12770](https://github.com/qmk/qmk_firmware/pull/12770 "Fixing transport's led/rgb matrix suspend state logic"))
+* Remove pointless SERIAL_LINK_ENABLE rules ([#12846](https://github.com/qmk/qmk_firmware/pull/12846))
+* Make Swap Hands use PROGMEM ([#12284](https://github.com/qmk/qmk_firmware/pull/12284))
+* Remove KEYMAP and LAYOUT_kc ([#12160](https://github.com/qmk/qmk_firmware/pull/12160))
+* Rename `point_t` -> `led_point_t` ([#12864](https://github.com/qmk/qmk_firmware/pull/12864))
+* Deprecate `send_unicode_hex_string()` ([#12602](https://github.com/qmk/qmk_firmware/pull/12602))
+* [Keyboard] Remove redundant legacy and common headers for crkbd ([#13023](https://github.com/qmk/qmk_firmware/pull/13023))
+
+### QMK Infrastructure and Internals :id=qmk-internals
+
+* trivial change to trigger api update ([`b15288fb87`](https://github.com/qmk/qmk_firmware/commit/b15288fb87))
+* fix some references to bin/qmk that slipped in ([#12832](https://github.com/qmk/qmk_firmware/pull/12832))
+* Resolve a number of warnings in `qmk generate-api` ([#12833](https://github.com/qmk/qmk_firmware/pull/12833))
+* Fix another bin/qmk reference ([#12856](https://github.com/qmk/qmk_firmware/pull/12856))
+* Use milc.subcommand.config instead of qmk.cli.config ([#12915](https://github.com/qmk/qmk_firmware/pull/12915))
diff --git a/docs/_summary.md b/docs/_summary.md
index 825514e6b5..38937771f6 100644
--- a/docs/_summary.md
+++ b/docs/_summary.md
@@ -120,7 +120,7 @@
* Breaking Changes
* [Overview](breaking_changes.md)
* [My Pull Request Was Flagged](breaking_changes_instructions.md)
- * [Most Recent ChangeLog](ChangeLog/20210227.md "QMK v0.12.0 - 2021 Feb 27")
+ * [Most Recent ChangeLog](ChangeLog/20210529.md "QMK v0.13.0 - 2021 May 29")
* [Past Breaking Changes](breaking_changes_history.md)
* C Development
diff --git a/docs/adc_driver.md b/docs/adc_driver.md
index 6e3d513863..69fff4b3c2 100644
--- a/docs/adc_driver.md
+++ b/docs/adc_driver.md
@@ -47,73 +47,79 @@ Note that some of these pins are doubled-up on ADCs with the same channel. This
Also note that the F0 and F3 use different numbering schemes. The F0 has a single ADC and the channels are 0-indexed, whereas the F3 has 4 ADCs and the channels are 1-indexed. This is because the F0 uses the `ADCv1` implementation of the ADC, whereas the F3 uses the `ADCv3` implementation.
-|ADC|Channel|STM32F0xx|STM32F3xx|
-|---|-------|---------|---------|
-|1 |0 |`A0` | |
-|1 |1 |`A1` |`A0` |
-|1 |2 |`A2` |`A1` |
-|1 |3 |`A3` |`A2` |
-|1 |4 |`A4` |`A3` |
-|1 |5 |`A5` |`F4` |
-|1 |6 |`A6` |`C0` |
-|1 |7 |`A7` |`C1` |
-|1 |8 |`B0` |`C2` |
-|1 |9 |`B1` |`C3` |
-|1 |10 |`C0` |`F2` |
-|1 |11 |`C1` | |
-|1 |12 |`C2` | |
-|1 |13 |`C3` | |
-|1 |14 |`C4` | |
-|1 |15 |`C5` | |
-|1 |16 | | |
-|2 |1 | |`A4` |
-|2 |2 | |`A5` |
-|2 |3 | |`A6` |
-|2 |4 | |`A7` |
-|2 |5 | |`C4` |
-|2 |6 | |`C0` |
-|2 |7 | |`C1` |
-|2 |8 | |`C2` |
-|2 |9 | |`C3` |
-|2 |10 | |`F2` |
-|2 |11 | |`C5` |
-|2 |12 | |`B2` |
-|2 |13 | | |
-|2 |14 | | |
-|2 |15 | | |
-|2 |16 | | |
-|3 |1 | |`B1` |
-|3 |2 | |`E9` |
-|3 |3 | |`E13` |
-|3 |4 | | |
-|3 |5 | | |
-|3 |6 | |`E8` |
-|3 |7 | |`D10` |
-|3 |8 | |`D11` |
-|3 |9 | |`D12` |
-|3 |10 | |`D13` |
-|3 |11 | |`D14` |
-|3 |12 | |`B0` |
-|3 |13 | |`E7` |
-|3 |14 | |`E10` |
-|3 |15 | |`E11` |
-|3 |16 | |`E12` |
-|4 |1 | |`E14` |
-|4 |2 | |`B12` |
-|4 |3 | |`B13` |
-|4 |4 | |`B14` |
-|4 |5 | |`B15` |
-|4 |6 | |`E8` |
-|4 |7 | |`D10` |
-|4 |8 | |`D11` |
-|4 |9 | |`D12` |
-|4 |10 | |`D13` |
-|4 |11 | |`D14` |
-|4 |12 | |`D8` |
-|4 |13 | |`D9` |
-|4 |14 | | |
-|4 |15 | | |
-|4 |16 | | |
+|ADC|Channel|STM32F0xx|STM32F1xx|STM32F3xx|STM32F4xx|
+|---|-------|---------|---------|---------|---------|
+|1 |0 |`A0` |`A0` | |`A0` |
+|1 |1 |`A1` |`A1` |`A0` |`A1` |
+|1 |2 |`A2` |`A2` |`A1` |`A2` |
+|1 |3 |`A3` |`A3` |`A2` |`A3` |
+|1 |4 |`A4` |`A4` |`A3` |`A4` |
+|1 |5 |`A5` |`A5` |`F4` |`A5` |
+|1 |6 |`A6` |`A6` |`C0` |`A6` |
+|1 |7 |`A7` |`A7` |`C1` |`A7` |
+|1 |8 |`B0` |`B0` |`C2` |`B0` |
+|1 |9 |`B1` |`B1` |`C3` |`B1` |
+|1 |10 |`C0` |`C0` |`F2` |`C0` |
+|1 |11 |`C1` |`C1` | |`C1` |
+|1 |12 |`C2` |`C2` | |`C2` |
+|1 |13 |`C3` |`C3` | |`C3` |
+|1 |14 |`C4` |`C4` | |`C4` |
+|1 |15 |`C5` |`C5` | |`C5` |
+|1 |16 | | | | |
+|2 |0 | |`A0`¹ | |`A0`² |
+|2 |1 | |`A1`¹ |`A4` |`A1`² |
+|2 |2 | |`A2`¹ |`A5` |`A2`² |
+|2 |3 | |`A3`¹ |`A6` |`A3`² |
+|2 |4 | |`A4`¹ |`A7` |`A4`² |
+|2 |5 | |`A5`¹ |`C4` |`A5`² |
+|2 |6 | |`A6`¹ |`C0` |`A6`² |
+|2 |7 | |`A7`¹ |`C1` |`A7`² |
+|2 |8 | |`B0`¹ |`C2` |`B0`² |
+|2 |9 | |`B1`¹ |`C3` |`B1`² |
+|2 |10 | |`C0`¹ |`F2` |`C0`² |
+|2 |11 | |`C1`¹ |`C5` |`C1`² |
+|2 |12 | |`C2`¹ |`B2` |`C2`² |
+|2 |13 | |`C3`¹ | |`C3`² |
+|2 |14 | |`C4`¹ | |`C4`² |
+|2 |15 | |`C5`¹ | |`C5`² |
+|2 |16 | | | | |
+|3 |0 | |`A0`¹ | |`A0`² |
+|3 |1 | |`A1`¹ |`B1` |`A1`² |
+|3 |2 | |`A2`¹ |`E9` |`A2`² |
+|3 |3 | |`A3`¹ |`E13` |`A3`² |
+|3 |4 | |`F6`¹ | |`F6`² |
+|3 |5 | |`F7`¹ |`B13` |`F7`² |
+|3 |6 | |`F8`¹ |`E8` |`F8`² |
+|3 |7 | |`F9`¹ |`D10` |`F9`² |
+|3 |8 | |`F10`¹ |`D11` |`F10`² |
+|3 |9 | | |`D12` |`F3`² |
+|3 |10 | |`C0`¹ |`D13` |`C0`² |
+|3 |11 | |`C1`¹ |`D14` |`C1`² |
+|3 |12 | |`C2`¹ |`B0` |`C2`² |
+|3 |13 | |`C3`¹ |`E7` |`C3`² |
+|3 |14 | | |`E10` |`F4`² |
+|3 |15 | | |`E11` |`F5`² |
+|3 |16 | | |`E12` | |
+|4 |1 | | |`E14` | |
+|4 |2 | | |`E15` | |
+|4 |3 | | |`B12` | |
+|4 |4 | | |`B14` | |
+|4 |5 | | |`B15` | |
+|4 |6 | | |`E8` | |
+|4 |7 | | |`D10` | |
+|4 |8 | | |`D11` | |
+|4 |9 | | |`D12` | |
+|4 |10 | | |`D13` | |
+|4 |11 | | |`D14` | |
+|4 |12 | | |`D8` | |
+|4 |13 | | |`D9` | |
+|4 |14 | | | | |
+|4 |15 | | | | |
+|4 |16 | | | | |
+
+<sup>¹ As of ChibiOS 20.3.4, the ADC driver for STM32F1xx devices supports only ADC1, therefore any configurations involving ADC2 or ADC3 cannot actually be used. In particular, pins `F6`…`F10`, which are present at least on some STM32F103x[C-G] devices, cannot be used as ADC inputs because of this driver limitation.</sup>
+
+<sup>² Not all STM32F4xx devices have ADC2 and/or ADC3, therefore some configurations shown in this table may be unavailable; in particular, pins `F4`…`F10` cannot be used as ADC inputs on devices which do not have ADC3. Check the device datasheet to confirm which pin functions are supported.</sup>
## Functions
@@ -141,10 +147,10 @@ Also note that the F0 and F3 use different numbering schemes. The F0 has a singl
The ARM implementation of the ADC has a few additional options that you can override in your own keyboards and keymaps to change how it operates. Please consult the corresponding `hal_adc_lld.h` in ChibiOS for your specific microcontroller for further documentation on your available options.
-|`#define` |Type |Default |Description |
-|---------------------|------|---------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
-|`ADC_CIRCULAR_BUFFER`|`bool`|`false` |If `true`, then the implementation will use a circular buffer. |
-|`ADC_NUM_CHANNELS` |`int` |`1` |Sets the number of channels that will be scanned as part of an ADC operation. The current implementation only supports `1`. |
-|`ADC_BUFFER_DEPTH` |`int` |`2` |Sets the depth of each result. Since we are only getting a 12-bit result by default, we set this to 2 bytes so we can contain our one value. This could be set to 1 if you opt for an 8-bit or lower result.|
-|`ADC_SAMPLING_RATE` |`int` |`ADC_SMPR_SMP_1P5` |Sets the sampling rate of the ADC. By default, it is set to the fastest setting. |
-|`ADC_RESOLUTION` |`int` |`ADC_CFGR1_RES_12BIT`|The resolution of your result. We choose 12 bit by default, but you can opt for 12, 10, 8, or 6 bit. |
+|`#define` |Type |Default |Description |
+|---------------------|------|----------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+|`ADC_CIRCULAR_BUFFER`|`bool`|`false` |If `true`, then the implementation will use a circular buffer. |
+|`ADC_NUM_CHANNELS` |`int` |`1` |Sets the number of channels that will be scanned as part of an ADC operation. The current implementation only supports `1`. |
+|`ADC_BUFFER_DEPTH` |`int` |`2` |Sets the depth of each result. Since we are only getting a 10-bit result by default, we set this to 2 bytes so we can contain our one value. This could be set to 1 if you opt for an 8-bit or lower result.|
+|`ADC_SAMPLING_RATE` |`int` |`ADC_SMPR_SMP_1P5` |Sets the sampling rate of the ADC. By default, it is set to the fastest setting. |
+|`ADC_RESOLUTION` |`int` |`ADC_CFGR1_RES_10BIT` or `ADC_CFGR_RES_10BITS`|The resolution of your result. We choose 10 bit by default, but you can opt for 12, 10, 8, or 6 bit. Different MCUs use slightly different names for the resolution constants. |
diff --git a/docs/breaking_changes.md b/docs/breaking_changes.md
index 0503789cdb..3e85a70761 100644
--- a/docs/breaking_changes.md
+++ b/docs/breaking_changes.md
@@ -6,6 +6,7 @@ The breaking change period is when we will merge PR's that change QMK in dangero
## What has been included in past Breaking Changes?
+* [2021 May 29](ChangeLog/20210529.md)
* [2021 Feb 27](ChangeLog/20210227.md)
* [2020 Nov 28](ChangeLog/20201128.md)
* [2020 Aug 29](ChangeLog/20200829.md)
@@ -15,16 +16,16 @@ The breaking change period is when we will merge PR's that change QMK in dangero
## When is the next Breaking Change?
-The next Breaking Change is scheduled for May 29, 2021.
+The next Breaking Change is scheduled for August 28, 2021.
### Important Dates
-* [x] 2021 Feb 27 - `develop` is created. Each push to `master` is subsequently merged to `develop`
-* [ ] 2021 May 01 - `develop` closed to new PR's.
-* [ ] 2021 May 01 - Call for testers.
-* [ ] 2021 May 27 - `master` is locked, no PR's merged.
-* [ ] 2021 May 29 - Merge `develop` to `master`.
-* [ ] 2021 May 29 - `master` is unlocked. PR's can be merged again.
+* [x] 2021 May 29 - `develop` is created. Each push to `master` is subsequently merged to `develop`
+* [ ] 2021 Jul 31 - `develop` closed to new PR's.
+* [ ] 2021 Jul 31 - Call for testers.
+* [ ] 2021 Aug 26 - `master` is locked, no PR's merged.
+* [ ] 2021 Aug 28 - Merge `develop` to `master`.
+* [ ] 2021 Aug 28 - `master` is unlocked. PR's can be merged again.
## What changes will be included?
diff --git a/docs/breaking_changes_history.md b/docs/breaking_changes_history.md
index dd474f1bb7..6ba8fe3b06 100644
--- a/docs/breaking_changes_history.md
+++ b/docs/breaking_changes_history.md
@@ -2,6 +2,7 @@
This page links to all previous changelogs from the QMK Breaking Changes process.
+* [2021 May 29](ChangeLog/20210529.md) - version 0.13.0
* [2021 Feb 27](ChangeLog/20210227.md) - version 0.12.0
* [2020 Nov 28](ChangeLog/20201128.md) - version 0.11.0
* [2020 Aug 29](ChangeLog/20200829.md) - version 0.10.0
diff --git a/docs/cli_commands.md b/docs/cli_commands.md
index 05e9306070..581342093a 100644
--- a/docs/cli_commands.md
+++ b/docs/cli_commands.md
@@ -107,6 +107,54 @@ This command lets you configure the behavior of QMK. For the full `qmk config` d
qmk config [-ro] [config_token1] [config_token2] [...] [config_tokenN]
```
+## `qmk console`
+
+This command lets you connect to keyboard consoles to get debugging messages. It only works if your keyboard firmware has been compiled with `CONSOLE_ENABLED=yes`.
+
+**Usage**:
+
+```
+qmk console [-d <pid>:<vid>[:<index>]] [-l] [-n] [-t] [-w <seconds>]
+```
+
+**Examples**:
+
+Connect to all available keyboards and show their console messages:
+
+```
+qmk console
+```
+
+List all devices:
+
+```
+qmk console -l
+```
+
+Show only messages from clueboard/66/rev3 keyboards:
+
+```
+qmk console -d C1ED:2370
+```
+
+Show only messages from the second clueboard/66/rev3:
+
+```
+qmk console -d C1ED:2370:2
+```
+
+Show timestamps and VID:PID instead of names:
+
+```
+qmk console -n -t
+```
+
+Disable bootloader messages:
+
+```
+qmk console --no-bootloaders
+```
+
## `qmk doctor`
This command examines your environment and alerts you to potential build or flash problems. It can fix many of them if you want it to.
diff --git a/docs/compatible_microcontrollers.md b/docs/compatible_microcontrollers.md
index 47a4844e7f..0f5b140de0 100644
--- a/docs/compatible_microcontrollers.md
+++ b/docs/compatible_microcontrollers.md
@@ -28,8 +28,11 @@ You can also use any ARM chip with USB that [ChibiOS](https://www.chibios.org) s
* [STM32F303](https://www.st.com/en/microcontrollers-microprocessors/stm32f303.html)
* [STM32F401](https://www.st.com/en/microcontrollers-microprocessors/stm32f401.html)
* [STM32F411](https://www.st.com/en/microcontrollers-microprocessors/stm32f411.html)
+ * [STM32F446](https://www.st.com/en/microcontrollers-microprocessors/stm32f446.html)
* [STM32G431](https://www.st.com/en/microcontrollers-microprocessors/stm32g4x1.html)
* [STM32G474](https://www.st.com/en/microcontrollers-microprocessors/stm32g4x4.html)
+ * [STM32L433](https://www.st.com/en/microcontrollers-microprocessors/stm32l4x3.html)
+ * [STM32L443](https://www.st.com/en/microcontrollers-microprocessors/stm32l4x3.html)
### NXP (Kinetis)
diff --git a/docs/feature_auto_shift.md b/docs/feature_auto_shift.md
index 8e04d9dd38..ec7eeaaa0c 100644
--- a/docs/feature_auto_shift.md
+++ b/docs/feature_auto_shift.md
@@ -109,6 +109,33 @@ Do not Auto Shift numeric keys, zero through nine.
Do not Auto Shift alpha characters, which include A through Z.
+### Auto Shift Per Key
+
+This is a function that allows you to determine which keys shold be autoshifted, much like the tap-hold keys.
+
+The default function looks like this:
+
+```c
+bool get_auto_shifted_key(uint16_t keycode, keyrecord_t *record) {
+ switch (keycode) {
+# ifndef NO_AUTO_SHIFT_ALPHA
+ case KC_A ... KC_Z:
+# endif
+# ifndef NO_AUTO_SHIFT_NUMERIC
+ case KC_1 ... KC_0:
+# endif
+# ifndef NO_AUTO_SHIFT_SPECIAL
+ case KC_TAB:
+ case KC_MINUS ... KC_SLASH:
+ case KC_NONUS_BSLASH:
+# endif
+ return true;
+ }
+ return false;
+}
+```
+This functionality is enabled by default, and does not need a define.
+
### AUTO_SHIFT_REPEAT (simple define)
Enables keyrepeat.
diff --git a/docs/feature_backlight.md b/docs/feature_backlight.md
index 74511dd43f..d47ecc6824 100644
--- a/docs/feature_backlight.md
+++ b/docs/feature_backlight.md
@@ -62,15 +62,17 @@ Valid driver values are `pwm`, `software`, `custom` or `no`. See below for help
To configure the backlighting, `#define` these in your `config.h`:
-| Define | Default | Description |
-|------------------------|---------------|-------------------------------------------------------------------------------------------------------------------|
-| `BACKLIGHT_PIN` | *Not defined* | The pin that controls the LED(s) |
-| `BACKLIGHT_LEVELS` | `3` | The number of brightness levels (maximum 31 excluding off) |
-| `BACKLIGHT_CAPS_LOCK` | *Not defined* | Enable Caps Lock indicator using backlight (for keyboards without dedicated LED) |
-| `BACKLIGHT_BREATHING` | *Not defined* | Enable backlight breathing, if supported |