Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Changelog 2021q4 #15325

Merged
merged 12 commits into from
Nov 27, 2021
Prev Previous commit
Next Next commit
More docs
  • Loading branch information
tzarc committed Nov 27, 2021
commit f794580b171b1a3f98ac4873666f642e741e2762
120 changes: 78 additions & 42 deletions docs/ChangeLog/20211128.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,14 +21,15 @@ Usages of `POINTING_DEVICE_ENABLE = yes` in `rules.mk` files now need to be acco

QMK now has core-supplied support for the following pointing device peripherals:

| `POINTING_DEVICE_DRIVER` |
|--------------------------|
| analog_joystick |
| adns9800 |
| cirque_pinnacle_i2c |
| cirque_pinnacle_spi |
| pimoroni_trackball |
| pmw3360 |
| `rules.mk` line | Supported device |
|------------------------------------------------|-----------------------------------------|
| `POINTING_DEVICE_DRIVER = analog_joystick` | Analog joysticks, such as PSP joysticks |
| `POINTING_DEVICE_DRIVER = adns5050` | ADNS 5050 sensor |
| `POINTING_DEVICE_DRIVER = adns9800` | ADNS 9800 laser sensor |
| `POINTING_DEVICE_DRIVER = cirque_pinnacle_i2c` | Cirque touchpad, I2C mode |
| `POINTING_DEVICE_DRIVER = cirque_pinnacle_spi` | Cirque Touchpad, SPI mode |
| `POINTING_DEVICE_DRIVER = pimoroni_trackball` | Pimoroni Trackball |
| `POINTING_DEVICE_DRIVER = pmw3360` | PMW 3360 |

See the new documentation for the [Pointing Device](../feature_pointing_device.md) feature for more information on specific configuration for each driver.

Expand All @@ -46,9 +47,41 @@ If you're in this stage of discovery, you can now add `DYNAMIC_TAPPING_TERM_ENAB

Coupled with the use of `qmk console` or QMK Toolbox to show console output from your keyboard, you can tweak the tapping term dynamically in order to narrow down what "feels right" to you. Once you're happy, drop in the resulting number into your keymap's `config.h` and you're good to go!

### MACROS_IN_JSON_KEYMAPS !!
### Macros in JSON keymaps ([#14374](https://github.com/qmk/qmk_firmware/pull/14374)) :id=macros-in-keymap-json

You can now define up to 32 macros in your `keymap.json` file, as used by [QMK Configurator](newbs_building_firmware_configurator.md), and `qmk compile`. You can define these macros in a list under the `macros` keyword, like this:

```json
{
"keyboard": "handwired/my_macropad",
"keymap": "my_keymap",
"macros": [
[ // first listed is MACRO_0...
{"action":"down", "keycodes": ["LSFT"]},
"hello world1",
{"action": "up","keycodes": ["LSFT"]}
],
[ // ...then MACRO_1...
{"action":"tap", "keycodes": ["LCTL", "LALT", "DEL"]}
],
[ // ...then MACRO_2...
"ding!",
{"action":"beep"}
],
[ // ...and MACRO_3.
{"action":"tap", "keycodes": ["F1"]},
{"action":"delay", "duration": "1000"},
{"action":"tap", "keycodes": ["PGDN"]}
]
],
"layout": "LAYOUT_all",
"layers": [
["MACRO_0", "MACRO_1", "MACRO_2", "MACRO_3"]
]
}
```

* Macros in JSON keymaps ([#14374](https://github.com/qmk/qmk_firmware/pull/14374))
In due course, [QMK Configurator](https://config.qmk.fm/) will pick up support for defining these in its UI, but for now the json is the only way to define them.

## Changes Requiring User Action :id=changes-requiring-user-action

Expand All @@ -71,9 +104,11 @@ The following keyboards have had their source moved within QMK:
| signum/3_0/elitec | signum/3_0 |
| tgr/jane | tgr/jane/v2 |

### Squeezing space out of AVR :id=squeezing-space-from-avr
### Squeezing space out of AVR ([#15243](https://github.com/qmk/qmk_firmware/pull/15243)) :id=squeezing-space-from-avr

* Squeezing space out of AVR ([#15243](https://github.com/qmk/qmk_firmware/pull/15243))
The AVR platform has been problematic for some time, in the sense that it is severely resource-constrained -- this makes life difficult for anyone attempting to add new functionality such as display panels to their keymap code. The illustrious Drashna has contributed some newer documentation on how to attempt to free up some space on AVR-based keyboards thate are in short supply.

Of course, you could just switch to ARM... :)

### RGB_MATRIX_MODES !!

Expand Down Expand Up @@ -107,6 +142,36 @@ This is the historical timeline for the behavior of `BOOTMAGIC_ENABLE`:

## Notable core changes :id=notable-core

### New MCU Support

QMK picked up support for a handful of new MCU families, potentially making it a bit easier to source components.

QMK is now no longer limited to AVR and ARM - we also picked up support for our first RISC-V chip, the GD32VF103.

* Add support for RISC-V builds and GD32VF103 MCU ([#12508](https://github.com/qmk/qmk_firmware/pull/12508))
* Add HT32 support to core ([#14388](https://github.com/qmk/qmk_firmware/pull/14388))
* Westberrytech pr ([#14422](https://github.com/qmk/qmk_firmware/pull/14422))
* Initial pass of F405 support ([#14584](https://github.com/qmk/qmk_firmware/pull/14584))

### EEPROM !!

* massdrop alt/ctrl: support saving into nvm ([#6068](https://github.com/qmk/qmk_firmware/pull/6068))
* Implement F4 eeprom ([#14195](https://github.com/qmk/qmk_firmware/pull/14195))
* make the full 4096 bytes of EEPROM work on Teensy 3.6 ([#12947](https://github.com/qmk/qmk_firmware/pull/12947))
* Further tidy up of STM32 eeprom emulation ([#14591](https://github.com/qmk/qmk_firmware/pull/14591))
* Enable eeprom with F401xE ld ([#14752](https://github.com/qmk/qmk_firmware/pull/14752))

### Compilation Database :id=compile-commands

A clang-compatible compilation database generator has been added as an option in order to help development environments such as Visual Studio Code.

Running `qmk generate-compilation-database -kb <yourkb> -km <yourkeymap>` from within the QMK firmware directory will generate a `compile_commands.json` file -- using a compatible IDE will likely see this and correctly start detecting the correct locations for source files as well as type and function information that are relevant to your build.

Do note that switching keyboards will require re-generation of this file.

* New CLI subcommand to create clang-compatible compilation database (`compile_commands.json`) ([#14370](https://github.com/qmk/qmk_firmware/pull/14370))
* compiledb: query include paths from gcc directly. ([#14462](https://github.com/qmk/qmk_firmware/pull/14462))

### Codebase restructure and cleanup :id=codebase-restructure

QMK continues on its restructuring journey, in order to make it easier to integrate newer features and add support for new hardware. This quarter's batch of changes include:
Expand Down Expand Up @@ -145,36 +210,6 @@ QMK continues on its restructuring journey, in order to make it easier to integr
* Helix use `post_rules.mk` ([#14216](https://github.com/qmk/qmk_firmware/pull/14216))
* Make ChibiOS PAL interactions less STM32 specific - Round 2 ([#14456](https://github.com/qmk/qmk_firmware/pull/14456))

### New MCU Support

QMK picked up support for a handful of new MCU families, potentially making it a bit easier to source components.

QMK is now no longer limited to AVR and ARM - we also picked up support for our first RISC-V chip, the GD32VF103.

* Add support for RISC-V builds and GD32VF103 MCU ([#12508](https://github.com/qmk/qmk_firmware/pull/12508))
* Add HT32 support to core ([#14388](https://github.com/qmk/qmk_firmware/pull/14388))
* Westberrytech pr ([#14422](https://github.com/qmk/qmk_firmware/pull/14422))
* Initial pass of F405 support ([#14584](https://github.com/qmk/qmk_firmware/pull/14584))

### EEPROM !!

* massdrop alt/ctrl: support saving into nvm ([#6068](https://github.com/qmk/qmk_firmware/pull/6068))
* Implement F4 eeprom ([#14195](https://github.com/qmk/qmk_firmware/pull/14195))
* make the full 4096 bytes of EEPROM work on Teensy 3.6 ([#12947](https://github.com/qmk/qmk_firmware/pull/12947))
* Further tidy up of STM32 eeprom emulation ([#14591](https://github.com/qmk/qmk_firmware/pull/14591))
* Enable eeprom with F401xE ld ([#14752](https://github.com/qmk/qmk_firmware/pull/14752))

### Compilation Database :id=compile-commands

A clang-compatible compilation database generator has been added as an option in order to help development environments such as Visual Studio Code.

Running `qmk generate-compilation-database -kb <yourkb> -km <yourkeymap>` from within the QMK firmware directory will generate a `compile_commands.json` file -- using a compatible IDE will likely see this and correctly start detecting the correct locations for source files as well as type and function information that are relevant to your build.

Do note that switching keyboards will require re-generation of this file.

* New CLI subcommand to create clang-compatible compilation database (`compile_commands.json`) ([#14370](https://github.com/qmk/qmk_firmware/pull/14370))
* compiledb: query include paths from gcc directly. ([#14462](https://github.com/qmk/qmk_firmware/pull/14462))

---

## Full changelist
Expand Down Expand Up @@ -383,3 +418,4 @@ Bugs:
* Documentation typo fix ([#15298](https://github.com/qmk/qmk_firmware/pull/15298))
* [Core] Hotfix for HOLD_ON_OTHER_KEY_PRESS after #11059 ([#15307](https://github.com/qmk/qmk_firmware/pull/15307))
* Fix call to pointing_device_handle_buttons ([#15313](https://github.com/qmk/qmk_firmware/pull/15313))
* [Develop] Fix ploopy readme typos ([#15316](https://github.com/qmk/qmk_firmware/pull/15316))