Commit graph

825 commits

Author SHA1 Message Date
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
Pete Johanson
3ecd7e42ab
Merge pull request #282 from petejohanson/ble/advertising-power-savings
BLE: Only advertise when needed.
2020-10-18 00:32:48 -04:00
Pete Johanson
9d512eaef0 fix(bluetooth): Add adv data in non-peripherals. 2020-10-16 09:49:28 -04:00
Pete Johanson
b07475b7d4 fix(bluetooth): Stop adv on connected profile. 2020-10-16 00:56:05 -04:00
Pete Johanson
818f0a1f91 fix(bluetooth): Advertise name + appearance.
* Properly put device name and GAP appearance
  in advertising packets, for proper display in
  macOS, Android, etc.
* Closes #124
2020-10-16 00:48:53 -04:00
Pete Johanson
e468677c4e fix(shields): Proper cradio Kconfig setup. 2020-10-15 20:29:00 -04:00
Pete Johanson
ed28f5a6a3
Merge pull request #224 from davidphilipbarr/cradio
Cradio
2020-10-15 17:21:23 -04:00
Pete Johanson
204d1300ba fix(ble): Only advertise when needed.* Once we have a peer connected to for the active profile, don't continue advertising. 2020-10-15 00:51:21 -04:00
Pete Johanson
3186a553a5 fix(shields): Add default qaz.conf file. 2020-10-13 21:00:54 -04:00
Pete Johanson
59e8c58051
fix: Copyright header for cradio.dtsi 2020-10-13 00:11:08 -04:00
Pete Johanson
f35d9f8f69
Merge pull request #258 from megamind4089/dev/ext-power-behavior
New behavior for ext power control
2020-10-13 00:01:32 -04:00
Pete Johanson
eee8eb6e77 fix: Single author file copyright header fix. 2020-10-12 13:04:24 -04:00
Pete Johanson
6d9aa4f5ea fix: Updated copyright headers to single author file. 2020-10-12 13:03:10 -04:00
Mega Mind
2e649b7fd4 Fix compilation errors and minor tweaks 2020-10-13 00:09:57 +08:00
Mega Mind
4adcb396ff Rebased and fixed nasty code 2020-10-12 23:54:56 +08:00
Pete Johanson
a2b4a08ddc
Merge pull request #226 from mubeenkhan94/tg4x-shield-dev
Add TG4X rev 2.1 shield
2020-10-12 11:49:54 -04:00
Mega Mind
5d1c083959 Added toggle and removed a param 2020-10-12 23:42:01 +08:00
Mega Mind
b5e1c8a7ad New behavior for ext power control 2020-10-12 23:42:01 +08:00
Pete Johanson
367dcd4820
Merge pull request #267 from nuxiom/fix-matrix-polling
Fix matrix polling conditional macro
2020-10-12 10:38:34 -04:00
Mubeen Khan
d45e7b3c11
Merge pull request #7 from zmkfirmware/main
Update to stay even with upstream main
2020-10-11 23:17:04 -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
Joel Spadin
7798c974f6 fix: don't leak bt_conn refs
bt_conn_lookup_addr_le() gives us a new reference that must be released
with bt_conn_unref()
2020-10-11 17:04:34 -05:00
Nuxiom
1c0c02e097
Reformatted according to clang-format lint 2020-10-11 17:51:06 +11:00
Nuxiom
78cb6c8b21
Fix kscan_gpio_irq_callback_handler_##n conditional macro 2020-10-11 17:33:07 +11:00
Mubeen Khan
7fc7a35117 Revised keymap to Qwerty 2020-10-10 16:51:17 -05:00
Okke Formsma
d38740cebf
Add timestamps to position and behavior events (#147)
* Add timestamps to position events and behaviors.

- Take original event timestamps into consideration so nested tap-holds have proper timing.
- Add position and timestamp to keycode state changed event so the one-shot behavior can properly identify other keypresses and timings.
- Add timestamp to position events received from peripheral

* reduce number of arguments to behaviors
2020-10-10 17:32:53 -04:00
Mubeen Khan
4fd6c14ae9
Merge pull request #4 from zmkfirmware/main
make even with main
2020-10-10 16:32:16 -05:00
Pete Johanson
e1dcf1514f
Merge pull request #242 from megamind4089/feature/ext-power
[RDY] Driver to control the external power output
2020-10-09 20:40:48 -04: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
Kellen Carey
a695d0d359 oops 2020-10-09 12:18:57 -07:00
Kellen Carey
0b125c028c address pr comments 2020-10-09 11:48:06 -07:00
David Barr
01b0bad7a2
update headers, spruce up keymap, streamline dtsi. 2020-10-09 17:05:09 +01:00
David Barr
2b09174ec1
update header again based on corne 2020-10-08 11:22:34 +01:00
David Barr
ad77df5989
capital C 2020-10-08 11:20:22 +01:00
David Barr
a629aa0b42
Update Kconfig.defconfig 2020-10-08 11:17:53 +01:00
David Barr
eeac54e9a4
Update cradio_left.overlay 2020-10-08 11:16:28 +01:00
David Barr
55c1f51b31
update header 2020-10-08 11:16:08 +01:00
David Barr
a3cdab9e9f
update header 2020-10-08 11:14:46 +01:00
David Barr
24e73f6861
Update cradio.dtsi 2020-10-08 11:12:04 +01:00
David Barr
95b94009a9
remove dupe copyright 2020-10-08 11:11:40 +01:00
David Barr
7d582b6b8e
remove dupe copyright 2020-10-08 11:11:01 +01:00
David Barr
426b25892f
rename gpio to direct polling 2020-10-08 11:09:35 +01:00
Kellen Carey
ca29c40206 clean up keymap 2020-10-07 21:22:08 -07:00
Kellen Carey
f3eaa7e424 working shield, need to improve default keymap 2020-10-07 20:40:04 -07:00
David Barr
d5d8d79a76
Update cradio_right.overlay 2020-10-07 16:23:59 +01:00
Pete Johanson
12b9a37005
Merge pull request #211 from petejohanson/core/keymap-port-event-exploration
Use PORT events for kscan matrix interrupts, add option for deep sleep.
2020-10-06 17:32:35 -04: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
ce59223efe fix(shields): Typo in makerdiary URL. 2020-10-05 23:40:29 -04:00
Mega Mind
b8cb5f939a M60 keymap update and misc changes
* Updated M60 keymap
* Make nrfjproj as default runner
* Remove the polling config
2020-10-05 21:24:39 +08:00
Mega Mind
e2299836bc Update contributors in all keymap files 2020-10-05 21:23:38 +08:00
Mega Mind
9d06c730ba Added Makerdiary M60 keyboard 2020-10-05 21:23:38 +08:00
Mega Mind
c54decd144 Added Makerdiary M.2 module 2020-10-05 21:23:38 +08:00
Pete Johanson
7d222e1553
Merge pull request #237 from ChaosinaCan/direct-gpio-fix
Fix direct GPIO when using interrupts
2020-10-04 23:04:16 -04:00
Pete Johanson
9be566603e feat(kscan): Use PORT events for kscan matrix interrupts
* Lower power usage compared to regular interrupts on nrf52.
2020-10-04 22:03:21 -04:00
Pete Johanson
bbf5a5905a refactor(usb): Report USB status w/o HID output. 2020-10-04 21:56:09 -04:00
Joel Spadin
4121b07f7f fix(kscan): fix direct GPIO when using interrupts
Fixed initializing interrupts for direct GPIO when
CONFIG_ZMK_KSCAN_DIRECT_POLLING is not enabled. IS_ENABLED() is needed to map
the possibly-undefined value to 0 or 1 so COND_CODE_0() and COND_CODE_1() work.
2020-10-04 14:07:20 -05:00
Joel Spadin
fc5915b200 improvement(kscan): use ARRAY_SIZE macro 2020-10-04 14:07:14 -05:00
Joel Spadin
f6f8abe055 fix(ec11): allow more than one encoder
Fixes "device.h:101:11: error: redefinition of '__device_ec11'" in firmware that
has more than one encoder.
2020-10-03 14:05:05 -05:00
David Barr
260044ae5e
Delete default.keymap 2020-10-02 14:17:35 +01:00
David Barr
38a418a1d1
updates as per PR changes (i hope) 2020-10-02 14:16:59 +01:00
Dev
c68e3d3e42 Add missing licensing header
Fixes #205
2020-10-02 13:14:31 +05:30
Pete Johanson
307a8d09db feat(usb): Function to access latest USB status.
* To be leveraged by upcoming power
  management work.
2020-10-01 17:18:01 -04:00
Pete Johanson
028dfae92e chore: Fix remaining formatting issues. 2020-10-01 11:43:00 -04:00
Pete Johanson
e993378b2a chore: Fix some accidental formatting issues. 2020-10-01 11:24:57 -04:00
Pete Johanson
300b753ced
Merge pull request #212 from shurikai/zmk-202
Add polling (instead of interrupt) based matrix kscan detection, to avoid interrupt limits on stm32
2020-10-01 00:36:29 -04:00
Mubeen Khan
16df1522c2 Add TG4X rev 2.1 shield 2020-09-30 21:35:51 -05:00
David Barr
17bee0223a remove ds_store files 2020-09-30 17:12:39 +01:00
David Barr
a3d0c03726 rename cradios to cradio 2020-09-30 16:20:41 +01: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
Jason Chestnut
c2a861c0e6 Modify preprocessor directives to use basic #if !defined() rather than Zephyr macros where appropriate. 2020-09-28 08:24:51 -04:00
jason
9392c4f9ff Fix preprocessor flag issues for pull request. 2020-09-27 21:27:30 -04:00
Noah Thornton
9afd44b9d4 Provide context on Quefrency physical PCB layouts
The Quefrency board has two options for each left and right half,
resulting in 4 unique combinations. This has been noted in the
overlay and dtsi files.
2020-09-26 22:10:14 -05:00
Noah Thornton
24b638dfa3
Apply suggestions from code review
Revise copyright header

Co-authored-by: Pete Johanson <peter@peterjohanson.com>
2020-09-26 21:09:19 -05:00
Noah Thornton
7f7c7037b0 Add quefrency shield 2020-09-26 11:59:12 -07:00
Jason Chestnut
cfc75a118e Fix merge error. 2020-09-25 11:51:14 -04:00
Jason Chestnut
cca8337f05 Add support to GPIO matrix driver for matrix polling, rather than interrupt-based IO.
- Add ZMK_KSCAN_MATRIX_POLLING config flag to Kconfig
  - Update matrix driver code to use the above flag to conditionally add the handling code for polling operations.
2020-09-25 11:49:07 -04:00
Jason Chestnut
b1dce208f8 Add matrix polling logic to matrix GPIO driver. 2020-09-25 11:29:21 -04:00
Jason Chestnut
9668305621 Restore original matrix driver to correct implementation errors. 2020-09-24 17:35:51 -04:00
Jason Chestnut
5c4705d465 Add new matrix scan flag and implementation in the gpio matrix driver. 2020-09-24 14:30:47 -04:00
Jason Chestnut
53425aa3c4 Rename kscan direct wired driver polling kscan flag in preparationfor addition of new matrix driver flag that enables polling. 2020-09-24 07:55:32 -04:00
Kristoffer Onias
8e92ae3089 Remove bt_unpair_combo from romac_plus.overlay 2020-09-23 17:53:41 -07:00
Kristoffer Onias
641524b1b9 Update Keymap legends for consistency 2020-09-23 17:01:40 -07:00
Kristoffer Onias
9fffebd5da Adopt new BT unpairing standards 2020-09-23 16:31:02 -07:00
Kristoffer Onias
0ce36865b2 Update keyboard name to be more user friendly 2020-09-23 16:23:54 -07:00
Kristoffer Onias
4c092044ce Adopt single authors headers 2020-09-23 16:21:42 -07:00
Jason Chestnut
31af9646e6 Adding kconfig flag for enabling matrix polling (vs interrupts) on the matrix gpio driver. 2020-09-23 16:05:29 -04:00
Kristoffer Onias
f1fd71c231 Disabled ec11 since it's an optional configuration 2020-09-23 12:39:06 -07:00
Kristoffer Onias
c044fe8532 Add RoMac plus v4 support on nice nano v1 2020-09-21 22:44:00 -07:00
Pete Johanson
90bfe6026d fix(boards): Flash Planck with dfu-util. 2020-09-21 09:49:56 -04:00
Pete Johanson
9b89ed7be4
Merge pull request #187 from kurtis-lew/main
Fixed Iris default build/Updated Dev Guide
2020-09-19 23:12:17 -04:00
Nick
f5909f9c26 fix(clang-format) 2020-09-19 19:18:03 -05:00
Nick
da0fb965f6 Merge remote-tracking branch 'upstream/main' into bluetooth/battery-reporting 2020-09-19 19:15:05 -05:00
Nick
844f2c7674 Voltage divider driver initial implementation 2020-09-19 19:14:59 -05:00
David Barr
ed5d3646fe
Add files via upload 2020-09-19 10:56:40 +01:00
David Barr
2855ba75f5
Actually really working
Ok, both sides work as expected, need to write a keymap.
2020-09-19 10:55:07 +01:00
Nick
608ae0df6d fix lint with clang-format 2020-09-15 14:47:19 -05:00
Nick
18d21b0362 Merge remote-tracking branch 'upstream/main' into underglow/state-persistence 2020-09-15 14:41:59 -05:00
Nick
81bc157f53 Fix underglow not working by default 2020-09-15 14:31:59 -05:00
Kurtis Lew
d86e571757
Update iris.keymap 2020-09-14 20:47:55 -07:00
kurtis-lew
64c11f15b0 Removed Copyright Header causing Parse Error 2020-09-14 20:19:54 -07:00
Pete Johanson
c0806d27f1
Merge pull request #186 from BrainWart/tests/fix-build-error-fail
Integration Tests Should Fail on Build Errors
2020-09-14 10:50:52 -04:00
Pete Johanson
1cf0bad792
Merge pull request #185 from tominabox1/qaz_update
QAZ shield keymap update
2020-09-14 10:41:35 -04:00
tominabox1
0bf4467729 Update Kconfig.shield 2020-09-14 09:35:57 -05:00
Cody McGinnis
f6269df5fc fix(tests): return error code when build fails 2020-09-14 10:34:05 -04:00
tominabox1
42c42ccbbd Fixed some space/tab issues as well as updated copyright statements 2020-09-14 09:25:31 -05:00
Pete Johanson
9110335142
Merge pull request #183 from petejohanson/ops/clang-format-checks
Standardize code formatting using clang-format w/ LLVM style
2020-09-14 09:46:35 -04:00
tominabox1
62c47b1981 Remove duplicate include 2020-09-14 08:46:07 -05:00
tominabox1
63e105db90 Revising keymap to jive with upstream changes 2020-09-14 08:45:31 -05:00
tominabox1
fc167f5f5e Update QAZ keymap for bluetooth config options and homerow hold-taps 2020-09-14 08:44:20 -05:00
Pete Johanson
2c38947d1d
Merge pull request #184 from Nicell/boards/bt-keymap-bindings
feature(board): add BT prof management to defaults
2020-09-14 09:27:26 -04:00
Nick
7b12dc6caf feature(board): add BT prof management to defaults 2020-09-13 23:29:31 -05:00
Pete Johanson
191a2d755a chore: clang-format the codebase.
* Use the LLVM style
* Override indent width (8) and column limit (100)
* Fixes #142.
2020-09-14 00:10:34 -04:00
Pete Johanson
4658999e31 fix(bluetooth): Reject pairing to taken profiles. 2020-09-13 22:33:31 -04:00
Pete Johanson
6c8b0b53f0 refactor(bluetooth): More concise names. 2020-09-13 22:33:31 -04:00
Pete Johanson
652bb6ce05 feat(bluetooth): Add new settings_reset shield.
* Easy to build board/image that will clear
  saved profile/bond information for a fresh
  start for keyboards.
2020-09-13 22:33:31 -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
e88d0833c5 fix(bluetooth): Log when clearing on start. 2020-09-13 22:33:05 -04:00
Pete Johanson
b103eb4b05 fix(bluetooth): Delete any previously stored name. 2020-09-13 22:33:05 -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
68e72f9275 fix: Switch to single AUTHORS file.* Closes #164 2020-09-10 10:24:23 -04:00
Pete Johanson
5005aa4cd4
Merge pull request #166 from Nicell/boards/dz60rgb
Add DZ60RGB Rev1 Definition
2020-09-09 23:10:22 -04:00
Cody McGinnis
a65de800bf fix(tests): pending tests pass now 2020-09-08 12:00:46 -04:00
Nick
ceda57ddfd Fix comment name of keyboard 2020-09-07 12:32:25 -05:00
Nick
e845995c2d Fix Planck defconfig 2020-09-07 12:25:11 -05:00
Nick
6b433fdefd Finish DZ60RGB board definition 2020-09-07 12:24:47 -05:00
Nick
fa40558f73 Merge commit '61b249666b13f7f356c0e77ee5eb500d672d7dce' into boards/dz60rgb 2020-09-07 12:22:18 -05:00
Pete Johanson
9475188869
Merge pull request #162 from kurtis-lew/iris
Update iris_right.overlay
2020-09-04 23:35:55 -04:00
kurtis-lew
4ce42350e7 Update iris_right.overlay 2020-09-04 20:28:45 -07:00
CrossR
0ede549a13 Fix Sofle build, update Intro page. 2020-09-03 22:54:06 +01:00
David Barr
8bad40282b
actually working 2020-09-03 22:02:25 +01:00
David Barr
95bb220702
now compiles, not work, baby steps 2020-09-03 14:46:54 +01:00
David Barr
4551d30769
ad cradios 2020-09-03 13:20:05 +01:00
Pete Johanson
d53a8e36ca
Merge pull request #151 from kurtis-lew/iris
Added Iris Shield
2020-09-02 14:07:01 -04:00
Pete Johanson
48a3729ffe
Merge pull request #146 from okke-formsma/hold-tap
Hold-Tap implementation
2020-09-02 13:55:26 -04:00
Okke Formsma
c9a82d71d0 fixes for feedback round 2 2020-09-02 16:41:39 +02:00
Kurtis Lew
6e8f19028a
Added copyright header to iris.keymap 2020-09-02 07:22:39 -07:00
Kurtis Lew
c2ffeb1cf4
Added Copyright Header to Kconfig.defconfig 2020-09-02 07:21:45 -07:00
Okke Formsma
c5ca664411 some fixes based on feedback 2020-09-02 15:26:06 +02:00
Okke Formsma
f6a9c1ee57 rename tests 2020-09-02 15:10:46 +02:00
kurtis-lew
081ae84d0e Added Iris Shield 2020-09-01 20:22:11 -07:00
Okke Formsma
c33931c72c Initial implementation of hold-tap 2020-09-01 19:41:08 +02:00
CrossR
ca0f2bb074 Add to setup. 2020-09-01 18:32:45 +01:00
CrossR
21875cde88 Merge remote-tracking branch 'upstream/main' into CrossR/Sofle 2020-09-01 18:27:40 +01:00
Pete Johanson
4202db5a01
Merge pull request #126 from BrainWart/fix-layer-release
Fix keys not releasing when layers change
2020-09-01 10:08:03 -04:00
Pete Johanson
b85ac13564
Merge pull request #145 from okke-formsma/stop-fatal-errors
stop on fatal errors
2020-09-01 10:04:17 -04:00
Pete Johanson
01db53b46a fix(kscan): Avoid sending duplicate kscan events. 2020-09-01 09:55:25 -04:00
Cody McGinnis
639a338c2d fix(core): track layer state with keypress 2020-09-01 09:49:21 -04:00
Okke Formsma
21fcab208e stop on fatal errors 2020-08-31 22:24:36 +02:00
Pete Johanson
ef3c96c2ac
Merge pull request #134 from chenkevinh/lily58-encoder
Add Lily58 Left Encoder Support
2020-08-29 21:25:02 -04:00
Kevin
1ffcbefd72 Added encoder to unified conf file 2020-08-29 18:12:12 -07:00
CrossR
6be07b5b24 Merge branch 'main' into CrossR/Sofle 2020-08-29 22:54:43 +01:00
Kevin
0331943855 Removed extra encoder config lines 2020-08-29 13:48:40 -07:00
Kevin
14c05c92e9 Removed development files 2020-08-29 11:53:53 -07:00
Kevin
8b6e912d36 Reverted back to default keymap 2020-08-29 11:48:33 -07:00
Kevin
72232b4ec7 Fixed encoder config and added build_right script 2020-08-29 11:36:48 -07:00
Kevin
d69c94a183 Added helper scrpits and config file 2020-08-28 23:43:41 -07:00
Kevin
8b38193ec2 Removed status line 2020-08-28 23:33:29 -07:00
Kevin
e616fc2c81 Added left encoder support 2020-08-28 20:36:43 -07:00
Kevin
6475009da9 Added encoder and changed BT unpair keys in overlays 2020-08-28 20:36:28 -07:00
Pete Johanson
86c3dac153
Merge pull request #131 from BrainWart/tests/native-posix-test-exploration
Native posix integration testing
2020-08-28 22:58:08 -04:00
Pete Johanson
14d09e7b07
Merge pull request #130 from tominabox1/shield_qaz
[Keyboard] Add QAZ Shield
2020-08-28 18:51:58 -04:00
tominabox1
887ba47cbe Add copyright header 2020-08-28 16:38:40 -05:00
Cody McGinnis
80bef160fc feat(tests): allow tests to be marked as pending
pending tests will not fail the build
2020-08-28 16:28:49 -04:00
Cody McGinnis
26414a6982 fix(docs): move testing docs to website docs 2020-08-28 16:21:31 -04:00
Cody McGinnis
b1d9a7b684 feat(test): record full key log as well 2020-08-28 16:21:31 -04:00
Cody McGinnis
aff39e57d0 fix: add license header to run-test.sh 2020-08-28 16:21:31 -04:00
Cody McGinnis
4564d37477 feat(test): create simple docs for creating tests 2020-08-28 16:21:31 -04:00
Cody McGinnis
79bff11ddd fancier run test stuff 2020-08-28 16:21:31 -04:00