Peter Johanson
ca28e83ba7
chore: Minor input behavior clean-up.
2024-04-06 21:31:46 -07:00
Peter Johanson
36c78275c5
refactor: Proper per-device input listeners.
...
* Buffer data from input devices and only surface to HID once synd'd.
2024-04-06 21:31:45 -07:00
Peter Johanson
3ff60513ec
fix(mouse): Fixes for logging.
...
* Corrected logging for two-axis input timestamps.
2024-04-06 21:31:23 -07:00
Peter Johanson
664a61e405
refactor(mouse): Remove mouse work queue, Kconfig
...
* Remove now-unused mouse work queue and related mouse main file.
* Move ticks config into a DTS property on the two axis input behavior.
2024-04-06 21:31:23 -07:00
Peter Johanson
368f98c330
feat(mouse): Add input configs for data mods.
...
* Add ability to swap X/Y, invert X and Y values, and apply a
scalar multiplier/divisor.
2024-04-06 21:31:23 -07:00
Peter Johanson
0ba8a29b69
refactor: Use input system for pointer events.
2024-04-06 21:31:22 -07:00
Cem Aksoylar
96ad160445
fix(mouse): Bump up default mouse tick duration to prevent crashes
2024-04-06 21:30:56 -07:00
Cem Aksoylar
9a68b376b4
feat(mouse): Split move/scroll & x/y acceleration
2024-04-06 21:30:56 -07:00
Cem Aksoylar
2eba88d2c4
feat(mouse): Add mouse move and scroll support [WIP]
...
Co-authored-by: Alexander Krikun <krikun98@gmail.com>
Co-authored-by: Robert U <urob@users.noreply.github.com>
Co-authored-by: Shawn Meier <ftc@users.noreply.github.com>
2024-04-06 21:30:53 -07:00
Tobias Arndt
fe509c466f
fix(kscan): Enable charlieplex interrupts for single compatible device
...
Fixes #2201
2024-03-30 19:13:39 -07:00
Peter Johanson
fff1cbecdc
fix: Add wakeup-source; to kscan nodes for ZMK_SLEEP.
...
* ZMK_SLEEP also enables PM_DEVICE, so be sure to mark kscan
nodes as wakeup sources so they can wake keyboards from sleep.
2024-03-29 12:31:43 -07:00
Peter Johanson
29c0cdb3ab
fix(shields): Fix for direct use with ZMK Uno split.
2024-03-27 20:59:26 -07:00
Peter Johanson
7e7110d85f
fix(pm): Fixes for dedicated on/off on peripherals.
...
* Add new flag to differentiate soft off on peripherals that
is invoked by split GATT svc and dedicated additional ones
tied to GPIO pin.
2024-03-27 20:59:26 -07:00
Peter Johanson
41d81801ed
fix(pm): Use Zephyr created device slots.
...
* Avoid overwriting random memory by using
iterable section created by Zephyr PM.
2024-03-27 20:59:26 -07:00
Peter Johanson
d0e0ecb4e3
refactor: Use kscan directly to wake when we can.
...
* When adding a dedicated GPIO pin for soft off/on, use the direct
kscan as the waker, instead of adding an additional node.
2024-03-27 20:59:26 -07:00
Peter Johanson
2df6dcd973
feat(behaviors): More logging in soft off.
2024-03-27 20:59:26 -07:00
Peter Johanson
bb94a7aafe
fix: Fixes for building soft off without deep sleep.
2024-03-27 20:59:26 -07:00
Peter Johanson
8d54e287f0
fix: Adjustments for Zephyr 3.5.
2024-03-27 20:59:26 -07:00
Peter Johanson
bd21f41412
refactor: Fixes for review feedback.
2024-03-27 20:59:26 -07:00
Peter Johanson
5d960a758f
fix: Cleanups of sideband and direct kscan from review.
...
* Add dedicated init priority for the sideband kscan.
* Refactor sideband code for clarity.
* Tweaks to direct kscan for clarity.
* Make sideband behavior row optional for brevity.
* Allow overriding ZMK Uno sideband behaviors.
2024-03-27 20:59:26 -07:00
Peter Johanson
4198fac90f
fix(pm): Fix deep sleep with sideband behaviors.
...
* Properly implement the PM hook needed for sideband behavior
kscan device to have wakeup source enabled on it.
2024-03-27 20:59:26 -07:00
Peter Johanson
09111f1cf3
fix: Sleep after clearing endpoints to wait for send.
...
* Add a small sleep to allow other threads to send data for the
endpoint clearing before sleep.
2024-03-27 20:59:26 -07:00
Peter Johanson
c3144055e8
refactor(boards): Move ZMK Uno 1P3T slider to sideband
...
* Invoke output selection from the slider on the ZMK Uno via
sideband behavior setup, to simplify keymap.
2024-03-27 20:59:26 -07:00
Peter Johanson
a0ad1d4c94
refactor: Add kscan sideband behavior driver
...
* Instead of gpio key behavior trigger, add new kscan driver that
decorates/wraps a given kscan driver and will invoke basic system
behavior assigned to a given row + column, without the need for keymap
mapping in the matrix transform, bypassing keymaps entirely.
2024-03-27 20:59:26 -07:00
Peter Johanson
e78b25a445
feat(kscan): Direct kscan driver can use gpio-keys.
...
* Allow specifying direct kscan driver pins using gpio-key list
as an alternative.
2024-03-27 20:59:26 -07:00
Pete Johanson
933fdcd364
refactor(pm): Remove scanned behavior trigger.
...
* Remove the painful scanned behavior trigger for now, future enhancement
will restore this high level functionality using kscan directly.
2024-03-27 20:59:26 -07:00
Pete Johanson
5ebe924e94
chore: Various soft-off review fixes
...
* Code style to avoid goto.
* Enable pm.c compilation via dedicated Kconfig flag.
* Comment wakeup trigger PM behavior.
2024-03-27 20:59:26 -07:00
Peter Johanson
fceb0351a5
refactor: Fixes for soft-off based on review.
...
* Better naming for gpio-key behavior triggers.
* Tweaks to scanned behavior trigger to avoid bad semaphore use,
and reduce chance of issues with slowly scanned matrixes.
* Various code cleanups of style issues.
2024-03-27 20:59:26 -07:00
Peter Johanson
e78249ee06
fix(bt): Fix BT tests after soft off work.
...
* Move to explicit enable of `ZMK_PM_SOFT_OFF` to turn
on the feature and use the behaviors, which matches
how other features work, and helps with split and
testing schemes.
2024-03-27 20:59:26 -07:00
Peter Johanson
0d4d4fb2b5
feat(pm): Clear HID data before soft off.
...
* Make sure the connected host has no held HID usages before we sleep.
2024-03-27 20:59:26 -07:00
Peter Johanson
860e53b33a
refactor: Promote new endpoints API
...
* Add ability for external callers to clear the current endpoint.
2024-03-27 20:59:26 -07:00
Peter Johanson
d3fffb9e89
feat(shields): Add soft-off to the nrf52840dk ZMK Uno
...
* Use Button 1 for soft off on the nrf52840 when using the ZMK Uno
shield.
2024-03-27 20:59:26 -07:00
Peter Johanson
b19df0cbf0
feat(behaviors): Add soft off behavior.
...
* New soft-off behavior that can be used to force the device
into soft-off state with only certain configured wakeup
devices.
2024-03-27 20:59:26 -07:00
Peter Johanson
738c3c0e3b
feat(kscan): Add PM support to GPIO kscan drivers.
...
* Add PM device hook to the kscan direct & matrix drivers.
2024-03-27 20:59:26 -07:00
Peter Johanson
adb3a13dc5
feat: Add soft on/off support.
...
Initial work on a soft on/off support for ZMK. Triggering soft off
puts the device into deep sleep with only a specific GPIO pin
configured to wake the device, avoiding waking from other key
presses in the matrix like the normal deep sleep.
Co-authored-by: Cem Aksoylar <caksoylar@users.noreply.github.com>
2024-03-27 20:59:26 -07:00
Thomas Huber
58ccc5970d
fix(build): Modify function return type
...
Change return type of `sticky_key_timeout` function to `void` given it
does not return any value to remove compiler warnings.
2024-03-27 14:52:42 -07:00
Peter Johanson
44358798d3
feat: Add ability to fetch battery voltage.
...
* To be able to use the Zephyr `voltage-divider` driver,
add a mode for fetching raw voltage from the sensor
and do state of charge calculation outside of the driver.
2024-03-24 13:28:55 -07:00
Peter Johanson
3a3eed2960
fix: Add settings reset on start init priority.
...
* Add a dedicated settings reset on start init priority and default
it to lower priority (high number) than default FLASH_INIT_PRIORITY
to be sure flash is initialized before we open the area.
2024-03-20 11:18:43 -07:00
Theo Lemay
ce743f2b35
chore: fix whitespace
2024-03-18 10:30:14 -07:00
Theo Lemay
af7e4198ae
chore: remove label in test
2024-03-18 10:30:14 -07:00
Theo Lemay
94d9d837e3
refactor: extract duplicate logic
2024-03-18 10:30:14 -07:00
Theo Lemay
341534aa15
feat(behaviors): lazy sticky keys
2024-03-18 10:30:14 -07:00
Pablo
8929355ac0
fix(keymap): Replace some keypad keycodes
...
* Change KP_MULTIPLY to ASTRK in defaults keymap
2024-03-18 13:19:27 -04:00
honorless
6f2e19ff88
refactor: replace quick_tap_ms with quick-tap-ms
...
* The underscore form of this property is deprecated.
2024-03-18 10:15:50 -07:00
honorless
3a38979684
refactor: replace tapping_term_ms with tapping-term-ms
...
* The underscore form of this property is deprecated.
2024-03-18 10:15:50 -07:00
Hans Kruse
c6e0551fb0
fix(hid): Fix typo in HID usage alias
2024-03-18 13:06:09 -04:00
ReFil
388ad71385
feat(build): Explicit missing keymap node error
...
* Explicit error if zmk,keymap not set
* Document keymap error
---------
Co-authored-by: Cem Aksoylar <caksoylar@users.noreply.github.com>
2024-03-18 12:54:47 -04:00
Joel Spadin
a77288f527
fix: Update settings reset for Zephyr 3.5
2024-03-18 09:48:19 -07:00
Joel Spadin
1dfcfc7d3f
feat(shields): Make settings_reset shield reset all settings
...
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.
2024-03-18 09:48:19 -07:00
Joel Spadin
610a806c84
feat: Add function to erase all settings
...
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.
2024-03-18 09:48:19 -07:00