Skip to content

Commit

Permalink
Fill out keymap section and boards/shields
Browse files Browse the repository at this point in the history
  • Loading branch information
caksoylar committed Sep 19, 2023
1 parent 25cacb4 commit 3d8624e
Showing 1 changed file with 82 additions and 69 deletions.
151 changes: 82 additions & 69 deletions docs/blog/2023-09-15-zmk-sotf-6.md
Original file line number Diff line number Diff line change
@@ -1,152 +1,166 @@
---
title: "ZMK State Of The Firmware #6"
author: Cem Aksoylar
author_title: Project Contributor
author_title: Documentation maintainer
author_url: https://github.com/caksoylar
author_image_url: https://avatars.githubusercontent.com/u/7876996
tags: [SOTF, keyboards, firmware, oss, ble]
---

Welcome to the sixth ZMK "State Of The Firmware" (SOTF)!

This update will cover all the major activity since [SOTF #5](/blog/2022/04/10/zmk-sotf-5). That was over a year ago (again!), so lots to cover!
This update will cover all the major activity since [SOTF #5](/blog/2022/04/10/zmk-sotf-5). That was over a year ago (again!), so there are many new exciting features and plenty of improvements to cover!

## Recent Activity

Here's a summary of the various major changes since last time, broken down by theme:

### Keymaps/Behaviors

Global quick tap [#1187]
#### Hold-tap improvements

Key toggle [#1278]
[andrewjrae] added the [global quick tap property](../docs/behaviors/hold-tap.md#global-quick-tap) to the hold-tap behavior in [#1187](https://github.com/zmkfirmware/zmk/pull/1187), which prevents the hold behavior from triggering if it hasn't been a certain duration since the last key press. This is a useful feature to prevent accidental hold activations during quick typing and made its way into many keymaps!

Mask triggering modifiers by default in mod morphs and add `keep-mods` property [#1412]
[urob] added the [`hold-trigger-on-release` property](../docs/behaviors/hold-tap.md#positional-hold-tap-and-hold-trigger-key-positions) in [#1423](https://github.com/zmkfirmware/zmk/pull/1423). This significantly increases the usefulness of positional constraints on hold-taps, since it allows combining multiple holds such as different modifiers for home-row mods usage.

Fix bug causing stuck keys with combo & hold-tap interactions [#1411]
#### Masking mods in mod-morphs

Add `hold-trigger-on-release` property for positional hold-tap uses [#1423]
[aumuell], [vrinek] and [urob] contributed to improving the behavior of [mod-morphs](../docs/behaviors/mod-morph.md) by masking the triggering modifiers and added `keep-mods` property in [#1412](https://github.com/zmkfirmware/zmk/pull/1412). This unlocks more use cases for mod-morphs, since you are no longer constrained to emitting keycodes that work well with the triggering modifier keycodes.

Sticky key fixes [#1586], [#1745]
#### Parameterized macros

Parameterized macros [#1232]
[petejohanson] added [macros that can be parameterized](../docs/behaviors/macros.md#parameterized-macros) with one or two parameters in [#1232](https://github.com/zmkfirmware/zmk/pull/1232). This allows users to define macros in a more modular way and is a nice quality-of-life improvement.

Add sensor rotate behaviors to use invoke any behavior from encoders [#1758]
#### Arbitrary behaviors on encoder rotation

Caps word ignore modifiers [#1330] ?
[nickconway] and [petejohanson] added [sensor rotation behaviors](../docs/behaviors/sensor-rotate.md) to allow invoking arbitrary behaviors from encoders [#1758](https://github.com/zmkfirmware/zmk/pull/1758). Previously encoder rotations could only invoke the key-press behavior `&kp` through the `&inc_dec_kp` binding, whereas now you can define new sensor rotation behaviors to invoke others.

Tap dances can be used in combos [#1518] ?
(Note that currently behaviors that have "locality" such as `&rgb_ug` do not work as expected via encoder rotation bindings in split keyboards, due to issue [#1494](https://github.com/zmkfirmware/zmk/issues/1494).)

#### Key toggle behavior

[cgoates] added the [key toggle behavior](../docs/behaviors/key-toggle.md) in [#1278](https://github.com/zmkfirmware/zmk/pull/1278), which can be used via its `&kt` binding to toggle the state of a key between pressed and released.

#### Bug fixes and other improvements

[petejohanson], [andrewjrae] and [okke-formsma] tracked down and fixed an issue causing stuck keys when there are combos on key positions involving hold-tap behaviors in [#1411](https://github.com/zmkfirmware/zmk/pull/1411). This was an elusive bug that took a lot of effort from the community to nail down and fix!

[nguyendown] and [joelspadin] tracked down and fixed a couple tricky issues causing stuck keys with [sticky keys](../docs/behaviors/sticky-key.md) in [#1586](https://github.com/zmkfirmware/zmk/pull/1586), [#1745](https://github.com/zmkfirmware/zmk/pull/1745).

[okke-formsma] fixed an issue allowing tap dances to be invoked by combos in [#1518](https://github.com/zmkfirmware/zmk/pull/1518).

[petejohanson] tweaked the caps word behavior to ignore modifiers in [#1330](https://github.com/zmkfirmware/zmk/pull/1330).

### Bluetooth and Split Improvements

Release held keys on peripheral disconnect [#1340]
Release held keys on peripheral disconnect [#1340](https://github.com/zmkfirmware/zmk/pull/1340)

Connections status check fix [#1810]
Connections status check fix [#1810](https://github.com/zmkfirmware/zmk/pull/1810)

Option to require passkey input on pairing [#1822]
Option to require passkey input on pairing [#1822](https://github.com/zmkfirmware/zmk/pull/1822)

Multiple peripherals support [#836]
Multiple peripherals support [#836](https://github.com/zmkfirmware/zmk/pull/836)

Improve `settings_reset` shield by making it clear bonds more reliably, and allow it to build for all boards [#1879]
Improve `settings_reset` shield by making it clear bonds more reliably, and allow it to build for all boards [#1879](https://github.com/zmkfirmware/zmk/pull/1879)

Use directed advertising for split communication and more robust central scanning [#1913] [#1912]
Use directed advertising for split communication and more robust central scanning [#1913](https://github.com/zmkfirmware/zmk/pull/1913) [#1912](https://github.com/zmkfirmware/zmk/pull/1912)

### Hardware Support

Encoder support refactor [#1039]
Encoder support refactor [#1039](https://github.com/zmkfirmware/zmk/pull/1039)

Encoder support in split peripheral halves [#728] [#1841]
Encoder support in split peripheral halves [#728](https://github.com/zmkfirmware/zmk/pull/728) [#1841](https://github.com/zmkfirmware/zmk/pull/1841)

Debouncing for direct GPIO driver [#1288]
Debouncing for direct GPIO driver [#1288](https://github.com/zmkfirmware/zmk/pull/1288)

Add toggle mode support for direct GPIO driver [#1305]
Add toggle mode support for direct GPIO driver [#1305](https://github.com/zmkfirmware/zmk/pull/1305)

595 shift register driver [#1325]
595 shift register driver [#1325](https://github.com/zmkfirmware/zmk/pull/1325)

Add RGB auto off options using idle timeout and USB status [#1010]
Add RGB auto off options using idle timeout and USB status [#1010](https://github.com/zmkfirmware/zmk/pull/1010)

EPD initialization improvements [#1098]
EPD initialization improvements [#1098](https://github.com/zmkfirmware/zmk/pull/1098)

MAX7318 GPIO expander driver [#1295]
MAX7318 GPIO expander driver [#1295](https://github.com/zmkfirmware/zmk/pull/1295)

nice!view support [#1462] with custom status screen [#1768]
nice!view support [#1462](https://github.com/zmkfirmware/zmk/pull/1462) with custom status screen [#1768](https://github.com/zmkfirmware/zmk/pull/1768)

Improvements for Seeeduino Xiao BLE [#1293], [d0176f36], [#1545], [#1927]
Improvements for Seeeduino Xiao BLE [#1293](https://github.com/zmkfirmware/zmk/pull/1293), [d0176f36], [#1545](https://github.com/zmkfirmware/zmk/pull/1545), [#1927](https://github.com/zmkfirmware/zmk/pull/1927)

Wait options during matrix reads and writes [#1385], [#1473] ?
Wait options during matrix reads and writes [#1385](https://github.com/zmkfirmware/zmk/pull/1385), [#1473](https://github.com/zmkfirmware/zmk/pull/1473) ?

### Miscellaneous

Improved customer page support [#1227]
Improved customer page support [#1227](https://github.com/zmkfirmware/zmk/pull/1227)

Switch to a reusable user config workflow [#1183] [#1258]
Switch to a reusable user config workflow [#1183](https://github.com/zmkfirmware/zmk/pull/1183) [#1258](https://github.com/zmkfirmware/zmk/pull/1258)

Pre-commit setup and standardize formatting [#1651]
Pre-commit setup and standardize formatting [#1651](https://github.com/zmkfirmware/zmk/pull/1651)

Refactors by Joel [#1269] [#1255] ?
Refactors by Joel [#1269](https://github.com/zmkfirmware/zmk/pull/1269) [#1255](https://github.com/zmkfirmware/zmk/pull/1255) ?

Allow setting BLE connection intervals [#862] ?
Allow setting BLE connection intervals [#862](https://github.com/zmkfirmware/zmk/pull/862) ?

Default to 1ms USB HID interval [#1271] ?
Default to 1ms USB HID interval [#1271](https://github.com/zmkfirmware/zmk/pull/1271) ?

Allow configuring battery level report interval [#1303] ?
Allow configuring battery level report interval [#1303](https://github.com/zmkfirmware/zmk/pull/1303) ?

#### Display Features

Add setting to invert display colors [#1754]
Add setting to invert display colors [#1754](https://github.com/zmkfirmware/zmk/pull/1754)

Add battery percentage option for battery widget [#1563] ?
Add battery percentage option for battery widget [#1563](https://github.com/zmkfirmware/zmk/pull/1563) ?

Refactor to create new peripheral status widget [#1263] ?
Refactor to create new peripheral status widget [#1263](https://github.com/zmkfirmware/zmk/pull/1263) ?

#### Zephyr 3.2

<!-- TODO -->

[petejohanson] helped prepare and test the upgrade of ZMK to Zephyr 3.2 in [#1499](https://github.com/zmkfirmware/zmk/pull/1499). <!--The updated Zephyr release brings with it some key BLE stability fixes, as well as various other core improvements that improve ZMK. This was a huge undertaking!-->
[petejohanson] helped prepare and test the upgrade of ZMK to Zephyr 3.2 in [#1499](https://github.com/zmkfirmware/zmk/pull/1499)(https://github.com/zmkfirmware/zmk/pull/1499). <!--The updated Zephyr release brings with it some key BLE stability fixes, as well as various other core improvements that improve ZMK. This was a huge undertaking!-->

### Documentation

Configuration options [#722]
Configuration options [#722](https://github.com/zmkfirmware/zmk/pull/722)

Battery sensor documentation [#868]
Battery sensor documentation [#868](https://github.com/zmkfirmware/zmk/pull/868)

New behavior guide [#1268]
New behavior guide [#1268](https://github.com/zmkfirmware/zmk/pull/1268)

Tap dance and hold-tap documentation improvements [#1298]
Tap dance and hold-tap documentation improvements [#1298](https://github.com/zmkfirmware/zmk/pull/1298)

New shield docs for other interconnects including Xiao, Arduino Uno and Blackpill [#1607]
New shield docs for other interconnects including Xiao, Arduino Uno and Blackpill [#1607](https://github.com/zmkfirmware/zmk/pull/1607)

A new Bluetooth feature page [#1499]
A new Bluetooth feature page [#1499](https://github.com/zmkfirmware/zmk/pull/1499)

Various improvements and fixes by kurtis-lew, joelspadin, filterpaper, byran.tech, dxmh, caksoylar and many others

## New Shields

- Eternal keypad [#1136]
- nullbits SNAP [#1319]
- Aurora Sweep [#1504]
- Aurora Corne [#1520]
- Aurora Lily58 [#1553]
- Aurora Sofle [#1864]
- Aurora Helix [#1873]
- ZMK Uno shield [#1576]
- Waterfowl [#1554]
- Kyria Rev 3 [#1627]
- Leeloo v2 and Leeloo-Micro [#1762]
- Spaceman Pancake [#1400]
- Reviung5 [#1548]
- Eternal keypad [#1136](https://github.com/zmkfirmware/zmk/pull/1136) - [halcyonCorsair](https://github.com/halcyonCorsair)
- nullbits SNAP [#1319](https://github.com/zmkfirmware/zmk/pull/1319) - [jaygreco](https://github.com/jaygreco)
- Aurora Sweep [#1504](https://github.com/zmkfirmware/zmk/pull/1504) - [petejohanson]
- Aurora Corne [#1520](https://github.com/zmkfirmware/zmk/pull/1520) - [petejohanson]
- Aurora Lily58 [#1553](https://github.com/zmkfirmware/zmk/pull/1553) - [petejohanson]
- Aurora Sofle [#1864](https://github.com/zmkfirmware/zmk/pull/1864) - [petejohanson]
- Aurora Helix [#1873](https://github.com/zmkfirmware/zmk/pull/1873) - [petejohanson]
- ZMK Uno shield [#1576](https://github.com/zmkfirmware/zmk/pull/1576) - [petejohanson]
- Waterfowl [#1554](https://github.com/zmkfirmware/zmk/pull/1554) - [JW2586](https://github.com/JW2586)
- Kyria Rev 3 [#1627](https://github.com/zmkfirmware/zmk/pull/1627) - [petejohanson]
- Leeloo v2 and Leeloo-Micro [#1762](https://github.com/zmkfirmware/zmk/pull/1762) - [ClicketySplit](https://github.com/ClicketySplit)
- Spaceman Pancake [#1400](https://github.com/zmkfirmware/zmk/pull/1400) - [jasonhazel](https://github.com/jasonhazel)
- Reviung5 [#1548](https://github.com/zmkfirmware/zmk/pull/1548) - [zblesk](https://github.com/zblesk)

## New Boards

- RP2040 boards
- Puchi BLE [#1445]
- nRFMicro 1.3/1.4 (nRF52833) [#912]
- nRF5340 DK [#1562]
- PillBug [#1530]
- Preonic Rev 3 [#1575]
- Corne-ish Zen v2 [#1498] and v1 [#1593]
- Polarity Works CKP family of boards [#1547]
- RP2040 boards, including Sparkfun Pro Micro, Adafruit KB2040, Seeeduino Xiao RP2040 were added as part of the Zephyr 3.2 upgrade [#1499](https://github.com/zmkfirmware/zmk/pull/1499) - [petejohanson]
- Puchi BLE [#1445](https://github.com/zmkfirmware/zmk/pull/1445) - [BenRoe](https://github.com/BenRoe)
- nRFMicro 1.3/1.4 (nRF52833) [#912](https://github.com/zmkfirmware/zmk/pull/912) - [pashutk](https://github.com/pashutk)
- nRF5340 DK [#1562](https://github.com/zmkfirmware/zmk/pull/1562) - [joelspadin]
- PillBug [#1530](https://github.com/zmkfirmware/zmk/pull/1530) - [kylemccreery](https://github.com/kylemccreery)
- Preonic Rev 3 [#1575](https://github.com/zmkfirmware/zmk/pull/1575) - [jeromeOlivier](https://github.com/jeromeOlivier)
- Corne-ish Zen v2 [#1498](https://github.com/zmkfirmware/zmk/pull/1498) and v1 [#1593](https://github.com/zmkfirmware/zmk/pull/1593) - [petejohanson] and [caksoylar]
- Polarity Works CKP family of boards [#1547](https://github.com/zmkfirmware/zmk/pull/1547) - [ReFil](https://github.com/ReFil)

## Coming Soon!

Expand Down Expand Up @@ -188,10 +202,9 @@ Some statistics of interest for ZMK:
As we approach the two year birthday for ZMK, I am reminded of how far we have come in such a short time, in large part thanks to the _amazing_ community that has grown around it. I am so grateful to have so many contributors, testers, and user believing in the project and helping make it a joy to work on.

[okke-formsma]: https://github.com/okke-formsma
[mcrosson]: https://github.com/mcrosson
[nicell]: https://github.com/Nicell
[petejohanson]: https://github.com/petejohanson
[kurtis-lew]: https://github.com/kurtis-lew
[joelspadin]: https://github.com/joelspadin
[bcat]: https://github.com/bcat
[dxmh]: https://github.com/dxmh
[caksoylar]: https://github.com/caksoylar

0 comments on commit 3d8624e

Please sign in to comment.