Commit Graph

1543 Commits

Author SHA1 Message Date
Peter Johanson 7364fe69b0 chore(ci): Adjust core coverage for new board IDs.
Use correct board IDs, with qualifiers, for our core coverage testing.
2025-11-19 11:42:59 -07:00
Peter Johanson 1166f21094 refactor(boards): Move QMK Proton-C to HWMv2
Move Proton-C to HWMv2 for use with Zephyr 4.1.
2025-11-19 11:42:59 -07:00
Peter Johanson 1137bd0bf1 refactor(boards): Move nRFMicro to HWMv2
Refactor nRFMicro to HWMv2, using proper SoC, revisions, and variants
(for flipped). Also move to devicetree setup of DCDC/HV DCDC.
2025-11-19 11:42:59 -07:00
Peter Johanson 15fcf92a63 feat: Add double tap to enter bootloader functionality
Add ability to enter the bootloader if double tapping reset within the
specified window.
2025-11-19 11:42:59 -07:00
Peter Johanson bf323bf577 feat(behaviors): Add retention boot mode to reset.
Support new generic Zephyr retention boot mode API in the reset
behavior.
2025-11-18 00:18:57 -07:00
Peter Johanson c94f52147d feat(core): mapper for magic bootloader values.
To trigger bootloaders that use a magic value in RAM to trigger
bootloader mode, add a mapping retained memory driver that maps
write/read of boot mode values to a special magic value stored
in the actually backing RAM.
2025-11-18 00:18:57 -07:00
Peter Johanson 4699235830 chore: Remove nanopb module override.
Leverage nanopb version that's used by Zephyr.
2025-11-18 00:18:57 -07:00
Peter Johanson 2770d1cf3d fix(studio): Correct usage of thread analyzer API
Fix up the RPC code that invoke the thread analyzer API to account for
API changes.
2025-11-18 00:18:57 -07:00
Peter Johanson 5729006ac4 refactor(boards): Move MakerDiary M2 board to HWMv2.
Run the HWMv2 script to convert the MakerDiary M2 board.
2025-11-18 00:18:57 -07:00
Peter Johanson 8f61f3349e refactor(ble): Use correct BT opt for connectable.
Adjust for upstream Zephyr BT API changes for advertising options.
2025-11-18 00:18:57 -07:00
Peter Johanson be37d3a7fb fix: Refactor for new Zephyr PM API
Adjustments to our PM code to match Zephyr PM APIs.
2025-11-18 00:18:57 -07:00
Peter Johanson d4deeec04e fix(studio): Correct `memset` usage.
Use the correct memset call to clear our RPC memory.
2025-11-18 00:18:57 -07:00
Peter Johanson 2ba78abe07 fix: Disable Nordic dt-bindings header checks.
Disable the recently added Nordic dt-bindings header checks, which cause
issues for our HID related headers.
2025-11-18 00:18:57 -07:00
Peter Johanson 9146ec4a7f refactor!(boards): Move nice!nano to HWMv2, and proper revisioning
Upgrade the nice!nano board to HWMv2, under the proper nicekeyboards
vendor directory, and with proper revisions. Includes a breaking change
to default the `2.0.0` version instead of the much older v1 (`1.0.0`).
2025-11-18 00:18:57 -07:00
Peter Johanson 57d723e8b9 chore: Move to Zephyr 4.1.0 branch. 2025-11-18 00:18:57 -07:00
Peter Johanson 216ed24995 refactor(boards): Move to upstream xiao_ble board ID.
Move to official upstream board definition for the Seeed XIAO BLE.
2025-11-18 00:18:56 -07:00
Peter Johanson e11b172d2a refactor: Fix up BLE tests after Zephyr upgrade.
Minor changes to snapshots based on newer Zephyr version.
2025-11-18 00:18:56 -07:00
Peter Johanson 8cf09b510d chore(bluetooth): Minor cleanup of split BT code after refactor
Small fixes and remove commented dead code left after the split
refactor.
2025-11-18 00:18:56 -07:00
Peter Johanson 136fa7679b refactor(input): Adjust split input to input API changes.
Input callbacks now have a user_data parameter, adjust accordingly.
2025-11-18 00:18:56 -07:00
Peter Johanson e2754a7e7f fix(sensors): Initialize sensor data to 0 before fetching.
Be sure we don't get back any uninitialized data by initializing
the channel data to 0 before calling into the sensor API.
2025-11-18 00:18:56 -07:00
Peter Johanson 1ed4d789c9 fix(tests): Fix BLE test to account for Zephyr changes
Handle additional read callback invocation once all matching
characteristic have been read.
2025-11-18 00:18:56 -07:00
Peter Johanson 209fbad209 fix(pointing): Refactor for changes to input API
Pass NULL user_data to input callbacks.
2025-11-18 00:18:56 -07:00
Peter Johanson b466913009 feat(core): (Optionally) use Zephyr keyboard input devices
Add ability to assign a keyboard `input` device to a physical layout,
or use a chosen `zmk,matrix-input`.
2025-11-18 00:18:56 -07:00
Peter Johanson 45aef02581 refactor(tests): Move to native_sim for tests. 2025-11-18 00:18:56 -07:00
Peter Johanson 1e1d537831 refactor: Move to Zephyr v4.1.0
Move to Zephyr v4.1.0, with various build/compilation fixes needed for
basic use.
2025-11-18 00:18:56 -07:00
Nicolas Munnich 5138c6fb14
feat: Allow layer behaviors to "lock" layers on (#2717)
* refactor(core)!: Allow layer behaviors to "lock" layers on

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

* docs: Added documentation note on locking layers

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

---------

Co-authored-by: Cem Aksoylar <caksoylar@users.noreply.github.com>
2025-11-14 23:13:35 +01:00
Willow Herring 7738924349
feat(split): Add HID indicators and physical layout set to Wired split (#3103) 2025-11-02 17:01:08 -07:00
Andrés Mejía 61de01abb0
feat(layouts): Add physical layout for Redox shield 2025-09-16 23:23:46 +02:00
Aurélien Vallée 197d104fc9
chore(shields): Add missing display-name for existing keymaps (#3048) 2025-09-10 15:48:33 -07:00
Nicolas Munnich 522971f41d
fix(ci): disable nrf5340dk from being built in our CI (#3066)
This build is currently broken, and will be fixed once we bump to 4.1.
2025-09-10 10:30:09 -07:00
Pete Johanson 0b5a103c18
fix(core): Generate correct keymap layer names for all builds (#3047)
Properly account for studio and non-studio builds for the generation of
the layer names stored within the keymap system.

Fixes #3045
2025-08-26 03:26:20 -06:00
Nicolas Munnich ccf20a1f5c
feat(boards/shields): Add settings for Rpi Pico and add tester_rpi_pico shield (#2900)
* feat(boards): Properly support settings for RPi Pico board.

* feat(shields): Add a tester_rpi_pico shield

---------

Co-authored-by: Peter Johanson <peter@peterjohanson.com>
2025-08-10 22:00:35 +01:00
Marius Petcu c7fae18ae1
feat(boards): add support for nrf52840dongle_nrf52840 (#3011)
This adds additional required configs for the Nordic NRF52840 Dongle (PCA10059),
which was already supported by Zephyr, but didn't have flash settings
and Bluetooth enabled.
2025-08-08 23:47:03 +01:00
Pete Johanson edf5c0814f
chore(main): release 0.3.0 (#2858) 2025-08-01 18:44:20 -04:00
Nicolas Munnich c86f0d6ff4
chore: Add some basic encoder tests (#2845)
Adds some encoder tests for rotating, and basic layers.
Mock Kscans don't seem to interact nicely, slightly on the hacky side.
However, better to have hacky tests than no tests.
2025-07-31 18:29:59 -04:00
Genteure af967667b0
fix(core): Correctly sync BAS battery level (#2977)
Fix BAS battery level showing 100% if controller boots up with 0% battery charge.

Closes zmkfirmware/zmk#2972
2025-07-31 17:51:21 -04:00
Pete Johanson 2ae5185419
fix(split): Compile and run properly in wired polling mode. (#3012)
Fixes for regressions from split refactors that broke polling mode
specifically.

Co-authored-by: honorless <86894501+lesshonor@users.noreply.github.com>
Co-authored-by: Cem Aksoylar <caksoylar@users.noreply.github.com>
2025-07-31 17:09:25 -04:00
Pete Johanson 1530ae36c2
fix(split): Enable wired split by default if DTS is set (#3010)
Remove the previous condition on ZMK_SPLIT_WIRED that only enabled it if
!ZMK_BLE. We'll defer to the `depends on` to ensure the DTS exists to
use wired split to make that decision on enabling the feature.
2025-07-30 13:43:46 -04:00
Cem Aksoylar 1bac680c4f
fix(behaviors): Correct macro release state for parametrized macros (#2942)
test(behaviors): Add parametrized macro test that fails

fix(behaviors): Correct macro release state for parametrized
2025-07-29 18:39:26 -04:00
snoyer d09087f4dc
feat(display): nice!view individual profile status (#2265)
Allow the nice!view widget to display the status of each profile by:

- not adding a circle around the number if the profile is not bound
- drawing a dashed circle around the number if a profile is bound but not connected
2025-07-26 18:46:51 +02:00
Joel Spadin 8059e671b2
fix(boards): Disable high voltage DC-DC by default (#2995)
Given a typical setup of a battery at ~4 V and a nice!nano v2 running at
3.3 V, I measured a small increase in power usage (using a Nordic PPK2)
when SOC_DCDC_NRF52X_HV was enabled. This changes the nice_nano_v2 and
mikoto boards so this option is disabled by default.

Fixes #2990
2025-07-21 17:14:29 +02:00
Tobias Adolph 342d838913
fix(ble,hid): Fix smooth scrolling over BLE (#2998)
- Use correct MIN16 value in hid report. -32768 in 2's compliment is 8000(hex)
- Initialize resolution multiplier array
- Properly implement `read_hids_mouse_feature_report`

Fixes: #2957

Co-authored-by: Tobias Adolph <43353209+adolto@users.noreply.github.comgit>
2025-07-20 09:13:18 -06:00
Dimitri Krassovski 7292df02d4
feat(shields): Add a physical layout for a_dux (#3000) 2025-07-19 21:44:05 -07:00
snoyer fe91cc6625
refactor(ble): add functions to check if profile is open/connected by address (#2993)
Helper functions for BLE profile statuses.
2025-07-19 07:51:53 -06:00
Joel Spadin cef7af4408
fix: Fix build with Studio and USB but not UART (#2996)
Changed CONFIG_ZMK_STUDIO_TRANSPORT_UART to automatically enable itself
whenever a zmk,studio-rpc-uart chosen node is specified. The previous
behavior of enabling if CONFIG_ZMK_USB was enabled broke builds when
CONFIG_ZMK_STUDIO was enabled but the chosen node wasn't specified.
2025-07-11 22:07:38 -06:00
snoyer 9e905d6593
feat(ble): Add function to get profile address by index (#2992) 2025-07-09 20:25:11 -06:00
Pete Johanson 6b44d33db2
feat(split): Runtime selection of split transport (#2886)
feat(split): Runtime selection of split transport

Allow building multiple split transports, and select an active
one based on the transport availability. Wired split availability
depends on additional `detect-gpios` which must be a GPIO pin
that goes active when a wired connection is present.

feat(split): Suspend/resume wired UART devices.

To better support runtime split support, suspend/resume the UART
as necessary to save power when not using the UART.

docs(split): Document adjusting nRF52 UART interrupt priorities

For wired split on nRF52, you may need to adjust the priority for UART
interrupts lower, to ensure the interrupts used for timing sensitive
BT operations can run when needed, so document this in our pinctrl docs.

refactor(split): Restore use of aync UART on nRF52.

With fixes for Zephyr UART driver, re-enable using async API on nRF52.

fix(split): Minor wired split fixes.

Various minor fixes for wired split to avoid spurious TX in half duplex,
etc.

fix: Unconditionally define HID payloads to avoid error.

Don't conditionally define HID indicator payload, to avoid compilation
errors.

docs(split): Expand on details of split transports.

Expand the split keyboard documentation with a more fleshed out section
on the available split trasnports, and what is and isn't supported by
each, including the runtime selection functionality.

---------

Co-authored-by: Nicolas Munnich <98408764+nmunnich@users.noreply.github.com>
2025-06-16 03:45:25 -04:00
badjeff 462d48b78e
feat(pointing): Allow peripheral input processing to stop propagation (#2844)
Allow peripheral input processors to prevent event propagation to centrals.

---------

Co-authored-by: Pete Johanson <peter@peterjohanson.com>
2025-06-16 02:23:25 -04:00
George Norton 239baa4875
feat(metadata): Add metadata to the mouse_key_press behavior (#2950)
Adds metadata to the mouse key press behavior so that mouse buttons can be
configured through studio
2025-06-02 14:32:18 -04:00
Cem Aksoylar 9da5d3ba82
fix(display): Make stock battery widget depend on the right symbol (#2953) 2025-06-02 07:25:08 -06:00