Commit graph

364 commits

Author SHA1 Message Date
Chris Andreae
fa2eee585f
Merge PR#1243 (Split battery reporting over BLE GATT) 2022-11-25 20:12:28 +09: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
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
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
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
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
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
c4a47c08de fix(display): Initialize display on queue as well. 2022-07-26 14:12:38 -04:00
Gabor Hornyak
f09976844f chore: format file 2022-07-21 20:35:43 +00:00
Gabor Hornyak
3d5700ec02 fix: display battery level from battery state change event 2022-07-20 19:51:26 +00:00
Gabor Hornyak
9473308e36 Merge remote-tracking branch 'upstream/main' into split_battery_service 2022-07-13 22:51:07 +02:00
Gabor Hornyak
0884db66e0 refactor: introduce special battery level value 2022-07-03 13:55:49 +00: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
Gabor Hornyak
e00d000d63 Merge remote-tracking branch 'upstream/main' into split_battery_service 2022-06-20 19:44:11 +00: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
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-layers.
* 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
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
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
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
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
Gabor Hornyak
efe06502c5 Merge remote-tracking branch 'upstream/main' into split_battery_service 2022-05-24 14:24:56 +00: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
Nick Winans
54747a52f9 fix(sleep): use pm_power_state_force for proper device power management 2022-05-17 00:30:47 -04:00
Gabor Hornyak
c60fbe7e21 chore: clang-format 2022-04-27 20:51:21 +00:00
Katona
bbdffd9e38
Merge branch 'zmkfirmware:main' into split_battery_service 2022-04-27 22:10:46 +02:00
Andrew Rae
b5efc7a7eb
feat(behaviors): Add global-quick-tap 2022-04-27 13:33:22 +01:00
Nick Winans
2c7e5b9232 refactor(ble): Use auto phy/conn for split 2022-04-24 18:29:18 -04: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
Gabor Hornyak
377444ef30 Merge remote-tracking branch 'upstream/main' into split_battery_service 2022-04-13 17:58:39 +02:00
Gabor Hornyak
e24ab4e0e3 fix: peripheral battery level notification 2022-04-06 21:23:38 +00:00
Gabor Hornyak
23bef8a85d chore: clang-format 2022-04-06 19:49:49 +00: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
Gabor Hornyak
a8d7e2c460 refactor: cleanup 2022-04-05 22:08:17 +00:00
Gabor Hornyak
f3923c037b refactor: cleanup 2022-04-05 21:50:48 +00:00
Gabor Hornyak
2a74eecb6f feat: add characteristic user description 2022-04-05 21:50:23 +00:00
Gabor Hornyak
c16fc9e881 fix: attribute value handle 2022-04-05 21:49:10 +00:00
Gabor Hornyak
ba09d2fd01 feat: read initial peripheral battery level 2022-04-03 21:54:20 +00:00
Gabor Hornyak
fbb02e24a9 chore: cleanup 2022-04-03 21:54:19 +00:00