Xudong Zheng
3f48062225
feat(core): Add Kconfig option to exclude debug log messages
2023-04-09 23:29:22 -07:00
Peter Johanson
c3d06b22c8
fix(core): Bump system work queue stack 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
e84b4299b5
refactor: Remove deprecated Kconfig override.
2023-04-05 22:55:38 -07: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
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
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
Caleb Goates
0d5bb100ba
feat(behavior): Add key toggle
2022-06-03 00:04:41 -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
Cem Aksoylar
25f89ee6ab
feat(battery): Add Kconfig setting for battery level report interval
2022-05-17 12:03:57 -04:00
Nick Winans
d33b35513b
feat(usb): Set default HID interval to 1ms (1000Hz)
2022-04-29 21:51:38 -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
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
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
df2e993300
feat(ble): Disable BT_GATT_AUTO_SEC_REQ
.
...
* Better compatibility w/ some operating systems, we already
set security level on connects.
2022-04-03 00:10:29 -04:00
Peter Johanson
c5ab8a9444
refactor: Move the DT based CDC ACM setup.
2022-04-03 00:10:29 -04:00
Peter Johanson
79ab60dfe5
refactor: Move to new PM API/Kconfig settings.
2022-04-03 00:10:29 -04:00
Peter Johanson
6287819fcc
refactor: Move to USB_DEVICE_STACK symbol.
...
See: https://docs.zephyrproject.org/latest/releases/release-notes-2.7.html#changes-in-this-release
2022-04-03 00:10:29 -04:00
Peter Johanson
3a6a249ad0
feat(behaviors): Add macro support.
...
* Fine grainted press/release/tap actions.
* TIming between actions can be controlled.
* Processed async, to avoid blocking.
2022-03-23 23:42:54 -04:00
Alessandro Bortolin
2c0fe3934d
feat(backlight): add tests
2022-02-05 23:40:18 -05:00
Alessandro Bortolin
ce843825e8
refactor(backlight): code cleanup
2022-02-05 23:40:18 -05:00
Alessandro Bortolin
85b2d30bd5
feat(lighting): add backlight behavior
2022-02-05 23:40:18 -05:00
Peter Johanson
ce3471d4fe
fix(split): Add queue for running remote behaviors
2022-01-31 23:03:34 -05:00
Peter Johanson
0b0b49d626
fix(split): Properly rediscover peripherals.
...
* Handle disconnects of peripherals, and properly clean up
and resume discovering for when the peripheral re-appears.
2021-11-04 22:31:56 -04:00
git@jrhrsmit.nl
f221ff1dc7
add ranges and descriptions from #669
2021-10-11 09:46:17 -07:00
Simon Malinge
c5b8dd85fd
feat(underglow): Add support for configurable min/max brightness
...
Co-authored-by: jrhrsmit <jasper.770@gmail.com>
2021-10-10 17:43:57 -07:00
Peter Johanson
bc179b1030
feat(hid): Kconfig for basic/full consumer usages.
...
* Add ZMK_HID_CONSUMER_REPORT_USAGES choice to allow choosing
between full consumer usage range, with poor OS compat,
or basic consumer usage range, with broader compat.
2021-10-04 23:01:39 -04:00
Pete Johanson
91ba034896
feat(hid): Configurable NKRO HID report support.
...
* Add Kconfig settings for NKRO or HKRO (boot compatible), HID
report types for keyboard page.
* Updated report storage and set/unset for each config.
2021-10-04 23:01:39 -04:00
Nick Winans
2b9deb824b
feat(power): Update device power management Kconfig
2021-08-02 21:48:42 -04:00
Pete Johanson
6c23bb5c11
fix(tests): Revert default to previous formatter.
...
* new cbprintf formatter causes issues for our use of string formatting.
See: https://github.com/zephyrproject-rtos/zephyr/pull/29876
PR: https://github.com/zmkfirmware/zmk/pull/736
2021-07-17 17:04:25 -04:00
innovaker
ad981c3bbd
refactor(core): update power API to Zephyr v2.5.0
...
See: https://github.com/zephyrproject-rtos/zephyr/pull/29410
PR: https://github.com/zmkfirmware/zmk/pull/736
2021-07-17 17:04:25 -04:00
Nick Winans
5eace0bbc4
fix(core): Enable sensor by default
2021-02-08 10:50:44 -05:00
Pete Johanson
2f352788c1
refactor(kscan): Remove explicit default n from kscan configs.
...
* Actually allow defaulting yes in other places.
2021-02-02 14:04:10 -05:00
Ally Parker
a4aaa73f06
feat: Add WPM calculator and display widget
2021-01-23 18:38:31 -05:00
Pete Johanson
65e476df3e
fix(splits): Send pos notify from dedicated thread
...
* Avoid deadlocks by using a deadicated workqueue for sending
position state notifications from peripherals.
2021-01-15 13:50:36 -05:00
Pete Johanson
a5c39dfa76
fix(ble): Perform GATT notifies from dedicated queue.
...
* Zephyr BT stack frees TX buffers from system workqueue,
and to avoid blocking waiting to allocate, perform notify
from a dedicated queue.
2021-01-15 13:50:36 -05:00
Pete Johanson
4aa78a6f8d
fix(split): Use queue/work for peripheral events.
...
* Avoid corruption by using work to process
peripheral key position events on the main
work thread, like local kscan events are.
* Fixes #221
2021-01-15 13:50:36 -05:00
Okke Formsma
feb0d5b90c
feat(combos): initial implementation
...
closes #45
2021-01-13 21:07:41 -05:00
Nick Winans
002a89765f
refactor(Kconfig): Set USB default based on hardware capabilities
...
Removes the USB default under every split right half in favor of a default based on hardware capabilities in the main app Kconfig.
2021-01-08 16:51:50 -05:00
Nick Winans
97ed0cc733
feat(core): Add USB logging Kconfig option
2021-01-08 13:03:39 -05:00
Nick Winans
43f6d798be
feat(ext-power): Cut power when PM is sleeping
2020-12-29 08:30:57 -05:00
Pete Johanson
4db5b169bf
refactor(splits): Ability to override split role.
...
* Move central/peripheral setting to Kconfig.defconfig
files to allow left/right .conf files to override
central/peripheral role for splits.
2020-12-28 10:16:24 -05:00
Pete Johanson
f7c16dfe69
refactor(power): Extract activity/idle detection.
...
* Refactor power to extract more general purpose
activity detection/events.
* Use activity state to implement PM callback.
2020-12-14 15:31:10 -05:00
innovaker
0d4476d148
refactor(app): remove _gatt_
infixes from BT DIS and BAS services
...
See: https://docs.zephyrproject.org/latest/releases/release-notes-2.4.html
PR: #467
2020-12-14 12:41:25 -05:00
Nick
177b28f01d
refactor(settings): Add Kconfig option for settings debounce
2020-12-02 19:54:48 -05:00
Pete Johanson
b3f3362b50
feat(display): Initial widget/status screen work.
...
* Battery and output status widgets
* Built in status screen combining them.
* Ability to define a custom status screen factory
function.
2020-12-02 16:04:56 -05:00
Nick
a1d3230eef
feat(underglow): RGB toggle controls ext_power
...
fix(ug): Don't return if finding ext power fails
fix(ug): Move ext_power to a static variable
Add #if defs
2020-11-22 21:23:29 -05:00
innovaker
67a6646cd7
chore: add copyright to core Kconfig
2020-11-20 22:25:28 -05:00
Carey
3f4d47a06e
focus on refactor
2020-10-31 07:24:38 -05:00
Carey
c5172e4337
move initialization priorities to advanced menu
2020-10-28 07:47:22 -05:00
Carey
6aae667826
merge changes from master
2020-10-20 21:47:49 -05:00
Kellen Carey
8b9b247592
allow ble to be enabled if split transport is ble
2020-10-11 20:11:19 -07:00
Kellen Carey
8e298ec701
happy with layout, need to improve interactions
2020-10-11 18:05:27 -07:00
Kellen Carey
7a2314ef59
refactor kconfig to look nicer
2020-10-11 17:36:32 -07:00
Mega Mind
4d81b10ba7
Added driver to control the external power output
...
This PR adds support to control the external power output from controllers like nice!nano, nRFMicro etc
I have implemented based on my understanding of Pete suggestion on this feature.
Testing done:
Tested by enabling and disabling the ext_power from application and verified
Verified the application does not crash with boards that does not have ext_power support
Note:
I did not test this in nice!nano since I don't have the boards. Will get help from others once the behavior PR is up
Next Steps:
Create a behavior PR to control enable/disable ext_power
2020-10-10 08:11:46 +08:00
Pete Johanson
a7496ab064
feat(power): Initial deep sleep work.
...
* New ZMK_SLEEP Kconfig symbol to enable the functionality.
* Switch to PORT events that allows wake from deep sleep.
* Initial basic power management policy, with idle ms,
and ignoring deep sleep if we detect a USB connection.
2020-10-06 17:24:36 -04:00
Pete Johanson
bbf5a5905a
refactor(usb): Report USB status w/o HID output.
2020-10-04 21:56:09 -04:00
Pete Johanson
182a6dca1f
fix(bluetooth): Proper max paired/conns.
...
* Proper max values for both split central, and
non-split keyboards.
2020-09-29 12:21:06 -04:00
Pete Johanson
fb91be5164
fix(bluetooth): Configs for non-splits.
2020-09-13 22:33:31 -04:00
Pete Johanson
39f980a06d
feat(bluetooth): Add back profiles, split fixes.
...
* Add back in profiles, not using Zephyr
BT identity infrastructure.
* Restore additional `&bt` commands for profile
operations.
* Fix for split pairing and subscriptions, since
Zephyr persists subscriptions across connects.
* Remove keymap from peripheral builds, reduces
firmware size, and avoids unneeded attempts
to send HID data.
2020-09-13 22:33:29 -04:00
Pete Johanson
13842a8a1e
fix(bluetooth): Kconfig to clear bonds on start
2020-09-13 22:33:05 -04:00
Pete Johanson
fc0812bd2e
fix(bluetooth): Remove identity, minimal bt
.
...
* Simplify the `bt` behavior to one current command
`BT_CLEAR_BONDS_CMD`.
* Simplify BLE code for split and non-split keyboards.
* Remove keymap processing from split peripheral side.
2020-09-13 22:33:05 -04:00
Pete Johanson
a4d06f69ac
fix(bluetooth): Fix max pair settings for non-split.
2020-09-13 22:33:05 -04:00
Pete Johanson
cf970efb98
feat(bluetooth): Proper bond management, identity support for non-splits
...
* Add `bt` behavior that can be used to perform certain actions,
such as next/prev identity, reset identity, etc.
NOTE: Multiple identities is only supported for non-split shields,
due to missing Zephyr identity functionality for dual
central/peripheral devices.
* Proper bond reset tied to action, that honors peripheral bonds,
so folks can reset and pair to other hosts, without breaking
bonds between splt halves.
2020-09-13 22:33:05 -04:00
Pete Johanson
9730876393
fix(shields): Load Kconfig for out-of-tree shields
2020-08-20 11:38:36 -04:00
Pete Johanson
fb3dadba87
fix(bluetooth): disable BT_SETTINGS for now.
2020-08-20 07:39:14 -04:00
Pete Johanson
a65b746a86
fix(bluetooth): Add unpair combo if DT node exists
2020-08-19 23:34:34 -04:00
Pete Johanson
4402e4fbc7
feeature(bt): Add "unpair combo" on startup.
...
* Especially for splits, we need the ability to
unpair all paired devices as sledgehammer
if we need to "reset things", and doing so via
keymaps isn't suitable.
* Allows shields to define a collection of key
positions that if all held 2 seconds after
startup, will unpair all existing pairs for the
device.
2020-08-18 13:17:10 -04:00
Nick
087574f607
Create proper fix for split default conn bug
2020-08-16 15:36:43 -05:00
Pete Johanson
8b61beb2bb
Bump max paired connections to 2 for central.
2020-08-14 16:44:13 -04:00
Nick
f26bd495ea
Fix interval update, add PHY update
2020-08-02 14:51:42 -05:00
Pete Johanson
f548f2a87c
Initial stab at mod-tap improvements.
...
* Not working: Roll over + mod-tap with multiple
mod-tap bindings!
2020-07-31 00:07:16 -04:00
Pete Johanson
4e5a819f3a
Merge pull request #64 from Nicell/feature/rgb_underglow
...
Initial RGB Underglow implementation
2020-07-26 21:43:43 -04:00
Pete Johanson
d80063ff51
Initial display support.
2020-07-25 23:10:40 -04:00
Pete Johanson
91d8237cab
Fixes for building with a different .conf file.
2020-07-25 00:50:42 -04:00
Nick
bb09707bd2
Add base files and configuration for RGB underglow
2020-07-24 01:06:56 -05:00
Pete Johanson
1951883def
Bump max BT connections for testing.
2020-07-17 23:04:47 -04:00
Pete Johanson
339a15881a
Tweaks for turning off USB for split peripherals.
2020-07-17 22:43:40 -04:00
Pete Johanson
6701b7babc
Working BT settings.
2020-07-17 22:43:40 -04:00
Pete Johanson
d4afd989f3
More split implementation.
...
* Propogate key position state changes on central.
* Various BLE tweaks.
2020-07-17 22:43:40 -04:00
Pete Johanson
d74efb331a
Kconfig fixes for split roles.
2020-07-17 22:43:40 -04:00
Pete Johanson
be537d0656
Lots of work on split peripheral/central logic.
2020-07-17 22:43:40 -04:00
Pete Johanson
3796f76c56
Initial exploration of split BLE service.
...
* Service for split peripheral to report
position state to split central.
* Updated advertising info.
* Behavior for split BT until we have a proper
event system.
2020-07-17 22:43:40 -04:00
Pete Johanson
4ab6132f70
Bump the default USB EP write retries.
2020-07-14 10:12:25 -04:00
Pete Johanson
7c5fb7adb5
Use SYS_INIT for BLE and USB init.
2020-07-07 10:20:23 -04:00
Pete Johanson
9a991bf019
Initial event manager work, and two first events.
...
* Add initial event manager implementation,
roughly mimicking Nordic's API.
* Add `position_state_changed` and
`keycode_state_changed` events.
* Hook up HID and keymap to new events
instead of using behaviour global event
crazy.
2020-06-30 00:31:09 -04:00
Pete Johanson
38f1dbd984
Move Zephyr app into subdirectory.
2020-06-08 21:07:16 -04:00