Commit Graph

798 Commits

Author SHA1 Message Date
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
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
Nick Winans 70ffcca3b4
Merge branch 'main' into bluetooth/battery-reporting 2020-10-23 00:55:50 -05:00
Nick 162c6b77db clang-format and add missing defconfig values 2020-10-23 00:50:39 -05:00
Nick 3082455aec Refactor driver to use Sensor API 2020-10-23 00:45:59 -05:00
Carey 6aae667826 merge changes from master 2020-10-20 21:47:49 -05:00
Pete Johanson ef37f17796
Merge pull request #109 from Nicell/underglow/state-persistence
Add RGB underglow state Kconfig and settings
2020-10-18 22:29:55 -04:00
Pete Johanson 36d3d01a22 feat(usb): Add proper USB product ID.
* Use openmoko product ID from:
  https://github.com/openmoko/openmoko-usb-oui/pull/15
2020-10-18 13:24:37 -04:00