From 83c102e59ece2cb4acf1f1e19b449f3b44fa1ce4 Mon Sep 17 00:00:00 2001 From: Nicolas Munnich Date: Tue, 3 Sep 2024 08:38:22 +0200 Subject: [PATCH] feat(shields): Added tester shields for pro micro and xiao form factors --- .../tester_pro_micro/Kconfig.defconfig | 12 ++++ .../shields/tester_pro_micro/Kconfig.shield | 2 + .../tester_pro_micro/tester_pro_micro.keymap | 61 +++++++++++++++++++ .../tester_pro_micro/tester_pro_micro.overlay | 45 ++++++++++++++ .../tester_pro_micro/tester_pro_micro.zmk.yml | 6 ++ .../shields/tester_xiao/Kconfig.defconfig | 12 ++++ app/boards/shields/tester_xiao/Kconfig.shield | 2 + .../shields/tester_xiao/tester_xiao.keymap | 47 ++++++++++++++ .../shields/tester_xiao/tester_xiao.overlay | 35 +++++++++++ .../shields/tester_xiao/tester_xiao.zmk.yml | 6 ++ 10 files changed, 228 insertions(+) create mode 100644 app/boards/shields/tester_pro_micro/Kconfig.defconfig create mode 100644 app/boards/shields/tester_pro_micro/Kconfig.shield create mode 100644 app/boards/shields/tester_pro_micro/tester_pro_micro.keymap create mode 100644 app/boards/shields/tester_pro_micro/tester_pro_micro.overlay create mode 100644 app/boards/shields/tester_pro_micro/tester_pro_micro.zmk.yml create mode 100644 app/boards/shields/tester_xiao/Kconfig.defconfig create mode 100644 app/boards/shields/tester_xiao/Kconfig.shield create mode 100644 app/boards/shields/tester_xiao/tester_xiao.keymap create mode 100644 app/boards/shields/tester_xiao/tester_xiao.overlay create mode 100644 app/boards/shields/tester_xiao/tester_xiao.zmk.yml diff --git a/app/boards/shields/tester_pro_micro/Kconfig.defconfig b/app/boards/shields/tester_pro_micro/Kconfig.defconfig new file mode 100644 index 00000000000..d1103ac1264 --- /dev/null +++ b/app/boards/shields/tester_pro_micro/Kconfig.defconfig @@ -0,0 +1,12 @@ +if SHIELD_TESTER_PRO_MICRO + +config ZMK_KEYBOARD_NAME + default "ZMK Tester" + +config ZMK_BLE + def_bool n + +config SETTINGS + def_bool n + +endif \ No newline at end of file diff --git a/app/boards/shields/tester_pro_micro/Kconfig.shield b/app/boards/shields/tester_pro_micro/Kconfig.shield new file mode 100644 index 00000000000..68afa4886aa --- /dev/null +++ b/app/boards/shields/tester_pro_micro/Kconfig.shield @@ -0,0 +1,2 @@ +config SHIELD_TESTER_PRO_MICRO + def_bool $(shields_list_contains,tester_pro_micro) \ No newline at end of file diff --git a/app/boards/shields/tester_pro_micro/tester_pro_micro.keymap b/app/boards/shields/tester_pro_micro/tester_pro_micro.keymap new file mode 100644 index 00000000000..c130bc4ff41 --- /dev/null +++ b/app/boards/shields/tester_pro_micro/tester_pro_micro.keymap @@ -0,0 +1,61 @@ +#include +#include + +#define PIN_MACRO(name, pin) \ +/ { \ + macros { \ + name: name { \ + compatible = "zmk,behavior-macro"; \ + wait-ms = <5>; \ + tap-ms = <5>; \ + #binding-cells = <0>; \ + bindings = <&kp P &kp I &kp N &kp SPACE>, pin, <&kp ENTER>; \ + }; \ + }; \ +}; + +PIN_MACRO(pin0, <&kp N0>) +PIN_MACRO(pin1, <&kp N1>) +PIN_MACRO(pin2, <&kp N2>) +PIN_MACRO(pin3, <&kp N3>) +PIN_MACRO(pin4, <&kp N4>) +PIN_MACRO(pin5, <&kp N5>) +PIN_MACRO(pin6, <&kp N6>) +PIN_MACRO(pin7, <&kp N7>) +PIN_MACRO(pin8, <&kp N8>) +PIN_MACRO(pin9, <&kp N9>) +PIN_MACRO(pin10, <&kp N1 &kp N0>) +PIN_MACRO(pin14, <&kp N1 &kp N4>) +PIN_MACRO(pin15, <&kp N1 &kp N5>) +PIN_MACRO(pin16, <&kp N1 &kp N6>) +PIN_MACRO(pin18, <&kp N1 &kp N8>) +PIN_MACRO(pin19, <&kp N1 &kp N9>) +PIN_MACRO(pin20, <&kp N2 &kp N0>) +PIN_MACRO(pin21, <&kp N2 &kp N1>) + +/ { + keymap { + compatible = "zmk,keymap"; + + default_layer { + bindings = <&pin0 + &pin1 + &pin2 + &pin3 + &pin4 + &pin5 + &pin6 + &pin7 + &pin8 + &pin9 + &pin10 + &pin14 + &pin15 + &pin16 + &pin18 + &pin19 + &pin20 + &pin21>; + }; + }; +}; \ No newline at end of file diff --git a/app/boards/shields/tester_pro_micro/tester_pro_micro.overlay b/app/boards/shields/tester_pro_micro/tester_pro_micro.overlay new file mode 100644 index 00000000000..4795c4b7f09 --- /dev/null +++ b/app/boards/shields/tester_pro_micro/tester_pro_micro.overlay @@ -0,0 +1,45 @@ +#include + +/ { + chosen { + zmk,kscan = &kscan0; + zmk,matrix-transform = &transform0; + }; + + kscan0: kscan { + compatible = "zmk,kscan-gpio-direct"; + toggle-mode; + wakeup-source; + debounce-press-ms = <10>; + debounce-release-ms = <10>; + input-gpios + = <&pro_micro 0 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)> + , <&pro_micro 1 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)> + , <&pro_micro 2 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)> + , <&pro_micro 3 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)> + , <&pro_micro 4 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)> + , <&pro_micro 5 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)> + , <&pro_micro 6 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)> + , <&pro_micro 7 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)> + , <&pro_micro 8 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)> + , <&pro_micro 9 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)> + , <&pro_micro 10 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)> + , <&pro_micro 14 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)> + , <&pro_micro 15 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)> + , <&pro_micro 16 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)> + , <&pro_micro 18 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)> + , <&pro_micro 19 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)> + , <&pro_micro 20 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)> + , <&pro_micro 21 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)> + ; + }; + + transform0: keymap_transform { + compatible = "zmk,matrix-transform"; + columns = <18>; + rows = <1>; + 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(0,12) RC(0,13) RC(0,14) RC(0,15) RC(0,16) RC(0,17) + >; + }; +}; \ No newline at end of file diff --git a/app/boards/shields/tester_pro_micro/tester_pro_micro.zmk.yml b/app/boards/shields/tester_pro_micro/tester_pro_micro.zmk.yml new file mode 100644 index 00000000000..289f47b6ffe --- /dev/null +++ b/app/boards/shields/tester_pro_micro/tester_pro_micro.zmk.yml @@ -0,0 +1,6 @@ +file_format: "1" +id: tester_pro_micro +name: TesterProMicro +type: shield +url: https://zmk.dev/docs/troubleshooting/hardware-issues +requires: [pro_micro] diff --git a/app/boards/shields/tester_xiao/Kconfig.defconfig b/app/boards/shields/tester_xiao/Kconfig.defconfig new file mode 100644 index 00000000000..15316dce5df --- /dev/null +++ b/app/boards/shields/tester_xiao/Kconfig.defconfig @@ -0,0 +1,12 @@ +if SHIELD_TESTER_XIAO + +config ZMK_KEYBOARD_NAME + default "ZMK Tester" + +config ZMK_BLE + def_bool n + +config SETTINGS + def_bool n + +endif \ No newline at end of file diff --git a/app/boards/shields/tester_xiao/Kconfig.shield b/app/boards/shields/tester_xiao/Kconfig.shield new file mode 100644 index 00000000000..336dfaff835 --- /dev/null +++ b/app/boards/shields/tester_xiao/Kconfig.shield @@ -0,0 +1,2 @@ +config SHIELD_TESTER_XIAO + def_bool $(shields_list_contains,tester_xiao) \ No newline at end of file diff --git a/app/boards/shields/tester_xiao/tester_xiao.keymap b/app/boards/shields/tester_xiao/tester_xiao.keymap new file mode 100644 index 00000000000..8b22780b3eb --- /dev/null +++ b/app/boards/shields/tester_xiao/tester_xiao.keymap @@ -0,0 +1,47 @@ +#include +#include + +#define PIN_MACRO(name, pin) \ +/ { \ + macros { \ + name: name { \ + compatible = "zmk,behavior-macro"; \ + wait-ms = <5>; \ + tap-ms = <5>; \ + #binding-cells = <0>; \ + bindings = <&kp P &kp I &kp N &kp SPACE>, pin, <&kp ENTER>; \ + }; \ + }; \ +}; + +PIN_MACRO(pin0, <&kp N0>) +PIN_MACRO(pin1, <&kp N1>) +PIN_MACRO(pin2, <&kp N2>) +PIN_MACRO(pin3, <&kp N3>) +PIN_MACRO(pin4, <&kp N4>) +PIN_MACRO(pin5, <&kp N5>) +PIN_MACRO(pin6, <&kp N6>) +PIN_MACRO(pin7, <&kp N7>) +PIN_MACRO(pin8, <&kp N8>) +PIN_MACRO(pin9, <&kp N9>) +PIN_MACRO(pin10, <&kp N1 &kp N0>) + +/ { + keymap { + compatible = "zmk,keymap"; + + default_layer { + bindings = <&pin0 + &pin1 + &pin2 + &pin3 + &pin4 + &pin5 + &pin6 + &pin7 + &pin8 + &pin9 + &pin10>; + }; + }; +}; \ No newline at end of file diff --git a/app/boards/shields/tester_xiao/tester_xiao.overlay b/app/boards/shields/tester_xiao/tester_xiao.overlay new file mode 100644 index 00000000000..f0fc8977cf3 --- /dev/null +++ b/app/boards/shields/tester_xiao/tester_xiao.overlay @@ -0,0 +1,35 @@ +/ { + chosen { + zmk,kscan = &kscan0; + zmk,matrix-transform = &transform0; + }; + + kscan0: kscan { + compatible = "zmk,kscan-gpio-direct"; + wakeup-source; + debounce-press-ms = <10>; + debounce-release-ms = <10>; + input-gpios + = <&xiao_d 0 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)> + , <&xiao_d 1 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)> + , <&xiao_d 2 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)> + , <&xiao_d 3 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)> + , <&xiao_d 4 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)> + , <&xiao_d 5 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)> + , <&xiao_d 6 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)> + , <&xiao_d 7 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)> + , <&xiao_d 8 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)> + , <&xiao_d 9 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)> + , <&xiao_d 10 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)> + ; + }; + + transform0: keymap_transform { + compatible = "zmk,matrix-transform"; + columns = <11>; + rows = <1>; + 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) + >; + }; +}; \ No newline at end of file diff --git a/app/boards/shields/tester_xiao/tester_xiao.zmk.yml b/app/boards/shields/tester_xiao/tester_xiao.zmk.yml new file mode 100644 index 00000000000..77ab90d23af --- /dev/null +++ b/app/boards/shields/tester_xiao/tester_xiao.zmk.yml @@ -0,0 +1,6 @@ +file_format: "1" +id: tester_xiao +name: TesterXiao +type: shield +url: https://zmk.dev/docs/troubleshooting/hardware-issues +requires: [seeed_xiao]