From c0c668af761742e9e0bfb63551440986fcd00d80 Mon Sep 17 00:00:00 2001 From: "Stephen J. Bush" Date: Sat, 21 Aug 2021 16:44:52 -0500 Subject: [PATCH] Added shield for ferris sweep v2 --- .../shields/ferris_sweep_v2/Kconfig.defconfig | 62 ++++++++ .../shields/ferris_sweep_v2/Kconfig.shield | 8 ++ app/boards/shields/ferris_sweep_v2/README.md | 3 + .../ferris_sweep_v2/ferris_sweep_v2.conf | 2 + .../ferris_sweep_v2/ferris_sweep_v2.dtsi | 50 +++++++ .../ferris_sweep_v2/ferris_sweep_v2.keymap | 133 ++++++++++++++++++ .../ferris_sweep_v2/ferris_sweep_v2_left.conf | 2 + .../ferris_sweep_v2_left.overlay | 7 + .../ferris_sweep_v2_right.conf | 2 + .../ferris_sweep_v2_right.overlay | 11 ++ 10 files changed, 280 insertions(+) create mode 100644 app/boards/shields/ferris_sweep_v2/Kconfig.defconfig create mode 100644 app/boards/shields/ferris_sweep_v2/Kconfig.shield create mode 100644 app/boards/shields/ferris_sweep_v2/README.md create mode 100644 app/boards/shields/ferris_sweep_v2/ferris_sweep_v2.conf create mode 100644 app/boards/shields/ferris_sweep_v2/ferris_sweep_v2.dtsi create mode 100644 app/boards/shields/ferris_sweep_v2/ferris_sweep_v2.keymap create mode 100644 app/boards/shields/ferris_sweep_v2/ferris_sweep_v2_left.conf create mode 100644 app/boards/shields/ferris_sweep_v2/ferris_sweep_v2_left.overlay create mode 100644 app/boards/shields/ferris_sweep_v2/ferris_sweep_v2_right.conf create mode 100644 app/boards/shields/ferris_sweep_v2/ferris_sweep_v2_right.overlay diff --git a/app/boards/shields/ferris_sweep_v2/Kconfig.defconfig b/app/boards/shields/ferris_sweep_v2/Kconfig.defconfig new file mode 100644 index 00000000..ce49d6c4 --- /dev/null +++ b/app/boards/shields/ferris_sweep_v2/Kconfig.defconfig @@ -0,0 +1,62 @@ +# Copyright (c) 2021 The ZMK Contributors +# SPDX-License-Identifier: MIT + +if SHIELD_FERRIS_SWEEP_V2_LEFT + +config ZMK_KEYBOARD_NAME + default "SweepV2" + +config ZMK_SPLIT_BLE_ROLE_CENTRAL + default y + +endif + +if SHIELD_FERRIS_SWEEP_V2_RIGHT + +config ZMK_KEYBOARD_NAME + default "SweepV2 Right" + +endif + +if SHIELD_FERRIS_SWEEP_V2_LEFT || SHIELD_FERRIS_SWEEP_V2_RIGHT + +config ZMK_SPLIT + default y + +# if ZMK_DISPLAY +# +# config I2C +# default y +# +# config SSD1306 +# default y +# +# config SSD1306_REVERSE_MODE +# default y +# +# endif # ZMK_DISPLAY +# +# if LVGL +# +# config LVGL_HOR_RES_MAX +# default 128 +# +# config LVGL_VER_RES_MAX +# 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/ferris_sweep_v2/Kconfig.shield b/app/boards/shields/ferris_sweep_v2/Kconfig.shield new file mode 100644 index 00000000..300a8660 --- /dev/null +++ b/app/boards/shields/ferris_sweep_v2/Kconfig.shield @@ -0,0 +1,8 @@ +# Copyright (c) 2021 The ZMK Contributors +# SPDX-License-Identifier: MIT + +config SHIELD_FERRIS_SWEEP_V2_LEFT + def_bool $(shields_list_contains,ferris_sweep_v2_left) + +config SHIELD_FERRIS_SWEEP_V2_RIGHT + def_bool $(shields_list_contains,ferris_sweep_v2_right) diff --git a/app/boards/shields/ferris_sweep_v2/README.md b/app/boards/shields/ferris_sweep_v2/README.md new file mode 100644 index 00000000..45316372 --- /dev/null +++ b/app/boards/shields/ferris_sweep_v2/README.md @@ -0,0 +1,3 @@ +# Ferris Sweep v2 + +![Ferris Sweep v2](https://imgur.com/Z2WPF5t.png) diff --git a/app/boards/shields/ferris_sweep_v2/ferris_sweep_v2.conf b/app/boards/shields/ferris_sweep_v2/ferris_sweep_v2.conf new file mode 100644 index 00000000..fa971579 --- /dev/null +++ b/app/boards/shields/ferris_sweep_v2/ferris_sweep_v2.conf @@ -0,0 +1,2 @@ +# Copyright (c) 2021 The ZMK Contributors +# SPDX-License-Identifier: MIT diff --git a/app/boards/shields/ferris_sweep_v2/ferris_sweep_v2.dtsi b/app/boards/shields/ferris_sweep_v2/ferris_sweep_v2.dtsi new file mode 100644 index 00000000..6fcab832 --- /dev/null +++ b/app/boards/shields/ferris_sweep_v2/ferris_sweep_v2.dtsi @@ -0,0 +1,50 @@ +/* + * Copyright (c) 2021 The ZMK Contributors + * + * SPDX-License-Identifier: MIT + */ + +#include + +/ { + chosen { + zmk,kscan = &kscan0; + zmk,matrix_transform = &default_transform; + }; + + default_transform: keymap_transform_0 { + compatible = "zmk,matrix-transform"; + columns = <34>; + rows = <1>; + map = < + RC(0,0) RC(0,1) RC(0,2) RC(0,3) RC(0,4) RC(0,21) RC(0,20) RC(0,19) RC(0,18) RC(0,17) + RC(0,5) RC(0,6) RC(0,7) RC(0,8) RC(0,9) RC(0,26) RC(0,25) RC(0,24) RC(0,23) RC(0,22) + RC(0,10) RC(0,11) RC(0,12) RC(0,13) RC(0,14) RC(0,31) RC(0,30) RC(0,29) RC(0,28) RC(0,27) + RC(0,15) RC(0,16) RC(0,33) RC(0,32) + >; + }; + + kscan0: kscan { + compatible = "zmk,kscan-gpio-direct"; + label = "KSCAN"; + input-gpios + = <&pro_micro_d 7 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)> + , <&pro_micro_a 0 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)> + , <&pro_micro_a 1 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)> + , <&pro_micro_a 2 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)> + , <&pro_micro_a 3 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)> + , <&pro_micro_d 15 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)> + , <&pro_micro_d 14 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)> + , <&pro_micro_d 16 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)> + , <&pro_micro_d 10 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)> + , <&pro_micro_d 1 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)> + , <&pro_micro_d 2 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)> + , <&pro_micro_d 3 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)> + , <&pro_micro_a 6 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)> + , <&pro_micro_d 5 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)> + , <&pro_micro_d 6 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)> + , <&pro_micro_d 8 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)> + , <&pro_micro_d 9 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)> + ; + }; +}; diff --git a/app/boards/shields/ferris_sweep_v2/ferris_sweep_v2.keymap b/app/boards/shields/ferris_sweep_v2/ferris_sweep_v2.keymap new file mode 100644 index 00000000..70de43e3 --- /dev/null +++ b/app/boards/shields/ferris_sweep_v2/ferris_sweep_v2.keymap @@ -0,0 +1,133 @@ +/* + * Copyright (c) 2021 The ZMK Contributors + * + * SPDX-License-Identifier: MIT + */ + +#include +#include +#include + +#define DEFAULT 0 +#define QWERTY 1 +#define LOWER 2 +#define RAISE 3 +#define NAV 4 +#define ADJUST 5 + +/ { + behaviors { + hm: homerow_mods { + compatible = "zmk,behavior-hold-tap"; + label = "HOMEROW_MODS"; + #binding-cells = <2>; + tapping-term-ms = <125>; + quick_tap_ms = <0>; + flavor = "tap-preferred"; + bindings = <&kp>, <&kp>; + }; + }; + + combos { + compatible = "zmk,combos"; + combo_semicolon { + timeout-ms = <50>; + key-positions = <20 19>; + bindings = <&kp SEMI>; + }; + }; + + keymap { + compatible = "zmk,keymap"; +// ----------------------------------------------------------------------------------------- +// | | | | | | ----- | | | | | | +// | | | | | | ----- | | | | | | +// | | | | | | ----- | | | | | | +// | | | ----- | | | + + +// ----------------------------------------------------------------------------------------- +// | Q | W | F | P | B | ----- | J | L | U | Y | ' " | +// | A | R | S | T | G | ----- | M | N | E | I | O | +// | R | X | C | D | V | ----- | K | H | , < | . > | / ? | +// |LOW_TAB|RAI_ENT| ----- |NAV_SPC| HY_ESC| + default_layer { + bindings = < +&kp Q &kp W &kp F &kp P &kp B &kp J &kp L &kp U &kp Y &kp APOS +&hm LGUI A &hm LALT R &hm LCTL S &hm LSFT T &kp G &kp M &hm RSFT N &hm RCTL E &hm LALT I &hm RGUI O +&kp Z &kp X &kp C &kp D &kp V &kp K &kp H &kp COMMA &kp DOT &kp FSLH + < LOWER TAB < RAISE ENTER < NAV SPACE &mt LS(LC(LA(LGUI))) ESC + >; + }; + +// ----------------------------------------------------------------------------------------- +// | Q | W | E | R | T | ----- | Y | U | I | O | P | +// | A | X | D | F | G | ----- | H | J | K | L | ' " | +// | Z | X | C | V | B | ----- | N | M | , < | . > | / ? | +// | | | ----- | | | + qwerty_layer { + bindings = < +&kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P +&hm LGUI A &hm LALT S &hm LCTL D &hm LGUI F &kp G &kp H &hm RSFT J &hm RCTL K &hm LALT L &hm RGUI QUOT +&kp Z &kp X &kp C &kp V &kp B &kp N &kp M &kp CMMA &kp DOT &kp FSLH + &trans &trans &trans &trans + >; + }; +// ----------------------------------------------------------------------------------------- +// | | | | | | ----- | ` ~ | 7 & | 8 * | 9 ( | \ | | +// | LGUI | LALT | LCTL | LSFT | | ----- | - _ | 4 _ | 5 % | 6 ^ | ; : | +// | | | | | | ----- | = + | 1 ! | 2 @ | 3 # | , < | +// | | ENT | ----- | 0 | . | +// NOTE: Consider "&tog LOWER" instead of "&kp GRAVE" + lower_layer { + bindings = < +&none &none &none &none &none &kp GRAVE &kp N7 &kp N8 &kp N9 &kp BSLH +&kp LGUI &kp LALT &kp LCTL &kp LSFT &kp CAPS &kp MINUS &kp N4 &kp N5 &kp N6 &kp SEMI +&none &none &none &none &none &kp EQUAL &kp N1 &kp N2 &kp N3 &kp COMMA + &trans &mo ADJUST &kp N0 &kp DOT + >; + }; + +// ----------------------------------------------------------------------------------------- +// | | | | | | ----- |DEFAULT| ( | ) | | | +// | LGUI | LALT | LCTL | LSFT | | ----- |QWERTY | [ | ] | | | +// | | | | | | ----- | + | { | } | | | +// | TAB | | ----- | BSPC | DEL | + raise_layer { + bindings = < +&none &none &none &none &none &kp TILDE &kp LPAR &kp RPAR &none &trans +&kp LGUI &kp LALT &kp LCTL &kp LSFT &none &kp UNDER &kp LBKT &kp RBKT &none &trans +&none &none &none &none &none &kp PLUS &kp LBRC &kp RBRC &none &trans + &mo ADJUST &trans &kp BSPC &kp DEL + >; + }; + +// ----------------------------------------------------------------------------------------- +// | | | : | | | ----- | PG_UP | HOME | | | END | +// | LGUI | LALT | LCTL | LSFT | | ----- | PG_DN | LEFT | DOWN | UP | RIGHT | +// | | | | | | ----- | | | | | | +// | TAB | | ----- | | | + nav_layer { + bindings = < +&trans &trans &kp COLON &none &none &kp PG_UP &kp HOME &none &none &kp END +&kp LGUI &kp LALT &kp LCTL &kp LSFT &none &kp PG_DN &kp LEFT &kp DOWN &kp UP &kp RIGHT +&none &none &none &none &none &none &none &none &none &trans + &trans &trans &trans &trans + >; + }; + +// ----------------------------------------------------------------------------------------- +// | BOOTL | F1 | F2 | F3 | F4 | ----- | | ( | ) | | | +// | RESET | F5 | F6 | F7 | F8 | ----- | _ | [ | ] | | | +// | | F9 | F10 | F11 | F12 | ----- | + | { | } | | | +// | TAB | | ----- | BSPC | DEL | + adjust_layer { + bindings = < +&bootloader &none &none &bt BT_SEL 1 &bt BT_SEL 0 &to DEFAULT &none &kp C_MUTE &kp C_VOL_DN &kp C_VOL_UP +&reset &none &none &bt BT_SEL 2 &bt BT_NXT &to QWERTY &kp C_PP &kp C_STOP &kp C_PREV &kp C_NEXT +&bt BT_CLR &none &none &bt BT_SEL 3 &bt BT_PRV &none &none &none &kp C_BRI_DN &kp C_BRI_UP + &trans &trans &none &none + >; + }; + }; +}; diff --git a/app/boards/shields/ferris_sweep_v2/ferris_sweep_v2_left.conf b/app/boards/shields/ferris_sweep_v2/ferris_sweep_v2_left.conf new file mode 100644 index 00000000..fa971579 --- /dev/null +++ b/app/boards/shields/ferris_sweep_v2/ferris_sweep_v2_left.conf @@ -0,0 +1,2 @@ +# Copyright (c) 2021 The ZMK Contributors +# SPDX-License-Identifier: MIT diff --git a/app/boards/shields/ferris_sweep_v2/ferris_sweep_v2_left.overlay b/app/boards/shields/ferris_sweep_v2/ferris_sweep_v2_left.overlay new file mode 100644 index 00000000..4b1aea8e --- /dev/null +++ b/app/boards/shields/ferris_sweep_v2/ferris_sweep_v2_left.overlay @@ -0,0 +1,7 @@ +/* + * Copyright (c) 2021 The ZMK Contributors + * + * SPDX-License-Identifier: MIT + */ + +#include "ferris_sweep_v2.dtsi" diff --git a/app/boards/shields/ferris_sweep_v2/ferris_sweep_v2_right.conf b/app/boards/shields/ferris_sweep_v2/ferris_sweep_v2_right.conf new file mode 100644 index 00000000..fa971579 --- /dev/null +++ b/app/boards/shields/ferris_sweep_v2/ferris_sweep_v2_right.conf @@ -0,0 +1,2 @@ +# Copyright (c) 2021 The ZMK Contributors +# SPDX-License-Identifier: MIT diff --git a/app/boards/shields/ferris_sweep_v2/ferris_sweep_v2_right.overlay b/app/boards/shields/ferris_sweep_v2/ferris_sweep_v2_right.overlay new file mode 100644 index 00000000..ef6077bc --- /dev/null +++ b/app/boards/shields/ferris_sweep_v2/ferris_sweep_v2_right.overlay @@ -0,0 +1,11 @@ +/* + * Copyright (c) 2021 The ZMK Contributors + * + * SPDX-License-Identifier: MIT + */ + +#include "ferris_sweep_v2.dtsi" + +&default_transform { + col-offset = <17>; +};