Joel Spadin
a6de43e665
feat: Add nrf VDDH battery driver
...
Added a driver which uses the nRF52's ADC channel on the VDDH pin to
read the battery voltage when using high voltage mode.
2021-07-24 23:39:13 -05:00
Peter Johanson
65ff995033
fix(display): Avoid fault w/ LVGL API usage.
...
* Increment the tick from within the ISR itself.
* Don't call task handler until in the display callback.
PR: https://github.com/zmkfirmware/zmk/pull/736
2021-07-17 17:04:25 -04:00
Peter Johanson
b2d64fe598
refactor(boards): Switch proton_c to newer pinmux approach.
...
See: https://github.com/zephyrproject-rtos/zephyr/issues/28999
PR: https://github.com/zmkfirmware/zmk/pull/736
2021-07-17 17:04:25 -04:00
Pete Johanson
d7475f792f
fix(boards): Enable pinmux for bdn9_rev2 by default.
...
See: https://github.com/zephyrproject-rtos/zephyr/issues/28999
PR: https://github.com/zmkfirmware/zmk/pull/736
2021-07-17 17:04:25 -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
Pete Johanson
2a69f31eb0
refactor(core): Move away from deprecated DT API.
...
* Move to `DEVICE_DT_INST_DEFINE` everywhere.
See: https://docs.zephyrproject.org/2.5.0/releases/release-notes-2.5.html#deprecated-in-this-release
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
innovaker
71a85a0c8e
feat: bump zephyr
to v2.5.0+zmk-fixes
...
PR: https://github.com/zmkfirmware/zmk/pull/736
2021-07-17 17:04:25 -04:00
Nick Winans
edb3ff1bb1
feat(boards): Add nice!nano v2
2021-07-15 18:52:28 -04:00
Okke Formsma
efa497c69b
fix(behaviors): Fix timing of delayed hold-tap trigger
...
A hold-tap timer event would be triggered too soon if the hold-tap
was delayed for longer than its tapping-term. This may cause
accidental hold behavior when the correct behavior would be tap.
By queuing the timer event instead of executing it immediately,
other delayed events get a chance to be processed properly.
2021-06-13 10:44:18 -04:00
David Barr
0f28130493
fix(shields): Cradio v2 keymap/shield improvements
...
* fix cradio dtsi add new keymap and readme
Co-authored-by: Dom H <dom@hxy.io>
2021-06-10 16:50:13 -04:00
Alexander Krikun
e8b42221cf
fix(shields): added right alt and layer quick tap to Jian
2021-06-08 21:09:22 -04:00
Jay Greco
f3bb90f9e1
fix(kscan): Fix nibble demux scan errors on encoder row
...
+ Add a 1us sleep to let the column selection settle in order to avoid spurious keypresses when row capacitance is high (like on the encoder row)
2021-06-08 20:59:35 -04:00
Dom H
4c1a71551b
feat(keys): Add LSHIFT and RSHIFT aliases
...
Using LSHIFT or RSHIFT instead of LSHFT or RSHFT was a common error.
2021-06-08 20:57:40 -04:00
Jonathan Rascher
4e69a32103
fix(combos): Check each combo key, not just last
...
The current combo completion check only makes sure the last key in the
combo is set. This works when the combo is typed correctly initially, or
when reraising events in a combo of length two. However, it fails for
longer combos since the last event in pressed_keys might be set, but the
first (or subsequent) event in pressed_keys can be NULL thanks to
release_pressed_keys.
Also added a regression test.
2021-06-08 20:35:58 -04:00
Jonathan Rascher
eecc12c980
test(combo): Add unit test for complete long combo
2021-06-08 20:35:58 -04:00
Jonathan Rascher
bba1599824
refactor(combos): Rename existing long combo test
...
This test doesn't test a long combo that completes, but rather one
that's incomplete (so the combo doesn't trigger). Renaming to avoid
confusion when we add more long combo tests.
2021-06-08 20:35:58 -04:00
Joel Spadin
0a9efbf85d
fix(ble): Ignore out of range profiles
...
Don't allow selecting a BLE profile that is out of range to avoid
reading/writing past the end of the profiles array.
2021-06-08 20:33:43 -04:00
Nick Winans
efcc49f23d
fix(boards): Set nice!60 nRF subfamily for openocd ( #816 )
2021-06-04 00:33:44 -04:00
Anthony Amanse
719b6aa0ae
fix(boards): Add delay on initializing external power for BlueMicro840
...
This commits adds a delay of 20ms on initializing the external
power control driver. Previously, OLED's i2c driver is failing to
initialize the display. This commit fixes that issue.
Signed-off-by: Anthony Amanse <ghieamanse@gmail.com>
2021-05-31 00:44:30 -04:00
Anthony Amanse
cdbfb35662
fix(boards): Fix Blue LED pin definition in BlueMicro840
...
This commit fixes the pin definition for BlueMicro840. Based on the
schematics, the blue led is at pin 1.10.
Signed-off-by: Anthony Amanse <ghieamanse@gmail.com>
2021-05-31 00:20:46 -04:00
Nick Winans
3f838f0aaf
feat(boards): Add nice!60 board
2021-05-30 11:47:20 -04:00
Okke Formsma
a32cd668d6
fix(tests): Use debug builds and high resolution timer
...
By setting CONFIG_DEBUG, the native_posix builds will not be optimized
which makes debugging them much nicer.
By setting CONFIG_SYS_CLOCK_TICKS_PER_SEC to 1000, debug prints have a
higher resolution and not always show up as multiples of 10ms.
2021-05-27 08:20:45 -04:00
Okke Formsma
de4979bf58
fix(behaviors): Fix sticky keys quick-release for normal keypresses
...
Quick release for sticky keys failed for non-layer keys. The sticky key
was released just before the key that was supposed to be modified was
handled.
The issue was caused by an error in the sticky key logic, which released
the sticky key before handling the key up event.
Fixes #696 .
2021-05-09 07:52:41 -04:00
Peter Johanson
977746dbde
feat(tests): Override test parallelism w/ J=8
environment.
2021-05-05 00:56:05 -04:00
Lucas Messenger
d8119cd663
fix(boards): Proper BlueMicro840_V1 &pro_micro_a map for A10 ( #733 )
2021-03-24 13:21:40 -04:00
Pete Johanson
28d454655b
fix(boards): Move board endif to proper location.
...
* Nibble and tidbit conditional was closed early, enabling
some settings incorrectly for other unrelated builds.
2021-03-18 21:26:41 -04:00
Pete Johanson
27c89e69c1
fix(kscan): Proper direct wire warning message.
2021-03-15 00:39:29 -04:00
Okke Formsma
0df7110058
fix(combos): Fix stuck keys when pressing long combos.
...
To properly retrigger hold-taps when a combo is not activated, some
position down events are reraised instead of released. The corresponding
position up events were never reraised, causing a potential stuck key.
2021-03-11 16:23:45 -05:00
Okke Formsma
8ebe0cd0c8
refactor(core): make the event manager a bit easier to read
2021-03-10 20:12:23 -05:00
Okke Formsma
c01243d1c6
fix(logging): remove unnecessary newline
2021-03-10 18:08:22 -05:00
JP Bonn
c643f1cd96
added battery.h, last_state_of_charge to uint8_t
2021-03-10 18:07:18 -05:00
JP Bonn
b8a8ecd59d
fixed order of setting state_of_charge
2021-03-10 18:07:18 -05:00
JP Bonn
df4ec51f96
only send zmk_battery_state_changed on change
2021-03-10 18:07:18 -05:00
Pete Johanson
0f9fff7554
Fix the label for the GPIO kscan driver.
2021-02-27 14:32:42 -05:00
Okke Formsma
32008825fe
fix(behaviors): Add missing hold-tap trigger
...
A hold-tap trigger was missing in the scenario where a hold-tap behavior
was queued for a while and it's timer should've run out.
2021-02-27 09:20:20 -05:00
Okke Formsma
0c1940bb79
feature(hold-tap): no-hold-flash for retro taps
...
This is an improvement on retro-tap, solving the 'flashing hold' issue
users people experience.
When the tapping-term expires, the hold key is normally pressed. When
retro-tap is enabled, this is undesirable; only an interrupted hold-tap
should trigger the hold behavior.
This change disables the hold behavior for the 'STATUS_HOLD_TIMER'
state when retro-tap is enabled, and makes sure the
'STATUS_HOLD_INTERRUPT' state will be triggered when appropriate.
2021-02-24 07:24:27 -05:00
Okke Formsma
89ed816c67
feature(hold-tap): Retro tapping
2021-02-24 07:24:27 -05:00
Okke Formsma
62ae157c0b
refactor(hold-tap): improve switch statements
2021-02-24 07:24:27 -05:00
Okke Formsma
9c4c266b17
refactor(hold-tap): pretty print decision_moment
2021-02-24 07:24:27 -05:00
Okke Formsma
0ebf440de8
refactor(hold-tap): create press_binding and release_binding functions
2021-02-24 07:24:27 -05:00
Okke Formsma
abc60fc7cb
refactor(hold-tap): split hold state into interrupt and timer
2021-02-24 07:24:27 -05:00
Okke Formsma
200c6cabea
refactor(hold-tap): use enum for hold-tap status
2021-02-24 07:24:27 -05:00
Okke Formsma
6b7026cdd1
refactor(hold-tap): simplify flavor enum
2021-02-24 07:24:27 -05:00
Nick Winans
57661362ea
refactor(ext-power): Add init-delay-ms option
...
Co-authored-by: Pete Johanson <peter@peterjohanson.com>
2021-02-16 14:51:32 -05:00
Nick Winans
b43fb8502e
fix(ext-power): Initialize as soon as settings are available
2021-02-16 14:51:32 -05:00
Pete Johanson
ff7891c097
fix(display): Check for display in idle handler.
...
* Closes #679
2021-02-16 14:21:46 -05:00
Okke Formsma
af9d6e9b05
style(hold-tap)!: Write hold-tap params with dashes
...
tapping_term_ms -> tapping-term-ms
quick_tap_ms -> quick-tap-ms
The old style works, although it's deprecated.
2021-02-10 07:55:12 -05:00
Pete Johanson
2af794eed3
feat(underglow): Convert HSB changes to absolute.
...
* Public type for HSB led color.
* New API for calculating "next" HSB based on current
state.
* Update behavior to convert the increment/decrement
commands to absolute command as well.
2021-02-09 01:27:50 -05:00
Pete Johanson
e6f168d6df
refactor(behaviors): Convert state dependent params.
...
* Allow each behavior to map a relative binding, e.g. "toggle",
to an absolute one, e.g. "on", before being invoked.
2021-02-09 01:27:50 -05:00
Pete Johanson
bb2c478af9
refactor(rgb): Expose explicit on/off command/API.
2021-02-09 01:27:50 -05:00
Nick Winans
fc5d7bcb78
fix(boards): Remove explicit enable of sensor
2021-02-08 10:50:44 -05:00
Nick Winans
5eace0bbc4
fix(core): Enable sensor by default
2021-02-08 10:50:44 -05:00
KemoNine
0499e7e8ac
Refactor nibble / update to match build docs ( #620 )
...
* feat(nibble): add underglow support for nice_nano builds
* feat(nibble): add encoder to top, left most column to match standard assembly documentation
* refactor(nibble): add layer labels
* feat(nibble): add support for optional display ; off by default
* feat(nibble): add README
* fix(nibble): adjust oled rotation for easier reading
* fix(nibble): add additional note about enabling oled
* refactor(nibble): convert keymap to use tabs instead of spaces
* refactor(nibble): enable oled in dts/overlay by default
* refactor(nibble): cleanup alignment and formatting in nibble keymap
* refactor(nibble): re-align top most row of keymap to be sensible
* refactor(nibble): cleanup kscan map alignment
* refactor(nibble): indent first row of map/transform to properly align with physical columns
* fix(nibble): remove dangling code block from readme
Co-authored-by: KemoNine <mcrosson@kemonine.info>
2021-02-04 10:28:02 -06:00
jrhrsmit
e40ca1eb7c
fix(power): Add support for capacitors on ADC for BVD
...
Add a little delay so any capacitors connected to the ADC for the BVD can charge up when using power_gpios
Co-authored-by: Jasper Smit <jrhrsmit@gmail.com>
2021-02-04 07:56:27 -05:00
Pete Johanson
b84d29c384
refactor(core): Use /omit-if-no-ref/ for behaviors.
...
* Use lesser-known DT features to skip behaviors not referenced
in the user keymap
* Update the behaviors to skip code if no nodes found.
* Remove some empty config/data structs where unused in
behaviors.
2021-02-04 00:52:25 -05:00
mantas
b4d63fb52c
feat(shields) Add encoder support to CRBN
...
Pin A maps to A2 (F5), pin B to A3 (F4).
Added keymappings to encoder on default and lower layers.
2021-02-03 23:49:59 -05:00
mantas
c94943da1c
style(crbn): Unify indentation from spaces to tabs
2021-02-03 23:49:59 -05:00
KemoNine
cd503ed17b
Feat combo layers ( #661 )
...
feat(combos): add layer filtering
Co-authored-by: KemoNine <mcrosson@kemonine.info>
2021-02-03 23:33:09 -05:00
Okke Formsma
9a7908b632
behaviors(hold-tap): Implement quick_tap_ms (TAPPING_FORCE_HOLD)
...
Tap-and-hold a hold-tap to hold the tap behavior so it can repeat.
After a tap, if the same key is pressed within `quick_tap_ms`, the
tap behavior is always picked.
This is useful for things like `&ht LSHFT BACKSPACE` where holding
the backspace is required.
Implements #288 .
2021-02-02 15:28:16 -05:00
Pete Johanson
6c7ab0ce53
refactor(kscan): Fix polling of GPIO matrices.
...
* Add easier macros for conditional polling/interrupt code.
* Properly continue polling on intervals, without extra
enable/disable code for pins that is superfluous when not trying to
deal with interupts firing.
* Fix to allow multiple GPIO drivers when doing splits w/ IO expanders
2021-02-02 14:04:10 -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
Nick Winans
33cd2caced
fix(boards): Shorten keyboard names that are too long
2021-02-02 00:59:17 -05:00
Nick Winans
82173f354e
fix(core): Assert BLE device name is correct length
2021-02-02 00:59:17 -05:00
Okke Formsma
4e20bf5de1
refactor(behaviors): simplify hold-taps by not using _TRANSFORM_ENTRY
2021-02-02 00:43:26 -05:00
Okke Formsma
84d19fe79b
refactor(behaviors): factor out multiple uses of _TRANSFORM_ENTRY
2021-02-02 00:43:26 -05:00
Jeff Rizzo
4f040fecdf
Add a missing log_strdup()
2021-01-30 00:31:07 -05:00
Okke Formsma
c925cf02dd
feature(sticky_keys): add quick-release
...
when quick-release is enabled, the sticky key is released immediately after another key is pressed
2021-01-28 17:10:04 -05:00
Pete Johanson
7c24ab069c
fix(behaviors): Updated grsec snapshots for new log format.
2021-01-25 16:11:01 -05:00
Okke Formsma
7b7701ae90
feature(modifiers): add explicit modifiers
...
this makes LS(LEFT_CONTROL) work as if shift and control were both
pressed explicitly. Previously, the left shift would have been released
as soon as another key was pressed. The implicit behavior is useful in
case of LS(NUMBER_1) when rolling over to other keys.
Also see #361 .
2021-01-24 23:30:41 -05:00
Okke Formsma
0c30b49063
refactor(modifiers): define is_mods function
2021-01-24 23:30:41 -05:00
Okke Formsma
df4a5c8613
refactor(hid_listener): pass event struct instead of parameters
2021-01-24 23:30:41 -05:00
Ally Parker
a4aaa73f06
feat: Add WPM calculator and display widget
2021-01-23 18:38:31 -05:00
Jeff Rizzo
c0cab57c2d
run-test.sh: use the POSIX '-L 1' for xargs
...
This allows tests to be run on platforms where '-l'
isn't implemented, like MacOS.
2021-01-23 18:32:18 -05:00
Okke Formsma
5eeb310b2f
feat(grave-escape): implement grave-escape
...
closes #85
2021-01-22 19:27:18 -05:00
Jay Greco
58ad5d4e86
Fix offset in NIBBLE transformation and keymap
...
The NIBBLE transformation was missing RC(0,0), which was causing some strange behavior in the kscan driver.
2021-01-22 16:03:14 -05:00
Pete Johanson
3368a81057
refactor(core): Combine is_
and cast_
event functions.
...
* Use a single `as_foo` generated function to conditionally
return a certain event type from a generic `zmk_event_t*`
pointer.
2021-01-20 07:06:11 -05:00
Pete Johanson
3fe2acc2d1
refactor(core): Extra event payloads to own types, refactor API.
...
* Make it easier to use *just* event payloads by defining the data,
and then having event manager macros generate "wrapper structs"
* Improve is_*/cast_* APIs to hide details of full event struct.
* Create `zmk_event_t` typedef to pass to event handlers.
* Bring event names inline w/ consistent `zmk_` prefix.
2021-01-20 07:06:11 -05:00
Pete Johanson
003db892ad
refactor(core): Extra position state change data struct.
...
* Separate header and data struct for the event.
* Remove duplicate struct in split code.
2021-01-20 07:06:11 -05:00
Pete Johanson
95acbd8859
fix(shields): Unflip left Microdox OLED.
2021-01-19 15:57:26 -05:00
innovaker
5978990e6d
chore(core): replace Pete Johanson
with The ZMK Contributors
...
Does not include boards and shields.
2021-01-16 11:30:37 -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
c11759bc79
fix(hid): Clear all matching usages, not just first.
...
* If various events get dropped, we can end up with duplicate
codes in our report, so tweak to ensure we look for all matches
and clear them when we have a keycode released.
2021-01-15 13:50:36 -05:00
Pete Johanson
a0c32bb47e
fix(bluetooth): improve LE param update logging
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
Pete Johanson
969e5568af
fix(boards): Define but don't enable uart0.
...
* Set pro-micro TX/RX pins, but don't enable the UART
by default.
2021-01-15 01:51:44 -05:00
innovaker
1d18900a99
refactor(core): define usage page as uint16_t
...
Aligns with the HID specification.
Usage page values were sometimes declared as uint8_t and sometimes uint16_t. This commit aligns all instances with the HID specification for consistency.
PR: #521
2021-01-15 01:48:39 -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
KemoNine
6345bd5468
Remove setting the animation/effect when setting hsv ; some of the effects like glowing will use the hsv color specified
2021-01-08 16:08:13 -05:00
KemoNine
99f932a47d
(feat) Allow setting underglow color by key press
2021-01-08 16:08:13 -05:00
Nick Winans
97ed0cc733
feat(core): Add USB logging Kconfig option
2021-01-08 13:03:39 -05:00
KemoNine
5880a284c1
feat(tg4x): Reconcile with official keymap and tidy-up
2021-01-08 10:14:43 +00:00
KemoNine
28bec8541b
style(tg4x): Convert Kconfig spaces to tabs
2021-01-08 10:14:43 +00:00
KemoNine
7fd8561b45
fix(tg4x): Add tg4x.conf to mirror other shield setups
2021-01-08 10:14:43 +00:00
innovaker
7fc28328d0
refactor(tg4x): Cleanup tg4x overlay
...
Tidies pin definitions and map.
2021-01-08 10:14:43 +00:00
innovaker
de6ce05391
chore(tg4x): fix copyright header
2021-01-08 10:14:43 +00:00
KemoNine
185ff462d6
docs(tg4x): Add readme for tg4x
2021-01-08 10:14:43 +00:00
KemoNine
cd8567071b
fix(tg4x): Fix tg4x keyboard name in Kconfig
2021-01-08 10:14:43 +00:00
KemoNine
3e4f2a3dc3
feat(tg4x): Add underglow support for tg4x + nice_nano
2021-01-08 10:14:43 +00:00
innovaker
561e535a58
refactor(shields): standardize README.md filenames
...
Renames instances of `readme.md` to `README.md` so that it's easily noticed.
PR: #561
2021-01-07 00:34:04 -05:00
innovaker
f17584ca0e
chore: standardize # style headers
...
Changes made with regex plus some manual tweaks.
Find:
/(?:(?<!#!\/bin\/sh\n)(?:^#\n))*^#.*?[Cc]opyright.*?(\d{4}) *([0-9A-z,_\- ]+).*?\n(?:^#\n)*^#.*?SPDX-License-Identifier:? *(.+) *?\n(?:^#\n)*/gm
Replace:
# Copyright (c) $1 $2
# SPDX-License-Identifier: $3
PR: #564
2021-01-06 17:00:44 -05:00
KingCoinless
5c11962d98
feat(shields): add helix shield
...
PR: #429
2021-01-05 18:56:47 +00:00
Nick Winans
e5b1f1e1be
fix(shield): BFO9000 uses USB on right
2021-01-04 14:08:00 -05:00
Pete Johanson
992cee1bac
feat(display): Show layer label in widget.
2021-01-04 13:02:38 -05:00
Pete Johanson
a55b1397c9
feat(keymap): API for retrieving label for a layer
2021-01-04 13:02:38 -05:00
pbz
dcd665999a
feat(shields): add bfo9000 shield
...
PR: #472
2021-01-02 18:52:50 +00:00
Okke Formsma
319ce30270
chore(behavior): use ZMK_BEHAVIOR_OPAQUE in to-layer behavior
2021-01-02 08:08:51 -05:00
Okke Formsma
fa07ba9d32
refactor(behaviors): use ZMK_BEHAVIOR_OPAQUE and ZMK_BEHAVIOR_TRANSPARENT
...
Use these instead of the magic return values 0 and 1 for
behavior_driver_api return values.
2021-01-01 23:07:54 -05:00
Okke Formsma
caa285852a
refactor(events): return 'ZMK_EV_EVENT_BUBBLE' instead of magic number 0
2021-01-01 23:07:54 -05:00
innovaker
5a72662898
chore: standardize C style headers
...
Changes made with regex plus some manual tweaks.
Find:
/^\/\*.*\n(?:^\*.*\n)*^.*\*.*?[Cc]opyright.*?(\d{4}) *([0-9A-z,_\- ]+).*?\n(?:^.*\*.*\n)*^.*\*.*?SPDX-License-Identifier:? *(.+) *?\n(?:^.*\*.*\n)*.*\*\//gm
Replace:
/*
* Copyright (c) $1 $2
*
* SPDX-License-Identifier: $3
*/
PR: #565
2021-01-01 23:06:41 -05:00
innovaker
61893e453b
refactor(app): format with prettier ( #563 )
...
prettier --write .
PR: #563
2021-01-01 22:55:52 -05:00
KemoNine
a3ac0cb5be
feat(shields): add ws2812 underglow support to lily58 (nice_nano)
2021-01-01 21:29:22 +00:00
Mango The Fourth
5752b4fbda
feat(shields): add eek shield
...
PR: #529
2021-01-01 14:33:19 +00:00
Pete Johanson
39490552f2
feat(boards): Add BDN9 Rev2 board.
...
* Onboard stm32f072.
* 3 possible encoder positions.
* Underglow/per-key not yet support.
2020-12-31 14:46:15 -05:00
Pete Johanson
5072590af5
fix(sensors): Use status filter on sensors node.
2020-12-31 14:46:15 -05:00
Pete Johanson
d698847769
fix(power): Fix for 2.4 API changes.
2020-12-30 09:29:57 -05:00
Pete Johanson
1c822754c0
fix(west): Restore atmel west module.
2020-12-29 23:30:30 -05:00
KemoNine
d207c3c30f
(feature) Add &to keycode/behavior ( #489 )
...
feat(behaviors): Add `&to` behavior to switch to a layer.
2020-12-29 11:57:49 -05:00
Nick Winans
43f6d798be
feat(ext-power): Cut power when PM is sleeping
2020-12-29 08:30:57 -05:00
KemoNine
87dbd4ca28
Add uppermost, current layer status widget to oled ( #493 )
...
* Add uppermost, current layer status widget to oled
* Run clang format
* Fixup display widget source includes in CMakeLists
* Update layer widget to only be enabled on primary half of a split keyboard and shuffle some of the options specific to the widget to be enabled via the widget
* Update to latest lvgl/zmk/zephyr ; remove version text from oled per PR
* Fixup file names
* Remove last remenants of the version display text from the oled
* Fixup clang-format
Co-authored-by: KemoNine <mcrosson@kemonine.info>
2020-12-28 20:17:32 -05:00
innovaker
0e71dbc860
refactor(app): replace zmk_keymap_layers_state with zmk_keymap_layers_state_t
...
Aligns with typedef _t convention.
PR: #531
2020-12-28 10:20:12 -05:00
innovaker
87e7c04b00
refactor(app): replace zmk_mod_flags with zmk_mod_flags_t
...
Aligns with typedef _t convention.
PR: #531
2020-12-28 10:20:12 -05:00
innovaker
05b0d185a8
refactor(app): replace zmk_mod with zmk_mod_t
...
Aligns with typedef _t convention.
PR: #531
2020-12-28 10:20:12 -05:00
innovaker
87179698b4
refactor(app): replace zmk_key with zmk_key_t
...
Aligns with typedef _t convention.
PR: #531
2020-12-28 10:20:12 -05:00
Pete Johanson
4fc17e0b3a
fix(shields): Enable USB by default on right side.
...
* Ensures USB power detection for sleep/charging
is properly detected on the right side by deafult.
2020-12-28 10:16:24 -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
innovaker
842aa5a842
refactor: replace filename hyphens with underscores
...
Aligns *.h and *.c to underscore naming convention.
These were kept (with warnings) for backwards compatibility with external boards/shields:
- kscan-mock.h
- matrix-transform.h
They should be removed in the future.
PR: #523
2020-12-28 01:15:35 -05:00
Okke Formsma
6927abee6e
chore(tests): remove useless &cp test
2020-12-28 00:39:53 -05:00
innovaker
2233f457b2
chore(display): add header to CMakeLists.txt
...
PR: #533
2020-12-21 23:42:55 -05:00
innovaker
f8e43932ba
refactor(app): remove zmk_action
...
zmk_action isn't referenced anywhere.
PR: #530
2020-12-21 23:34:40 -05:00
innovaker
aa8efa7078
chore(display): add header to Kconfig
...
PR: #534
2020-12-21 23:30:25 -05:00
innovaker
1f5680f0df
refactor(app): remove handlers.h
...
handlers.h isn't referenced elsewhere.
PR: #526
2020-12-21 23:26:52 -05:00
innovaker
0d52915756
chore(display): align status_screen copyright
...
PR: #535
2020-12-21 23:15:53 -05:00
innovaker
89532eadeb
fix(sticky keys): add 0xFF mask to usage_page
...
Aligns unpacking of usage_page with its equivalent line in keycode-state-changed.h
PR: #520
2020-12-17 16:52:15 -05:00
innovaker
e2aef89d99
refactor(endpoints): rename usage_report parameter to usage_page
...
Aligns zmk_endpoints_send_report function declaration with its definition.
PR: #522
2020-12-17 16:40:59 -05:00
KemoNine
565a72bf95
feat(shields): add tidbit and tidbit_19key shields
2020-12-17 10:57:06 +00:00
Okke Formsma
b115f16f4c
refactor(sticky keys): use DT_HAS_COMPAT_STATUS_OKAY(DT_DRV_COMPAT) instead of DT_NODE_EXISTS(DT_DRV_INST(0))
2020-12-15 13:59:03 -05:00
Okke Formsma
1c2796d1c9
refactor(sticky keys): use pointer to avoid repetition in store_sticky_key
2020-12-15 13:59:03 -05:00
Okke Formsma
bc8803ba50
refactor(sticky keys): rename ZMK_BHV_STICKY_KEY_POSITION_NOT_USED to ZMK_BHV_STICKY_KEY_POSITION_FREE
2020-12-15 13:59:03 -05:00
Okke Formsma
26af11b390
refactor(sticky keys): rename timer_is_started to timer_started
2020-12-15 13:59:03 -05:00
Nick
ae63ce5ee7
fix(settings): Add missing err handlers on settings_register
2020-12-14 22:46:49 -05:00
Nick
2204a5dce4
refactor(settings): Debounce BLE/endpoint settings saves
2020-12-14 22:46:49 -05:00
Nick Winans
69d48c5715
refactor(settings): Only load used subtrees
2020-12-14 22:46:49 -05:00
Pete Johanson
b5e17e3b0f
feature(display): Blank display on idle/sleep.
...
* Set display blanking, and stop refresh timer for displays
when the activity state goes to idle/sleep, and resume
when transitioning to active again.
2020-12-14 15:31:10 -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
95a2927098
fix(tests): convert ZMK_CONFIG to an absolute path
...
Zephyr 2.4.0 requires ...
set(DTS_ROOT)
list(APPEND DTS_ROOT)
... to use absolute paths.
And therefore ZMK_CONFIG as well.
See: zephyrproject-rtos/zephyr#28180
PR: #467
2020-12-14 12:41:25 -05:00
Pete Johanson
5ec1eefb2c
refactor(display): Update to new LVGL v7.x API.
...
PR: #467
2020-12-14 12:41:25 -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
innovaker
250cc07749
refactor(app): replace LVGL_VER_RES
with LVGL_HOR_VER_MAX
...
See: https://docs.zephyrproject.org/latest/releases/release-notes-2.4.html
PR: #467
2020-12-14 12:41:25 -05:00
innovaker
edba0d44a3
refactor(app): replace LVGL_HOR_RES
with LVGL_HOR_RES_MAX
...
See: https://docs.zephyrproject.org/latest/releases/release-notes-2.4.html
PR: #467
2020-12-14 12:41:25 -05:00
innovaker
f7d9d52221
refactor(app): replace void
with const struct device *dev
in ISR CBs
...
See: https://docs.zephyrproject.org/latest/releases/release-notes-2.4.html
PR: #467
2020-12-14 12:41:25 -05:00
innovaker
00ca0d2f1c
refactor(app): replace struct device *
with const struct device *
...
Replaced with RegExp: /(?<!const )(struct device \*)/g
See: https://docs.zephyrproject.org/latest/releases/release-notes-2.4.html
PR: #467
2020-12-14 12:41:25 -05:00
innovaker
1411092a7b
refactor(app): replace driver_data
with data
...
See: https://docs.zephyrproject.org/latest/releases/release-notes-2.4.html
PR: #467
2020-12-14 12:41:25 -05:00
innovaker
33c959d031
refactor(app): replace driver_api
with api
...
See: https://docs.zephyrproject.org/latest/releases/release-notes-2.4.html
PR: #467
2020-12-14 12:41:25 -05:00
innovaker
3d7376d2e5
refactor(app): replace config_info
with config
...
See: https://docs.zephyrproject.org/latest/releases/release-notes-2.4.html
PR: #467
2020-12-14 12:41:25 -05:00
innovaker
090b5d4c13
feat(app): upgrade to Zephyr v2.4.0 + ZMK fixes
...
PR: #467
2020-12-14 12:41:25 -05:00
innovaker
bac1f17cf6
refactor(app): replace Zephyr integer types with C99 integer types
...
u8_t → uint8_t
u16_t → uint16_t
u32_t → uint32_t
u64_t → uint64_t
s8_t → int8_t
s16_t → int16_t
s32_t → int32_t
s64_t → int64_t
Prerequisite for #223
See: https://github.com/zephyrproject-rtos/zephyr/releases/tag/zephyr-v2.4.0
PR: #467
2020-12-14 12:41:25 -05:00
Okke Formsma
b4c0967645
fix(west) test command should not swallow errors.
2020-12-10 11:41:42 -05:00
Joel Spadin
77c16b020e
improvement: upgrade default keymaps
...
Ran all the default keymaps through the keymap upgrader and manually adjusted
alignment.
2020-12-10 12:05:21 +00:00
KemoNine
2427a4ab33
feature(keymaps): Keymap layer state event, highest layer API
...
* Fire an event w/ layer number, state, and timestamp
when a layer is activated/deactivated.
* Add `zmk_keymap_highest_layer_active()` query.
Co-authored-by: KemoNine <mcrosson@kemonine.info>
2020-12-09 09:35:57 -05:00
Pete Johanson
e6a27b15c1
fix(kscan): Fix building kscan for tests.
2020-12-08 22:20:12 -05:00
ReFil
b0c525df72
feat(shields): add CRBN shield
...
Co-authored-by: innovaker <66737976+innovaker@users.noreply.github.com>
PR: #483
2020-12-07 16:49:37 +00:00
Pete Johanson
7ea1892bbb
fix(display): All display updates in work thread.
...
* Make sure all LVGL access is from main work thread.
2020-12-06 22:47:21 -05:00
Pete Johanson
0d80220e14
fix(ble): Raise profile events from work thread.
...
* Make sure we don't raise events from BLE
host thread.
2020-12-06 22:47:21 -05:00
Okke Formsma
e00eceb508
fix(sticky keys): fix tapping-sticky-keys bug.
...
Sticky keys should be cleared when they were tapped in rapid succession before the timer runs out.
2020-12-06 00:33:20 -05:00
Okke Formsma
f86e0fff14
fix(sticky keys): always clear sticky key when releasing the behavior
2020-12-06 00:33:20 -05:00
Okke Formsma
2ba16c2f3d
fix(sticky keys): use correct timestamp when clearing sticky key in timer
2020-12-06 00:33:20 -05:00
Okke Formsma
37946ff57b
fix(sticky keys): simplify timer management
2020-12-06 00:33:20 -05:00
innovaker
a5bddcedbe
build(west): migrate to zmkfirmware/zephyr fork
...
Replaces `petejohanson` with `zmkfirmware` for ZMK's fork of Zephyr (branch `zmk-v2.3.0-with-fixes`)
PR: #468
2020-12-04 17:00:38 -05:00
innovaker
82625c6bb5
build(cmake): remove unnecessary SYSCALL_INCLUDE_DIRS for drivers
...
PR: #406
2020-12-04 16:53:52 -05:00
Pete Johanson
ca38894e07
fix(drivers): Remove conditional from directories.
2020-12-04 16:25:32 -05:00
innovaker
8d9ae1fdf3
refactor: Align drivers with Zephyr file system conventions
...
PR: #400
2020-12-03 21:06:01 -05:00
Nick
177b28f01d
refactor(settings): Add Kconfig option for settings debounce
2020-12-02 19:54:48 -05:00
Pete Johanson
8b91918352
refactor(shields): Cradio to use interrupts now.
2020-12-02 16:46:05 -05:00
Pete Johanson
e0fede4aa5
refactor(kscan): Use PORT events for direct driver
...
* Switch interrupt configuration so nRF52 uses
PORT events for lower power use, and wake
from deep sleep.
* Closes #272
2020-12-02 16:46:05 -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
Pete Johanson
d5ea426975
refactor(battery): Fire event on battery event.
2020-12-02 16:04:56 -05:00
innovaker
7b3a55cf50
refactor(ble): silence warning auth_passkey_display
not used
...
Silences the following build warning ...
../src/ble.c:407:13: warning: 'auth_passkey_display' defined but not used [-Wunused-function]
407 | static void auth_passkey_display(struct bt_conn *conn, unsigned int passkey) {
2020-12-01 07:21:45 -05:00
4pplet
924a598920
Updated function calls with missing reference. GPIO missing.
...
Updated function calls with missing reference. GPIO missing.
To my understanding:
DT_INST_GPIO_PIN() should be called instead if DT_INST_PIN()
DT_INST_GPIO_FLAGS() should be called instead if DT_INST_GPIO_FLAGS()
Current implementation does not compile when using control pin.
2020-11-29 21:12:26 -05:00
Okke Formsma
3bf770a364
bugfix(sticky keys): release active sticky keys properly
...
see https://github.com/zmkfirmware/zmk/issues/445
2020-11-29 20:16:51 -05:00
innovaker
307fd5d250
chore(build): format west.yml
...
Realigns with Prettier formatting.
Discrepancy introduced by c067629c83
PR: #440
2020-11-28 12:21:19 -05:00
innovaker
90123caa4c
build(west): add clone-depth = 1 to zephyr and uf2
...
This reduces zephyr's footprint to 33% and dramatically reduces the cloning times (west update).
PR: #441
2020-11-28 12:16:17 -05:00
Nick
093719a3b8
feat: Add settings support for external power
...
fix: clang-format and setting state variable
fix: Fix startup settings configuration
fix(ext_power): Add static to state
fix(ext_power): Set default settings value
Use driver data status instead of global file state
2020-11-28 01:44:35 -05:00
Okke Formsma
76a6d7b4c5
feat(sticky keys): initial implementation
2020-11-28 00:58:24 -05:00
Okke Formsma
bee45f9b3a
feat(events): add timestamp to keycode_state_changed and sensor_event
...
These timestamps are necessary to correctly deal with delayed events due to hold-tap shenanigans.
2020-11-28 00:58:24 -05:00
Okke Formsma
db10931439
fix(tests): fix testrunner for 'all'
2020-11-23 15:57:55 -05:00
Nick
248b360f47
fix(ug): Start tick without settings state available
2020-11-23 12:42:27 -05:00
Nick
076fcc1f70
fix(underglow): Fix error on release of rgb_ug
2020-11-22 21:23:29 -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
3bf01200f7
refactor(scripts): capitalize ZMK in west test script
2020-11-22 10:05:21 -05:00
innovaker
ae924b3594
refactor(hid): replace kp_report
with keyboard_report
...
Aligns with other existing conventions.
2020-11-22 10:04:35 -05:00
Okke Formsma
2f1170c01a
feat(tests): run subdirectory of tests
...
example: `west test tests/hold-tap` will run all hold-tap tests.
2020-11-22 10:03:56 -05:00
innovaker
3ac1a11a37
refactor: change keypad
to keyboard
...
The application usage used by report 1 is `HID_USAGE_GD_KEYBOARD`. Moreover, the `keys` usage page (0x07) that primarily feeds into this report is predominantly keyboard codes. The rest of the system should align with this naming convention.
2020-11-21 15:52:16 -05:00
Okke Formsma
c067629c83
Create west test
command to run zmk testsuite.
2020-11-21 14:47:01 -05:00
innovaker
b6e63683d4
refactor(hid): Replace modifier usage values with their cpp definitions
...
Improves readability of the HID reports.
2020-11-20 22:26:42 -05:00
innovaker
67a6646cd7
chore: add copyright to core Kconfig
2020-11-20 22:25:28 -05:00
innovaker
d50f4afc7e
build: set zmk_config.cmake cmake_minimum_required to VERSION 3.15
...
3.15 is the minimum version required to facilitate list(PREPEND) used within zmk_config.cmake.
https://cmake.org/cmake/help/v3.15/command/list.html
Fixes #402
2020-11-20 22:24:29 -05:00
innovaker
1c8321566a
fix(drivers): rename module.yaml to module.yml
...
module.yaml is not a valid module filename.
See Zephyr `scripts/zephyr_module.py`
2020-11-20 22:23:20 -05:00