Commit graph

604 commits

Author SHA1 Message Date
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
krikun98
f60439802d Jian shield 2020-11-17 16:23:39 +00:00
krikun98
3d030ec2ab Jorne shield 2020-11-17 16:23:39 +00:00
Okke Formsma
6dcd06bd46 add license headers to behavior dtsi files 2020-11-16 17:26:42 -05:00
Okke Formsma
e48a6b659c fix momentary layer bug when top layer is not &trans
Key release events released keys on the wrong layer if the 'top layer'
was not &trans above the &mo key.

base    <&mo 1>
layer 1 <&kp B>

This was caused by overwriting
`zmk_keymap_active_behavior_layer[position]` after the &mo key was
handled.
2020-11-16 17:19:27 -05:00
Pete Johanson
11a85f651a refactor(shield): Formatting tweaks for QAZ. 2020-11-16 11:22:29 -05:00
Xudong Zheng
51ca4fbc18 Fix connection to incorrect peripheral 2020-11-11 13:16:31 -05:00
Nick
91e3a7d75a boards: Cleanup and standardize features 2020-11-10 23:14:38 -05:00
Nick
ae51000d60 fix(underglow): Switch from legacy SPI to SPIM 2020-11-10 23:06:29 -05:00
innovaker
c21897856b refactor(app): Replace HID_EXT_USAGE with HID_USAGE
Simplifies terminology and improves readability.
2020-11-10 21:00:20 +00:00
Pete Johanson
0031f9bd4d
Merge pull request #357 from petejohanson/ble/remove-unpair-combo
fix(ble): Remove unpair combo code.
2020-11-10 15:04:28 -05:00
Pete Johanson
7d16186b7a fix(ble): Remove unpair combo code.
* Favor the settings reset images for this.
2020-11-10 14:53:03 -05:00
Nick Winans
413a917d14
Merge branch 'main' into underglow/add-config_ 2020-11-10 13:31:11 -06:00
innovaker
348a44a8a3 refactor(app): Remove obsolete include's of hid_usage_pages.h
This should've been done in eff1b8223b.
2020-11-10 14:22:53 -05:00
Pete Johanson
972158181d fix(shields): Replace Corne w/ Microdox. 2020-11-10 11:20:17 -05:00
Nick
0be904c34f fix(underglow): Add CONFIG_ to underglow Kconfigs 2020-11-08 10:33:56 -06:00
innovaker
194854ff7b refactor(hid): Replace 0x01 with HID_USAGE_CONSUMER_CONSUMER_CONTROL
This should've changed alongside: 711658206f
2020-11-06 09:53:23 -05:00
Pete Johanson
a4dc92a2b9 refactor: Replace use of cp with kp for shields. 2020-11-05 14:55:40 -05:00
Pete Johanson
eff1b8223b refactor(keys): Unify usage page.
* Remove need for separate `&cp` behavior, but
  keep it for now for backward compat.
* Refactor sensor inc/dec as well.
2020-11-05 14:55:40 -05:00
innovaker
c6abdb1890 fix(keys): Replace GUI with Application / Context Menu
This was a misrepresentation in the standardized keys that originated in earlier code.
2020-11-04 14:31:59 -05:00
innovaker
aebe90908d test: Replace superseded key names in test keymaps
Replace deprecated key names (LSFT, LCTL, RCTL, M_NEXT).

Replace abbreviated names with fully qualified names (LSFT, LCTL, LALT, LGUI, RGUI).

Follow-up to #21.
2020-11-03 23:50:54 -05:00
innovaker
d748d8a749 refactor: Replace superseded key names
Replace deprecated key names (LCTL, NUM_0, NUM_1).

Replace abbreviated names with fully qualified names (LCTL, RGUI, NUM_0, NUM_1).

Follow-up to #21.
2020-11-03 23:50:54 -05:00
innovaker
a65295c2a7 feat(keys): Standardize keys
Deprecate superseded names with comments.

Add standardized key names.

Closes #21.  Closes #158.  Closes #161.  Closes #246.
2020-11-03 23:50:54 -05:00
innovaker
7e795bf4f9 feat(hid): Enhance consumer report to support higher codes
Switch from single byte to double byte usages.

Allow the entire 0x0C page for future compatibility.

Closes #234.  Co-requisite of #21.
2020-11-03 23:50:54 -05:00
innovaker
711658206f refactor(hid): Replace Zephyr usages with ZMK usages in HID reports
Replace `USAGE_GEN_DESKTOP` with `HID_USAGE_GD`.

Replace `USAGE_GEN_DESKTOP_KEYBOARD` with `HID_USAGE_GD_KEYBOARD`.

Replace `USAGE_GEN_DESKTOP_KEYPAD` with `HID_USAGE_KEY`.

Replace `0x0C` with `HID_USAGE_CONSUMER`.

Closes #217.
2020-11-03 23:50:54 -05:00
innovaker
e925319e4c refactor(hid): Replace deprecated HID usage page references
Deprecate `USAGE_KEYPAD` and replace with `HID_USAGE_KEY`.

Deprecate `USAGE_CONSUMER` and replace with `HID_USAGE_CONSUMER`.

Closes #217.
2020-11-03 23:50:54 -05:00
innovaker
3c0a0ff308 feat(hid): Add preprocessor definitions for HID usages v1.21
Developed from specification:
https://usb.org/sites/default/files/hut1_21.pdf

Closes #217.  Prerequisite of #21.
2020-11-03 23:50:54 -05:00
Pete Johanson
dd7ab9914a
Merge pull request #270 from careyk007/refactor_kconfig
Refactor Kconfig
2020-11-03 23:05:06 -05:00
Nick
1af4221908 feat(underglow): Debounce state settings save 2020-11-03 22:08:20 -05:00
Pete Johanson
a29e041b1f fix: Formatting fix. 2020-11-03 00:30:42 -05:00
Pete Johanson
32e7159373 refactor(hid): Mod defines in dedicated header. 2020-11-03 00:21:20 -05:00
Okke Formsma
55b5936d00 clang-format 2020-11-03 00:19:37 -05:00
Okke Formsma
4f258efbf1 initial implementation for modifiers
https://github.com/zmkfirmware/zmk/issues/86
2020-11-03 00:19:37 -05:00
Nick
82a5736d08 fix(boards): Remap flash to account for bootloader 2020-11-02 23:07:23 -05:00
Nick Winans
89b8bfc95d fix(battery): Only log if finding battery device failed
Co-authored-by: Pete Johanson <peter@peterjohanson.com>
2020-11-01 23:00:54 -05:00
Nick
953de71646 feat(battery): Add BAS GATT reporting 2020-11-01 23:00:54 -05:00
Nick
74fa113d88 fix(boards): Rename BVD labels 2020-11-01 23:00:54 -05:00
Nick
8779563896 fix(bvd): Add SENSOR_CHAN_ALL support 2020-11-01 23:00:54 -05:00
Carey
3f4d47a06e focus on refactor 2020-10-31 07:24:38 -05:00
Pete Johanson
2d31e1d05f
Merge pull request #269 from joelspadin/endpoint-selection
feat: only send HID reports to one endpoint
2020-10-31 00:09:47 -04:00
Joel Spadin
821f054071 feat(endpoints): remove redundant connection check 2020-10-28 18:15:05 -05:00
Joel Spadin
440d09fd45 feat(endpoints): simplify behavior constants 2020-10-28 18:15:05 -05:00
Joel Spadin
2fe1fbb526 feat(endpoints): rename behavior to outputs
"Outputs" is probably easier for most people to understand than "endpoints".
2020-10-28 18:15:05 -05:00
Joel Spadin
600bba25f0 feat(endpoints): add preferred endpoint setting
Added a new setting to remember the user's preferred endpoint. When both USB and
BLE are connected, the preferred endpoint will be used.

Added a new behavior to control this setting. It supports commands:

    &end END_USB - Prefer USB output
    &end END_BLE - Prefer BLE output
    &end END_TOG - Toggle between USB and BLE
2020-10-28 18:15:05 -05:00
Joel Spadin
b538e60532 feat(endpoints): update on BLE profile change
Added zmk_ble_active_profile_is_connected() to allow code outside ble.c to check
the status of the active profile, and changed the ble_active_profile_changed
event to also notify when the active profile connects or disconnects.

Changed endpoint selection to to also update when the active profile changes,
connects, or disconnects.
2020-10-28 18:15:05 -05:00
Joel Spadin
8f666cecc9 feat(endpoints): clear HID report on endpoint change
This prevents stuck keys when switching endpoints by clearing
everything in the HID report and sending one last report before
switching to the new endpoint.
2020-10-28 18:15:05 -05:00
Joel Spadin
1d369ffa73 feat: only send HID reports to one endpoint
Added some utility functions and an event for tracking the state of the
USB connection.

Updated endpoints.c to select a single endpoint to send HID reports to
based on the status of the USB and BLE connections. Partially fixes #206.

Future commits will add a user setting to control which endpoint is used if
both USB and BLE are ready.
2020-10-28 18:15:05 -05:00
Carey
c5172e4337 move initialization priorities to advanced menu 2020-10-28 07:47:22 -05:00
Carey
99ad9cbdef Merge https://github.com/zmkfirmware/zmk into refactor_kconfig 2020-10-28 07:40:54 -05:00
Pete Johanson
73c83e81ce
Merge pull request #296 from neegool/add_boardsource3x4
Add Boardsource 3x4 shield
2020-10-27 23:24:10 -04:00
innovaker
c402e953f6 feat(hid): Make keypad report boot friendly
Add missing byte to make keypad report boot friendly.
2020-10-27 22:55:40 +00:00
Nigel Rodriguez
75b7f2a7c5 Remove bt unpair combo + fix keymap 2020-10-28 06:55:00 +08:00
innovaker
8ce7d8de01 refactor(hid): Refactor consumer report to a configurable size 2020-10-27 22:36:26 +00:00
innovaker
f4596fc784 refactor(hid): Refactor keypad report to use a configurable integer array
Replace NKRO bit array with configurable integer (DV) array.
2020-10-27 22:36:26 +00:00
Jay Greco
8a98212a02 Update demux kscan driver as per PR feedback
- Remove kscan_gpio_irq_callback
- Remove kscan_gpio_irq_callback_handler
- Remove irq_callbacks
+ Add TODO noting timer and sleep state interactions
2020-10-27 12:44:59 -07:00
Jay Greco
1a6fe846e4 Update NIBBLE keyboard name as per PR feedback
- Revert accidental VS code settings change
2020-10-27 12:44:59 -07:00
Jay Greco
d90592aac5 Add NIBBLE shield
+ Added required files for nullbits NIBBLE
2020-10-27 12:44:59 -07:00
Jay Greco
1522c91d73 Add new kscan_gpio_demux driver
+ zmk,kscan_gpio_demux is now a compatible kscan option
+ kscan_gpio_demux is based heavily off of the implementation of
kscan_gpio_matrix, modified to address cols using an n-to-1
demultiplexer chip instead of discrete IO
+ Added zmk,kscan_gpio_demux.yaml file
* modified CMakeLists to include new source files
2020-10-27 18:58:58 +00:00
Pete Johanson
c707ab45ef
Merge pull request #297 from Nicell/boards/reviung41
Add Reviung41 Shield Definitions
2020-10-27 00:27:17 -04:00
Pete Johanson
07cf103747
Merge pull request #303 from innovaker/kscan-mock-32
feat(kscan_mock): Increase max number of events
2020-10-27 00:03:23 -04:00
Nick
a008731103 Implement Kconfig and enhance error checks 2020-10-26 16:01:57 -05:00
innovaker
9c4b766bc6 feat(kscan_mock): Increase max number of events
This is necessary for testing a large number of events (e.g. every key code) within a single build/pass.

The u8_t limitation became apparent during end-to-end testing of #21.
2020-10-25 20:36:03 +00:00
Nick
7296b96797 Add Reviung41 Shield Definitions 2020-10-24 21:08:00 -05:00
Nick
63007fb6c1 fix: clang-format 2020-10-24 18:54:56 -05:00
Nick
adb07926b1 Remove newlib dep 2020-10-24 18:52:34 -05:00
Nigel Rodriguez
9d624740d9 Fix wrong comment tokens 2020-10-24 12:40:49 +08:00
Nigel Rodriguez
6a9a6e6d8e Add Boardsource 3x4 shield 2020-10-24 12:21:15 +08:00
Nick
a67a8cd3b8 Check if fetch channel is supported 2020-10-23 22:37:44 -05:00
Nick
6047415b1c Fix build for boards without voltage divider 2020-10-23 01:19:47 -05:00
Nick
8efcd80f3a Add missing ADC and fix formatting 2020-10-23 00:57:32 -05:00