From 3e264e46d4c53ed7198731fcdfefc74396b48f1a Mon Sep 17 00:00:00 2001 From: Derek Date: Sat, 15 Aug 2020 16:01:35 -0400 Subject: [PATCH 01/48] Add splitreus62 shield --- .../shields/splitreus62/Kconfig.defconfig | 54 +++++++++++++++++++ app/boards/shields/splitreus62/Kconfig.shield | 8 +++ .../shields/splitreus62/splitreus62.conf | 2 + .../shields/splitreus62/splitreus62.dtsi | 50 +++++++++++++++++ .../shields/splitreus62/splitreus62.keymap | 25 +++++++++ .../shields/splitreus62/splitreus62_left.conf | 2 + .../splitreus62/splitreus62_left.overlay | 19 +++++++ .../splitreus62/splitreus62_right.conf | 3 ++ .../splitreus62/splitreus62_right.overlay | 22 ++++++++ 9 files changed, 185 insertions(+) create mode 100644 app/boards/shields/splitreus62/Kconfig.defconfig create mode 100644 app/boards/shields/splitreus62/Kconfig.shield create mode 100644 app/boards/shields/splitreus62/splitreus62.conf create mode 100644 app/boards/shields/splitreus62/splitreus62.dtsi create mode 100644 app/boards/shields/splitreus62/splitreus62.keymap create mode 100644 app/boards/shields/splitreus62/splitreus62_left.conf create mode 100644 app/boards/shields/splitreus62/splitreus62_left.overlay create mode 100644 app/boards/shields/splitreus62/splitreus62_right.conf create mode 100644 app/boards/shields/splitreus62/splitreus62_right.overlay diff --git a/app/boards/shields/splitreus62/Kconfig.defconfig b/app/boards/shields/splitreus62/Kconfig.defconfig new file mode 100644 index 00000000..c52752a0 --- /dev/null +++ b/app/boards/shields/splitreus62/Kconfig.defconfig @@ -0,0 +1,54 @@ + +if SHIELD_SPLITREUS62_LEFT + +config ZMK_KEYBOARD_NAME + default "Splitreus62 Left" + +endif + +if SHIELD_SPLITREUS62_RIGHT + +config ZMK_KEYBOARD_NAME + default "Splitreus62 Right" + +endif + +if SHIELD_SPLITREUS62_LEFT || SHIELD_SPLITREUS62_RIGHT + +if ZMK_DISPLAY + +config I2C + default n + +config SSD1306 + default n + +config SSD1306_REVERSE_MODE + default n + +endif # ZMK_DISPLAY + +if LVGL + +config LVGL_HOR_RES + default 128 + +config LVGL_VER_RES + default 32 + +config LVGL_VDB_SIZE + default 64 + +config LVGL_DPI + default 148 + +config LVGL_BITS_PER_PIXEL + default 1 + +choice LVGL_COLOR_DEPTH + default LVGL_COLOR_DEPTH_1 +endchoice + +endif # LVGL + +endif diff --git a/app/boards/shields/splitreus62/Kconfig.shield b/app/boards/shields/splitreus62/Kconfig.shield new file mode 100644 index 00000000..f20f2362 --- /dev/null +++ b/app/boards/shields/splitreus62/Kconfig.shield @@ -0,0 +1,8 @@ +# Copyright (c) 2020 Pete Johanson +# SPDX-License-Identifier: MIT + +config SHIELD_SPLITREUS62_LEFT + def_bool $(shields_list_contains,splitreus62_left) + +config SHIELD_SPLITREUS62_RIGHT + def_bool $(shields_list_contains,splitreus62_right) diff --git a/app/boards/shields/splitreus62/splitreus62.conf b/app/boards/shields/splitreus62/splitreus62.conf new file mode 100644 index 00000000..73f0d9de --- /dev/null +++ b/app/boards/shields/splitreus62/splitreus62.conf @@ -0,0 +1,2 @@ +# Uncomment the following line to enable the Lily58 OLED Display +# CONFIG_ZMK_DISPLAY=y diff --git a/app/boards/shields/splitreus62/splitreus62.dtsi b/app/boards/shields/splitreus62/splitreus62.dtsi new file mode 100644 index 00000000..e1fb40b2 --- /dev/null +++ b/app/boards/shields/splitreus62/splitreus62.dtsi @@ -0,0 +1,50 @@ +/* + * Copyright (c) 2020 Pete Johanson, Derek Schmell + * + * SPDX-License-Identifier: MIT + */ + +#include + +/ { + chosen { + zmk,kscan = &kscan0; + zmk,matrix_transform = &default_transform; + }; + + default_transform: keymap_transform_0 { + compatible = "zmk,matrix-transform"; + columns = <12>; + rows = <6>; +// | SW0 | SW5 | SW10 | SW15 | SW20 | SW25 | SW25 | SW20 | SW15 | SW10 | SW5 | SW1 | +// | SW1 | SW6 | SW11 | SW16 | SW21 | SW26 | SW26 | SW21 | SW16 | SW11 | SW6 | SW2 | +// | SW2 | SW7 | SW12 | SW17 | SW22 | SW27 | SW27 | SW22 | SW17 | SW12 | SW7 | SW3 | +// | SW3 | SW8 | SW13 | SW18 | SW23 | SW28 | SW28 | SW23 | SW18 | SW13 | SW8 | SW4 | +// | SW4 | SW9 | SW14 | SW19 | SW24 | SW29 | SW29 | SW24 | SW19 | SW14 | SW9 | SW5 | +// SW30 | SW30 + map = < +RC(0,0) RC(0,1) RC(0,2) RC(0,3) RC(0,4) RC(0,5) RC(0,6) RC(0,7) RC(0,8) RC(0,9) RC(0,10) RC(0,11) +RC(1,0) RC(1,1) RC(1,2) RC(1,3) RC(1,4) RC(1,5) RC(1,6) RC(1,7) RC(1,8) RC(1,9) RC(1,10) RC(1,11) +RC(2,0) RC(2,1) RC(2,2) RC(2,3) RC(2,4) RC(2,5) RC(2,6) RC(2,7) RC(2,8) RC(2,9) RC(2,10) RC(2,11) +RC(3,0) RC(3,1) RC(3,2) RC(3,3) RC(3,4) RC(3,5) RC(3,6) RC(3,7) RC(3,8) RC(3,9) RC(3,10) RC(3,11) +RC(4,0) RC(4,1) RC(4,2) RC(4,3) RC(4,4) RC(4,5) RC(4,6) RC(4,7) RC(4,8) RC(4,9) RC(4,10) RC(4,11) + RC(5,5) RC(5,6) + >; + }; + + kscan0: kscan { + compatible = "zmk,kscan-gpio-matrix"; + label = "KSCAN"; + + diode-direction = "row2col"; + row-gpios + = <&pro_micro_d 1 GPIO_ACTIVE_HIGH > + , <&pro_micro_d 0 GPIO_ACTIVE_HIGH> + , <&pro_micro_d 2 GPIO_ACTIVE_HIGH> + , <&pro_micro_d 4 GPIO_ACTIVE_HIGH> + , <&pro_micro_d 5 GPIO_ACTIVE_HIGH> + , <&pro_micro_d 6 GPIO_ACTIVE_HIGH> + ; + + }; +}; diff --git a/app/boards/shields/splitreus62/splitreus62.keymap b/app/boards/shields/splitreus62/splitreus62.keymap new file mode 100644 index 00000000..cd683a22 --- /dev/null +++ b/app/boards/shields/splitreus62/splitreus62.keymap @@ -0,0 +1,25 @@ +#include +#include + +/ { + keymap { + compatible = "zmk,keymap"; + + default_layer { +// ------------------------------------------------------------------------------------------------------------ +// | ESC | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | - | +// | TAB | Q | W | E | R | T | | Y | U | I | O | P | \ | +// | CTRL | A | S | D | F | G | | H | J | K | L | ; | ' | +// | SHIFT | Z | X | C | V | B | | N | M | , | . | / | SHIFT | +// | LCTL | LGUI | LALT | GRAV | | EQL | DEL | BKSP| | RET | SPC | LBKT | RBKT | LBKT | HOME | END | + bindings = < +&kp ESC &kp NUM_1 &kp NUM_2 &kp NUM_3 &kp NUM_4 &kp NUM_5 &kp NUM_6 &kp NUM_7 &kp NUM_8 &kp NUM_9 &kp NUM_0 &kp MINUS +&kp TAB &kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P &kp BSLH +&kp LCTL &kp A &kp S &kp D &kp F &kp G &kp H &kp J &kp K &kp L &kp SCLN &kp QUOT +&kp LSFT &kp Z &kp X &kp C &kp V &kp B &kp N &kp M &kp CMMA &kp DOT &kp FSLH &kp RSFT +&kp LCTL &kp LGUI &kp LALT &kp GRAV &kp EQL &kp DEL &kp SPC &kp LBKT &kp RBKT &kp MINUS &kp HOME &kp END + &kp BKSP &kp RET + >; + }; + }; +}; diff --git a/app/boards/shields/splitreus62/splitreus62_left.conf b/app/boards/shields/splitreus62/splitreus62_left.conf new file mode 100644 index 00000000..a835adc1 --- /dev/null +++ b/app/boards/shields/splitreus62/splitreus62_left.conf @@ -0,0 +1,2 @@ +CONFIG_ZMK_SPLIT=y +CONFIG_ZMK_SPLIT_BLE_ROLE_PERIPHERAL=y \ No newline at end of file diff --git a/app/boards/shields/splitreus62/splitreus62_left.overlay b/app/boards/shields/splitreus62/splitreus62_left.overlay new file mode 100644 index 00000000..aea374a4 --- /dev/null +++ b/app/boards/shields/splitreus62/splitreus62_left.overlay @@ -0,0 +1,19 @@ +/* + * Copyright (c) 2020 Pete Johanson + * + * SPDX-License-Identifier: MIT + */ + +#include "splitreus62.dtsi" + +&kscan0 { + col-gpios + = <&pro_micro_d 7 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> + , <&pro_micro_d 8 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> + , <&pro_micro_d 9 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> + , <&pro_micro_d 10 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> + , <&pro_micro_d 16 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> + , <&pro_micro_d 14 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> + ; +}; + diff --git a/app/boards/shields/splitreus62/splitreus62_right.conf b/app/boards/shields/splitreus62/splitreus62_right.conf new file mode 100644 index 00000000..ab43d049 --- /dev/null +++ b/app/boards/shields/splitreus62/splitreus62_right.conf @@ -0,0 +1,3 @@ +CONFIG_ZMK_SPLIT=y +CONFIG_ZMK_SPLIT_BLE_ROLE_CENTRAL=y +#CONFIG_ZMK_SPLIT_BLE_ROLE_PERIPHERAL=y diff --git a/app/boards/shields/splitreus62/splitreus62_right.overlay b/app/boards/shields/splitreus62/splitreus62_right.overlay new file mode 100644 index 00000000..3c0f9899 --- /dev/null +++ b/app/boards/shields/splitreus62/splitreus62_right.overlay @@ -0,0 +1,22 @@ +/* + * Copyright (c) 2020 Pete Johanson + * + * SPDX-License-Identifier: MIT + */ + +#include "splitreus62.dtsi" + +&default_transform { + col-offset = <6>; +}; + +&kscan0 { + col-gpios + = <&pro_micro_d 14 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> + , <&pro_micro_d 16 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> + , <&pro_micro_d 10 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> + , <&pro_micro_d 9 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> + , <&pro_micro_d 8 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> + , <&pro_micro_d 7 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> + ; +}; \ No newline at end of file From bb5eb51df743bd1c56c814c62f10d022c388df67 Mon Sep 17 00:00:00 2001 From: Derek Date: Sat, 15 Aug 2020 16:11:18 -0400 Subject: [PATCH 02/48] Updated comment and removed display flag --- app/boards/shields/splitreus62/splitreus62.conf | 2 -- app/boards/shields/splitreus62/splitreus62_right.conf | 3 +-- 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/app/boards/shields/splitreus62/splitreus62.conf b/app/boards/shields/splitreus62/splitreus62.conf index 73f0d9de..e69de29b 100644 --- a/app/boards/shields/splitreus62/splitreus62.conf +++ b/app/boards/shields/splitreus62/splitreus62.conf @@ -1,2 +0,0 @@ -# Uncomment the following line to enable the Lily58 OLED Display -# CONFIG_ZMK_DISPLAY=y diff --git a/app/boards/shields/splitreus62/splitreus62_right.conf b/app/boards/shields/splitreus62/splitreus62_right.conf index ab43d049..e51dee44 100644 --- a/app/boards/shields/splitreus62/splitreus62_right.conf +++ b/app/boards/shields/splitreus62/splitreus62_right.conf @@ -1,3 +1,2 @@ CONFIG_ZMK_SPLIT=y -CONFIG_ZMK_SPLIT_BLE_ROLE_CENTRAL=y -#CONFIG_ZMK_SPLIT_BLE_ROLE_PERIPHERAL=y +CONFIG_ZMK_SPLIT_BLE_ROLE_CENTRAL=y \ No newline at end of file From ce7d7cd51d35bf22cf92a3765e021c10b583c587 Mon Sep 17 00:00:00 2001 From: Derek Date: Sat, 15 Aug 2020 16:21:38 -0400 Subject: [PATCH 03/48] Undo build.yaml changles --- .github/workflows/build.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 5eb79716..a8bddf63 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -16,6 +16,10 @@ jobs: - kyria_right - lily58_left - lily58_right +<<<<<<< HEAD + +======= +>>>>>>> parent of c3164f4... Updated build.yaml include: - board: proton_c shield: clueboard_california From 1fa993fca22860d4706364e72116ffd154d01bac Mon Sep 17 00:00:00 2001 From: Derek Date: Sat, 15 Aug 2020 16:21:54 -0400 Subject: [PATCH 04/48] Update app/boards/shields/splitreus62/splitreus62_right.overlay Co-authored-by: Nick Winans --- app/boards/shields/splitreus62/splitreus62_right.overlay | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/boards/shields/splitreus62/splitreus62_right.overlay b/app/boards/shields/splitreus62/splitreus62_right.overlay index 3c0f9899..35375cca 100644 --- a/app/boards/shields/splitreus62/splitreus62_right.overlay +++ b/app/boards/shields/splitreus62/splitreus62_right.overlay @@ -15,8 +15,8 @@ = <&pro_micro_d 14 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> , <&pro_micro_d 16 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> , <&pro_micro_d 10 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> - , <&pro_micro_d 9 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> + , <&pro_micro_d 9 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> , <&pro_micro_d 8 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> , <&pro_micro_d 7 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> ; -}; \ No newline at end of file +}; From ba136eb9eed862aefe2cacd83f24194c62a00459 Mon Sep 17 00:00:00 2001 From: Derek Date: Sat, 15 Aug 2020 16:22:00 -0400 Subject: [PATCH 05/48] Update app/boards/shields/splitreus62/splitreus62_left.overlay Co-authored-by: Nick Winans --- app/boards/shields/splitreus62/splitreus62_left.overlay | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/app/boards/shields/splitreus62/splitreus62_left.overlay b/app/boards/shields/splitreus62/splitreus62_left.overlay index aea374a4..7210ca41 100644 --- a/app/boards/shields/splitreus62/splitreus62_left.overlay +++ b/app/boards/shields/splitreus62/splitreus62_left.overlay @@ -10,10 +10,9 @@ col-gpios = <&pro_micro_d 7 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> , <&pro_micro_d 8 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> - , <&pro_micro_d 9 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> + , <&pro_micro_d 9 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> , <&pro_micro_d 10 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> , <&pro_micro_d 16 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> , <&pro_micro_d 14 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> ; }; - From ff3b1d3fa31d8dbc226ae75e601ba0a9800252b0 Mon Sep 17 00:00:00 2001 From: Derek Date: Sat, 15 Aug 2020 16:26:55 -0400 Subject: [PATCH 06/48] Revert "Undo build.yaml changles" This reverts commit ce7d7cd51d35bf22cf92a3765e021c10b583c587. --- .github/workflows/build.yml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index a8bddf63..5eb79716 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -16,10 +16,6 @@ jobs: - kyria_right - lily58_left - lily58_right -<<<<<<< HEAD - -======= ->>>>>>> parent of c3164f4... Updated build.yaml include: - board: proton_c shield: clueboard_california From caecce62b7805e7fa3db814f2eb1616ba3661262 Mon Sep 17 00:00:00 2001 From: Derek Date: Sat, 15 Aug 2020 16:32:14 -0400 Subject: [PATCH 07/48] Drop OLED support. --- .../shields/splitreus62/Kconfig.defconfig | 36 ------------------- 1 file changed, 36 deletions(-) diff --git a/app/boards/shields/splitreus62/Kconfig.defconfig b/app/boards/shields/splitreus62/Kconfig.defconfig index c52752a0..1f5b324d 100644 --- a/app/boards/shields/splitreus62/Kconfig.defconfig +++ b/app/boards/shields/splitreus62/Kconfig.defconfig @@ -15,40 +15,4 @@ endif if SHIELD_SPLITREUS62_LEFT || SHIELD_SPLITREUS62_RIGHT -if ZMK_DISPLAY - -config I2C - default n - -config SSD1306 - default n - -config SSD1306_REVERSE_MODE - default n - -endif # ZMK_DISPLAY - -if LVGL - -config LVGL_HOR_RES - default 128 - -config LVGL_VER_RES - default 32 - -config LVGL_VDB_SIZE - default 64 - -config LVGL_DPI - default 148 - -config LVGL_BITS_PER_PIXEL - default 1 - -choice LVGL_COLOR_DEPTH - default LVGL_COLOR_DEPTH_1 -endchoice - -endif # LVGL - endif From 5bb01c802b792dd016b2cd091b0983806b658f43 Mon Sep 17 00:00:00 2001 From: Derek Date: Sun, 16 Aug 2020 08:49:17 -0400 Subject: [PATCH 08/48] Update setup.sh --- docs/static/setup.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/static/setup.sh b/docs/static/setup.sh index 27dcb0b3..45eccd68 100644 --- a/docs/static/setup.sh +++ b/docs/static/setup.sh @@ -37,7 +37,7 @@ echo "" echo "Keyboard Shield Selection:" prompt="Pick an keyboard:" -options=("Kyria" "Lily58" "Corne") +options=("Kyria" "Lily58" "Corne" "Splitreus62") PS3="$prompt " # TODO: Add support for "Other" and linking to docs on adding custom shields in user config repos. From 7aea57328c1f48e95de2013843e8947c1eb0e752 Mon Sep 17 00:00:00 2001 From: Mega Mind <68985133+megamind4089@users.noreply.github.com> Date: Fri, 21 Aug 2020 03:12:06 +0800 Subject: [PATCH 09/48] Add KConfig for board battery charger --- app/boards/arm/nrfmicro/Kconfig | 5 +++++ app/boards/arm/nrfmicro/Kconfig.defconfig | 9 ++++++++- app/boards/arm/nrfmicro/pinmux.c | 6 +++++- 3 files changed, 18 insertions(+), 2 deletions(-) diff --git a/app/boards/arm/nrfmicro/Kconfig b/app/boards/arm/nrfmicro/Kconfig index 17a3347e..80039e9c 100644 --- a/app/boards/arm/nrfmicro/Kconfig +++ b/app/boards/arm/nrfmicro/Kconfig @@ -3,3 +3,8 @@ config BOARD_ENABLE_DCDC select SOC_DCDC_NRF52X default y depends on (BOARD_NRFMICRO_11 || BOARD_NRFMICRO_11_FLIPPED || BOARD_NRFMICRO_13) + +config BOARD_ENABLE_CHARGER + bool "Enable battery charger" + default y + depends on (BOARD_NRFMICRO_13) diff --git a/app/boards/arm/nrfmicro/Kconfig.defconfig b/app/boards/arm/nrfmicro/Kconfig.defconfig index 22122772..69b59eeb 100644 --- a/app/boards/arm/nrfmicro/Kconfig.defconfig +++ b/app/boards/arm/nrfmicro/Kconfig.defconfig @@ -29,5 +29,12 @@ config ZMK_USB config PINMUX default y - + +if BOARD_NRFMICRO_13 + +config BOARD_ENABLE_CHARGER + default y + +endif # BOARD_NRFMICRO_13 + endif # BOARD_NRFMICRO_11 || BOARD_NRFMICRO_11_FLIPPED || BOARD_NRFMICRO_13 diff --git a/app/boards/arm/nrfmicro/pinmux.c b/app/boards/arm/nrfmicro/pinmux.c index c02ca922..be1a4de4 100644 --- a/app/boards/arm/nrfmicro/pinmux.c +++ b/app/boards/arm/nrfmicro/pinmux.c @@ -23,9 +23,13 @@ static int pinmux_nrfmicro_init(struct device *port) gpio_pin_configure(p1, 9, GPIO_OUTPUT); gpio_pin_set(p1, 9, 0); - // enable charger (nRFMicro 1.3 only) +#if CONFIG_BOARD_ENABLE_CHARGER gpio_pin_configure(p0, 5, GPIO_OUTPUT); gpio_pin_set(p0, 5, 0); +#else + gpio_pin_configure(p0, 5, GPIO_INPUT); +#endif + #else // enable EXT_VCC (use 0 for nRFMicro 1.3, use 1 for nRFMicro 1.1) gpio_pin_configure(p1, 9, GPIO_OUTPUT); From 94c7d27f04263b42669ae6d1777765ba811ed6bf Mon Sep 17 00:00:00 2001 From: Derek Date: Thu, 20 Aug 2020 15:13:51 -0400 Subject: [PATCH 10/48] Updated files as per request Updated --- app/boards/shields/splitreus62/Kconfig.defconfig | 7 ++++++- app/boards/shields/splitreus62/Kconfig.shield | 2 +- app/boards/shields/splitreus62/splitreus62.dtsi | 2 +- app/boards/shields/splitreus62/splitreus62.keymap | 6 ++++++ app/boards/shields/splitreus62/splitreus62_left.overlay | 2 +- app/boards/shields/splitreus62/splitreus62_right.overlay | 4 ++-- docs/static/setup.sh | 1 + 7 files changed, 18 insertions(+), 6 deletions(-) diff --git a/app/boards/shields/splitreus62/Kconfig.defconfig b/app/boards/shields/splitreus62/Kconfig.defconfig index 1f5b324d..6e35b06a 100644 --- a/app/boards/shields/splitreus62/Kconfig.defconfig +++ b/app/boards/shields/splitreus62/Kconfig.defconfig @@ -1,4 +1,9 @@ - +/* + * Copyright (c) 2020 Derek Schmell + * + * SPDX-License-Identifier: MIT + */ + if SHIELD_SPLITREUS62_LEFT config ZMK_KEYBOARD_NAME diff --git a/app/boards/shields/splitreus62/Kconfig.shield b/app/boards/shields/splitreus62/Kconfig.shield index f20f2362..762d991b 100644 --- a/app/boards/shields/splitreus62/Kconfig.shield +++ b/app/boards/shields/splitreus62/Kconfig.shield @@ -1,4 +1,4 @@ -# Copyright (c) 2020 Pete Johanson +# Copyright (c) 2020 Derek Schmell # SPDX-License-Identifier: MIT config SHIELD_SPLITREUS62_LEFT diff --git a/app/boards/shields/splitreus62/splitreus62.dtsi b/app/boards/shields/splitreus62/splitreus62.dtsi index e1fb40b2..c2bfbc40 100644 --- a/app/boards/shields/splitreus62/splitreus62.dtsi +++ b/app/boards/shields/splitreus62/splitreus62.dtsi @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020 Pete Johanson, Derek Schmell + * Copyright (c) 2020 Derek Schmell * * SPDX-License-Identifier: MIT */ diff --git a/app/boards/shields/splitreus62/splitreus62.keymap b/app/boards/shields/splitreus62/splitreus62.keymap index cd683a22..920e61ad 100644 --- a/app/boards/shields/splitreus62/splitreus62.keymap +++ b/app/boards/shields/splitreus62/splitreus62.keymap @@ -1,3 +1,9 @@ +/* + * Copyright (c) 2020 Derek Schmell + * + * SPDX-License-Identifier: MIT + */ + #include #include diff --git a/app/boards/shields/splitreus62/splitreus62_left.overlay b/app/boards/shields/splitreus62/splitreus62_left.overlay index 7210ca41..b156d608 100644 --- a/app/boards/shields/splitreus62/splitreus62_left.overlay +++ b/app/boards/shields/splitreus62/splitreus62_left.overlay @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020 Pete Johanson + * Copyright (c) 2020 Derek Schmell * * SPDX-License-Identifier: MIT */ diff --git a/app/boards/shields/splitreus62/splitreus62_right.overlay b/app/boards/shields/splitreus62/splitreus62_right.overlay index 35375cca..5db87cc3 100644 --- a/app/boards/shields/splitreus62/splitreus62_right.overlay +++ b/app/boards/shields/splitreus62/splitreus62_right.overlay @@ -1,9 +1,9 @@ /* - * Copyright (c) 2020 Pete Johanson + * Copyright (c) 2020 Derek Schmell * * SPDX-License-Identifier: MIT */ - + #include "splitreus62.dtsi" &default_transform { diff --git a/docs/static/setup.sh b/docs/static/setup.sh index 45eccd68..e75b5297 100644 --- a/docs/static/setup.sh +++ b/docs/static/setup.sh @@ -49,6 +49,7 @@ select opt in "${options[@]}" "Quit"; do 1 ) shield_title="Kyria" shield="kyria"; split="y"; break;; 2 ) shield_title="Lily58" shield="lily58"; split="y"; break;; 3 ) shield_title="Corne" shield="corne"; split="y"; break;; + 4 ) shield_title="Splitreus62" shield="splitreus62"; split="y"; break;; # Add link to docs on adding your own custom shield in your ZMK config! # $(( ${#options[@]}+1 )) ) echo "Other!"; break;; From 3b71c4311bae62c2e14b028324f831837742d1f5 Mon Sep 17 00:00:00 2001 From: Derek Date: Thu, 20 Aug 2020 17:27:41 -0400 Subject: [PATCH 11/48] Update Kconfig.defconfig --- app/boards/shields/splitreus62/Kconfig.defconfig | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/app/boards/shields/splitreus62/Kconfig.defconfig b/app/boards/shields/splitreus62/Kconfig.defconfig index 6e35b06a..a2464a79 100644 --- a/app/boards/shields/splitreus62/Kconfig.defconfig +++ b/app/boards/shields/splitreus62/Kconfig.defconfig @@ -1,8 +1,7 @@ -/* - * Copyright (c) 2020 Derek Schmell - * - * SPDX-License-Identifier: MIT - */ + +#Copyright (c) 2020 Derek Schmell +#SPDX-License-Identifier: MIT + if SHIELD_SPLITREUS62_LEFT From f3361e79ceb03167d9e239582162ba2c5d66fb5a Mon Sep 17 00:00:00 2001 From: tjcampie Date: Thu, 20 Aug 2020 20:22:55 -0500 Subject: [PATCH 12/48] Add QAZ to zmk --- app/boards/shields/qaz/Kconfig.defconfig | 6 ++++ app/boards/shields/qaz/Kconfig.shield | 2 ++ app/boards/shields/qaz/qaz.keymap | 19 ++++++++++ app/boards/shields/qaz/qaz.overlay | 46 ++++++++++++++++++++++++ 4 files changed, 73 insertions(+) create mode 100644 app/boards/shields/qaz/Kconfig.defconfig create mode 100644 app/boards/shields/qaz/Kconfig.shield create mode 100644 app/boards/shields/qaz/qaz.keymap create mode 100644 app/boards/shields/qaz/qaz.overlay diff --git a/app/boards/shields/qaz/Kconfig.defconfig b/app/boards/shields/qaz/Kconfig.defconfig new file mode 100644 index 00000000..148a630a --- /dev/null +++ b/app/boards/shields/qaz/Kconfig.defconfig @@ -0,0 +1,6 @@ +if SHIELD_QAZ + +config ZMK_KEYBOARD_NAME + default "QAZ_zmk" + +endif \ No newline at end of file diff --git a/app/boards/shields/qaz/Kconfig.shield b/app/boards/shields/qaz/Kconfig.shield new file mode 100644 index 00000000..c3655391 --- /dev/null +++ b/app/boards/shields/qaz/Kconfig.shield @@ -0,0 +1,2 @@ +config SHIELD_MY_BOARD + def_bool $(shields_list_contains,qaz) \ No newline at end of file diff --git a/app/boards/shields/qaz/qaz.keymap b/app/boards/shields/qaz/qaz.keymap new file mode 100644 index 00000000..b83bb471 --- /dev/null +++ b/app/boards/shields/qaz/qaz.keymap @@ -0,0 +1,19 @@ +#include +#include + +/ { + keymap { + compatible = "zmk,keymap"; + + default_layer { + + bindings = < + &kp Q &kp W &kp F &kp P &kp G &kp J &kp L &kp U &kp Y &kp QUOT + &mt MOD_LGUI A &mt MOD_LALT R &mt MOD_LCTL S &mt MOD_LSFT T &kp D &kp H &mt MOD_RSFT N &mt MOD_RCTL E &mt MOD_RALT I &mt MOD_RGUI O + &kp Z &kp X &kp C &kp V &kp B &kp K &kp M &kp CMMA &kp DOT + &kp LGUI &kp LALT &kp LCTL &kp BKSP &kp SPC &kp RET &kp TAB &kp FSLH + >; + + }; + }; +}; diff --git a/app/boards/shields/qaz/qaz.overlay b/app/boards/shields/qaz/qaz.overlay new file mode 100644 index 00000000..75c4d1d6 --- /dev/null +++ b/app/boards/shields/qaz/qaz.overlay @@ -0,0 +1,46 @@ +#include + +/ { + chosen { + zmk,kscan = &kscan0; + zmk,matrix_transform = &default_transform; + }; + + default_transform: keymap_transform_0 { + compatible = "zmk,matrix-transform"; + columns = <7>; + rows = <6>; + map = < + RC(0,0) RC(0,1) RC(0,2) RC(0,3) RC(0,4) RC(0,5) RC(0,6) RC(4,0) RC(4,1) RC(4,2) + RC(1,0) RC(1,1) RC(1,2) RC(1,3) RC(1,4) RC(1,5) RC(1,6) RC(5,0) RC(5,1) RC(5,2) + RC(2,0) RC(2,1) RC(2,2) RC(2,3) RC(2,4) RC(2,5) RC(2,6) RC(4,3) RC(5,3) + RC(3,0) RC(3,1) RC(3,2) RC(3,3) RC(3,4) RC(3,5) RC(3,6) RC(4,4) + >; + }; + + + kscan0: kscan_0 { + compatible = "zmk,kscan-gpio-matrix"; + label = "KSCAN"; + diode-direction = "col2row"; + + col-gpios + = <&pro_micro_d 8 GPIO_ACTIVE_HIGH> + , <&pro_micro_d 1 GPIO_ACTIVE_HIGH> + , <&pro_micro_d 0 GPIO_ACTIVE_HIGH> + , <&pro_micro_a 2 GPIO_ACTIVE_HIGH> + , <&pro_micro_d 9 GPIO_ACTIVE_HIGH> + , <&pro_micro_a 1 GPIO_ACTIVE_HIGH> + , <&pro_micro_d 6 GPIO_ACTIVE_HIGH> + ; + + row-gpios + = <&pro_micro_a 3 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> + , <&pro_micro_d 4 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> + , <&pro_micro_d 5 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> + , <&pro_micro_d 7 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> + , <&pro_micro_d 2 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> + , <&pro_micro_d 3 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> + ; + }; +}; \ No newline at end of file From 5b76179bf6db93717cde0c4da39b5421a0c5bad3 Mon Sep 17 00:00:00 2001 From: tjcampie Date: Fri, 21 Aug 2020 06:31:08 -0500 Subject: [PATCH 13/48] Accidentally added these to main branch. --- app/boards/shields/qaz/Kconfig.defconfig | 6 ---- app/boards/shields/qaz/Kconfig.shield | 2 -- app/boards/shields/qaz/qaz.keymap | 19 ---------- app/boards/shields/qaz/qaz.overlay | 46 ------------------------ 4 files changed, 73 deletions(-) delete mode 100644 app/boards/shields/qaz/Kconfig.defconfig delete mode 100644 app/boards/shields/qaz/Kconfig.shield delete mode 100644 app/boards/shields/qaz/qaz.keymap delete mode 100644 app/boards/shields/qaz/qaz.overlay diff --git a/app/boards/shields/qaz/Kconfig.defconfig b/app/boards/shields/qaz/Kconfig.defconfig deleted file mode 100644 index 148a630a..00000000 --- a/app/boards/shields/qaz/Kconfig.defconfig +++ /dev/null @@ -1,6 +0,0 @@ -if SHIELD_QAZ - -config ZMK_KEYBOARD_NAME - default "QAZ_zmk" - -endif \ No newline at end of file diff --git a/app/boards/shields/qaz/Kconfig.shield b/app/boards/shields/qaz/Kconfig.shield deleted file mode 100644 index c3655391..00000000 --- a/app/boards/shields/qaz/Kconfig.shield +++ /dev/null @@ -1,2 +0,0 @@ -config SHIELD_MY_BOARD - def_bool $(shields_list_contains,qaz) \ No newline at end of file diff --git a/app/boards/shields/qaz/qaz.keymap b/app/boards/shields/qaz/qaz.keymap deleted file mode 100644 index b83bb471..00000000 --- a/app/boards/shields/qaz/qaz.keymap +++ /dev/null @@ -1,19 +0,0 @@ -#include -#include - -/ { - keymap { - compatible = "zmk,keymap"; - - default_layer { - - bindings = < - &kp Q &kp W &kp F &kp P &kp G &kp J &kp L &kp U &kp Y &kp QUOT - &mt MOD_LGUI A &mt MOD_LALT R &mt MOD_LCTL S &mt MOD_LSFT T &kp D &kp H &mt MOD_RSFT N &mt MOD_RCTL E &mt MOD_RALT I &mt MOD_RGUI O - &kp Z &kp X &kp C &kp V &kp B &kp K &kp M &kp CMMA &kp DOT - &kp LGUI &kp LALT &kp LCTL &kp BKSP &kp SPC &kp RET &kp TAB &kp FSLH - >; - - }; - }; -}; diff --git a/app/boards/shields/qaz/qaz.overlay b/app/boards/shields/qaz/qaz.overlay deleted file mode 100644 index 75c4d1d6..00000000 --- a/app/boards/shields/qaz/qaz.overlay +++ /dev/null @@ -1,46 +0,0 @@ -#include - -/ { - chosen { - zmk,kscan = &kscan0; - zmk,matrix_transform = &default_transform; - }; - - default_transform: keymap_transform_0 { - compatible = "zmk,matrix-transform"; - columns = <7>; - rows = <6>; - map = < - RC(0,0) RC(0,1) RC(0,2) RC(0,3) RC(0,4) RC(0,5) RC(0,6) RC(4,0) RC(4,1) RC(4,2) - RC(1,0) RC(1,1) RC(1,2) RC(1,3) RC(1,4) RC(1,5) RC(1,6) RC(5,0) RC(5,1) RC(5,2) - RC(2,0) RC(2,1) RC(2,2) RC(2,3) RC(2,4) RC(2,5) RC(2,6) RC(4,3) RC(5,3) - RC(3,0) RC(3,1) RC(3,2) RC(3,3) RC(3,4) RC(3,5) RC(3,6) RC(4,4) - >; - }; - - - kscan0: kscan_0 { - compatible = "zmk,kscan-gpio-matrix"; - label = "KSCAN"; - diode-direction = "col2row"; - - col-gpios - = <&pro_micro_d 8 GPIO_ACTIVE_HIGH> - , <&pro_micro_d 1 GPIO_ACTIVE_HIGH> - , <&pro_micro_d 0 GPIO_ACTIVE_HIGH> - , <&pro_micro_a 2 GPIO_ACTIVE_HIGH> - , <&pro_micro_d 9 GPIO_ACTIVE_HIGH> - , <&pro_micro_a 1 GPIO_ACTIVE_HIGH> - , <&pro_micro_d 6 GPIO_ACTIVE_HIGH> - ; - - row-gpios - = <&pro_micro_a 3 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> - , <&pro_micro_d 4 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> - , <&pro_micro_d 5 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> - , <&pro_micro_d 7 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> - , <&pro_micro_d 2 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> - , <&pro_micro_d 3 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> - ; - }; -}; \ No newline at end of file From 39fd98236763bd325059ec0d775bad08babcd332 Mon Sep 17 00:00:00 2001 From: Derek Date: Fri, 21 Aug 2020 17:29:18 -0400 Subject: [PATCH 14/48] Swap central back to left hand --- app/boards/shields/splitreus62/splitreus62_left.conf | 2 +- app/boards/shields/splitreus62/splitreus62_right.conf | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/boards/shields/splitreus62/splitreus62_left.conf b/app/boards/shields/splitreus62/splitreus62_left.conf index a835adc1..e51dee44 100644 --- a/app/boards/shields/splitreus62/splitreus62_left.conf +++ b/app/boards/shields/splitreus62/splitreus62_left.conf @@ -1,2 +1,2 @@ CONFIG_ZMK_SPLIT=y -CONFIG_ZMK_SPLIT_BLE_ROLE_PERIPHERAL=y \ No newline at end of file +CONFIG_ZMK_SPLIT_BLE_ROLE_CENTRAL=y \ No newline at end of file diff --git a/app/boards/shields/splitreus62/splitreus62_right.conf b/app/boards/shields/splitreus62/splitreus62_right.conf index e51dee44..a835adc1 100644 --- a/app/boards/shields/splitreus62/splitreus62_right.conf +++ b/app/boards/shields/splitreus62/splitreus62_right.conf @@ -1,2 +1,2 @@ CONFIG_ZMK_SPLIT=y -CONFIG_ZMK_SPLIT_BLE_ROLE_CENTRAL=y \ No newline at end of file +CONFIG_ZMK_SPLIT_BLE_ROLE_PERIPHERAL=y \ No newline at end of file From 0c255aee84155405741ba8fa0c81c6d711106033 Mon Sep 17 00:00:00 2001 From: crd Date: Sat, 22 Aug 2020 09:29:23 -0700 Subject: [PATCH 15/48] [docs] Add bzip to deps --- docs/docs/dev-setup.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docs/docs/dev-setup.md b/docs/docs/dev-setup.md index 6e893b3f..fae0aa09 100644 --- a/docs/docs/dev-setup.md +++ b/docs/docs/dev-setup.md @@ -52,6 +52,7 @@ sudo apt install -y \ autoconf \ automake \ build-essential \ + bzip2 \ ccache \ device-tree-compiler \ dfu-util \ @@ -91,6 +92,7 @@ sudo apt install -y \ autoconf \ automake \ build-essential \ + bzip2 \ ccache \ device-tree-compiler \ dfu-util \ @@ -130,6 +132,7 @@ sudo dnf install -y \ wget \ autoconf \ automake \ + bzip2 \ ccache \ dtc \ dfu-util \ From a0a4b8a2f5abf9e393c1d35e794b2c2e8c0e7abc Mon Sep 17 00:00:00 2001 From: Richard Jones Date: Sat, 22 Aug 2020 21:47:29 +0100 Subject: [PATCH 16/48] Romac (#1) * New shield: romac 2.1 --- app/boards/shields/romac/Kconfig.defconfig | 8 +++ app/boards/shields/romac/Kconfig.shield | 5 ++ .../shields/romac/boards/nice_nano.overlay | 10 ++++ app/boards/shields/romac/romac.conf | 2 + app/boards/shields/romac/romac.dtsi | 50 +++++++++++++++++++ app/boards/shields/romac/romac.keymap | 40 +++++++++++++++ app/boards/shields/romac/romac.overlay | 19 +++++++ 7 files changed, 134 insertions(+) create mode 100644 app/boards/shields/romac/Kconfig.defconfig create mode 100644 app/boards/shields/romac/Kconfig.shield create mode 100644 app/boards/shields/romac/boards/nice_nano.overlay create mode 100644 app/boards/shields/romac/romac.conf create mode 100644 app/boards/shields/romac/romac.dtsi create mode 100644 app/boards/shields/romac/romac.keymap create mode 100644 app/boards/shields/romac/romac.overlay diff --git a/app/boards/shields/romac/Kconfig.defconfig b/app/boards/shields/romac/Kconfig.defconfig new file mode 100644 index 00000000..da50e5c7 --- /dev/null +++ b/app/boards/shields/romac/Kconfig.defconfig @@ -0,0 +1,8 @@ + +if SHIELD_ROMAC + +config ZMK_KEYBOARD_NAME + default "romac" + +endif + diff --git a/app/boards/shields/romac/Kconfig.shield b/app/boards/shields/romac/Kconfig.shield new file mode 100644 index 00000000..a081728f --- /dev/null +++ b/app/boards/shields/romac/Kconfig.shield @@ -0,0 +1,5 @@ +# Copyright (c) 2020 Pete Johansen, Richard Jones +# SPDX-License-Identifier: MIT + +config SHIELD_ROMAC + def_bool $(shields_list_contains,romac) diff --git a/app/boards/shields/romac/boards/nice_nano.overlay b/app/boards/shields/romac/boards/nice_nano.overlay new file mode 100644 index 00000000..1f246d37 --- /dev/null +++ b/app/boards/shields/romac/boards/nice_nano.overlay @@ -0,0 +1,10 @@ +&spi1 { + compatible = "nordic,nrf-spi"; + /* Cannot be used together with i2c0. */ + status = "okay"; + sck-pin = <5>; + mosi-pin = <6>; + miso-pin = <7>; + +}; + diff --git a/app/boards/shields/romac/romac.conf b/app/boards/shields/romac/romac.conf new file mode 100644 index 00000000..5b40fdfb --- /dev/null +++ b/app/boards/shields/romac/romac.conf @@ -0,0 +1,2 @@ +CONFIG_ZMK_RGB_UNDERGLOW=n +CONFIG_WS2812_STRIP=n diff --git a/app/boards/shields/romac/romac.dtsi b/app/boards/shields/romac/romac.dtsi new file mode 100644 index 00000000..db9685f9 --- /dev/null +++ b/app/boards/shields/romac/romac.dtsi @@ -0,0 +1,50 @@ +/* + * Copyright (c) 2020 Pete Johansen, Richard Jones + * + * SPDX-License-Identifier: MIT + */ + +#include + +/ { + chosen { + zmk,kscan = &kscan0; + zmk,matrix_transform = &default_transform; + }; + + default_transform: keymap_transform_0 { + compatible = "zmk,matrix-transform"; + columns = <3>; + rows = <4>; +// | SW1 | SW2 | SW3 | +// | SW4 | SW5 | SW6 | +// | SW7 | SW8 | SW9 | +// | SW10 | SW11 | SW12 | + map = < +RC(0,0) RC(0,1) RC(0,2) +RC(1,0) RC(1,1) RC(1,2) +RC(2,0) RC(2,1) RC(2,2) +RC(3,0) RC(3,1) RC(3,2) + >; + }; + + kscan0: kscan { + compatible = "zmk,kscan-gpio-matrix"; + label = "KSCAN"; + + diode-direction = "col2row"; + row-gpios + = <&pro_micro_d 4 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> + , <&pro_micro_d 5 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> + , <&pro_micro_d 6 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> + , <&pro_micro_d 7 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> + ; + + }; + + bt_unpair_combo: bt_unpair_combo { + compatible = "zmk,bt-unpair-combo"; + }; + +}; + diff --git a/app/boards/shields/romac/romac.keymap b/app/boards/shields/romac/romac.keymap new file mode 100644 index 00000000..101bfaa2 --- /dev/null +++ b/app/boards/shields/romac/romac.keymap @@ -0,0 +1,40 @@ +#include +#include + +/ { + keymap { + compatible = "zmk,keymap"; + + default_layer { +// ------------------- +// | 7 | 8 | 9 | +// | 4 | 5 | 6 | +// | 1 | 2 | 3 | +// | MO(1) | 0 | . | +// ---------------------- + bindings = < + &kp NUM_7 &kp NUM_8 &kp NUM_9 + &kp NUM_4 &kp NUM_5 &kp NUM_6 + &kp NUM_1 &kp NUM_2 &kp NUM_3 + &mo 1 &kp NUM_0 &kp DOT + >; + }; + + nav_layer { +// ----------------------- +// | _ | HOME | PGUP | +// | _ | END | PGDN | +// | _ | _ | _ | +// | _ | _ | RET | +// ----------------------- + bindings = < + &trans &kp HOME &kp PGUP + &trans &kp END &kp PGDN + &trans &trans &trans + &trans &trans &kp RET + >; + }; + }; +}; + + diff --git a/app/boards/shields/romac/romac.overlay b/app/boards/shields/romac/romac.overlay new file mode 100644 index 00000000..f16c9002 --- /dev/null +++ b/app/boards/shields/romac/romac.overlay @@ -0,0 +1,19 @@ +/* + * Copyright (c) 2020 Pete Johansen, Richard Jones + * + * SPDX-License-Identifier: MIT + */ + +#include "romac.dtsi" + +&kscan0 { + col-gpios + = <&pro_micro_a 0 GPIO_ACTIVE_HIGH> + , <&pro_micro_d 15 GPIO_ACTIVE_HIGH> + , <&pro_micro_d 14 GPIO_ACTIVE_HIGH> + ; +}; + +&bt_unpair_combo { + key-positions = <0 11>; +}; From bc023baa7d0a319c5468f0ce4839d1722f17b905 Mon Sep 17 00:00:00 2001 From: Mega Mind <68985133+megamind4089@users.noreply.github.com> Date: Sun, 23 Aug 2020 12:59:39 +0800 Subject: [PATCH 17/48] Incorporate comments - Change config name to nrfmicro specific --- app/boards/arm/nrfmicro/Kconfig | 2 +- app/boards/arm/nrfmicro/Kconfig.defconfig | 2 +- app/boards/arm/nrfmicro/pinmux.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/app/boards/arm/nrfmicro/Kconfig b/app/boards/arm/nrfmicro/Kconfig index 80039e9c..35019722 100644 --- a/app/boards/arm/nrfmicro/Kconfig +++ b/app/boards/arm/nrfmicro/Kconfig @@ -4,7 +4,7 @@ config BOARD_ENABLE_DCDC default y depends on (BOARD_NRFMICRO_11 || BOARD_NRFMICRO_11_FLIPPED || BOARD_NRFMICRO_13) -config BOARD_ENABLE_CHARGER +config BOARD_NRFMICRO_CHARGER bool "Enable battery charger" default y depends on (BOARD_NRFMICRO_13) diff --git a/app/boards/arm/nrfmicro/Kconfig.defconfig b/app/boards/arm/nrfmicro/Kconfig.defconfig index 69b59eeb..9cce5a9b 100644 --- a/app/boards/arm/nrfmicro/Kconfig.defconfig +++ b/app/boards/arm/nrfmicro/Kconfig.defconfig @@ -32,7 +32,7 @@ config PINMUX if BOARD_NRFMICRO_13 -config BOARD_ENABLE_CHARGER +config BOARD_NRFMICRO_CHARGER default y endif # BOARD_NRFMICRO_13 diff --git a/app/boards/arm/nrfmicro/pinmux.c b/app/boards/arm/nrfmicro/pinmux.c index be1a4de4..3792b597 100644 --- a/app/boards/arm/nrfmicro/pinmux.c +++ b/app/boards/arm/nrfmicro/pinmux.c @@ -23,7 +23,7 @@ static int pinmux_nrfmicro_init(struct device *port) gpio_pin_configure(p1, 9, GPIO_OUTPUT); gpio_pin_set(p1, 9, 0); -#if CONFIG_BOARD_ENABLE_CHARGER +#if CONFIG_BOARD_NRFMICRO_CHARGER gpio_pin_configure(p0, 5, GPIO_OUTPUT); gpio_pin_set(p0, 5, 0); #else From ebc3542aa6a4b45be197aa990e2abd514f92ce00 Mon Sep 17 00:00:00 2001 From: Okke Formsma Date: Sun, 23 Aug 2020 14:46:52 +0200 Subject: [PATCH 18/48] fix bug in modtap bahavior which cleared the wrong keycode events --- app/src/behaviors/behavior_mod_tap.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/behaviors/behavior_mod_tap.c b/app/src/behaviors/behavior_mod_tap.c index 6151f7e9..5a2f60e2 100644 --- a/app/src/behaviors/behavior_mod_tap.c +++ b/app/src/behaviors/behavior_mod_tap.c @@ -193,8 +193,8 @@ static int on_keymap_binding_released(struct device *dev, u32_t position, u32_t } struct keycode_state_changed *ev = data->captured_keycode_events[j].event; - data->captured_keycode_events[i].event = NULL; - data->captured_keycode_events[i].active_mods = 0; + data->captured_keycode_events[j].event = NULL; + data->captured_keycode_events[j].active_mods = 0; LOG_DBG("Re-sending latched key press for usage page 0x%02X keycode 0x%02X state %s", ev->usage_page, ev->keycode, (ev->state ? "pressed" : "released")); ZMK_EVENT_RELEASE(ev); k_msleep(10); From 221535fdc1c921c132d8a8539c62eb18e9c5f681 Mon Sep 17 00:00:00 2001 From: Richard Jones Date: Sun, 23 Aug 2020 19:28:03 +0100 Subject: [PATCH 19/48] refactor to remove SPI; no need for shared DTSI --- .../shields/romac/boards/nice_nano.overlay | 10 ---- app/boards/shields/romac/romac.conf | 2 - app/boards/shields/romac/romac.dtsi | 50 ---------------- app/boards/shields/romac/romac.overlay | 60 +++++++++++++++---- 4 files changed, 49 insertions(+), 73 deletions(-) delete mode 100644 app/boards/shields/romac/boards/nice_nano.overlay delete mode 100644 app/boards/shields/romac/romac.dtsi diff --git a/app/boards/shields/romac/boards/nice_nano.overlay b/app/boards/shields/romac/boards/nice_nano.overlay deleted file mode 100644 index 1f246d37..00000000 --- a/app/boards/shields/romac/boards/nice_nano.overlay +++ /dev/null @@ -1,10 +0,0 @@ -&spi1 { - compatible = "nordic,nrf-spi"; - /* Cannot be used together with i2c0. */ - status = "okay"; - sck-pin = <5>; - mosi-pin = <6>; - miso-pin = <7>; - -}; - diff --git a/app/boards/shields/romac/romac.conf b/app/boards/shields/romac/romac.conf index 5b40fdfb..e69de29b 100644 --- a/app/boards/shields/romac/romac.conf +++ b/app/boards/shields/romac/romac.conf @@ -1,2 +0,0 @@ -CONFIG_ZMK_RGB_UNDERGLOW=n -CONFIG_WS2812_STRIP=n diff --git a/app/boards/shields/romac/romac.dtsi b/app/boards/shields/romac/romac.dtsi deleted file mode 100644 index db9685f9..00000000 --- a/app/boards/shields/romac/romac.dtsi +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Copyright (c) 2020 Pete Johansen, Richard Jones - * - * SPDX-License-Identifier: MIT - */ - -#include - -/ { - chosen { - zmk,kscan = &kscan0; - zmk,matrix_transform = &default_transform; - }; - - default_transform: keymap_transform_0 { - compatible = "zmk,matrix-transform"; - columns = <3>; - rows = <4>; -// | SW1 | SW2 | SW3 | -// | SW4 | SW5 | SW6 | -// | SW7 | SW8 | SW9 | -// | SW10 | SW11 | SW12 | - map = < -RC(0,0) RC(0,1) RC(0,2) -RC(1,0) RC(1,1) RC(1,2) -RC(2,0) RC(2,1) RC(2,2) -RC(3,0) RC(3,1) RC(3,2) - >; - }; - - kscan0: kscan { - compatible = "zmk,kscan-gpio-matrix"; - label = "KSCAN"; - - diode-direction = "col2row"; - row-gpios - = <&pro_micro_d 4 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> - , <&pro_micro_d 5 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> - , <&pro_micro_d 6 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> - , <&pro_micro_d 7 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> - ; - - }; - - bt_unpair_combo: bt_unpair_combo { - compatible = "zmk,bt-unpair-combo"; - }; - -}; - diff --git a/app/boards/shields/romac/romac.overlay b/app/boards/shields/romac/romac.overlay index f16c9002..7449703e 100644 --- a/app/boards/shields/romac/romac.overlay +++ b/app/boards/shields/romac/romac.overlay @@ -4,16 +4,54 @@ * SPDX-License-Identifier: MIT */ -#include "romac.dtsi" - -&kscan0 { - col-gpios - = <&pro_micro_a 0 GPIO_ACTIVE_HIGH> - , <&pro_micro_d 15 GPIO_ACTIVE_HIGH> - , <&pro_micro_d 14 GPIO_ACTIVE_HIGH> - ; -}; +#include + +/ { + chosen { + zmk,kscan = &kscan0; + zmk,matrix_transform = &default_transform; + }; + + default_transform: keymap_transform_0 { + compatible = "zmk,matrix-transform"; + columns = <3>; + rows = <4>; +// | SW1 | SW2 | SW3 | +// | SW4 | SW5 | SW6 | +// | SW7 | SW8 | SW9 | +// | SW10 | SW11 | SW12 | + map = < +RC(0,0) RC(0,1) RC(0,2) +RC(1,0) RC(1,1) RC(1,2) +RC(2,0) RC(2,1) RC(2,2) +RC(3,0) RC(3,1) RC(3,2) + >; + }; + + kscan0: kscan { + compatible = "zmk,kscan-gpio-matrix"; + label = "KSCAN"; + + diode-direction = "col2row"; + row-gpios + = <&pro_micro_d 4 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> + , <&pro_micro_d 5 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> + , <&pro_micro_d 6 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> + , <&pro_micro_d 7 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> + ; + + col-gpios + = <&pro_micro_a 0 GPIO_ACTIVE_HIGH> + , <&pro_micro_d 15 GPIO_ACTIVE_HIGH> + , <&pro_micro_d 14 GPIO_ACTIVE_HIGH> + ; + + }; + + bt_unpair_combo: bt_unpair_combo { + compatible = "zmk,bt-unpair-combo"; + key-positions = <0 11>; + }; -&bt_unpair_combo { - key-positions = <0 11>; }; + From 9b5af05f164582f22f3b4021c48660153f510ef2 Mon Sep 17 00:00:00 2001 From: Richard Jones Date: Sun, 23 Aug 2020 19:59:41 +0100 Subject: [PATCH 20/48] Make the shield name on-brand --- app/boards/shields/romac/Kconfig.defconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/boards/shields/romac/Kconfig.defconfig b/app/boards/shields/romac/Kconfig.defconfig index da50e5c7..b6490ac5 100644 --- a/app/boards/shields/romac/Kconfig.defconfig +++ b/app/boards/shields/romac/Kconfig.defconfig @@ -2,7 +2,7 @@ if SHIELD_ROMAC config ZMK_KEYBOARD_NAME - default "romac" + default "RoMac" endif From 3ce94593652b89a6f5a59fce9fba284b022cc946 Mon Sep 17 00:00:00 2001 From: Richard Jones Date: Sun, 23 Aug 2020 20:02:28 +0100 Subject: [PATCH 21/48] Add license / copyright --- app/boards/shields/romac/Kconfig.defconfig | 5 +++++ app/boards/shields/romac/romac.keymap | 6 ++++++ 2 files changed, 11 insertions(+) diff --git a/app/boards/shields/romac/Kconfig.defconfig b/app/boards/shields/romac/Kconfig.defconfig index b6490ac5..0ef6f6b4 100644 --- a/app/boards/shields/romac/Kconfig.defconfig +++ b/app/boards/shields/romac/Kconfig.defconfig @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2020 Pete Johansen, Richard Jones + * + * SPDX-License-Identifier: MIT + */ if SHIELD_ROMAC diff --git a/app/boards/shields/romac/romac.keymap b/app/boards/shields/romac/romac.keymap index 101bfaa2..5557383d 100644 --- a/app/boards/shields/romac/romac.keymap +++ b/app/boards/shields/romac/romac.keymap @@ -1,3 +1,9 @@ +/* + * Copyright (c) 2020 Pete Johansen, Richard Jones + * + * SPDX-License-Identifier: MIT + */ + #include #include From cafd5c1fe2fade4646bc901d2aa6a185ca842f4d Mon Sep 17 00:00:00 2001 From: Richard Jones Date: Sun, 23 Aug 2020 20:05:56 +0100 Subject: [PATCH 22/48] Oops comment format --- app/boards/shields/romac/Kconfig.defconfig | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/app/boards/shields/romac/Kconfig.defconfig b/app/boards/shields/romac/Kconfig.defconfig index 0ef6f6b4..50e4fdc5 100644 --- a/app/boards/shields/romac/Kconfig.defconfig +++ b/app/boards/shields/romac/Kconfig.defconfig @@ -1,8 +1,6 @@ -/* - * Copyright (c) 2020 Pete Johansen, Richard Jones - * - * SPDX-License-Identifier: MIT - */ +# Copyright (c) 2020 Pete Johansen, Richard Jones +# +# SPDX-License-Identifier: MIT if SHIELD_ROMAC From 3affd45f0d4c85e417a9da27737cef4350c43a84 Mon Sep 17 00:00:00 2001 From: Richard Jones Date: Sun, 23 Aug 2020 20:08:00 +0100 Subject: [PATCH 23/48] Formatting --- app/boards/shields/romac/Kconfig.defconfig | 1 - 1 file changed, 1 deletion(-) diff --git a/app/boards/shields/romac/Kconfig.defconfig b/app/boards/shields/romac/Kconfig.defconfig index 50e4fdc5..22be9fe9 100644 --- a/app/boards/shields/romac/Kconfig.defconfig +++ b/app/boards/shields/romac/Kconfig.defconfig @@ -1,5 +1,4 @@ # Copyright (c) 2020 Pete Johansen, Richard Jones -# # SPDX-License-Identifier: MIT if SHIELD_ROMAC From 6ac1a324e0bf91a405333e4bf89b4b35a50afc49 Mon Sep 17 00:00:00 2001 From: Richard Jones Date: Wed, 26 Aug 2020 21:25:26 +0100 Subject: [PATCH 24/48] Typo --- app/boards/shields/romac/Kconfig.defconfig | 2 +- app/boards/shields/romac/Kconfig.shield | 2 +- app/boards/shields/romac/romac.keymap | 2 +- app/boards/shields/romac/romac.overlay | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/app/boards/shields/romac/Kconfig.defconfig b/app/boards/shields/romac/Kconfig.defconfig index 22be9fe9..53527971 100644 --- a/app/boards/shields/romac/Kconfig.defconfig +++ b/app/boards/shields/romac/Kconfig.defconfig @@ -1,4 +1,4 @@ -# Copyright (c) 2020 Pete Johansen, Richard Jones +# Copyright (c) 2020 Pete Johanson, Richard Jones # SPDX-License-Identifier: MIT if SHIELD_ROMAC diff --git a/app/boards/shields/romac/Kconfig.shield b/app/boards/shields/romac/Kconfig.shield index a081728f..59669d33 100644 --- a/app/boards/shields/romac/Kconfig.shield +++ b/app/boards/shields/romac/Kconfig.shield @@ -1,4 +1,4 @@ -# Copyright (c) 2020 Pete Johansen, Richard Jones +# Copyright (c) 2020 Pete Johanson, Richard Jones # SPDX-License-Identifier: MIT config SHIELD_ROMAC diff --git a/app/boards/shields/romac/romac.keymap b/app/boards/shields/romac/romac.keymap index 5557383d..f94a8290 100644 --- a/app/boards/shields/romac/romac.keymap +++ b/app/boards/shields/romac/romac.keymap @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020 Pete Johansen, Richard Jones + * Copyright (c) 2020 Pete Johanson, Richard Jones * * SPDX-License-Identifier: MIT */ diff --git a/app/boards/shields/romac/romac.overlay b/app/boards/shields/romac/romac.overlay index 7449703e..cae05688 100644 --- a/app/boards/shields/romac/romac.overlay +++ b/app/boards/shields/romac/romac.overlay @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020 Pete Johansen, Richard Jones + * Copyright (c) 2020 Pete Johanson, Richard Jones * * SPDX-License-Identifier: MIT */ From b8fbc3784d0e3dcb3bfba39c0936b2a110894ef8 Mon Sep 17 00:00:00 2001 From: Richard Jones Date: Wed, 26 Aug 2020 21:25:46 +0100 Subject: [PATCH 25/48] Not needed --- app/boards/shields/romac/romac.overlay | 17 ----------------- 1 file changed, 17 deletions(-) diff --git a/app/boards/shields/romac/romac.overlay b/app/boards/shields/romac/romac.overlay index cae05688..67d5868b 100644 --- a/app/boards/shields/romac/romac.overlay +++ b/app/boards/shields/romac/romac.overlay @@ -9,23 +9,6 @@ / { chosen { zmk,kscan = &kscan0; - zmk,matrix_transform = &default_transform; - }; - - default_transform: keymap_transform_0 { - compatible = "zmk,matrix-transform"; - columns = <3>; - rows = <4>; -// | SW1 | SW2 | SW3 | -// | SW4 | SW5 | SW6 | -// | SW7 | SW8 | SW9 | -// | SW10 | SW11 | SW12 | - map = < -RC(0,0) RC(0,1) RC(0,2) -RC(1,0) RC(1,1) RC(1,2) -RC(2,0) RC(2,1) RC(2,2) -RC(3,0) RC(3,1) RC(3,2) - >; }; kscan0: kscan { From e5da5ea40d3971af272e5004deb6ed3f1d151788 Mon Sep 17 00:00:00 2001 From: Richard Jones Date: Wed, 26 Aug 2020 21:31:46 +0100 Subject: [PATCH 26/48] add romac to build --- .github/workflows/build.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 5086bf8e..c8a711c1 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -16,6 +16,7 @@ jobs: - kyria_right - lily58_left - lily58_right + - romac include: - board: proton_c shield: clueboard_california From 79f0ecf8b5a79f280c5f25209701218caa8e8b2a Mon Sep 17 00:00:00 2001 From: jrhe <4038905+jrhe@users.noreply.github.com> Date: Fri, 28 Aug 2020 01:02:50 +0100 Subject: [PATCH 27/48] Correct number of rows in Lily58 shield --- app/boards/shields/lily58/lily58.dtsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/boards/shields/lily58/lily58.dtsi b/app/boards/shields/lily58/lily58.dtsi index 24f6805d..23f5644e 100644 --- a/app/boards/shields/lily58/lily58.dtsi +++ b/app/boards/shields/lily58/lily58.dtsi @@ -15,7 +15,7 @@ default_transform: keymap_transform_0 { compatible = "zmk,matrix-transform"; columns = <16>; - rows = <4>; + rows = <5>; // | SW6 | SW5 | SW4 | SW3 | SW2 | SW1 | | SW1 | SW2 | SW3 | SW4 | SW5 | SW6 | // | SW12 | SW11 | SW10 | SW9 | SW8 | SW7 | | SW7 | SW8 | SW9 | SW10 | SW11 | SW12 | // | SW18 | SW17 | SW16 | SW15 | SW14 | SW13 | | SW13 | SW14 | SW15 | SW16 | SW17 | SW18 | From ac3e4af1ce7fb40495c50eb2184b43ecbe1f11a9 Mon Sep 17 00:00:00 2001 From: tominabox1 Date: Thu, 27 Aug 2020 19:09:40 -0500 Subject: [PATCH 28/48] Add QAZ shield --- app/boards/shields/qaz/Kconfig.defconfig | 6 ++ app/boards/shields/qaz/Kconfig.shield | 2 + .../shields/qaz/boards/nice_nano.overlay | 22 ++++++ app/boards/shields/qaz/qaz.conf | 26 +++++++ app/boards/shields/qaz/qaz.keymap | 75 +++++++++++++++++++ app/boards/shields/qaz/qaz.overlay | 48 ++++++++++++ 6 files changed, 179 insertions(+) create mode 100644 app/boards/shields/qaz/Kconfig.defconfig create mode 100644 app/boards/shields/qaz/Kconfig.shield create mode 100644 app/boards/shields/qaz/boards/nice_nano.overlay create mode 100644 app/boards/shields/qaz/qaz.conf create mode 100644 app/boards/shields/qaz/qaz.keymap create mode 100644 app/boards/shields/qaz/qaz.overlay diff --git a/app/boards/shields/qaz/Kconfig.defconfig b/app/boards/shields/qaz/Kconfig.defconfig new file mode 100644 index 00000000..18cceaab --- /dev/null +++ b/app/boards/shields/qaz/Kconfig.defconfig @@ -0,0 +1,6 @@ +if SHIELD_QAZ + +config ZMK_KEYBOARD_NAME + default "QAZ" + +endif \ No newline at end of file diff --git a/app/boards/shields/qaz/Kconfig.shield b/app/boards/shields/qaz/Kconfig.shield new file mode 100644 index 00000000..1e1112a8 --- /dev/null +++ b/app/boards/shields/qaz/Kconfig.shield @@ -0,0 +1,2 @@ +config SHIELD_MY_BOARD + def_bool $(shields_list_contains,qaz) diff --git a/app/boards/shields/qaz/boards/nice_nano.overlay b/app/boards/shields/qaz/boards/nice_nano.overlay new file mode 100644 index 00000000..2927d0d4 --- /dev/null +++ b/app/boards/shields/qaz/boards/nice_nano.overlay @@ -0,0 +1,22 @@ +&spi1 { + compatible = "nordic,nrf-spi"; + status = "okay"; + mosi-pin = <47>; + // Unused pins, needed for SPI definition, but not used by the ws2812 driver itself. + sck-pin = <5>; + miso-pin = <7>; + + led_strip: ws2812@0 { + compatible = "worldsemi,ws2812-spi"; + label = "WS2812"; + + /* SPI */ + reg = <0>; /* ignored, but necessary for SPI bindings */ + spi-max-frequency = <4000000>; + + /* WS2812 */ + chain-length = <21>; /* number of LEDs */ + spi-one-frame = <0x70>; + spi-zero-frame = <0x40>; + }; +}; \ No newline at end of file diff --git a/app/boards/shields/qaz/qaz.conf b/app/boards/shields/qaz/qaz.conf new file mode 100644 index 00000000..7d6da438 --- /dev/null +++ b/app/boards/shields/qaz/qaz.conf @@ -0,0 +1,26 @@ +CONFIG_ZMK_RGB_UNDERGLOW=n +# Use the STRIP config specific to the LEDs you're using +CONFIG_WS2812_STRIP=n +# Turn on logging, and set ZMK logging to debug output +CONFIG_LOG=y +CONFIG_ZMK_LOG_LEVEL_DBG=y + +# Turn on USB CDC ACM device +CONFIG_USB=y +CONFIG_USB_DEVICE_STACK=y +CONFIG_USB_CDC_ACM=y +CONFIG_USB_CDC_ACM_RINGBUF_SIZE=1024 +CONFIG_USB_CDC_ACM_DEVICE_NAME="CDC_ACM" +CONFIG_USB_CDC_ACM_DEVICE_COUNT=1 + +# Enable serial console +CONFIG_SERIAL=y +CONFIG_CONSOLE=y +CONFIG_UART_INTERRUPT_DRIVEN=y +CONFIG_UART_LINE_CTRL=y + +# Enable USB UART, and set the console device +CONFIG_UART_CONSOLE=y +CONFIG_USB_UART_CONSOLE=y +CONFIG_UART_CONSOLE_ON_DEV_NAME="CDC_ACM_0" +CONFIG_USB_UART_DTR_WAIT=n \ No newline at end of file diff --git a/app/boards/shields/qaz/qaz.keymap b/app/boards/shields/qaz/qaz.keymap new file mode 100644 index 00000000..fa4ede17 --- /dev/null +++ b/app/boards/shields/qaz/qaz.keymap @@ -0,0 +1,75 @@ +#include +#include +#include + +#define DEFAULT 0 +#define NUM_SYM 1 +#define NAV 2 + +/ { + behaviors { + rst: behavior_tap_hold1 { + compatible = "zmk,behavior-tap-hold"; + label = "Bootloader Tap - Reset Hold"; + #binding-cells = <0>; + hold_ms = <200>; + bindings = <&bootloader>, <&reset>, <&kp BKSP>; + }; + + num_spc: behavior_tap_hold2 { + compatible = "zmk,behavior-tap-hold"; + label = "Space Tap - Num/Sym Hold"; + #binding-cells = <0>; + hold_ms = <300>; + bindings = <&kp SPC>, <&mo NUM_SYM>; + }; + + ent_nav: behavior_tap_hold{ + compatible = "zmk,behavior-tap-hold"; + label = "Return Tap - Nav Hold"; + #binding-cells = <0>; + hold_ms = <100>; + bindings = <&kp RET>, <&mo NAV>; + }; + + com_col: behavior_tap_hold10 { + compatible = "zmk,behavior-tap-hold"; + label = ", tap, hold"; + #binding-cells = <0>; + hold_ms = <200>; + bindings = <&kp CMMA>, <&kp SCLN>, <&kp BKSP>; + }; + }; + }; + +/ { + keymap { + compatible = "zmk,keymap"; + + default_layer { + bindings = < + &kp Q &kp W &kp F &kp P &kp G &kp J &kp L &kp U &kp Y &kp QUOT + &kp A &kp R &kp S &kp T &kp D &kp H &kp N &kp E &kp I &kp O + &kp Z &kp X &kp C &kp V &kp B &kp K &kp M &com_col &kp DOT + &kp LSFT &kp LGUI &kp TAB &ent_nav &num_spc &kp LCTL &kp LALT &kp FSLH + >; + }; + num_sym { + bindings = < + &kp NUM_1 &kp NUM_2 &kp NUM_3 &kp NUM_4 &kp NUM_5 &kp NUM_6 &kp NUM_7 &kp NUM_8 &kp NUM_9 &kp NUM_0 + &trans &trans &trans &trans &trans &trans &trans &trans &kp EQL &kp MINUS + &kp DEL &none &none &none &none &none &none &none &kp DOT + &rst &none &none &trans &trans &kp RET &trans &kp FSLH + >; + }; + + nav { + bindings = < + &none &none &none &none &none &none &none &kp UARW &none &kp BKSP + &trans &trans &trans &trans &none &none &kp LARW &kp DARW &kp RARW &none + &none &none &none &none &none &none &none &none &none + &rgb_ug RGB_TOG &rgb_ug RGB_EFF &none &trans &trans &kp RET &trans &kp FSLH + >; + }; + }; +}; \ No newline at end of file diff --git a/app/boards/shields/qaz/qaz.overlay b/app/boards/shields/qaz/qaz.overlay new file mode 100644 index 00000000..3dae7dda --- /dev/null +++ b/app/boards/shields/qaz/qaz.overlay @@ -0,0 +1,48 @@ +#include + +/ { + chosen { + zmk,kscan = &kscan0; + zmk,matrix_transform = &default_transform; + zmk,underglow = &led_strip; + }; + + default_transform: keymap_transform_0 { + compatible = "zmk,matrix-transform"; + columns = <7>; + rows = <6>; + map = < + RC(0,0) RC(0,1) RC(0,2) RC(0,3) RC(0,4) RC(0,5) RC(0,6) RC(4,0) RC(4,1) RC(4,2) + RC(1,0) RC(1,1) RC(1,2) RC(1,3) RC(1,4) RC(1,5) RC(1,6) RC(5,0) RC(5,1) RC(5,2) + RC(2,0) RC(2,1) RC(2,2) RC(2,3) RC(2,4) RC(2,5) RC(2,6) RC(4,3) RC(5,3) + RC(3,0) RC(3,1) RC(3,2) RC(3,3) RC(3,4) RC(3,5) RC(3,6) RC(4,4) + >; + }; + + + kscan0: kscan_0 { + compatible = "zmk,kscan-gpio-matrix"; + label = "KSCAN"; + diode-direction = "col2row"; + + col-gpios + = <&pro_micro_d 8 GPIO_ACTIVE_HIGH> + , <&pro_micro_d 1 GPIO_ACTIVE_HIGH> + , <&pro_micro_d 0 GPIO_ACTIVE_HIGH> + , <&pro_micro_a 2 GPIO_ACTIVE_HIGH> + , <&pro_micro_d 9 GPIO_ACTIVE_HIGH> + , <&pro_micro_a 1 GPIO_ACTIVE_HIGH> + , <&pro_micro_d 6 GPIO_ACTIVE_HIGH> + ; + + row-gpios + = <&pro_micro_a 3 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> + , <&pro_micro_d 4 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> + , <&pro_micro_d 5 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> + , <&pro_micro_d 7 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> + , <&pro_micro_d 2 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> + , <&pro_micro_d 3 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> + ; + }; + +}; \ No newline at end of file From cbea2d5bed4562a9fea8480c9c23b2365c2378a4 Mon Sep 17 00:00:00 2001 From: Cody McGinnis Date: Thu, 27 Aug 2020 23:12:56 -0400 Subject: [PATCH 29/48] fix(behavior): none should not be transparent --- app/src/behaviors/behavior_none.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/behaviors/behavior_none.c b/app/src/behaviors/behavior_none.c index 7e77e540..e822d5e1 100644 --- a/app/src/behaviors/behavior_none.c +++ b/app/src/behaviors/behavior_none.c @@ -23,12 +23,12 @@ static int behavior_none_init(struct device *dev) static int on_keymap_binding_pressed(struct device *dev, u32_t position, u32_t _param1, u32_t _param2) { - return 1; + return 0; } static int on_keymap_binding_released(struct device *dev, u32_t position, u32_t _param1, u32_t _param2) { - return 1; + return 0; } static const struct behavior_driver_api behavior_none_driver_api = { From cf003262e63a29dd6384645a8c96951a963f30d3 Mon Sep 17 00:00:00 2001 From: tominabox1 Date: Thu, 27 Aug 2020 22:23:27 -0500 Subject: [PATCH 30/48] Remove RGB, Remove debug, Add Copyright and Licenses --- app/boards/shields/qaz/Kconfig.defconfig | 3 ++ app/boards/shields/qaz/Kconfig.shield | 5 +- .../shields/qaz/boards/nice_nano.overlay | 22 --------- app/boards/shields/qaz/qaz.conf | 26 ---------- app/boards/shields/qaz/qaz.keymap | 49 +++---------------- app/boards/shields/qaz/qaz.overlay | 7 ++- 6 files changed, 19 insertions(+), 93 deletions(-) delete mode 100644 app/boards/shields/qaz/boards/nice_nano.overlay delete mode 100644 app/boards/shields/qaz/qaz.conf diff --git a/app/boards/shields/qaz/Kconfig.defconfig b/app/boards/shields/qaz/Kconfig.defconfig index 18cceaab..f82f4586 100644 --- a/app/boards/shields/qaz/Kconfig.defconfig +++ b/app/boards/shields/qaz/Kconfig.defconfig @@ -1,3 +1,6 @@ + # Copyright (c) 2020 TJ Campie + # SPDX-License-Identifier: MIT + if SHIELD_QAZ config ZMK_KEYBOARD_NAME diff --git a/app/boards/shields/qaz/Kconfig.shield b/app/boards/shields/qaz/Kconfig.shield index 1e1112a8..9da60772 100644 --- a/app/boards/shields/qaz/Kconfig.shield +++ b/app/boards/shields/qaz/Kconfig.shield @@ -1,2 +1,5 @@ -config SHIELD_MY_BOARD +# Copyright (c) 2020 TJ Campie +# SPDX-License-Identifier: MIT + + config SHIELD_MY_BOARD def_bool $(shields_list_contains,qaz) diff --git a/app/boards/shields/qaz/boards/nice_nano.overlay b/app/boards/shields/qaz/boards/nice_nano.overlay deleted file mode 100644 index 2927d0d4..00000000 --- a/app/boards/shields/qaz/boards/nice_nano.overlay +++ /dev/null @@ -1,22 +0,0 @@ -&spi1 { - compatible = "nordic,nrf-spi"; - status = "okay"; - mosi-pin = <47>; - // Unused pins, needed for SPI definition, but not used by the ws2812 driver itself. - sck-pin = <5>; - miso-pin = <7>; - - led_strip: ws2812@0 { - compatible = "worldsemi,ws2812-spi"; - label = "WS2812"; - - /* SPI */ - reg = <0>; /* ignored, but necessary for SPI bindings */ - spi-max-frequency = <4000000>; - - /* WS2812 */ - chain-length = <21>; /* number of LEDs */ - spi-one-frame = <0x70>; - spi-zero-frame = <0x40>; - }; -}; \ No newline at end of file diff --git a/app/boards/shields/qaz/qaz.conf b/app/boards/shields/qaz/qaz.conf deleted file mode 100644 index 7d6da438..00000000 --- a/app/boards/shields/qaz/qaz.conf +++ /dev/null @@ -1,26 +0,0 @@ -CONFIG_ZMK_RGB_UNDERGLOW=n -# Use the STRIP config specific to the LEDs you're using -CONFIG_WS2812_STRIP=n -# Turn on logging, and set ZMK logging to debug output -CONFIG_LOG=y -CONFIG_ZMK_LOG_LEVEL_DBG=y - -# Turn on USB CDC ACM device -CONFIG_USB=y -CONFIG_USB_DEVICE_STACK=y -CONFIG_USB_CDC_ACM=y -CONFIG_USB_CDC_ACM_RINGBUF_SIZE=1024 -CONFIG_USB_CDC_ACM_DEVICE_NAME="CDC_ACM" -CONFIG_USB_CDC_ACM_DEVICE_COUNT=1 - -# Enable serial console -CONFIG_SERIAL=y -CONFIG_CONSOLE=y -CONFIG_UART_INTERRUPT_DRIVEN=y -CONFIG_UART_LINE_CTRL=y - -# Enable USB UART, and set the console device -CONFIG_UART_CONSOLE=y -CONFIG_USB_UART_CONSOLE=y -CONFIG_UART_CONSOLE_ON_DEV_NAME="CDC_ACM_0" -CONFIG_USB_UART_DTR_WAIT=n \ No newline at end of file diff --git a/app/boards/shields/qaz/qaz.keymap b/app/boards/shields/qaz/qaz.keymap index fa4ede17..cebcd4b9 100644 --- a/app/boards/shields/qaz/qaz.keymap +++ b/app/boards/shields/qaz/qaz.keymap @@ -1,46 +1,9 @@ #include #include -#include #define DEFAULT 0 #define NUM_SYM 1 #define NAV 2 - -/ { - behaviors { - rst: behavior_tap_hold1 { - compatible = "zmk,behavior-tap-hold"; - label = "Bootloader Tap - Reset Hold"; - #binding-cells = <0>; - hold_ms = <200>; - bindings = <&bootloader>, <&reset>, <&kp BKSP>; - }; - - num_spc: behavior_tap_hold2 { - compatible = "zmk,behavior-tap-hold"; - label = "Space Tap - Num/Sym Hold"; - #binding-cells = <0>; - hold_ms = <300>; - bindings = <&kp SPC>, <&mo NUM_SYM>; - }; - - ent_nav: behavior_tap_hold{ - compatible = "zmk,behavior-tap-hold"; - label = "Return Tap - Nav Hold"; - #binding-cells = <0>; - hold_ms = <100>; - bindings = <&kp RET>, <&mo NAV>; - }; - - com_col: behavior_tap_hold10 { - compatible = "zmk,behavior-tap-hold"; - label = ", tap, hold"; - #binding-cells = <0>; - hold_ms = <200>; - bindings = <&kp CMMA>, <&kp SCLN>, <&kp BKSP>; - }; - }; - }; / { keymap { @@ -48,10 +11,10 @@ default_layer { bindings = < - &kp Q &kp W &kp F &kp P &kp G &kp J &kp L &kp U &kp Y &kp QUOT - &kp A &kp R &kp S &kp T &kp D &kp H &kp N &kp E &kp I &kp O - &kp Z &kp X &kp C &kp V &kp B &kp K &kp M &com_col &kp DOT - &kp LSFT &kp LGUI &kp TAB &ent_nav &num_spc &kp LCTL &kp LALT &kp FSLH + &kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P + &kp A &kp S &kp D &kp F &kp G &kp H &kp J &kp K &kp L &kp RET + &kp Z &kp X &kp C &kp V &kp B &kp N &kp M &kp CMMA &kp DOT + &kp LSFT &kp LGUI &kp LALT &mo NAV &kp SPC &mo NUM_SYM &kp QUOT &kp FSLH >; }; num_sym { @@ -59,7 +22,7 @@ &kp NUM_1 &kp NUM_2 &kp NUM_3 &kp NUM_4 &kp NUM_5 &kp NUM_6 &kp NUM_7 &kp NUM_8 &kp NUM_9 &kp NUM_0 &trans &trans &trans &trans &trans &trans &trans &trans &kp EQL &kp MINUS &kp DEL &none &none &none &none &none &none &none &kp DOT - &rst &none &none &trans &trans &kp RET &trans &kp FSLH + &bootloader &reset &none &trans &trans &kp RET &trans &kp FSLH >; }; @@ -68,7 +31,7 @@ &none &none &none &none &none &none &none &kp UARW &none &kp BKSP &trans &trans &trans &trans &none &none &kp LARW &kp DARW &kp RARW &none &none &none &none &none &none &none &none &none &none - &rgb_ug RGB_TOG &rgb_ug RGB_EFF &none &trans &trans &kp RET &trans &kp FSLH + &none &none &none &none &none &trans &trans &kp RET &trans &kp FSLH >; }; }; diff --git a/app/boards/shields/qaz/qaz.overlay b/app/boards/shields/qaz/qaz.overlay index 3dae7dda..472005b9 100644 --- a/app/boards/shields/qaz/qaz.overlay +++ b/app/boards/shields/qaz/qaz.overlay @@ -1,10 +1,15 @@ +/* + * Copyright (c) 2020 TJ Campie + * + * SPDX-License-Identifier: MIT + */ + #include / { chosen { zmk,kscan = &kscan0; zmk,matrix_transform = &default_transform; - zmk,underglow = &led_strip; }; default_transform: keymap_transform_0 { From f02fa01e9a9af1a1637a387f3e8044a791b47ced Mon Sep 17 00:00:00 2001 From: Cody McGinnis Date: Fri, 28 Aug 2020 16:21:31 -0400 Subject: [PATCH 31/48] fix(test): change the layout --- app/boards/native_posix.conf | 3 +- app/boards/native_posix.overlay | 73 ++----------------- app/dts/bindings/zmk,kscan-mock.yaml | 2 + .../{ => dt-bindings}/zmk/kscan-mock.h | 0 app/prj.conf | 0 app/run-test.sh | 17 +++++ app/src/kscan_mock.c | 12 ++- app/tests/keypress/behavior_keymap.dtsi | 28 +++++++ .../keypress/cp-press-release/events.patterns | 1 + .../cp-press-release/keycode_events.snapshot | 2 + .../cp-press-release/native_posix.keymap | 5 ++ .../keypress/kp-press-release/events.patterns | 1 + .../kp-press-release/keycode_events.snapshot | 2 + .../kp-press-release/native_posix.keymap | 8 ++ 14 files changed, 82 insertions(+), 72 deletions(-) rename app/include/{ => dt-bindings}/zmk/kscan-mock.h (100%) create mode 100644 app/prj.conf create mode 100755 app/run-test.sh create mode 100644 app/tests/keypress/behavior_keymap.dtsi create mode 100644 app/tests/keypress/cp-press-release/events.patterns create mode 100644 app/tests/keypress/cp-press-release/keycode_events.snapshot create mode 100644 app/tests/keypress/cp-press-release/native_posix.keymap create mode 100644 app/tests/keypress/kp-press-release/events.patterns create mode 100644 app/tests/keypress/kp-press-release/keycode_events.snapshot create mode 100644 app/tests/keypress/kp-press-release/native_posix.keymap diff --git a/app/boards/native_posix.conf b/app/boards/native_posix.conf index 5bfb366c..357b1b86 100644 --- a/app/boards/native_posix.conf +++ b/app/boards/native_posix.conf @@ -1,9 +1,8 @@ CONFIG_KSCAN=n CONFIG_ZMK_KSCAN_MOCK_DRIVER=y -CONFIG_ZMK_KSCAN_COMPOSITE_DRIVER=y CONFIG_ZMK_KSCAN_GPIO_DRIVER=n CONFIG_GPIO=n CONFIG_ZMK_BLE=n CONFIG_LOG=y -CONFIG_KSCAN_LOG_LEVEL_DBG=y +CONFIG_LOG_BACKEND_SHOW_COLOR=n CONFIG_ZMK_LOG_LEVEL_DBG=y diff --git a/app/boards/native_posix.overlay b/app/boards/native_posix.overlay index e9c4c959..bbb23b65 100644 --- a/app/boards/native_posix.overlay +++ b/app/boards/native_posix.overlay @@ -1,79 +1,18 @@ -#include #include -#include +#include +#include / { chosen { - zmk,kscan = &kscan0; - zmk,keymap = &keymap0; - }; - - kscan0: kscan_0 { - compatible = "zmk,kscan-composite"; - label = "KSCAN_COMP"; - rows = <2>; - columns = <4>; - - left: left { - kscan = <&left_hand>; - }; - - right: right { - kscan = <&right_hand>; - column-offset = <2>; - }; + zmk,kscan = &kscan; }; - left_hand: kscan_1 { + kscan: kscan { compatible = "zmk,kscan-mock"; - label = "KSCAN_LEFT"; + label = "KSCAN_MOCK"; rows = <2>; columns = <2>; - events = ; - // events = ; - }; - - right_hand: kscan_2 { - compatible = "zmk,kscan-mock"; - label = "KSCAN_RIGHT"; - - rows = <2>; - columns = <2>; - events = ; - }; - - keymap0: keymap { - compatible = "zmk,keymap"; - label ="Default keymap"; - layers = <&default &lower &raise>; - }; - - layers { - compatible = "zmk,layers"; - - default: layer_0 { - label = "DEFAULT"; - - bindings = < - &kp B &mo 1 &kp C &kp E - &kp D &kp G &kp F &kp Q>; - }; - - lower: layer_1 { - label = "LOWER"; - - bindings = < - &cp M_NEXT &trans &kp O &kp Q - &kp L &kp J &kp P &kp K>; - }; - - raise: layer_2 { - label = "RAISE"; - - bindings = < - &kp W &kp U &kp I &kp N - &kp X &kp M &kp C &kp B>; - }; + exit-after; }; }; diff --git a/app/dts/bindings/zmk,kscan-mock.yaml b/app/dts/bindings/zmk,kscan-mock.yaml index 41dd5b81..f9d83fa7 100644 --- a/app/dts/bindings/zmk,kscan-mock.yaml +++ b/app/dts/bindings/zmk,kscan-mock.yaml @@ -15,3 +15,5 @@ properties: type: int columns: type: int + exit-after: + type: boolean diff --git a/app/include/zmk/kscan-mock.h b/app/include/dt-bindings/zmk/kscan-mock.h similarity index 100% rename from app/include/zmk/kscan-mock.h rename to app/include/dt-bindings/zmk/kscan-mock.h diff --git a/app/prj.conf b/app/prj.conf new file mode 100644 index 00000000..e69de29b diff --git a/app/run-test.sh b/app/run-test.sh new file mode 100755 index 00000000..4ed12a2c --- /dev/null +++ b/app/run-test.sh @@ -0,0 +1,17 @@ +#!/bin/sh + +if [ -z "$1" ]; then + echo "Usage: ./run-test.sh " + exit 1 +elif [ "$1" = "all" ]; then + find tests -name native_posix.keymap -exec dirname \{\} \; | xargs -l -P 2 ./run-test.sh + exit $? +fi + +testcase="$1" +echo "Running $testcase:" + +west build --pristine -d build/$testcase -b native_posix -- -DZMK_CONFIG=$testcase > /dev/null +./build/$testcase/zephyr/zmk.exe | sed -e "s/.*> //" | sed -n -f $testcase/events.patterns > build/$testcase/keycode_events.log + +diff -au $testcase/keycode_events.snapshot build/$testcase/keycode_events.log diff --git a/app/src/kscan_mock.c b/app/src/kscan_mock.c index b0ba90bb..1bd8a748 100644 --- a/app/src/kscan_mock.c +++ b/app/src/kscan_mock.c @@ -6,13 +6,14 @@ #define DT_DRV_COMPAT zmk_kscan_mock +#include #include #include #include LOG_MODULE_DECLARE(zmk, CONFIG_ZMK_LOG_LEVEL); -#include +#include struct kscan_mock_data { @@ -50,6 +51,7 @@ static int kscan_mock_configure(struct device *dev, kscan_callback_t callback) struct kscan_mock_config_##n \ { \ u32_t events[DT_INST_PROP_LEN(n, events)]; \ + bool exit_after; \ }; \ static void kscan_mock_schedule_next_event_##n(struct device *dev) \ { \ @@ -60,6 +62,9 @@ static int kscan_mock_configure(struct device *dev, kscan_callback_t callback) u32_t ev = cfg->events[data->event_index]; \ LOG_DBG("delaying next keypress: %d", ZMK_MOCK_MSEC(ev)); \ k_delayed_work_submit(&data->work, K_MSEC(ZMK_MOCK_MSEC(ev))); \ + } else if (cfg->exit_after) { \ + LOG_DBG("Exiting"); \ + exit(0); \ } \ } \ static void kscan_mock_work_handler_##n(struct k_work *work) \ @@ -93,11 +98,12 @@ static int kscan_mock_configure(struct device *dev, kscan_callback_t callback) }; \ static struct kscan_mock_data kscan_mock_data_##n; \ static const struct kscan_mock_config_##n kscan_mock_config_##n = { \ - .events = DT_INST_PROP(n, events)}; \ + .events = DT_INST_PROP(n, events), \ + .exit_after = DT_INST_PROP(n, exit_after) }; \ DEVICE_AND_API_INIT(kscan_mock_##n, DT_INST_LABEL(n), kscan_mock_init_##n, \ &kscan_mock_data_##n, \ &kscan_mock_config_##n, \ APPLICATION, CONFIG_KERNEL_INIT_PRIORITY_DEFAULT, \ &mock_driver_api_##n); -DT_INST_FOREACH_STATUS_OKAY(MOCK_INST_INIT) \ No newline at end of file +DT_INST_FOREACH_STATUS_OKAY(MOCK_INST_INIT) diff --git a/app/tests/keypress/behavior_keymap.dtsi b/app/tests/keypress/behavior_keymap.dtsi new file mode 100644 index 00000000..34c445cf --- /dev/null +++ b/app/tests/keypress/behavior_keymap.dtsi @@ -0,0 +1,28 @@ +#include +#include +#include + +/ { + keymap { + compatible = "zmk,keymap"; + label ="Default keymap"; + + default_layer { + bindings = < + &kp B &mo 1 + &kp D &kp G>; + }; + + lower_layer { + bindings = < + &cp M_NEXT &trans + &kp L &kp J>; + }; + + raise_layer { + bindings = < + &kp W &kp U + &kp X &kp M>; + }; + }; +}; diff --git a/app/tests/keypress/cp-press-release/events.patterns b/app/tests/keypress/cp-press-release/events.patterns new file mode 100644 index 00000000..833100f6 --- /dev/null +++ b/app/tests/keypress/cp-press-release/events.patterns @@ -0,0 +1 @@ +s/.*hid_listener_keycode_//p \ No newline at end of file diff --git a/app/tests/keypress/cp-press-release/keycode_events.snapshot b/app/tests/keypress/cp-press-release/keycode_events.snapshot new file mode 100644 index 00000000..f1ef0eda --- /dev/null +++ b/app/tests/keypress/cp-press-release/keycode_events.snapshot @@ -0,0 +1,2 @@ +pressed: usage_page 0x0c keycode 0xb5 +released: usage_page 0x0c keycode 0xb5 diff --git a/app/tests/keypress/cp-press-release/native_posix.keymap b/app/tests/keypress/cp-press-release/native_posix.keymap new file mode 100644 index 00000000..7f9ae8af --- /dev/null +++ b/app/tests/keypress/cp-press-release/native_posix.keymap @@ -0,0 +1,5 @@ +#include "../behavior_keymap.dtsi" + +&kscan { + events = ; +}; \ No newline at end of file diff --git a/app/tests/keypress/kp-press-release/events.patterns b/app/tests/keypress/kp-press-release/events.patterns new file mode 100644 index 00000000..833100f6 --- /dev/null +++ b/app/tests/keypress/kp-press-release/events.patterns @@ -0,0 +1 @@ +s/.*hid_listener_keycode_//p \ No newline at end of file diff --git a/app/tests/keypress/kp-press-release/keycode_events.snapshot b/app/tests/keypress/kp-press-release/keycode_events.snapshot new file mode 100644 index 00000000..f1ef0eda --- /dev/null +++ b/app/tests/keypress/kp-press-release/keycode_events.snapshot @@ -0,0 +1,2 @@ +pressed: usage_page 0x0c keycode 0xb5 +released: usage_page 0x0c keycode 0xb5 diff --git a/app/tests/keypress/kp-press-release/native_posix.keymap b/app/tests/keypress/kp-press-release/native_posix.keymap new file mode 100644 index 00000000..235348e9 --- /dev/null +++ b/app/tests/keypress/kp-press-release/native_posix.keymap @@ -0,0 +1,8 @@ +#include +#include +#include +#include "../behavior_keymap.dtsi" + +&kscan { + events = ; +}; \ No newline at end of file From 5b21f15a0a3e2d27d57b7a657d031a66d1124701 Mon Sep 17 00:00:00 2001 From: Cody McGinnis Date: Fri, 28 Aug 2020 16:21:31 -0400 Subject: [PATCH 32/48] fix(test): off by one error with kscan processing --- app/src/kscan_mock.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/src/kscan_mock.c b/app/src/kscan_mock.c index 1bd8a748..d626c71e 100644 --- a/app/src/kscan_mock.c +++ b/app/src/kscan_mock.c @@ -72,12 +72,13 @@ static int kscan_mock_configure(struct device *dev, kscan_callback_t callback) struct kscan_mock_data *data = \ CONTAINER_OF(work, struct kscan_mock_data, work); \ const struct kscan_mock_config_##n *cfg = data->dev->config_info; \ - u32_t ev = cfg->events[data->event_index++]; \ + u32_t ev = cfg->events[data->event_index]; \ LOG_DBG("ev %u row %d column %d state %d\n", ev, \ ZMK_MOCK_ROW(ev), ZMK_MOCK_COL(ev), ZMK_MOCK_IS_PRESS(ev)); \ data->callback(data->dev, \ ZMK_MOCK_ROW(ev), ZMK_MOCK_COL(ev), ZMK_MOCK_IS_PRESS(ev)); \ kscan_mock_schedule_next_event_##n(data->dev); \ + data->event_index++; \ } \ static int kscan_mock_init_##n(struct device *dev) \ { \ From 5f56266a6953dd1ebeb95ded4213e74f9572ae4d Mon Sep 17 00:00:00 2001 From: Cody McGinnis Date: Fri, 28 Aug 2020 16:21:31 -0400 Subject: [PATCH 33/48] feat(test): add tests for momentary layers --- .../momentary-layer/behavior_keymap.dtsi | 28 +++++++++++++++++++ .../early-key-release/events.patterns | 2 ++ .../early-key-release/keycode_events.snapshot | 4 +++ .../early-key-release/native_posix.keymap | 8 ++++++ .../momentary-layer/normal/events.patterns | 2 ++ .../normal/keycode_events.snapshot | 4 +++ .../normal/native_posix.keymap | 8 ++++++ 7 files changed, 56 insertions(+) create mode 100644 app/tests/momentary-layer/behavior_keymap.dtsi create mode 100644 app/tests/momentary-layer/early-key-release/events.patterns create mode 100644 app/tests/momentary-layer/early-key-release/keycode_events.snapshot create mode 100644 app/tests/momentary-layer/early-key-release/native_posix.keymap create mode 100644 app/tests/momentary-layer/normal/events.patterns create mode 100644 app/tests/momentary-layer/normal/keycode_events.snapshot create mode 100644 app/tests/momentary-layer/normal/native_posix.keymap diff --git a/app/tests/momentary-layer/behavior_keymap.dtsi b/app/tests/momentary-layer/behavior_keymap.dtsi new file mode 100644 index 00000000..34c445cf --- /dev/null +++ b/app/tests/momentary-layer/behavior_keymap.dtsi @@ -0,0 +1,28 @@ +#include +#include +#include + +/ { + keymap { + compatible = "zmk,keymap"; + label ="Default keymap"; + + default_layer { + bindings = < + &kp B &mo 1 + &kp D &kp G>; + }; + + lower_layer { + bindings = < + &cp M_NEXT &trans + &kp L &kp J>; + }; + + raise_layer { + bindings = < + &kp W &kp U + &kp X &kp M>; + }; + }; +}; diff --git a/app/tests/momentary-layer/early-key-release/events.patterns b/app/tests/momentary-layer/early-key-release/events.patterns new file mode 100644 index 00000000..bd7b4880 --- /dev/null +++ b/app/tests/momentary-layer/early-key-release/events.patterns @@ -0,0 +1,2 @@ +s/.*hid_listener_keycode/kp/p +s/.*mo_keymap_binding/mo/p \ No newline at end of file diff --git a/app/tests/momentary-layer/early-key-release/keycode_events.snapshot b/app/tests/momentary-layer/early-key-release/keycode_events.snapshot new file mode 100644 index 00000000..474eef7a --- /dev/null +++ b/app/tests/momentary-layer/early-key-release/keycode_events.snapshot @@ -0,0 +1,4 @@ +kp_pressed: usage_page 0x07 keycode 0x05 +mo_pressed: position 1 layer 1 +kp_released: usage_page 0x07 keycode 0x05 +mo_released: position 1 layer 1 diff --git a/app/tests/momentary-layer/early-key-release/native_posix.keymap b/app/tests/momentary-layer/early-key-release/native_posix.keymap new file mode 100644 index 00000000..a58ad26c --- /dev/null +++ b/app/tests/momentary-layer/early-key-release/native_posix.keymap @@ -0,0 +1,8 @@ +#include +#include +#include +#include "../behavior_keymap.dtsi" + +&kscan { + events = ; +}; \ No newline at end of file diff --git a/app/tests/momentary-layer/normal/events.patterns b/app/tests/momentary-layer/normal/events.patterns new file mode 100644 index 00000000..bd7b4880 --- /dev/null +++ b/app/tests/momentary-layer/normal/events.patterns @@ -0,0 +1,2 @@ +s/.*hid_listener_keycode/kp/p +s/.*mo_keymap_binding/mo/p \ No newline at end of file diff --git a/app/tests/momentary-layer/normal/keycode_events.snapshot b/app/tests/momentary-layer/normal/keycode_events.snapshot new file mode 100644 index 00000000..f3fca66f --- /dev/null +++ b/app/tests/momentary-layer/normal/keycode_events.snapshot @@ -0,0 +1,4 @@ +mo_pressed: position 1 layer 1 +kp_pressed: usage_page 0x0c keycode 0xb5 +kp_released: usage_page 0x0c keycode 0xb5 +mo_released: position 1 layer 1 \ No newline at end of file diff --git a/app/tests/momentary-layer/normal/native_posix.keymap b/app/tests/momentary-layer/normal/native_posix.keymap new file mode 100644 index 00000000..1b678585 --- /dev/null +++ b/app/tests/momentary-layer/normal/native_posix.keymap @@ -0,0 +1,8 @@ +#include +#include +#include +#include "../behavior_keymap.dtsi" + +&kscan { + events = ; +}; \ No newline at end of file From f1224422c502cb86c9138c42e28eb645fe62272f Mon Sep 17 00:00:00 2001 From: Cody McGinnis Date: Fri, 28 Aug 2020 16:21:31 -0400 Subject: [PATCH 34/48] fix(test): stop using pristine and use 4 threads --- app/run-test.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/run-test.sh b/app/run-test.sh index 4ed12a2c..722cb939 100755 --- a/app/run-test.sh +++ b/app/run-test.sh @@ -4,14 +4,14 @@ if [ -z "$1" ]; then echo "Usage: ./run-test.sh " exit 1 elif [ "$1" = "all" ]; then - find tests -name native_posix.keymap -exec dirname \{\} \; | xargs -l -P 2 ./run-test.sh + find tests -name native_posix.keymap -exec dirname \{\} \; | xargs -l -P 4 ./run-test.sh exit $? fi testcase="$1" echo "Running $testcase:" -west build --pristine -d build/$testcase -b native_posix -- -DZMK_CONFIG=$testcase > /dev/null +west build -d build/$testcase -b native_posix -- -DZMK_CONFIG=$testcase > /dev/null ./build/$testcase/zephyr/zmk.exe | sed -e "s/.*> //" | sed -n -f $testcase/events.patterns > build/$testcase/keycode_events.log diff -au $testcase/keycode_events.snapshot build/$testcase/keycode_events.log From de92bf2b2de4a895dd36cffb549772f48428a0db Mon Sep 17 00:00:00 2001 From: Cody McGinnis Date: Fri, 28 Aug 2020 16:21:31 -0400 Subject: [PATCH 35/48] fix(test): use a smaller value for mock key intervals --- app/tests/keypress/cp-press-release/native_posix.keymap | 2 +- app/tests/keypress/kp-press-release/native_posix.keymap | 2 +- app/tests/momentary-layer/early-key-release/native_posix.keymap | 2 +- app/tests/momentary-layer/normal/native_posix.keymap | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/app/tests/keypress/cp-press-release/native_posix.keymap b/app/tests/keypress/cp-press-release/native_posix.keymap index 7f9ae8af..0e86f935 100644 --- a/app/tests/keypress/cp-press-release/native_posix.keymap +++ b/app/tests/keypress/cp-press-release/native_posix.keymap @@ -1,5 +1,5 @@ #include "../behavior_keymap.dtsi" &kscan { - events = ; + events = ; }; \ No newline at end of file diff --git a/app/tests/keypress/kp-press-release/native_posix.keymap b/app/tests/keypress/kp-press-release/native_posix.keymap index 235348e9..7f736904 100644 --- a/app/tests/keypress/kp-press-release/native_posix.keymap +++ b/app/tests/keypress/kp-press-release/native_posix.keymap @@ -4,5 +4,5 @@ #include "../behavior_keymap.dtsi" &kscan { - events = ; + events = ; }; \ No newline at end of file diff --git a/app/tests/momentary-layer/early-key-release/native_posix.keymap b/app/tests/momentary-layer/early-key-release/native_posix.keymap index a58ad26c..e7628c0e 100644 --- a/app/tests/momentary-layer/early-key-release/native_posix.keymap +++ b/app/tests/momentary-layer/early-key-release/native_posix.keymap @@ -4,5 +4,5 @@ #include "../behavior_keymap.dtsi" &kscan { - events = ; + events = ; }; \ No newline at end of file diff --git a/app/tests/momentary-layer/normal/native_posix.keymap b/app/tests/momentary-layer/normal/native_posix.keymap index 1b678585..7f736904 100644 --- a/app/tests/momentary-layer/normal/native_posix.keymap +++ b/app/tests/momentary-layer/normal/native_posix.keymap @@ -4,5 +4,5 @@ #include "../behavior_keymap.dtsi" &kscan { - events = ; + events = ; }; \ No newline at end of file From abf8b5abfae2c240e71db11f13183369a14333d7 Mon Sep 17 00:00:00 2001 From: Cody McGinnis Date: Fri, 28 Aug 2020 16:21:31 -0400 Subject: [PATCH 36/48] fix(test): fix normal momentary-layer test snapshot --- app/tests/momentary-layer/normal/keycode_events.snapshot | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/tests/momentary-layer/normal/keycode_events.snapshot b/app/tests/momentary-layer/normal/keycode_events.snapshot index f3fca66f..9dc6101c 100644 --- a/app/tests/momentary-layer/normal/keycode_events.snapshot +++ b/app/tests/momentary-layer/normal/keycode_events.snapshot @@ -1,4 +1,4 @@ mo_pressed: position 1 layer 1 kp_pressed: usage_page 0x0c keycode 0xb5 kp_released: usage_page 0x0c keycode 0xb5 -mo_released: position 1 layer 1 \ No newline at end of file +mo_released: position 1 layer 1 From 3d325ccb84ecd3b25dd86d829c448dfd9b41a08f Mon Sep 17 00:00:00 2001 From: Cody McGinnis Date: Fri, 28 Aug 2020 16:21:31 -0400 Subject: [PATCH 37/48] feat(test): add tests for none behavior --- app/tests/none/behavior_keymap.dtsi | 22 +++++++++++++++++++ app/tests/none/layered/events.patterns | 1 + .../none/layered/keycode_events.snapshot | 0 app/tests/none/layered/native_posix.keymap | 8 +++++++ app/tests/none/normal/events.patterns | 1 + app/tests/none/normal/keycode_events.snapshot | 0 app/tests/none/normal/native_posix.keymap | 8 +++++++ 7 files changed, 40 insertions(+) create mode 100644 app/tests/none/behavior_keymap.dtsi create mode 100644 app/tests/none/layered/events.patterns create mode 100644 app/tests/none/layered/keycode_events.snapshot create mode 100644 app/tests/none/layered/native_posix.keymap create mode 100644 app/tests/none/normal/events.patterns create mode 100644 app/tests/none/normal/keycode_events.snapshot create mode 100644 app/tests/none/normal/native_posix.keymap diff --git a/app/tests/none/behavior_keymap.dtsi b/app/tests/none/behavior_keymap.dtsi new file mode 100644 index 00000000..0a4f7cb7 --- /dev/null +++ b/app/tests/none/behavior_keymap.dtsi @@ -0,0 +1,22 @@ +#include +#include +#include + +/ { + keymap { + compatible = "zmk,keymap"; + label ="Default keymap"; + + default_layer { + bindings = < + &none &mo 1 + &kp A &none>; + }; + + lower_layer { + bindings = < + &none &trans + &none &kp A>; + }; + }; +}; diff --git a/app/tests/none/layered/events.patterns b/app/tests/none/layered/events.patterns new file mode 100644 index 00000000..3c9d3f83 --- /dev/null +++ b/app/tests/none/layered/events.patterns @@ -0,0 +1 @@ +s/.*hid_listener_keycode/kp/p \ No newline at end of file diff --git a/app/tests/none/layered/keycode_events.snapshot b/app/tests/none/layered/keycode_events.snapshot new file mode 100644 index 00000000..e69de29b diff --git a/app/tests/none/layered/native_posix.keymap b/app/tests/none/layered/native_posix.keymap new file mode 100644 index 00000000..59ea4811 --- /dev/null +++ b/app/tests/none/layered/native_posix.keymap @@ -0,0 +1,8 @@ +#include +#include +#include +#include "../behavior_keymap.dtsi" + +&kscan { + events = ; +}; \ No newline at end of file diff --git a/app/tests/none/normal/events.patterns b/app/tests/none/normal/events.patterns new file mode 100644 index 00000000..3c9d3f83 --- /dev/null +++ b/app/tests/none/normal/events.patterns @@ -0,0 +1 @@ +s/.*hid_listener_keycode/kp/p \ No newline at end of file diff --git a/app/tests/none/normal/keycode_events.snapshot b/app/tests/none/normal/keycode_events.snapshot new file mode 100644 index 00000000..e69de29b diff --git a/app/tests/none/normal/native_posix.keymap b/app/tests/none/normal/native_posix.keymap new file mode 100644 index 00000000..94d7539c --- /dev/null +++ b/app/tests/none/normal/native_posix.keymap @@ -0,0 +1,8 @@ +#include +#include +#include +#include "../behavior_keymap.dtsi" + +&kscan { + events = ; +}; \ No newline at end of file From 033bb7bfc4e1772ea19784bd71a57f49b4368e2d Mon Sep 17 00:00:00 2001 From: Cody McGinnis Date: Fri, 28 Aug 2020 16:21:31 -0400 Subject: [PATCH 38/48] fix(behavior): add logging to toggle layer for tests --- app/src/behaviors/behavior_toggle_layer.c | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/app/src/behaviors/behavior_toggle_layer.c b/app/src/behaviors/behavior_toggle_layer.c index 13f4a29d..02a76d29 100644 --- a/app/src/behaviors/behavior_toggle_layer.c +++ b/app/src/behaviors/behavior_toggle_layer.c @@ -14,28 +14,35 @@ LOG_MODULE_DECLARE(zmk, CONFIG_ZMK_LOG_LEVEL); -struct behavior_tog_config { }; -struct behavior_tog_data { }; +struct behavior_tog_config +{ +}; +struct behavior_tog_data +{ +}; static int behavior_tog_init(struct device *dev) { - return 0; + return 0; }; - static int tog_keymap_binding_pressed(struct device *dev, u32_t position, u32_t layer, u32_t _) { + LOG_DBG("position %d layer %d", position, layer); + return zmk_keymap_layer_toggle(layer); } static int tog_keymap_binding_released(struct device *dev, u32_t position, u32_t layer, u32_t _) { + LOG_DBG("position %d layer %d", position, layer); + return 0; } static const struct behavior_driver_api behavior_tog_driver_api = { - .binding_pressed = tog_keymap_binding_pressed, - .binding_released = tog_keymap_binding_released, + .binding_pressed = tog_keymap_binding_pressed, + .binding_released = tog_keymap_binding_released, }; static const struct behavior_tog_config behavior_tog_config = {}; From a722cbcea37e276a1778c6b0d0e3154fbe70334f Mon Sep 17 00:00:00 2001 From: Cody McGinnis Date: Fri, 28 Aug 2020 16:21:31 -0400 Subject: [PATCH 39/48] feat(test): add tests for toggle layer --- app/tests/toggle-layer/behavior_keymap.dtsi | 28 +++++++++++++++++++ .../early-key-release/events.patterns | 2 ++ .../early-key-release/keycode_events.snapshot | 6 ++++ .../early-key-release/native_posix.keymap | 9 ++++++ app/tests/toggle-layer/normal/events.patterns | 2 ++ .../normal/keycode_events.snapshot | 4 +++ .../toggle-layer/normal/native_posix.keymap | 8 ++++++ 7 files changed, 59 insertions(+) create mode 100644 app/tests/toggle-layer/behavior_keymap.dtsi create mode 100644 app/tests/toggle-layer/early-key-release/events.patterns create mode 100644 app/tests/toggle-layer/early-key-release/keycode_events.snapshot create mode 100644 app/tests/toggle-layer/early-key-release/native_posix.keymap create mode 100644 app/tests/toggle-layer/normal/events.patterns create mode 100644 app/tests/toggle-layer/normal/keycode_events.snapshot create mode 100644 app/tests/toggle-layer/normal/native_posix.keymap diff --git a/app/tests/toggle-layer/behavior_keymap.dtsi b/app/tests/toggle-layer/behavior_keymap.dtsi new file mode 100644 index 00000000..d2b41a9a --- /dev/null +++ b/app/tests/toggle-layer/behavior_keymap.dtsi @@ -0,0 +1,28 @@ +#include +#include +#include + +/ { + keymap { + compatible = "zmk,keymap"; + label ="Default keymap"; + + default_layer { + bindings = < + &kp B &tog 1 + &kp D &kp G>; + }; + + lower_layer { + bindings = < + &cp M_NEXT &trans + &kp L &kp J>; + }; + + raise_layer { + bindings = < + &kp W &kp U + &kp X &kp M>; + }; + }; +}; diff --git a/app/tests/toggle-layer/early-key-release/events.patterns b/app/tests/toggle-layer/early-key-release/events.patterns new file mode 100644 index 00000000..397fef4f --- /dev/null +++ b/app/tests/toggle-layer/early-key-release/events.patterns @@ -0,0 +1,2 @@ +s/.*hid_listener_keycode/kp/p +s/.*tog_keymap_binding/tog/p \ No newline at end of file diff --git a/app/tests/toggle-layer/early-key-release/keycode_events.snapshot b/app/tests/toggle-layer/early-key-release/keycode_events.snapshot new file mode 100644 index 00000000..3ac017c8 --- /dev/null +++ b/app/tests/toggle-layer/early-key-release/keycode_events.snapshot @@ -0,0 +1,6 @@ +kp_pressed: usage_page 0x07 keycode 0x05 +tog_pressed: position 1 layer 1 +kp_released: usage_page 0x07 keycode 0x05 +tog_released: position 1 layer 1 +kp_pressed: usage_page 0x0c keycode 0xb5 +kp_released: usage_page 0x0c keycode 0xb5 diff --git a/app/tests/toggle-layer/early-key-release/native_posix.keymap b/app/tests/toggle-layer/early-key-release/native_posix.keymap new file mode 100644 index 00000000..6b2b8f20 --- /dev/null +++ b/app/tests/toggle-layer/early-key-release/native_posix.keymap @@ -0,0 +1,9 @@ +#include +#include +#include +#include "../behavior_keymap.dtsi" + +&kscan { + events = ; +}; \ No newline at end of file diff --git a/app/tests/toggle-layer/normal/events.patterns b/app/tests/toggle-layer/normal/events.patterns new file mode 100644 index 00000000..397fef4f --- /dev/null +++ b/app/tests/toggle-layer/normal/events.patterns @@ -0,0 +1,2 @@ +s/.*hid_listener_keycode/kp/p +s/.*tog_keymap_binding/tog/p \ No newline at end of file diff --git a/app/tests/toggle-layer/normal/keycode_events.snapshot b/app/tests/toggle-layer/normal/keycode_events.snapshot new file mode 100644 index 00000000..42174cc5 --- /dev/null +++ b/app/tests/toggle-layer/normal/keycode_events.snapshot @@ -0,0 +1,4 @@ +tog_pressed: position 1 layer 1 +tog_released: position 1 layer 1 +kp_pressed: usage_page 0x0c keycode 0xb5 +kp_released: usage_page 0x0c keycode 0xb5 diff --git a/app/tests/toggle-layer/normal/native_posix.keymap b/app/tests/toggle-layer/normal/native_posix.keymap new file mode 100644 index 00000000..202c105c --- /dev/null +++ b/app/tests/toggle-layer/normal/native_posix.keymap @@ -0,0 +1,8 @@ +#include +#include +#include +#include "../behavior_keymap.dtsi" + +&kscan { + events = ; +}; \ No newline at end of file From e2f77f25c8212856a5b3b3995b8e9199b59c2650 Mon Sep 17 00:00:00 2001 From: Cody McGinnis Date: Fri, 28 Aug 2020 16:21:31 -0400 Subject: [PATCH 40/48] feat(test): add testing for transparent --- app/tests/transparent/behavior_keymap.dtsi | 22 +++++++++++++++++++ app/tests/transparent/layered/events.patterns | 1 + .../layered/keycode_events.snapshot | 2 ++ .../transparent/layered/native_posix.keymap | 8 +++++++ app/tests/transparent/normal/events.patterns | 1 + .../normal/keycode_events.snapshot | 0 .../transparent/normal/native_posix.keymap | 8 +++++++ 7 files changed, 42 insertions(+) create mode 100644 app/tests/transparent/behavior_keymap.dtsi create mode 100644 app/tests/transparent/layered/events.patterns create mode 100644 app/tests/transparent/layered/keycode_events.snapshot create mode 100644 app/tests/transparent/layered/native_posix.keymap create mode 100644 app/tests/transparent/normal/events.patterns create mode 100644 app/tests/transparent/normal/keycode_events.snapshot create mode 100644 app/tests/transparent/normal/native_posix.keymap diff --git a/app/tests/transparent/behavior_keymap.dtsi b/app/tests/transparent/behavior_keymap.dtsi new file mode 100644 index 00000000..d6c5e27f --- /dev/null +++ b/app/tests/transparent/behavior_keymap.dtsi @@ -0,0 +1,22 @@ +#include +#include +#include + +/ { + keymap { + compatible = "zmk,keymap"; + label ="Default keymap"; + + default_layer { + bindings = < + &trans &mo 1 + &kp A &none>; + }; + + lower_layer { + bindings = < + &trans &trans + &trans &kp A>; + }; + }; +}; diff --git a/app/tests/transparent/layered/events.patterns b/app/tests/transparent/layered/events.patterns new file mode 100644 index 00000000..3c9d3f83 --- /dev/null +++ b/app/tests/transparent/layered/events.patterns @@ -0,0 +1 @@ +s/.*hid_listener_keycode/kp/p \ No newline at end of file diff --git a/app/tests/transparent/layered/keycode_events.snapshot b/app/tests/transparent/layered/keycode_events.snapshot new file mode 100644 index 00000000..d0bd2455 --- /dev/null +++ b/app/tests/transparent/layered/keycode_events.snapshot @@ -0,0 +1,2 @@ +kp_pressed: usage_page 0x07 keycode 0x04 +kp_released: usage_page 0x07 keycode 0x04 diff --git a/app/tests/transparent/layered/native_posix.keymap b/app/tests/transparent/layered/native_posix.keymap new file mode 100644 index 00000000..59ea4811 --- /dev/null +++ b/app/tests/transparent/layered/native_posix.keymap @@ -0,0 +1,8 @@ +#include +#include +#include +#include "../behavior_keymap.dtsi" + +&kscan { + events = ; +}; \ No newline at end of file diff --git a/app/tests/transparent/normal/events.patterns b/app/tests/transparent/normal/events.patterns new file mode 100644 index 00000000..3c9d3f83 --- /dev/null +++ b/app/tests/transparent/normal/events.patterns @@ -0,0 +1 @@ +s/.*hid_listener_keycode/kp/p \ No newline at end of file diff --git a/app/tests/transparent/normal/keycode_events.snapshot b/app/tests/transparent/normal/keycode_events.snapshot new file mode 100644 index 00000000..e69de29b diff --git a/app/tests/transparent/normal/native_posix.keymap b/app/tests/transparent/normal/native_posix.keymap new file mode 100644 index 00000000..94d7539c --- /dev/null +++ b/app/tests/transparent/normal/native_posix.keymap @@ -0,0 +1,8 @@ +#include +#include +#include +#include "../behavior_keymap.dtsi" + +&kscan { + events = ; +}; \ No newline at end of file From 79bff11ddd55204cf0ed4f43985e096a30cbf137 Mon Sep 17 00:00:00 2001 From: Cody McGinnis Date: Fri, 28 Aug 2020 16:21:31 -0400 Subject: [PATCH 41/48] fancier run test stuff --- app/run-test.sh | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/app/run-test.sh b/app/run-test.sh index 722cb939..d923e855 100755 --- a/app/run-test.sh +++ b/app/run-test.sh @@ -4,14 +4,25 @@ if [ -z "$1" ]; then echo "Usage: ./run-test.sh " exit 1 elif [ "$1" = "all" ]; then + echo "" > ./build/tests/pass-fail.log find tests -name native_posix.keymap -exec dirname \{\} \; | xargs -l -P 4 ./run-test.sh - exit $? + err=$? + sort -k2 ./build/tests/pass-fail.log + exit $err fi testcase="$1" echo "Running $testcase:" -west build -d build/$testcase -b native_posix -- -DZMK_CONFIG=$testcase > /dev/null -./build/$testcase/zephyr/zmk.exe | sed -e "s/.*> //" | sed -n -f $testcase/events.patterns > build/$testcase/keycode_events.log - -diff -au $testcase/keycode_events.snapshot build/$testcase/keycode_events.log +west build -d build/$testcase -b native_posix -- -DZMK_CONFIG=$testcase > /dev/null 2>&1 +if [ $? -gt 0 ]; then + echo "FAIL: $testcase did not build" >> ./build/tests/pass-fail.log +else + ./build/$testcase/zephyr/zmk.exe | sed -e "s/.*> //" | sed -n -f $testcase/events.patterns > build/$testcase/keycode_events.log + diff -au $testcase/keycode_events.snapshot build/$testcase/keycode_events.log + if [ $? -gt 0 ]; then + echo "FAIL: $testcase" >> ./build/tests/pass-fail.log + else + echo "PASS: $testcase" >> ./build/tests/pass-fail.log + fi +fi \ No newline at end of file From 4564d374776b0ade3c69bdddbf0a654aff38985e Mon Sep 17 00:00:00 2001 From: Cody McGinnis Date: Fri, 28 Aug 2020 16:21:31 -0400 Subject: [PATCH 42/48] feat(test): create simple docs for creating tests --- app/tests/Creating Tests.md | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 app/tests/Creating Tests.md diff --git a/app/tests/Creating Tests.md b/app/tests/Creating Tests.md new file mode 100644 index 00000000..5e211c0f --- /dev/null +++ b/app/tests/Creating Tests.md @@ -0,0 +1,23 @@ +# Basics +Any folder under `/app/tests` containing `native_posix.keymap` will be selected when running +`./run-test.sh all`. + +`test_case/events.patterns` contains sed patterns that will select the interesting output from the +application + +`test_case/keycode_events.snapshot` contains the expected output after applying `events.pattern` to +the output + +`test_case/native_posix.keymap` defines the keys and the mock key presses. Most tests include a +common keymap for their test set + +## Creating a New Test Set +1. Copy the test set that most closely resembles the tests you will be creating. +2. Rename the newly created test set to the behavior you're testing e.g, toggle-layer +3. Modify `behavior_keymap.dtsi` to create a keymap using the behavior and related behaviors +4. Modify `test_case/native_posix.keymap` for a simulated use case +5. Modify `test_case/events.patterns` to collect relevant logs to the test + - See: [sed manual](https://www.gnu.org/software/sed/manual/sed.html) and + [tutorial](https://www.digitalocean.com/community/tutorials/the-basics-of-using-the-sed-stream-editor-to-manipulate-text-in-linux) +6. Modify `test_case/keycode_events.snapshot` for to include the expected output +7. Repeat steps 4 to 6 for every test case \ No newline at end of file From aff39e57d041b9b3c895d3968912ef4fd9b6c6ce Mon Sep 17 00:00:00 2001 From: Cody McGinnis Date: Fri, 28 Aug 2020 16:21:31 -0400 Subject: [PATCH 43/48] fix: add license header to run-test.sh --- app/run-test.sh | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/app/run-test.sh b/app/run-test.sh index d923e855..6c3e8788 100755 --- a/app/run-test.sh +++ b/app/run-test.sh @@ -1,4 +1,9 @@ #!/bin/sh +# +# Copyright (c) 2020 Peter Johanson; Cody McGinnis +# +# SPDX-License-Identifier: MIT +# if [ -z "$1" ]; then echo "Usage: ./run-test.sh " From b1d9a7b68450438a7ac6bce26bf89dfdf00a4393 Mon Sep 17 00:00:00 2001 From: Cody McGinnis Date: Fri, 28 Aug 2020 16:21:31 -0400 Subject: [PATCH 44/48] feat(test): record full key log as well --- app/run-test.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/run-test.sh b/app/run-test.sh index 6c3e8788..53277ba5 100755 --- a/app/run-test.sh +++ b/app/run-test.sh @@ -23,7 +23,7 @@ west build -d build/$testcase -b native_posix -- -DZMK_CONFIG=$testcase > /dev/n if [ $? -gt 0 ]; then echo "FAIL: $testcase did not build" >> ./build/tests/pass-fail.log else - ./build/$testcase/zephyr/zmk.exe | sed -e "s/.*> //" | sed -n -f $testcase/events.patterns > build/$testcase/keycode_events.log + ./build/$testcase/zephyr/zmk.exe | sed -e "s/.*> //" | tee build/$testcase/keycode_events_full.log | sed -n -f $testcase/events.patterns > build/$testcase/keycode_events.log diff -au $testcase/keycode_events.snapshot build/$testcase/keycode_events.log if [ $? -gt 0 ]; then echo "FAIL: $testcase" >> ./build/tests/pass-fail.log From 26414a69824a37a65c0fb3a6c423f4cb6c1ef068 Mon Sep 17 00:00:00 2001 From: Cody McGinnis Date: Fri, 28 Aug 2020 16:21:31 -0400 Subject: [PATCH 45/48] fix(docs): move testing docs to website docs --- app/tests/Creating Tests.md => docs/docs/dev-tests.md | 4 ++-- docs/sidebars.js | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) rename app/tests/Creating Tests.md => docs/docs/dev-tests.md (83%) diff --git a/app/tests/Creating Tests.md b/docs/docs/dev-tests.md similarity index 83% rename from app/tests/Creating Tests.md rename to docs/docs/dev-tests.md index 5e211c0f..1709ccd7 100644 --- a/app/tests/Creating Tests.md +++ b/docs/docs/dev-tests.md @@ -1,6 +1,6 @@ # Basics -Any folder under `/app/tests` containing `native_posix.keymap` will be selected when running -`./run-test.sh all`. +Running tests requires native [posix support](./dev-posix-board). Any folder under `/app/tests` +containing `native_posix.keymap` will be selected when running `./run-test.sh all`. `test_case/events.patterns` contains sed patterns that will select the interesting output from the application diff --git a/docs/sidebars.js b/docs/sidebars.js index 51313fc5..d4266670 100644 --- a/docs/sidebars.js +++ b/docs/sidebars.js @@ -20,6 +20,7 @@ module.exports = { "dev-setup", "dev-boards-shields-keymaps", "dev-posix-board", + "dev-tests", ], "Dev Guides": ["dev-guide-new-shield", "dev-guide-usb-logging"], }, From 205a54baeb75f631795c3de34948e5e9f1af0083 Mon Sep 17 00:00:00 2001 From: Cody McGinnis Date: Fri, 28 Aug 2020 16:21:31 -0400 Subject: [PATCH 46/48] fix(docs): update the testing docs --- docs/docs/dev-tests.md | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/docs/docs/dev-tests.md b/docs/docs/dev-tests.md index 1709ccd7..68d47251 100644 --- a/docs/docs/dev-tests.md +++ b/docs/docs/dev-tests.md @@ -1,15 +1,11 @@ -# Basics -Running tests requires native [posix support](./dev-posix-board). Any folder under `/app/tests` -containing `native_posix.keymap` will be selected when running `./run-test.sh all`. - -`test_case/events.patterns` contains sed patterns that will select the interesting output from the -application +--- +id: dev-tests +title: Tests +sidebar_label: Tests +--- -`test_case/keycode_events.snapshot` contains the expected output after applying `events.pattern` to -the output - -`test_case/native_posix.keymap` defines the keys and the mock key presses. Most tests include a -common keymap for their test set +Running tests requires [native posix support](./dev-posix-board). Any folder under `/app/tests` +containing `native_posix.keymap` will be selected when running `./run-test.sh all`. ## Creating a New Test Set 1. Copy the test set that most closely resembles the tests you will be creating. @@ -20,4 +16,5 @@ common keymap for their test set - See: [sed manual](https://www.gnu.org/software/sed/manual/sed.html) and [tutorial](https://www.digitalocean.com/community/tutorials/the-basics-of-using-the-sed-stream-editor-to-manipulate-text-in-linux) 6. Modify `test_case/keycode_events.snapshot` for to include the expected output -7. Repeat steps 4 to 6 for every test case \ No newline at end of file +7. Rename the `test_case` folder to describe the test. +8. Repeat steps 4 to 7 for every test case \ No newline at end of file From 80bef160fcb3c2c63f11c71832c9afd959a1828c Mon Sep 17 00:00:00 2001 From: Cody McGinnis Date: Fri, 28 Aug 2020 16:28:49 -0400 Subject: [PATCH 47/48] feat(tests): allow tests to be marked as pending pending tests will not fail the build --- app/run-test.sh | 9 ++++++++- app/tests/momentary-layer/early-key-release/pending | 0 app/tests/toggle-layer/early-key-release/pending | 0 3 files changed, 8 insertions(+), 1 deletion(-) create mode 100644 app/tests/momentary-layer/early-key-release/pending create mode 100644 app/tests/toggle-layer/early-key-release/pending diff --git a/app/run-test.sh b/app/run-test.sh index 53277ba5..be335c62 100755 --- a/app/run-test.sh +++ b/app/run-test.sh @@ -26,8 +26,15 @@ else ./build/$testcase/zephyr/zmk.exe | sed -e "s/.*> //" | tee build/$testcase/keycode_events_full.log | sed -n -f $testcase/events.patterns > build/$testcase/keycode_events.log diff -au $testcase/keycode_events.snapshot build/$testcase/keycode_events.log if [ $? -gt 0 ]; then - echo "FAIL: $testcase" >> ./build/tests/pass-fail.log + if [ -f $testcase/pending ]; then + echo "PEND: $testcase" >> ./build/tests/pass-fail.log + exit 0 + else + echo "FAIL: $testcase" >> ./build/tests/pass-fail.log + exit 1 + fi else echo "PASS: $testcase" >> ./build/tests/pass-fail.log + exit 0 fi fi \ No newline at end of file diff --git a/app/tests/momentary-layer/early-key-release/pending b/app/tests/momentary-layer/early-key-release/pending new file mode 100644 index 00000000..e69de29b diff --git a/app/tests/toggle-layer/early-key-release/pending b/app/tests/toggle-layer/early-key-release/pending new file mode 100644 index 00000000..e69de29b From 887ba47cbe173ff65204b6f454e4070768994abf Mon Sep 17 00:00:00 2001 From: tominabox1 Date: Fri, 28 Aug 2020 16:38:40 -0500 Subject: [PATCH 48/48] Add copyright header --- app/boards/shields/qaz/qaz.keymap | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/app/boards/shields/qaz/qaz.keymap b/app/boards/shields/qaz/qaz.keymap index cebcd4b9..ffa2f6cc 100644 --- a/app/boards/shields/qaz/qaz.keymap +++ b/app/boards/shields/qaz/qaz.keymap @@ -1,3 +1,9 @@ +/* + * Copyright (c) 2020 TJ Campie + * + * SPDX-License-Identifier: MIT + */ + #include #include