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

ZMK Upstream Rebase (24.6-alpha) #31

Open
wants to merge 134 commits into
base: main
Choose a base branch
from
Open

ZMK Upstream Rebase (24.6-alpha) #31

wants to merge 134 commits into from

Conversation

chrisandreae
Copy link
Collaborator

@chrisandreae chrisandreae commented Jun 19, 2024

Rebase to upstream ZMK as of 2023-07-02 (f18974e)

lesshonor and others added 30 commits February 10, 2024 16:15
* Improve GHA caching by using a fixed temporary directory
  when using one.
…re#2177)

Co-authored-by: Cem Aksoylar <caksoylar@users.noreply.github.com>

Fixes zmkfirmware#2166
* Enable missing clock and set up USB pinctrl.
* fix initial display of battery status on displays, and also fix a null deref
* Address issues with OLED init occurring before display is powered.
bool symbols implicitly default to n.
When building without USB or Bluetooth, the compiler emits a warning due to
ZMK_TRANSPORT_USB or ZMK_TRANSPORT_BLE not being handled.
Added a warning to the shield section explaining that Kconfig does
not ignore whitespaces on function calls and therefore adding whitespaces
after the comma will break functionality.
* Handle board keymap location for boards with Zephyr
  board revisions included.
* Includes bare non-revision file and a revision specific keymap
  in case newer revision changes the layout/key positions.
Added a zmk_settings_erase() function to clear all saved settings. This
does not go through Zephyr's settings subsystem, but instead directly
clears the data from the setting storage backend, so a reboot is needed
for it to take effect.
Added a new CONFIG_ZMK_SETTINGS_RESET_ON_START option which enables init
code to call zmk_settings_erase(), and changed the settings_reset shield
to use it instead of CONFIG_ZMK_BLE_CLEAR_BONDS_ON_START, so it now
resets all settings instead of just clearing BLE bonds.

CONFIG_ZMK_BLE_CLEAR_BONDS_ON_START is left in place for now in case
someone still needs it. It may be replaced in the future once we find a
better way to repair a broken split connection.
Updated the section for troubleshooting split halves unable to pair now
that the settings_reset shield resets all settings and explicitly
disables CONFIG_ZMK_BLE:

- Added a note that all settings will be reset.
- Removed the section about immediately putting the halves into
  bootloader mode to prevent pairing, as this is not necessary anymore.
- Added a note that you will not be able to see or pair the Bluetooth
  keyboard until you have flashed regular firmware again.
- Added a sentence to clarify that you will need to re-pair the
  keyboard to all host devices.

Also added some text describing common scenarios where this procedure
might be needed.
* Explicit error if zmk,keymap not set
* Document keymap error

---------

Co-authored-by: Cem Aksoylar <caksoylar@users.noreply.github.com>
* The underscore form of this property is deprecated.
* The underscore form of this property is deprecated.
* Change KP_MULTIPLY to ASTRK in defaults keymap
Timoyoungster and others added 7 commits June 24, 2024 14:26
* Used for ZMK Studio event remappers to be sure the one
  RPC event listener subscribes to their mapped events.
* Add `struct bt_conn *zmk_ble_active_profile_conn(void)` function for
  fetching a connection for the current profile.
* Add a new feature for tracking a given behavior by a new concept
  of a "behavior local ID" which is a stable 16-bit identifier for
  a given behavior, that is resilient to new behaviors being added
  and requires no additional work on the part of the behavior
  authors.
* Add implementations for either settings lookup table, or CRC16
  hashing of behavior device names for generating behavior local
  IDs.
nRF5x boards throw a spurious warning for duplicate unit-address when the devicetree gets processed

Upstream issue:  zephyrproject-rtos/zephyr#29713

Warning suppressed as per: https://docs.zephyrproject.org/latest/build/dts/intro-input-output.html
@chrisandreae chrisandreae force-pushed the 24.6-alpha branch 2 times, most recently from aa40e2b to f7560f3 Compare July 1, 2024 07:06
petejohanson and others added 10 commits July 1, 2024 12:32
* Avoid static listener to prevent subscription
  issue.
Adds Glove80's status indicator using RGB underglow support. Requires ZMK
PR#999 and PR#1243.

The underglow status is able to show layer state, battery levels,
caps/num/scroll-lock, BLE and USB state. The underglow positions selected for
each of these indicators is configured using the new devicetree node
zmk,underglow-indicators, which takes an array of integer LED positions for each
feature.
Disable underglow when battery below 10%, halve brightness when battery below 20%
Adds a Kconfig setting for the default EXT_POWER status at initialization time. Previously it was always initialized to on if no saved value was present.
Provides an entry point that builds and returns a combined LH + RH keyboard
firmware when provided a keymap via a POST body.

Wraps compilation with ccache, and includes a pre-warmed cache of the build in /tmp/ccache.
To maximize chance of a direct cache hit, changes the lambda driver to always build in /tmp/build.

some back of the envelope measurements (2012 xeon e3-1230v2, nixos)
clean build, no cache -> 21.308
clean build, cache -> 7.145
modified keymap, clean build, cache -> 12.127
Additionally adds a board definition for Glove80-v0, an early version of Glove80.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.