Commit graph

1103 commits

Author SHA1 Message Date
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
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