Commit Graph

1326 Commits

Author SHA1 Message Date
Flo Kempenich aa4cb143bf
fix(combos)Fix bug with overlapping combos timeouts (#1945)
* Fix bug with overlapping combos timeouts

* Fix trailing whitespace

* Fix log format
2023-10-03 04:03:59 -04:00
Joel Spadin 6a3cc914fc fix: Fix nice_view display widgets 2023-10-02 22:03:08 -07:00
Joel Spadin b17d896c5c fix: Address review comments 2023-10-02 22:03:08 -07:00
Joel Spadin 651ed05e9a refactor: Split endpoint to transport and instance
Changed the endpoints code to rename the existing endpoint types to
"transport" and add the concept of "endpoint instances". A transport is
the method by which data is sent, while instances allow describing
multiple endpoints that use the same transport (e.g. bluetooth profiles)

Also added new APIs to get the total number of possible endpoint
instances and assign each instance a unique index, which can be used
for tracking separate state for each endpoint in other code files.
2023-10-02 22:03:08 -07:00
Andrew Rae 2f05ad55ca fix(core): Prevent pre-releasing explicit mods. 2023-10-02 12:28:02 -07:00
Andrew Rae dffdb2365e test(core): Adding coverage for key pre-releasing.
Added cases for the two use cases I know of:
    1. Rolling with key-repeat behavior
    2. Rolling symbols that have the same base key, eg `+=`
2023-10-02 12:28:02 -07:00
Andrew Rae 933e369d7c feat(core): Adding pre-release for keys that were already pressed.
This fixes #1207 and #1076 (and maybe more?).
2023-10-02 12:28:02 -07:00
ReFil c1ebadcd2a
feat(hid): Add apple globe keycode
* feat(hid): Add apple globe keycode
* Update docs/src/data/hid.js

Co-authored-by: Cem Aksoylar <caksoylar@users.noreply.github.com>
Co-authored-by: Pete Johanson <peter@peterjohanson.com>
Co-authored-by: Nick Coutsos <nick@coutsos.com>
2023-09-29 13:14:31 -07:00
zhiayang 9b3d2cb99f
fix(driver): Fix broken compilation for MAX7318 driver 2023-09-28 12:19:14 -04:00
ClicketySplit 07c82836e0
fix(shields): Leeloo-Micro set status disabled for encoders. 2023-09-28 11:54:08 -04:00
zhiayang 8abc449cc2
feat(drivers): add driver for MAX17048 fuel gauge
Add driver for MAX17048 fuel gauge for battery reporting.
2023-09-25 21:04:03 -04:00
Peter Johanson 28ce23d489 chore(tests): Move to proper header name. 2023-09-16 11:52:40 -07:00
Peter Johanson 0ca7f69b6d refactor: Promote debounce to exposed mod lib.
* Promote previously local debounce code from kscan drivers to exposed
  module lib, for use with other drivers as needed.
* Refactor existing kscan driver to new "public" API.
2023-09-16 11:52:40 -07:00
Peter Johanson c28ef1b61e refactor(drivers): Use proper init stage/priority.
* Avoid APPLICATION stage and use the proper earlier stage for
  kscan drivers.
2023-09-16 11:52:40 -07:00
Peter Johanson 690bc1bb44 refactor: Move drivers into properly module.
* Align our driver module layout to properly match Zephyr conventions,
  allowing proper CMake setup to amend the library for each type of driver.
2023-09-16 11:52:40 -07:00
Cem Aksoylar 7f9e9f8c64 fix(boards): Disable QSPI for Xiao BLE
The GD25Q16 flash connected via QSPI seems to be causing issues
with excessive battery use and inability to sleep. Since ZMK doesn't
use it, disable it.

Resolves #1901
2023-09-05 22:40:25 -07:00
Peter Johanson 718500543b feat(split): Use directed advertising.
* Split centrals to scan with their identity so they receive direct
  advertising packets.
* Split peripherals to use direct advertising if they have an existing
  bond to a split central.
2023-09-04 13:54:07 -07:00
Peter Johanson 647945d9f8 feat(shields): Add splitkb.com Aurora Helix
* Add new shield for splitkb.com Aurora Helix, supporting
  keys, encoder(s), displays, and RGB.
2023-09-03 22:39:10 -07:00
フィルターペーパー ac0691471f feat(shields): Add Bluetooth bindings to kyria keymaps
Bluetooth bindings are useful for handling pairings with hosts. This
change adds the header and a few default commands as template for
new users to work with.
2023-09-02 23:08:17 -07:00
Xudong Zheng 544612c8c0 fix(split): reserve peripheral slot before stopping scanning
In the event that the peripheral MAC address does not match, this allows
scanning to continue.
2023-09-02 23:06:41 -07:00
Mikhail Stralenia 185457bc11
fix(shields): leeloo - proper encoder status for split encoders. 2023-08-29 08:53:30 -07:00
Peter Johanson a92a4967aa fix(sensors): Only accept data once per behavior.
* Don't accept data for the same behavior on multiple layers more than
  once, to avoid duplicate/extraneous triggers.
2023-08-27 19:52:03 -07:00
Stephen Wan 9d44229800 feature(split): add support for sensors from peripheral
This commit adds a new GATT characteristics on the peripheral side
and wires it up to read sensor values. The central side subscribes
to this new characteristics and replays sensor values on its side.

Co-authored-by: Peter Johanson <peter@peterjohanson.com>
2023-08-27 19:52:03 -07:00
Xudong Zheng e65a7e3075 fix(battery): change nRF52 ADC gain
With ADC pin, maximum 3.6V input needs gain 1/6 to be less than the 0.6V
reference.

With VDDHDIV5, maximum 6V input corresponds to 1.2V so gain 1/2 will be less
than the 0.6V reference and be slightly more precise.
2023-07-29 23:04:35 -07:00
Xudong Zheng cb9c573b53 refactor(underglow): turn underglow off in low priority work queue 2023-07-24 17:04:51 -07:00
Xudong Zheng 9a963abfc8 refactor: use low priority workqueue for underglow and battery reporting
Blocking operations on the high priority system workqueue may result in
deadlocks, particularly when Bluetooth is in use.
2023-07-24 17:04:51 -07:00
Peter Johanson f743d57ff1 feat(shields): Add splitkb.com Aurora Sofle
* Add new shield for splitkb.com Aurora Sofle, supporting
  keys, encoder(s), displays, and RGB.

Co-authored-by: Cem Aksoylar <caksoylar@users.noreply.github.com>
2023-07-22 23:16:49 -07:00
Peter Johanson 147f7f23dc fix(shields): Make settings_reset more flexible.
* Don't reference `pro_micro` nexus node in settings_reset
  so it can be used with other controllers.
* Use mock kscan node instead.
2023-07-21 10:41:23 -07:00
Peter Johanson 5f6a13413b fix(bluetooth): Split improvements
* Proper usage of bt_uuid_cmp.
* Central's don't start scanning for peripherals if
  `ZMK_BLE_CLEAR_BONDS_ON_START` is enabled.
* Split peripherals don't advertize if
  `ZMK_BLE_CLEAR_BONDS_ON_START` is enabled.
2023-07-21 10:41:23 -07:00
Peter Johanson 54c2e8e155 feat: Add more logging to peripheral settings. 2023-07-21 10:41:23 -07:00
Peter Johanson ed400c4feb fix(bluetooth): Corrected use of `bt_addr_le_cmp`
* Properly compare to zero when comparing LE addresses.
2023-07-21 10:41:23 -07:00
Peter Johanson 73e1b526d5 fix(bluetooth): Properly clear peripheral slots
* When the clear bonds Kconfig is set, also clear peripheral
  address slots addresses from settings as well.
2023-07-21 10:41:23 -07:00
Cem Aksoylar ee1e135104
fix: Proper battery sensor Kconfig dependencies.
Properly make the battery sensor Kconfig symbols depend
on `SENSOR` config, and minor battery reporting Kconfig
symbol dependency fix.
2023-07-19 02:21:09 -04:00
Nick Winans 51a4be8935 fix(displays): Don't enable built-in widget configs by default 2023-07-19 00:13:16 -06:00
Nick Winans 18a2b76bf0 feat(nice!view): Custom widgets 2023-07-19 00:13:16 -06:00
ClicketySplit aaf9958d86
feat(boards): Leeloo v2 and V2 Zephyr 3.2 fixes
* Add Leeloo v2
* Leeloo-Micro v1 updates to support Zephyr 3.2
* Refactored for new Encoder Configuration

Co-authored-by: Cem Aksoylar <caksoylar@users.noreply.github.com>
2023-07-17 17:26:27 -04:00
Kyle McCreery 3772ecb04e
fix(boards): Update pillbug_defconfig to enable pinctrl 2023-07-05 10:50:19 -06:00
Peter Johanson b259d5a22e fix(sensors): Sensor rotate behavior fix for layers.
* Properly return transparent value when processing mode
  for higher disabled layers means the processing is ignored.
2023-06-20 17:36:37 -06:00
Peter Johanson 805dd4a53b feat(behaviors): Support parameterized macros.
* Add two new compatibles for macros that
  take one or two parameters when bound in
  a keymap.
* Use `&macro_param_1to1`, `&macro_param_1to2`, `&macro_param_2to1`,
  and `&macro_param_2to2` control entries in the bindings for the macro
  to have the next binding entry have it's values substituted.

Co-authored-by: Cem Aksoylar <caksoylar@users.noreply.github.com>
2023-06-20 11:19:28 -06:00
Xudong Zheng e686fce4d9 refactor(split): allow central to define connection parameters
Fixes #1614
2023-06-19 20:48:31 -06:00
Peter Johanson 753802cd79 fix(sensors): Clean ups based on code review. 2023-06-18 20:45:06 -06:00
Peter Johanson 3a91b32513 refactor(sensors): Use "sensor index" consistently 2023-06-18 20:45:06 -06:00
Peter Johanson 8b29f6d345 refactor(sensors): Split data handling from triggers.
* All sensor behaviors should see sensor data, then selectively
  only have some trigger their behaviors.
2023-06-18 20:45:06 -06:00
Peter Johanson d781ec795b refactor(bluetooth): Add battery reporting config.
* Add dedicated battery reporting Kconfig that is `imply`d by
  enabling ZMK_BLE.
2023-06-18 20:45:06 -06:00
Peter Johanson f8aaaff556 refactor(shields): Updated ZMK Uno encoder config.
* Move to new steps/triggers-per-rotation config.
* Leverage QDEC Nordic driver when used on Nordic DK.
2023-06-18 20:45:06 -06:00
Peter Johanson 621d946d29 refactor(bluetooth): Bump HoG stack size.
* Bump the default stack size for the HoG processing thread
  to avoid issues w/ some pathways.
2023-06-18 20:45:06 -06:00
Peter Johanson f0f7e2081b refactor(config): Select SENSOR as needed.
* Don't force on SENSOR Kconfig setting unless
  needed based on the detected DT.
2023-06-18 20:45:06 -06:00
Peter Johanson 295ed83409 refactor(sensors): ec11 rotation sensor value in degrees.
* Add new `steps` property to the `aips,ec11` binding, to make
  the driver properly report degrees in the rotation delta channel.
* Handle old sensor values in sensor rotate behavior.
2023-06-18 20:45:06 -06:00
Peter Johanson 2244bd3d81 refactor(sensors): Sensor event channel data, resolution tweaks.
* Refactor sensor events to include channel data,
  necessary for prop split encoders, and avoiding duplicate calls,
  to fetch channel data twice, etc.
* More consistent behavior driver API.
* Allow setting triggers per resolution at the behavior level optionally.
2023-06-18 20:45:06 -06:00
Joel Spadin dcf5e75fa6 fix(boards): Bump nRF5340 DK I2C buffer size
Increased the I2C buffer size again, since it needs to be at least 641
to support 128x64 displays.
2023-06-18 14:57:06 -06:00
Joel Spadin 9ff1eaeb5a fix: Enable BT_TINYCRYPT_ECC when using HCI
BT_TINYCRYPT_ECC is required for BT_SMP_SC_PAIR_ONLY to work on setups
that use BT HCI like the nRF5340.
2023-06-18 14:52:45 -06:00
Xudong Zheng 5d9ae8fffa feat(split): allow central to connect to multiple peripherals 2023-06-05 16:22:41 -06:00
Peter Johanson f08802eaa7 fix(boards): Proper i2c pinctrl for BlueMicro840
* Use the proper pin assignmets after the move to pinctrl for the
  Zephyr 3.2 migration.
2023-06-05 00:05:44 -06:00
Peter Johanson 19d883cdfe fix(bluetooth): Passkey pairing improvements.
* Capture the last 6 entered digits, and then require pressing
   Enter/Return to submit the entered digits. This matches the
   messaging shown on hosts regarding how to complete pairing.
* Fix the wording on the Kconfig menu item to accurately describe
  the feature.
2023-06-05 00:01:44 -06:00
Joel Spadin b276a3bfb0 refactor(kscan): batch GPIO reads by port
Changed the GPIO matrix and direct GPIO key scan drivers to do a single
read per port instead of one read per pin. This is much more efficient
for some types of GPIO drivers, such as I2C GPIO expanders.

To accomplish this with minimal overhead, we now sort input pins by port
at driver init. if we iterate through the pins in the sorted order, all
pins on the same port are consecutive, so we only need to read each port
once the first time we see it.
2023-05-28 23:33:34 -06:00
Xudong Zheng 1adfcf92bf refactor(split): fix inconsistency in Kconfig names 2023-05-28 22:58:31 -06:00
Peter Johanson 5aac2743b1 fix(bluetooth): Improved checking for conn status.
* Check the actual connection status before considering
  a discovered connection as connected.
2023-05-22 23:09:40 -06:00
Cem Aksoylar 864394b40a feat(display): Add setting to invert display colors
Add CONFIG_ZMK_DISPLAY_INVERT Kconfig to invert colors
(black-on-white to white-on-black) on monochrome screens.
Currently applies only if CONFIG_LV_USE_THEME_MONO is selected,
which is the default unless user overrides it.
2023-05-21 21:51:36 -06:00
Cem Aksoylar 7e29166c6c refactor(display): Clean up unused theme Kconfig 2023-05-21 21:51:36 -06:00
Cem Aksoylar b021d19255 fix(display): Imply LVGL mono theme when display is enabled
All displays currently used with ZMK are monochrome so it makes sense
to enable the mono theme by default, which can be disabled by the user
since we use the "imply" statement.

Without this theme setting, the small font size selection for widgets
at the bottom of the stock status screen does not work.
2023-05-21 21:51:36 -06:00
digger vermont 89d71ed2c2
feat(boards): Add KBDfans Tofu65 2.0 board
* Initial commit of Tofu65 2.0 board

---------

Co-authored-by: Pete Johanson <peter@peterjohanson.com>
2023-05-18 17:47:36 -06:00
Alexander Krikun 94789a092c fix(boards): unify board I2C configuration, use TWI driver 2023-05-04 22:51:54 -07:00
Cem Aksoylar 0239f18b61 feat(boards): Add Corne-ish Zen v1 2023-04-25 23:57:16 -07:00
Cem Aksoylar 39d7f86f70 refactor(boards): Make Zen dtsi non-v2 specific 2023-04-25 23:57:16 -07:00
Cem Aksoylar 4a9c59317f refactor(boards): Add back default matrix transform to Zen v2 chosen node 2023-04-25 23:57:16 -07:00
Cem Aksoylar 2c70048bee refactor(boards): Remove duplicated Zen v2 Kconfigs and unused font size 2023-04-25 23:57:16 -07:00
Cem Aksoylar ab65ffc114 refactor(boards): Fix Zen v2 DTS spacing inconsistencies 2023-04-25 23:57:16 -07:00
Peter Johanson a6787b08c7 refactor(underglow): Tad more logging. 2023-04-25 23:53:17 -07:00
ReFil db08e041c6
feat(boards): Polarity works CKP Series
Adds support for the CKP family of boards
BT60V2 ANSIHotswap, ISO Hotswap, ANSI Lowpro and soldered
BT65 ANSI Hotswap, ISO Hotswap and soldered
BT75 ANSI Hotswap and soldered

The BT65 and BT75 are stylised as btXX_v1 in order to maintain compatibility with customers existing zmk-config setups in the same way the BT60 V1 was handled when merged into main.

CKP boards have identical pinmapping between hotswap and soldered so there's only one set of defconfig, dts, keymap, yaml and yml files per size
2023-04-25 13:37:33 -04:00
Peter Johanson e52e734480 chore: Fix formatting of Kconfig setting. 2023-04-24 23:01:48 -07:00
Peter Johanson de152fe741 fix(bluetooth): Revert to Legacy LLCP
* Reports of constant/frequent disconnects, with HCI err 0x28,
  "instant passed", seem linked to newer LLCP that became default
  in Zephyr 3.2, so revert to the Legacy LLCP for now until a
  proper fix for new LLCP can be found.
2023-04-24 22:41:03 -07:00
Joel Spadin 5b07c86d05 chore: Update Prettier
Added a workaround to select the latest version of Prettier with
pre-commit, since the pre-commit mirror repo started tracking alpha
releases and doesn't have anything beyond 2.7.1.
2023-04-24 16:07:04 -07:00
Joel Spadin 94061bb916 refactor: Replace tabs with spaces
Standardized indentation to use spaces with a new pre-commit hook.
2023-04-24 16:07:04 -07:00
Joel Spadin 32ae776c42 refactor: Add more checks to pre-commit
Updated existing pre-commit hooks and added some new hooks:

- Remove trailing whitespace
- Ensure every non-empty file ends with a new line
- Check YAML file validity
- Prevent adding large files
- Ensure any scripts with shebangs are executable

Added a GitHub action to run pre-commit on every commit. Removed any
existing actions which duplicate pre-commit.

Ran pre-commit on the codebase.
2023-04-24 16:07:04 -07:00
Peter Johanson 53dea223b7 feat(shields): Add splitkb.com Kyria Rev3. 2023-04-24 01:20:51 -07:00
Nick Conway 3db163aa2c feat(behaviors): Add reusable sensor behaviors.
* Add new sensor behaviors that either take full bindings
  add definition, or accept parameters when bound in the
  keymap.
* Remove existing hard-coded key press sensor behavior
  and instead leverage new generic sensor behaviors to
  achieve the same functionality.

Co-authored-by: nick@conway.dev
2023-04-21 21:13:31 -07:00
Peter Johanson 9a73650041 fix(boards): Move nice!60 to SPI3 for underglow
* Move to SPI3 for underglow peripheral, needed after the
  move to pinctrl.
2023-04-21 11:41:10 -05:00
Joel Spadin 5c6f21b0e0 fix: Fix compiler warnings in sensor code 2023-04-18 00:20:57 -07:00
Joel Spadin e7a6e4016d feat(behaviors): Add key position to key events
Extended the virtual key position system from combos so that each sensor
also gets a virtual key position. This allows sensor behaviors to use
the behavior queue API.
2023-04-16 23:53:12 -07:00
Cem Aksoylar f1b138cbf0 fix(boards): Fix Zen logo alignment 2023-04-14 14:39:54 -07:00
Purdea Andrei 309359b32f
fix(keymaps): fix keypresses that are not in the transform
Before this change, if a matrix position was not present in the transform,
various incorrect behaviors would happen:

1) In some cases out-of-bounds accesses:

Note that the size of the`transform[]` array does not necessarily match
the size of the matrix. So for example if key position
(ZMK_MATRIX_COLS-1, ZMK_MATRIX_ROWS-1) is not present in the transform,
but ends up being pressed, then the array will be accessed beyond its
size, and any data could be returned.

2) In other cases the 0th position in the keymap will be used because
the `transform[]` array is initialized to all zeros.
2023-04-10 03:27:19 -04:00
Xudong Zheng ee9fcec3c9 feat(core): Process log every 100ms 2023-04-09 23:29:22 -07:00
Xudong Zheng a20b9502bc feat(core): Add RTT logging Kconfig option 2023-04-09 23:29:22 -07:00
Xudong Zheng 3f48062225 feat(core): Add Kconfig option to exclude debug log messages 2023-04-09 23:29:22 -07:00
nguyendown 702d79c108
test(behaviors): add unit tests for sticky key `quick-release`
Duplicate the existing tests with `quick-release` enabled:
- 8-lsk-osk-combination-quick-release
- 10-callum-mods-quick-release
2023-04-10 01:50:57 -04:00
Cem Aksoylar 3c8f55ede0 fix(display): Do not override font size in status screen 2023-04-09 21:36:43 -07:00
Joel Spadin 064aff6bc0 fix(behaviors): Fix use after free in sticky key
Fixed an issue where the sticky key behavior would call
ZMK_EVENT_RAISE_AFTER(), which would free the provided event, but then
it would keep using that now-freed event data.
2023-04-09 20:17:40 -07:00
Peter Johanson 374104dec6 fix(underglow): Move to spi3 for underglow bus.
* Workaround Zephyr bug for Nordic SPI(M) driver after the
  pinctrl refactor by using spi3 peripheral for the SPI bus for
  the WS2812 led_strip driver.
2023-04-09 14:41:00 -07:00
Joel Spadin b31b42018a fix: Remove deprecated labels from zmk_uno 2023-04-08 15:37:48 -07:00
Cem Aksoylar 7434a6b99b fix(shields): Fix nice!view for deep sleep 2023-04-08 00:41:19 -07:00
Hooky 9dcc3ac375
fix(shields): Fixup nice!view adapter pinctrl props.
`pinctrl-0` setting missing `<>`.
2023-04-07 06:53:10 -07:00
Peter Johanson 313ed6adb6 fix(display): Tweak EPD driver init/blanking.
Ensure we only clear the display when turning blanking off the
first time, not every time, to avoid duplicate clears.
2023-04-05 22:55:38 -07:00
Peter Johanson 1493620bf7 refactor(boards): Move to pinctrl. 2023-04-05 22:55:38 -07:00
Peter Johanson 518f9a550f fix(underglow): Use `DT_HAS_CHOSEN` properly. 2023-04-05 22:55:38 -07:00
Peter Johanson 198daaf524 fix(shields): Don't try to disable xiao_i2c on Hummingbird. 2023-04-05 22:55:38 -07:00
Peter Johanson c3d06b22c8 fix(core): Bump system work queue stack on RP2040. 2023-04-05 22:55:38 -07:00
Peter Johanson a6ebdb7180 fix(kscan): Default wait between outputs on RP2040. 2023-04-05 22:55:38 -07:00
Peter Johanson 2f9bc2f1f7 fix(logging): Disable USB driver logging.
When enabling our high level USB logging, disable the USB driver
logging itself entirely, to avoid logging in the driver causing
errors when USB isn't up yet to send the logs.
2023-04-05 22:55:38 -07:00
Peter Johanson 31f664ffec fix(boards): Base config/overlay for rp2040 boards
Baseline config and overlay for the following:

* `rpi_pico`
* `adafruit_kb2040`
* `sparkfun_pro_micro_rp2040`
* `adafruit_qt_py_rp2040`
* `seeeduino_xiao_rp2040`
* `boardsource_blok`
* `01space_rp2040_042lcd`

Co-authored-by: Joel Spadin <joelspadin@gmail.com>
2023-04-05 22:55:38 -07:00
Peter Johanson 09ed79a867 refactor: Move away from deprecated label usages.
* Move away from DT_LABEL.
* Move to DEVICE_DT_GET for non-behavior device access.
* Move various drivers to `gpio_spec_dt` and `DT` related macros.
* Remove mcp23017 while at it, since better upstream driver is
  available.
2023-04-05 22:55:38 -07:00
Peter Johanson 062f94d014 refactor: Remove v1 logging vestiges. 2023-04-05 22:55:38 -07:00
Peter Johanson e84b4299b5 refactor: Remove deprecated Kconfig override. 2023-04-05 22:55:38 -07:00
Peter Johanson 3a958c667f refactor: Move to `zephyr/` include paths.
* Zephyr moved to properly namespaced headers, so major "rip
  the bandaid" commit to move us to those everywhere.
2023-04-05 22:55:38 -07:00
Peter Johanson 35a1c5a3d4 refactor(behaviors): Rename `reset` behavior.
* Upstream now has a node w/ label `reset` on many boards, so
  renaming our reset behavior node label to `sys_reset`.
2023-04-05 22:55:38 -07:00
Peter Johanson 4f2f9db1d4 refactor(ble): New callback API for pairing complete. 2023-04-05 22:55:38 -07:00
Peter Johanson d513dc1766 refactor: Move to new PM API. 2023-04-05 22:55:38 -07:00
Peter Johanson 243a227ff9 refactor: Move to LISTIFY/DT_FOREACH_PROP_ELEM macros. 2023-04-05 22:55:38 -07:00
Peter Johanson 69a4c3200d refactor(display): Updates for LVGL v8.x changes.
* LV_ prefix from new LVGL official Kconfig now used.
* API changes for themes, container object removal, etc.
* Add our own Kconfig and code for theme default small font.
* Remove some hardcoded sizes.
2023-04-05 22:55:38 -07:00
Peter Johanson 168b32b828 refactor: Move to Zephyr 3.2 branch. 2023-04-05 22:55:38 -07:00
Peter Johanson ae8299edb3 fix(boards): Move the CDC ACM node under the USBD.
* Ferris board's CDC ACM node was accidentally nested under the wrong
  node, causing USB logging builds to fail with cryptic error.
2023-03-25 13:14:12 -07:00
prdktntwcklr cd64c59b39 fix(tests): ignore line endings 2023-03-21 17:44:49 -07:00
chrissicool 56299ba5dc
fix(boards): Disable CDC by default for CiZ
The default configuration for corneish-zen enables a USB CDC endpoint by
default. This is most probably a debugging left-over. Disable that
endpoint. CONFIG_ZMK_USB_LOGGING depends on it anyway, so it will be
enabled again with that config option set.
2023-03-21 20:42:11 -04:00
Robert U 6cb42a8060
feat(behaviors): On-release option for positional-hold-taps 2023-03-12 12:24:00 -04:00
Xudong Zheng 8904407983 feat(underglow): use float for HSB to RGB calculation 2023-02-25 01:44:00 -05:00
Cem Aksoylar 1d65661efa fix(keymap): Fix tidbit keymap 2023-02-25 00:53:18 -05:00
Cem Aksoylar 3eee53676f fix(shields): Fix missing binding in eek keymap 2023-02-21 23:49:56 -05:00
Cem Aksoylar 0c0ebda65b fix(keymap): Fix default Ergodash keymap 2023-02-21 23:49:10 -05:00
Cem Aksoylar 5d22d76d72 fix(shields): Fix Kyria five column transforms 2023-02-21 23:47:10 -05:00
Cem Aksoylar 72624a41fa fix(shields): Add missing col-offsets for extra transforms 2023-02-21 23:47:10 -05:00
Omri Kaplan c065d451cb
fix(shields): Fix keycodes that differ from the default keymap (#1590)
- Asterisk in layer 1 was mapped to 8
- Underscore in layer 1 was mapped to minus
- Right GUI in layer 0 was mapped to right Alt
- Space in layer 1 was mapped to Return
- Plus was mapped with KP_PLUS
2023-02-07 20:29:38 -05:00
Martí Bolívar 9d1070a140 chore(build): update west.yml syntax
West has supported a 'name-blocklist' replacement for 'name-blacklist'
since v0.9.

Signed-off-by: Martí Bolívar <marti.bolivar@nordicsemi.no>
2023-02-01 11:36:55 -05:00
zhiayang 41830ce19a fix formatting 2023-01-19 22:30:27 -05:00
zhiayang fbdb24c6fe fix(driver): Fix potentially buggy read/write routines for max7318 driver 2023-01-19 22:30:27 -05:00
Peter Johanson a82a0ec496 feat(shields): Add splitkb.com Aurora Lily58. 2023-01-06 20:10:53 -06:00
Peter Johanson c23443a086 feat(docs): Generate new shield interconnect docs.
* Add to metadata schema for interconnects.
* New conventional location for pinout diagrams/pics.
* New component to generate the tabs for the new shield
  doc section on interconnects.
* Add XIAO and arduino uno pinout diagram.

Co-authored-by: Cem Aksoylar <caksoylar@users.noreply.github.com>
2022-12-23 02:41:35 -06:00
byran.tech 14324390e8
fix(boards): replace nRF3840 with nRF5340 2022-12-22 20:42:57 -06:00
Ladislav Benc 58f8c97d3c
feat(shields): Add a Reviung5 shield
Co-authored-by: Pete Johanson <peter@peterjohanson.com>
2022-12-20 20:49:17 -06:00
Nick Coutsos 6e99a48696 fix(behaviors): Mark sticky key release-after-ms required 2022-12-20 20:38:26 -06:00
Joel Spadin 3eb06f137b feat: Add global macro timing configs
Added ZMK_MACRO_DEFAULT_WAIT_MS and ZMK_MACRO_DEFAULT_TAP_MS to set
global defaults for the wait-ms and tap-ms properties of macros.

Also reduced the default timings for macros, since it's been reported
many times that 100 ms is too slow.
2022-12-20 20:34:25 -06:00
Cem Aksoylar 5cbe572f7d fix(display): Re-default to blank on idle for OLEDs 2022-12-18 16:34:27 -06:00
Cem Aksoylar ebb4cb76d3 fix(boards): Add Zen .conf file for setup script 2022-12-16 17:41:39 -06:00
Darryldh 4a3e783f32
feat(boards): Add Corne-ish zen v2
Co-authored-by: Pete Johanson <peter@peterjohanson.com>
2022-12-16 10:57:25 -06:00
Jerome Olivier 984b16e03b
feat(boards): Add preonic_rev3 board. 2022-12-16 10:52:26 -06:00
hyx0329 4faf6eba97 feat(boards): Add battery sensor for Makerdiary M60 keyboard
Signed-off-by: hyx0329 <hyx0329@163.com>
2022-12-14 12:38:03 -06:00
Peter Johanson 1425d0f2d9 fix(shields): Fix col-offset for splitkb.com corne
Same column offset for both transforms, since we use the same
pins for both, just apply a different transform.

Fixes: 1570
2022-12-13 20:46:26 -06:00
JW2586 617136b45e
feat(shields): Added Waterfowl shield 2022-12-10 23:51:41 -05:00
Joel Spadin 01500b085e
fix(boards): Add nRF5340 DK metadata file (#1579) 2022-12-10 22:21:54 -06:00
Kyle McCreery 70aa4fa824
feat(boards): Add PillBug board, blackpill interconnect.
* Add blackbill interconnect metadata.
* Add config/overlay for upstream blackpill boards to work with ZMK.
* Add pillbug board.
* Updated new shield docs.

Co-authored-by: Cem Aksoylar <caksoylar@users.noreply.github.com>
2022-12-10 22:01:37 -06:00
Joel Spadin 36ee1f4e0a fix(boards): Fix nRF5340 DK issues
- Fixed a stack overflow when enabling Bluetooth.
- Increased the I2C buffer size to support displays.
2022-12-10 21:56:14 -06:00
Pavlos Vinieratos 2b235ae281
fix(boards): Add encoder config to bdn9_rev2.conf 2022-12-10 19:33:50 -06:00
Peter Johanson 63b29ccd32 feat(shields): Add ZMK Uno shield.
* Support underglow, backlight, display, encoder, etc.
2022-12-10 17:40:57 -06:00
Peter Johanson 12329b388e feat(boards): Add Arduino Uno interconnect, nrf52840dk config. 2022-12-10 17:40:57 -06:00
Cem Aksoylar 58eb7a3305 feat(display): Add config to show battery level in percentage 2022-12-10 17:08:37 -06:00
Joel Spadin 593db85378 feat(boards): Add support for nRF5340 DK
Added overlays to support building for the nRF5340 development kit.

Also added some documentation on how to build and flash ZMK for dual-
chip Bluetooth configurations, with an example for the nRF5340.
2022-12-08 01:00:48 -06:00
Albert Y 6550c043c4
refactor: Update cradio keymap with better indentation and additional features 2022-11-25 23:02:28 -06:00
Xudong Zheng c7fdce863a fix(usb): add USB_DC_CLEAR_HALT to supported states
See https://manpages.debian.org/testing/linux-manual-4.9/usb_clear_halt.9 for
information on halted USB endpoints
2022-11-17 22:52:32 -06:00
Peter Johanson 9f90dd1fc7 fix(boards): Fix XIAO BLE voltage divider config.
* Use proper resistor value for the `output-ohms` property.
2022-11-17 22:46:12 -06:00
jhorology 768fc4a5e5 fix: HID report descriptor 2022-11-10 22:15:06 -06:00
Peter Johanson a9048956b5 feat(shields): Add splitkb.com Aurora Corne. 2022-11-10 21:05:26 -06:00
Peter Johanson 2364960f84 feat(shields): Add splitkb.com Aurora Sweep. 2022-11-04 12:13:16 -05:00
Okke Formsma a61eac9139
fix(behaviors): make tap dances work on a combo
* Tap dance event handler goes after combos
* Add test
2022-11-01 15:13:19 -05:00
HookyQR d393247e15
fix(display): Set bits per pixel and color depth on n!v 2022-10-30 19:50:21 -05:00
Jay Greco 41fdd07315 feat(boards): Add nullbits SNAP shield 2022-10-25 07:50:56 -05:00
Nick Winans d3d5b8eb8a
fix(displays): Adjust alignment and spacing
* Adjust alignment and spacing
* Fix char array lengths
2022-10-21 23:10:55 -04:00
ebastler c9eb63199a
feat(keymaps): add NUHS/NUBS alias for Non-US-Backslash/Non-US-Hash 2022-10-17 21:48:19 -04:00
Robert U ef2e6e9156
feat(behaviors): Add mod-morph `keep-mods`
* Update docs for mod-morph
* Add unit tests for mod-morph
* Add keep-mods to DT binding

Co-authored-by: Martin Aumüller <aumuell@reserv.at>
Co-authored-by: Cem Aksoylar <caksoylar@users.noreply.github.com>
2022-10-14 20:40:28 -05:00
Nick Winans 18b8b9b3a5
fix(shields): Disable idle blanking on nice!view 2022-10-14 11:39:47 -05:00
Peter Johanson 605d88f266 feat(ble): Default a few configs for DIS GATT svc.
Default values for DIS GATT characteristics for:

* Vendor ID
* Product ID
* Manufacturer
* Model
2022-10-05 11:34:37 -04:00
Pavel Glushkov 1e25ee77d2
fear(boards): Add nrfmicro_13_52833 board
* Add nrfmicro_13_52833 board definition.

Co-authored-by: Alexander Krikun <krikun98@gmail.com>
Co-authored-by: Pete Johanson <peter@peterjohanson.com>
2022-10-02 22:01:55 -04:00
zhiayang cc3d5529fd
feat(drivers): Driver for MAX7318 GPIO expander (#1295)
Add driver for max7318 i2c gpio expander

Co-authored-by: Pete Johanson <peter@peterjohanson.com>
2022-09-29 21:22:01 -04:00
Nick Winans 3d3c45bc80
feature(shields): Add nice!view
* Use two shield system, nice_view, and nice_view_adapter
* Build system fixes for interconnect use.
2022-09-29 21:11:26 -04:00
Peter Johanson 9782518397 feature(drivers): Option for read wait on matrix.
* Add a new Kconfig option, `ZMK_KSCAN_MATRIX_WAIT_BEFORE_INPUTS`
  to delay reading inputs after setting an output active.
2022-09-29 01:06:54 -04:00
ReFil b655554b03
refactor(boards): CRBN and Planck keymap fixes
* Update planck_rev6.keymap

Third layer was causing problems so i moved reset and bootloader to second layer

* BT_sel functions

A customer requested this so we added it

* Update crbn.keymap

Co-authored-by: Nick Winans <nick@winans.codes>
2022-09-22 15:14:09 -04:00
ReFil cc6dd5fc49 chore(lighting): fix deprecation
Removed deprecated macros, replace with correct Zephyr 3 implementation
2022-09-13 09:51:46 -04:00
John Drogo 6124d254f9 fix(usb): add USB_DC_RESUME to supported states
All credit for this one goes to @xudongzheng (thanks for helping debug
this!). Should fix the issue where keyboards go unresponsive after their
host machine wakes from sleep due to the USB driver entering an error
state. I was able to both reliably reproduce the issue before the patch
goes in and confirmed it no longer occurs post patch.

The `USB_DC_RESUME` state indicates the host event has resumed the connection.
Adding it to the list of valid connection states to prevent the error
when waking from sleep.

Zephyr API Link:
https://docs.zephyrproject.org/apidoc/latest/group____usb__device__controller__api.html#gac09e3e0af1a2b41a5bfbad91f900baf7

fixes #1372
2022-09-11 13:00:20 -04:00
Ben 41bfc56e13
feat(board): add puchi_ble_v1 to boards
* feat(board): Add Puchi-BLE v1 board
2022-09-05 18:15:24 -04:00
Elliot Pahl ce7a0e2b6c
feat(shields): Add Eternal Keypad
* Add Eternal Keypad

Co-authored-by: Duccio <ducciobreschi@gmail.com>
2022-09-05 18:07:02 -04:00
Shreyas 391f80f069
feat(hid): Add C_AC_DESKTOP_SHOW_ALL_APPLICATIONS
* support for C_AC_DESKTOP_SHOW_ALL_APPLICATIONS

Co-authored-by: Shreyas Kale <shreyaskale@Shreyass-MacBook-Pro.local>
2022-08-22 00:27:47 -04:00
Pete Johanson fc511e40cc
fix(behaviors): Fixing erroneous combo triggering, hold-taps sticking
* This is a very simple fix to a rather complicated issue. Essentially,
hold-taps will "release" (raise) their captured keys before actually
telling the event manager they have captured a key. This means the event
manager ends up assigning the `last_listener_index` to the hold-tap
subscription rather than the combo. So when the combo calls
`ZMK_EVENT_RELEASE` it raises after the hold-tap instead of after the
combo as the combo code expects.
* The corresponding test (which fails without this change) has also been added.
* An event can be captured and released in the same event handler, before
the last_listener_index would have been updated. This causes some handlers
to be triggered multiple times.
* The solution is to update the last_listener_index before calling the next
event handler, so capturing and releasing within an event handler is harmless.
* Also see discussion at https://github.com/zmkfirmware/zmk/pull/1401
* If our handler dedides our undedided hold-tap,
  return early before continuing.
* Fix incorrect pointer logic, resulting in combo
  candidate filtering leaving incorrect timeout details.

Co-authored-by: Andrew Rae <ajrae.nv@gmail.com>
Co-authored-by: okke <okke@formsma.nl>
2022-08-03 20:09:50 -04:00
Jason Hazel be0d49b62d
feat(shields) add support for Spaceman Pancake (#1400)
* add support for Spaceman Pancake

Co-authored-by: Pete Johanson <peter@peterjohanson.com>
Co-authored-by: Jason Hazel <jhazel@matrixmediaservices.com>
Co-authored-by: Pete Johanson <peter@peterjohanson.com>
2022-07-27 11:39:42 -04:00
Peter Johanson 90b45a1284 feat(display): Blank on idle optionally.
* Add new defaulted-on Kconfig option to control if displays
  are blanked/unblanked on idle/activity.
2022-07-26 14:12:38 -04:00
Peter Johanson e3efffa9a8 refactor(display): Move clear to unblank for EPD driver. 2022-07-26 14:12:38 -04:00
Peter Johanson c4a47c08de fix(display): Initialize display on queue as well. 2022-07-26 14:12:38 -04:00
Peter Johanson 08c43feaaf feat(kscan): Kconfig for optional scan delay.
Add optional Kconfig setting to delay scanning after each
output column is set, and inputs are read, to allow inputs
to "settle" after the last column is set back to inactive.
2022-07-15 11:07:08 -04:00
Cem Aksoylar 6180643581 fix(shields): Remove uses of deprecated pro_micro_a/d nodes 2022-07-03 09:11:23 -04:00
Nick Conway edec4595ae fix(behaviors): Fix mod morph description 2022-07-03 09:11:00 -04:00
Kurtis Lew ef3eb339ed feat(shields): Add RGB support to 2% Milk
Co-Authored-By: treezoob <98245530+treezoob@users.noreply.github.com>
2022-06-26 12:07:54 -07:00
Peter Johanson da209c453e refactor(shields): Remove res max Kconfigs
* Horizontal/Vertical resolution max is now defaulted
  from the DTS chosen display automatically, so
  remove the duplication in our shield Kconfig.
2022-06-26 00:27:04 -04:00
ReFil 90e070b427
feat(underglow): Add RGB auto off timeout on idle and on usb disconnect
Two new options for functionality to enable/disable RGB for
USB status or idle events.

Co-authored-by: Pete Johanson <peter@peterjohanson.com>
Co-authored-by: ReFil <harryherring@gmail.com>
2022-06-25 10:56:36 -04:00
ReFil 38e079ef37 fix(backlight): Improve initial power on behaviour 2022-06-25 00:37:00 -04:00
Peter Johanson 709441412a fix: Don't exclude segger, needed for DKs. 2022-06-22 16:37:22 -04:00
Peter Johanson d7bd81e5c4 fix(usb): Correctly detect USB connection status.
* Fix detection of USB power vs. configuration, to ensure endpoint
  selection works properly with power-only USB attached.
2022-06-16 00:50:04 -04:00
Kurtis Lew db43757461 fix(shields): Fix indentation in two_percent_milk.keymap 2022-06-14 19:51:35 -04:00
Peter Johanson 3d2bd01747 fix(split): Raise release events on disconnect.
* When a peripheral disconnects from a centraly, raise position events
  to release any active positions from that
  peripheral.
2022-06-12 22:53:02 -04:00
WSTRN 53bec710d8
fix(displays): Proper battery charge icon sizing 2022-06-09 13:54:36 -04:00
Peter Johanson 4af3d272fc fix(keymaps): Handle matching `then-layer`s.
* Proporly handle multiple  conditonal layers w/ the same target
  `then-layer` values.
* Move handling to work callback, to avoid re-entrance for cascading
  layers enabling other layers.
2022-06-07 23:41:52 -04:00
Peter Johanson 11ac8c4782 fix(build): Fix for proper string variable check.
* Properly load variable for comparison for shield name substring
  calculations.
2022-06-07 19:43:23 -04:00
Peter Johanson b5e73204e8 fix(drivers): Avoid build failures for GPIO driver
* Avoid defining the ZMK GPIO drivers lib if none of the drivers  are
  selected.
2022-06-05 17:57:35 -04:00
Peter Johanson 505c481f6a fix: Fixed conf file loading.
* Properly locate conf files for the shield dir name.
2022-06-05 01:45:22 -04:00
Peter Johanson 1e8224c296 feat(behaviors): Add DEL/BSPC to continue list.
* Continue caps word on delete/backspace by
  default now.

Co-authored-by: Cem Aksoylar <caksoylar@users.noreply.github.com>
2022-06-04 01:38:42 -04:00
Peter Johanson b3c9c18fee feat(behaviors): Continue on mods in caps word.
* Continue caps word when mods are changed, and
  match the continue list on combination of
    explicit and implicit modifiers.
2022-06-04 01:38:42 -04:00
Peter Johanson d01bc6afc6 fix(build): Another check w/ upstrream shields.
* Properly handle not finding a shield in the board roots.
2022-06-04 05:26:14 +00:00
Peter Johanson 9a9aef78c7 refactor: Remove unneeded left/right conf files. 2022-06-04 00:44:13 -04:00
Peter Johanson 02a85e5d54 chore: Add Hummingbiard/XIAO BLE to core coverage. 2022-06-04 00:44:13 -04:00
Peter Johanson 532c4b9267 refactor(build): Fixes for config/overlay loading.
* Move to ZephyrBuildConfig package based on Zephyr best practices.
* Support multiple shields properly, e.g. -DSHIELD="foo bar", which
  allows using existing upstream shields like `ssd1306_128x64` along
  with another ZMK shield.
* Properly *add* the "ZMK config" .conf file to the conf file list,
  so that existing board .conf files in `app/boards/<board>.conf` are
  properly honored still. Needed for overrides to usptream boards when
  combined with a local `<shield>.conf` file.
2022-06-04 00:44:13 -04:00
Peter Johanson 6a86cd0547 feat(gpio): Add 595 shift register driver.
* Use SPI for sending serial data.
* Supports 1-4 shift registers chained together by
  setting `ngios` property appropriately.
2022-06-03 22:45:04 -04:00
Caleb Goates 6dc436cb23 test(behavior): Add alt-tab test and modded alpha test for toggle key
Uses multiple toggles of modifier keys overlapping each other.
2022-06-03 00:04:41 -04:00
Caleb Goates 0d5bb100ba feat(behavior): Add key toggle 2022-06-03 00:04:41 -04:00
Okke Formsma c5922fae56 refactor(hid): add mask to HID_USAGE_PAGE macro 2022-06-03 00:04:41 -04:00
Okke Formsma 57fca34dc0 refactor(hid): Move hid logic into hid.c
Move the logic for picking the correct hid function into hid.c.
2022-06-03 00:04:41 -04:00
ClicketySplit 9f79cc2c7b
fix(shields): Add 'chosen' display node for leeloo, README path fix.
* Update to include 'chosen' node for OLEDs.
* Updated to correct direction of folder separators.
2022-05-29 23:55:06 -04:00
Peter Johanson 4f503246a3 refactor(split): cmake split clean up.
* Cleaner cmake setup for split build.
2022-05-29 19:18:09 -04:00
Peter Johanson 2b9a0ce2a5 refactor(shields): Move to generic central role config.
* Use new `ZMK_SPLIT_ROLE_CENTRAL` config instead of BLE
  specific Kconfig setting.
2022-05-29 19:18:09 -04:00
Peter Johanson 6539b3ae25 refactor(split): Clean up Kconfig organization.
* Seperated configs for split role (central/peripheral)
  and transport (BLE only for now).
* Split the configs to align on structure.
2022-05-29 19:18:09 -04:00
Kurtis Lew 0bde987ae2 Update kscan_gpio_get_extra_flags 2022-05-19 11:24:01 -04:00
Kurtis Lew 6f1adfbe14 Address further review by @petejohanson 2022-05-19 11:24:01 -04:00
Kurtis Lew 4dfcadb1ed Remove unnecessary LOG_DBG 2022-05-19 11:24:01 -04:00
Kurtis Lew fec99c7d5e Update kscan_direct_gpio.c
- Fix logic in getting pulls from ACTIVE_LOW vs. ACTIVE_HIGH DT flags
- Add pulls on init
2022-05-19 11:24:01 -04:00
Kurtis Lew f39c821d19 Simplify kscan_gpio_get_flags
Co-authored-by: Pete Johanson <peter@peterjohanson.com>
2022-05-19 11:24:01 -04:00
Kurtis Lew f369f2cc46 feat(kscan): Add toggle-mode to updated direct-wire kscan 2022-05-19 11:24:01 -04:00
Peter Johanson 5b5b3ff2eb fix(tests): Fix hex formatting. 2022-05-19 10:55:23 -04:00
Peter Johanson 64dadfb336 refactor(tests): Move remaining tests to posix 64.
* Update docs and fix up a few lingering tests
  to consistently use native_posix_64 target.
2022-05-19 10:55:23 -04:00
Peter Johanson 16ab6df18d feat(display): Add new peripheral status/display
* Add new API/status to track state of the
  peripheral connection to the central.
* Add new peripheral status widget for displaying
  the current status of the connection to
  the central.
2022-05-17 13:09:21 -04:00
Peter Johanson 0a40f922b5 refactor(split): Seperate peripheral BLE handling.
* Move foundational BLE code for split
  peripherals to a dedicated file to avoid
  tons of conditionals and awkward code.
2022-05-17 13:09:21 -04:00
Cem Aksoylar 25f89ee6ab feat(battery): Add Kconfig setting for battery level report interval 2022-05-17 12:03:57 -04:00
Joel Spadin 0738b4b2b0 refactor(kscan): Match direct GPIO driver to matrix driver
Rewrote the direct GPIO kscan driver to match the improvements made to
the matrix driver in 82cb762698 and
f946dc6893. It now uses the same
debouncing system as the matrix driver.
2022-05-17 01:20:20 -04:00
Nick Winans 54747a52f9 fix(sleep): use pm_power_state_force for proper device power management 2022-05-17 00:30:47 -04:00
Stefán Páll Sturluson d7ba7a1bee
fix(codes): typo in C_SUBTITLES. 2022-05-17 00:29:53 -04:00
zhiayang 19cc96b86d fix(boards): Fix battery ADC channel for Mikoto 2022-05-09 11:31:58 -04:00
Peter Johanson eca37b6219 fix(boards): Add flash/settings for XIAO BLE
* Ensure flash/NVS/settings configs are enabled.
2022-05-08 17:19:18 -04:00
Peter Johanson 41dc774848 fix(boards): Fix key position 4 flakiness w/ RGB
* Remove MISO pin from pinctrl for BDN9 rev2 board, to avoid
  the 4th switch being set up for an alternate function, which
  was causing spurious key press events to be triggered.
2022-05-05 22:58:56 -04:00
Nick Winans d33b35513b feat(usb): Set default HID interval to 1ms (1000Hz) 2022-04-29 21:51:38 -04:00
Andrew Rae b5efc7a7eb
feat(behaviors): Add `global-quick-tap` 2022-04-27 13:33:22 +01:00
Joel Spadin 11ab52582c refactor(battery): Auto enable battery drivers
CONFIG_ZMK_BATTERY_NRF_VDDH and CONFIG_ZMK_BATTERY_VOLTAGE_DIVIDER are
now automatically enabled if a DT node with the matching "compatible"
property is present and enabled, so they no longer need to be manually
set for each board.
2022-04-25 22:34:04 -04:00
Joel Spadin 6d6efa32f5 refactor(kscan): Auto enable kscan drivers
The key scanning drivers are now automatically enabled when a DT node
with the matching "compatible" property is present and enabled, so they
no longer need to be manually set for each board.
2022-04-25 22:28:53 -04:00
Joel Spadin a3a9510e47 refactor(kscan): Use GPIO DT spec macros in matrix driver 2022-04-25 22:28:53 -04:00
Nick Winans 2c7e5b9232 refactor(ble): Use auto phy/conn for split 2022-04-24 18:29:18 -04:00
Luigi311 13014d3f28 Remove descriptions and defaults for already set variables
Signed-off-by: Luigi311 <luigi311.lg@gmail.com>
2022-04-24 18:29:18 -04:00
Luigi311 7443a917cb Add ble connection interval support
Signed-off-by: Luigi311 <luigi311.lg@gmail.com>
2022-04-24 18:29:18 -04:00
Peter Johanson 486174fc41 fix(split): Raise split notification stack size.
* Larger stack for split peripheral notifications
  to avois stack overflow with logging on.
2022-04-24 15:08:04 -04:00
Peter Johanson 9f222fe700 fix: Exclude `sof` module to avoid build breakage. 2022-04-19 13:42:24 -04:00
Peter Johanson d0176f3685 fix(boards): Enable battery driver for XIAO BLE. 2022-04-19 01:28:22 +00:00
Joel Spadin f91472fbe5 fix(battery): Warn if using deprecated battery label 2022-04-17 11:30:57 -04:00
Joel Spadin 388e345c28 feat(battery)!: Add chosen node for battery
battery.c now uses the zmk,battery chosen node to select a battery
sensor. Using the node labeled "BATTERY" is maintained for backwards
compatibility but is now deprecated. Custom boards should switch to
using the chosen node.

# Conflicts:
#	app/boards/arm/bluemicro840/bluemicro840_v1.dts
#	app/boards/arm/nice60/nice60.dts
#	app/boards/arm/nrfmicro/nrfmicro_13.dts

# Conflicts:
#	app/boards/arm/bluemicro840/bluemicro840_v1.dts
2022-04-17 11:30:57 -04:00
Nick Winans d08463e483 fix(ble): Restore manual connection params 2022-04-15 12:25:15 -04:00
Peter Johanson 40cd8da743 fix(usb): Split HID from core USB, logging fix.
* Split core USB init from USB HID init.
* Tweak logging to avoid "log loop" causing
  spurious buffer messages on startup.
2022-04-13 13:07:59 -04:00
Peter Johanson 789fd03f8b fix: Properly use zmkfirmware Zephyr version. 2022-04-12 10:55:05 -04:00
Peter Johanson 1dccb7fe50 fix(hid): Use a full valid range for consumer page
* Switch to a logical max for the consumer page
  that avoid signed issue, and still allows
  full range of documented consumer page
  values.
2022-04-10 22:32:09 -04:00
Peter Johanson 22c487f276 feat(boards): Add BDN9 rev2 RGB support 2022-04-09 21:57:22 -04:00
Peter Johanson b44410ac44 feat(shields): Add Hummingbird shield
* Reference shield for the Seeed(uino) XIAO interconnect.
2022-04-06 16:26:55 -04:00
DoctorNefario 20a72263b2
fix(behaviors): Prevent accidental transparent behavior return values.
Needed because k_work_reschedule can return positive success codes.
2022-04-06 11:00:01 -04:00
Kurtis Lew 7e844bc269 fix(behaviors): Remove `behavior_hold_tap_data`
Related to discussion during development of tap-dance behavior:
https://github.com/zmkfirmware/zmk/pull/1139#discussion_r810564682

This PR suggests to remove the `struct behavior_hold_tap_data` because is not used to store data for each hold tap.
2022-04-06 09:27:39 -04:00
Peter Johanson 3eb3548a00 refactor(tests): Use GH Actions matrix for tests.
* To parallelize our tests, generate a dynamic matrix
  of tests to run.
2022-04-04 23:36:51 -04:00
Peter Johanson af4753cae1 fix(behaviors): Missed refactor for PM callback. 2022-04-03 04:37:42 +00:00
Peter Johanson f4fb5c6fba fix(build): Add local vendor prefix file.
Properly document `zmk` local vendor prefix.
2022-04-03 00:10:29 -04:00
Peter Johanson 953f5212a8 refactor(tests): Move to native_posix_64 target.
* Allows removing multilib from docker images
* Run properly in aarch64 host docker
  containers for testing on Rasberry Pi.
* Small sticky-keys fix to initialize w/ correct
  constant for max uin32_t value.
2022-04-03 00:10:29 -04:00
Peter Johanson 97e62f2da5 feat(boards): Add Seeed(uino) XIAO interconnect
* Document the Seeed(uino) XIAO interconnect
* Add metadata files for two upstream boards, XIAO and XIAO BLE.
* Add conf and overlay files to properly configure the boards
  for ZMK use.
2022-04-03 00:10:29 -04:00
Peter Johanson 9368f6200c fix(display): Add zephyr,display chosen nodes. 2022-04-03 00:10:29 -04:00
Peter Johanson 5015a88545 fix(split): Proper role checking in BT callbacks.
* Properly react to events only for connections
  with the correct role.
2022-04-03 00:10:29 -04:00
Peter Johanson 917c6a0660 fix(power): Fix ext power generic driver.
* Adjust for device API changes to fetch
  ext power driver instance from settings
  callback.
* New PM action callback API.
2022-04-03 00:10:29 -04:00