Commit graph

1121 commits

Author SHA1 Message Date
Kuba Birecki
8bcee4f3b9 Tidy up devicetree bindings 2023-06-21 12:41:26 +02:00
Kuba Birecki
66180b5480 Update ZMK_ANIMATION_FPS range 2023-06-21 11:46:00 +02:00
Kuba Birecki
e929ec7175 Remove accidental CMakeLists.txt entry 2023-06-21 11:44:38 +02:00
Kuba Birecki
5b5afac923 Merge remote-tracking branch 'upstream/main' into feature/animations 2023-06-21 11:35:27 +02: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
Kuba Birecki
cb22fa885a Fix formatting 2023-06-13 16:00:21 +02:00
Kuba Birecki
abeb5c8c49 Update the animation API for Zephyr 3.* 2023-06-13 15:21:13 +02:00
Kuba Birecki
e2cdd017e3 Put animation control settings code behind config flags 2023-06-11 10:23:03 +02:00
Kuba Birecki
331573471d Disable animations when entering sleep state 2023-06-11 10:23:03 +02:00
Kuba Birecki
6a551851aa Persist settings for control animations 2023-06-11 10:23:03 +02:00
Kuba Birecki
fc8b91a2ba Implement control animation and basic animation behaviors 2023-06-11 10:23:02 +02:00
Kuba Birecki
69de72c6f4 Ensure the buffer is always reset before calculating each frame 2023-06-11 10:20:46 +02:00
Kuba Birecki
eb1fc0a21b Prevent ripple animation from requesting frames unless active 2023-06-11 10:20:46 +02:00
Kuba Birecki
0e09446cf8 Optimize the lookup table for pixel distances 2023-06-11 10:20:46 +02:00
Kuba Birecki
19790f2e1a Implement animation activation/deactivation API and frame scheduling 2023-06-11 10:20:46 +02:00
Kuba Birecki
6697fc4582 Fix intensity calculation for the ripple animation 2023-06-11 10:20:46 +02:00
Kuba Birecki
2fa6063c9b Refactor animation API to allow for processing entire frames at once 2023-06-11 10:20:46 +02:00
Kuba Birecki
ae518fabc9 Add 'compose' animation 2023-06-11 10:20:46 +02:00
Kuba Birecki
38a70ea747 Update devicetree bindings for solid animation 2023-06-11 10:20:46 +02:00
Kuba Birecki
d7d1c0abcf Update ripple animation to use the given color 2023-06-11 10:20:46 +02:00
Kuba Birecki
30e0903d8e Implement a 'ripple' per-key effect animation 2023-06-11 10:20:46 +02:00
Kuba Birecki
df35aa5547 Implement helpers for key pixel position and pixel distance 2023-06-11 10:20:46 +02:00
Kuba Birecki
cc70d75238 Refactor the animation api to allow for pre- and post-frame hooks 2023-06-11 10:20:46 +02:00
Kuba Birecki
2dfec75038 Fix formatting 2023-06-11 10:20:46 +02:00
Kuba Birecki
8e5574ab49 Move animation_solid from drivers to zmk/src/animation 2023-06-11 10:20:44 +02:00
Kuba Birecki
105afca3d9 Clean up the main animation module 2023-06-11 10:17:50 +02:00
Kuba Birecki
f50037dcbb Fix HSL->RGB conversion 2023-06-11 10:17:50 +02:00
Kuba Birecki
2326f36e50 Update animation devicetree bindings 2023-06-11 10:17:50 +02:00
Kuba Birecki
5da7a6e29f Remove pixel device definition 2023-06-11 10:17:50 +02:00
Kuba Birecki
be02e78356 Implement a simple solid-color-cycle animation 2023-06-11 10:17:48 +02:00
Kuba Birecki
352fe39468 Add an implementation for the core animations system 2023-06-11 10:16:37 +02:00
Kuba Birecki
4da01b63b0 Implement the initial version of the animation interface 2023-06-11 10:14:43 +02:00
Kuba Birecki
c3beca12bd Add animation devicetree bindings 2023-06-11 10:14:43 +02: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