From f7311789e41be28a8e72d0219901cc63237d9dba Mon Sep 17 00:00:00 2001 From: Peter Johanson Date: Thu, 20 Jun 2024 04:57:56 +0000 Subject: [PATCH] feat(boards): Add posix MiniVan studio tester * New shield to easily test studio using the `native_posix_64` board. --- .../minivan_studio_tester/Kconfig.defconfig | 9 + .../minivan_studio_tester/Kconfig.shield | 9 + .../minivan_studio_tester.conf | 1 + .../minivan_studio_tester.keymap | 59 +++ .../minivan_studio_tester.overlay | 335 ++++++++++++++++++ 5 files changed, 413 insertions(+) create mode 100644 app/boards/shields/minivan_studio_tester/Kconfig.defconfig create mode 100644 app/boards/shields/minivan_studio_tester/Kconfig.shield create mode 100644 app/boards/shields/minivan_studio_tester/minivan_studio_tester.conf create mode 100644 app/boards/shields/minivan_studio_tester/minivan_studio_tester.keymap create mode 100644 app/boards/shields/minivan_studio_tester/minivan_studio_tester.overlay diff --git a/app/boards/shields/minivan_studio_tester/Kconfig.defconfig b/app/boards/shields/minivan_studio_tester/Kconfig.defconfig new file mode 100644 index 00000000000..d6dd3d5077f --- /dev/null +++ b/app/boards/shields/minivan_studio_tester/Kconfig.defconfig @@ -0,0 +1,9 @@ +# Copyright (c) 2024 The ZMK Contributors +# SPDX-License-Identifier: MIT + +if SHIELD_MINIVAN_STUDIO_TESTER + +config ZMK_KEYBOARD_NAME + default "MiniVan Tester" + +endif diff --git a/app/boards/shields/minivan_studio_tester/Kconfig.shield b/app/boards/shields/minivan_studio_tester/Kconfig.shield new file mode 100644 index 00000000000..787d46f82ee --- /dev/null +++ b/app/boards/shields/minivan_studio_tester/Kconfig.shield @@ -0,0 +1,9 @@ +# Copyright (c) 2024 The ZMK Contributors +# SPDX-License-Identifier: MIT + +config SHIELD_MINIVAN_STUDIO_TESTER + def_bool $(shields_list_contains,minivan_studio_tester) + select ZMK_STUDIO + select UART_NATIVE_POSIX_PORT_1_ENABLE + select CBPRINTF_LIBC_SUBSTS + select ZMK_STUDIO_TRANSPORT_UART diff --git a/app/boards/shields/minivan_studio_tester/minivan_studio_tester.conf b/app/boards/shields/minivan_studio_tester/minivan_studio_tester.conf new file mode 100644 index 00000000000..a771e5f7bf3 --- /dev/null +++ b/app/boards/shields/minivan_studio_tester/minivan_studio_tester.conf @@ -0,0 +1 @@ +CONFIG_ZMK_STUDIO_LOCKING=n \ No newline at end of file diff --git a/app/boards/shields/minivan_studio_tester/minivan_studio_tester.keymap b/app/boards/shields/minivan_studio_tester/minivan_studio_tester.keymap new file mode 100644 index 00000000000..531d8e0ccad --- /dev/null +++ b/app/boards/shields/minivan_studio_tester/minivan_studio_tester.keymap @@ -0,0 +1,59 @@ +/* + * Copyright (c) 2024 The ZMK Contributors + * + * SPDX-License-Identifier: MIT + */ + +#include +#include + +#define NAV_L 1 +#define NUM_L 2 +#define MED_L 3 +#define FUN_L 4 + +/ { + keymap { + compatible = "zmk,keymap"; + + base_layer { + display-name = "Base"; + bindings = < + &kp TAB &kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P &kp BKSP + &gresc &kp A &kp S &kp D &kp F &kp G &kp H &kp J &kp K &kp L &kp SEMI &kp RET + &kp LSHFT &kp Z &kp X &kp C &kp V &kp B &kp N &kp M &kp COMMA &kp DOT &kp FSLH &kp QUOT + &kp LGUI &kp LALT &mo NAV_L &kp LEFT_SHIFT &kp SPACE &mo NUM_L &kp LALT &kp RCTL + >; + }; + + nav_layer { + display-name = "Nav"; + bindings = < +&trans &trans &trans &trans &trans &trans &trans &kp GRAVE &kp TILDE &trans &trans &kp DEL +&trans &trans &trans &trans &trans &trans &trans &kp LARW &kp DARW &kp UARW &kp RARW &trans +&trans &trans &trans &trans &trans &trans &trans &kp HOME &kp PG_DN &kp PG_UP &kp END &trans +&trans &trans &trans &trans &trans &trans &trans &trans + >; + }; + + num_layer { + display-name = "Num"; + bindings = < +&trans &trans &kp N7 &kp N8 &kp N9 &kp RBKT &trans &trans &trans &trans &trans &trans +&trans &kp MINUS &kp N4 &kp N5 &kp N6 &kp EQUAL &trans &trans &trans &trans &trans &trans +&kp PLUS &kp N1 &kp N2 &kp N3 &kp N0 &trans &trans &trans &trans &trans &trans &trans +&trans &trans &trans &trans &trans &kp ESC &trans &trans + >; + }; + + med_layer { + display-name = "Sym"; + bindings = < +&trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans +&trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans +&trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans +&trans &trans &trans &trans &trans &trans &trans &trans + >; + }; + }; +}; diff --git a/app/boards/shields/minivan_studio_tester/minivan_studio_tester.overlay b/app/boards/shields/minivan_studio_tester/minivan_studio_tester.overlay new file mode 100644 index 00000000000..994d89ca39f --- /dev/null +++ b/app/boards/shields/minivan_studio_tester/minivan_studio_tester.overlay @@ -0,0 +1,335 @@ +/* + * Copyright (c) 2024 The ZMK Contributors + * + * SPDX-License-Identifier: MIT + */ + +#include +#include + +&kscan { + /delete-property/ exit-after; + events = <>; +}; + +&uart1 { status = "okay"; }; + +/ { + chosen { + zmk,physical-layout = &standard_layout; + zmk,studio-rpc-uart = &uart1; + }; + + standard_transform: standard_transform { + compatible = "zmk,matrix-transform"; + rows = <4>; + columns = <12>; + + map = < + RC(0,0) RC(0,1) RC(0,2) RC(0,3) RC(0,4) RC(0,5) RC(1,5) RC(1,4) RC(1,3) RC(1,2) RC(1,1) RC(1,0) + RC(2,0) RC(2,1) RC(2,2) RC(2,3) RC(2,4) RC(2,5) RC(3,5) RC(3,4) RC(3,3) RC(3,2) RC(3,1) RC(3,0) + RC(4,0) RC(4,1) RC(4,2) RC(4,3) RC(4,4) RC(4,5) RC(5,5) RC(5,4) RC(5,3) RC(5,2) RC(5,1) RC(5,0) + RC(6,0) RC(6,1) RC(6,3) RC(6,4) RC(6,5) RC(7,3) RC(7,2) RC(7,0) + >; + }; + + arrows_transform: arrows_transform { + compatible = "zmk,matrix-transform"; + rows = <4>; + columns = <12>; + + map = < + RC(0,0) RC(0,1) RC(0,2) RC(0,3) RC(0,4) RC(0,5) RC(1,5) RC(1,4) RC(1,3) RC(1,2) RC(1,1) RC(1,0) + RC(2,0) RC(2,1) RC(2,2) RC(2,3) RC(2,4) RC(2,5) RC(3,5) RC(3,4) RC(3,3) RC(3,2) RC(3,1) RC(3,0) + RC(4,0) RC(4,1) RC(4,2) RC(4,3) RC(4,4) RC(4,5) RC(5,5) RC(5,4) RC(5,3) RC(5,2) RC(5,1) RC(5,0) + RC(6,0) RC(6,1) RC(6,3) RC(6,4) RC(6,5) RC(7,3) RC(7,2) RC(7,1) RC(7,0) + >; + }; + + southpaw_transform: southpaw_transform { + compatible = "zmk,matrix-transform"; + rows = <4>; + columns = <12>; + + map = < + RC(0,0) RC(0,1) RC(0,2) RC(0,3) RC(0,4) RC(0,5) RC(1,5) RC(1,4) RC(1,3) RC(1,2) RC(1,1) RC(1,0) + RC(2,0) RC(2,1) RC(2,2) RC(2,3) RC(2,4) RC(2,5) RC(3,5) RC(3,4) RC(3,3) RC(3,2) RC(3,1) RC(3,0) + RC(4,0) RC(4,1) RC(4,2) RC(4,3) RC(4,4) RC(4,5) RC(5,5) RC(5,4) RC(5,3) RC(5,2) RC(5,1) RC(5,0) + RC(6,0) RC(6,1) RC(6,2) RC(6,3) RC(6,4) RC(6,5) RC(7,3) RC(7,2) RC(7,0) + >; + }; + + jetvan_transform: jetvan_transform { + compatible = "zmk,matrix-transform"; + rows = <4>; + columns = <12>; + + map = < + RC(0,0) RC(0,1) RC(0,2) RC(0,3) RC(0,4) RC(0,5) RC(1,5) RC(1,4) RC(1,3) RC(1,2) RC(1,1) RC(1,0) + RC(2,0) RC(2,1) RC(2,2) RC(2,3) RC(2,4) RC(2,5) RC(3,5) RC(3,4) RC(3,3) RC(3,2) RC(3,1) RC(3,0) + RC(4,0) RC(4,1) RC(4,2) RC(4,3) RC(4,4) RC(4,5) RC(5,5) RC(5,4) RC(5,3) RC(5,2) RC(5,1) RC(5,0) + RC(6,0) RC(6,1) RC(6,2) RC(6,4) RC(7,3) RC(7,2) RC(7,0) + >; + }; + + standard_layout: standard_layout { + compatible = "zmk,physical-layout"; + display-name = "Standard"; + + transform = <&standard_transform>; + kscan = <&kscan>; + + keys + = <&key_physical_attrs 100 100 000 000 0 0 0> + , <&key_physical_attrs 100 100 100 000 0 0 0> + , <&key_physical_attrs 100 100 200 000 0 0 0> + , <&key_physical_attrs 100 100 300 000 0 0 0> + , <&key_physical_attrs 100 100 400 000 0 0 0> + , <&key_physical_attrs 100 100 500 000 0 0 0> + , <&key_physical_attrs 100 100 600 000 0 0 0> + , <&key_physical_attrs 100 100 700 000 0 0 0> + , <&key_physical_attrs 100 100 800 000 0 0 0> + , <&key_physical_attrs 100 100 900 000 0 0 0> + , <&key_physical_attrs 100 100 1000 000 0 0 0> + , <&key_physical_attrs 175 100 1100 000 0 0 0> + + , <&key_physical_attrs 125 100 000 100 0 0 0> + , <&key_physical_attrs 100 100 125 100 0 0 0> + , <&key_physical_attrs 100 100 225 100 0 0 0> + , <&key_physical_attrs 100 100 325 100 0 0 0> + , <&key_physical_attrs 100 100 425 100 0 0 0> + , <&key_physical_attrs 100 100 525 100 0 0 0> + , <&key_physical_attrs 100 100 625 100 0 0 0> + , <&key_physical_attrs 100 100 725 100 0 0 0> + , <&key_physical_attrs 100 100 825 100 0 0 0> + , <&key_physical_attrs 100 100 925 100 0 0 0> + , <&key_physical_attrs 100 100 1025 100 0 0 0> + , <&key_physical_attrs 150 100 1125 100 0 0 0> + + , <&key_physical_attrs 175 100 000 200 0 0 0> + , <&key_physical_attrs 100 100 175 200 0 0 0> + , <&key_physical_attrs 100 100 275 200 0 0 0> + , <&key_physical_attrs 100 100 375 200 0 0 0> + , <&key_physical_attrs 100 100 475 200 0 0 0> + , <&key_physical_attrs 100 100 575 200 0 0 0> + , <&key_physical_attrs 100 100 675 200 0 0 0> + , <&key_physical_attrs 100 100 775 200 0 0 0> + , <&key_physical_attrs 100 100 875 200 0 0 0> + , <&key_physical_attrs 100 100 975 200 0 0 0> + , <&key_physical_attrs 100 100 1075 200 0 0 0> + , <&key_physical_attrs 100 100 1175 200 0 0 0> + + , <&key_physical_attrs 125 100 000 300 0 0 0> + , <&key_physical_attrs 150 100 125 300 0 0 0> + , <&key_physical_attrs 125 100 275 300 0 0 0> + , <&key_physical_attrs 225 100 400 300 0 0 0> + , <&key_physical_attrs 200 100 625 300 0 0 0> + , <&key_physical_attrs 125 100 825 300 0 0 0> + , <&key_physical_attrs 150 100 950 300 0 0 0> + , <&key_physical_attrs 175 100 1100 300 0 0 0> + ; + }; + + southpaw_layout: southpaw_layout { + compatible = "zmk,physical-layout"; + display-name = "Southpaw"; + + transform = <&southpaw_transform>; + kscan = <&kscan>; + + keys + = <&key_physical_attrs 100 100 000 000 0 0 0> + , <&key_physical_attrs 100 100 100 000 0 0 0> + , <&key_physical_attrs 100 100 200 000 0 0 0> + , <&key_physical_attrs 100 100 300 000 0 0 0> + , <&key_physical_attrs 100 100 400 000 0 0 0> + , <&key_physical_attrs 100 100 500 000 0 0 0> + , <&key_physical_attrs 100 100 600 000 0 0 0> + , <&key_physical_attrs 100 100 700 000 0 0 0> + , <&key_physical_attrs 100 100 800 000 0 0 0> + , <&key_physical_attrs 100 100 900 000 0 0 0> + , <&key_physical_attrs 100 100 1000 000 0 0 0> + , <&key_physical_attrs 175 100 1100 000 0 0 0> + + , <&key_physical_attrs 125 100 000 100 0 0 0> + , <&key_physical_attrs 100 100 125 100 0 0 0> + , <&key_physical_attrs 100 100 225 100 0 0 0> + , <&key_physical_attrs 100 100 325 100 0 0 0> + , <&key_physical_attrs 100 100 425 100 0 0 0> + , <&key_physical_attrs 100 100 525 100 0 0 0> + , <&key_physical_attrs 100 100 625 100 0 0 0> + , <&key_physical_attrs 100 100 725 100 0 0 0> + , <&key_physical_attrs 100 100 825 100 0 0 0> + , <&key_physical_attrs 100 100 925 100 0 0 0> + , <&key_physical_attrs 100 100 1025 100 0 0 0> + , <&key_physical_attrs 150 100 1125 100 0 0 0> + + , <&key_physical_attrs 175 100 000 200 0 0 0> + , <&key_physical_attrs 100 100 175 200 0 0 0> + , <&key_physical_attrs 100 100 275 200 0 0 0> + , <&key_physical_attrs 100 100 375 200 0 0 0> + , <&key_physical_attrs 100 100 475 200 0 0 0> + , <&key_physical_attrs 100 100 575 200 0 0 0> + , <&key_physical_attrs 100 100 675 200 0 0 0> + , <&key_physical_attrs 100 100 775 200 0 0 0> + , <&key_physical_attrs 100 100 875 200 0 0 0> + , <&key_physical_attrs 100 100 975 200 0 0 0> + , <&key_physical_attrs 100 100 1075 200 0 0 0> + , <&key_physical_attrs 100 100 1175 200 0 0 0> + + , <&key_physical_attrs 100 100 000 300 0 0 0> + , <&key_physical_attrs 100 100 100 300 0 0 0> + , <&key_physical_attrs 100 100 200 300 0 0 0> + , <&key_physical_attrs 100 100 300 300 0 0 0> + , <&key_physical_attrs 225 100 400 300 0 0 0> + , <&key_physical_attrs 200 100 625 300 0 0 0> + , <&key_physical_attrs 125 100 825 300 0 0 0> + , <&key_physical_attrs 150 100 950 300 0 0 0> + , <&key_physical_attrs 175 100 1100 300 0 0 0> + ; + }; + + arrows_layout: arrows_layout { + compatible = "zmk,physical-layout"; + display-name = "Arrows"; + + transform = <&arrows_transform>; + kscan = <&kscan>; + + keys + = <&key_physical_attrs 100 100 000 000 0 0 0> + , <&key_physical_attrs 100 100 100 000 0 0 0> + , <&key_physical_attrs 100 100 200 000 0 0 0> + , <&key_physical_attrs 100 100 300 000 0 0 0> + , <&key_physical_attrs 100 100 400 000 0 0 0> + , <&key_physical_attrs 100 100 500 000 0 0 0> + , <&key_physical_attrs 100 100 600 000 0 0 0> + , <&key_physical_attrs 100 100 700 000 0 0 0> + , <&key_physical_attrs 100 100 800 000 0 0 0> + , <&key_physical_attrs 100 100 900 000 0 0 0> + , <&key_physical_attrs 100 100 1000 000 0 0 0> + , <&key_physical_attrs 175 100 1100 000 0 0 0> + + , <&key_physical_attrs 125 100 000 100 0 0 0> + , <&key_physical_attrs 100 100 125 100 0 0 0> + , <&key_physical_attrs 100 100 225 100 0 0 0> + , <&key_physical_attrs 100 100 325 100 0 0 0> + , <&key_physical_attrs 100 100 425 100 0 0 0> + , <&key_physical_attrs 100 100 525 100 0 0 0> + , <&key_physical_attrs 100 100 625 100 0 0 0> + , <&key_physical_attrs 100 100 725 100 0 0 0> + , <&key_physical_attrs 100 100 825 100 0 0 0> + , <&key_physical_attrs 100 100 925 100 0 0 0> + , <&key_physical_attrs 100 100 1025 100 0 0 0> + , <&key_physical_attrs 150 100 1125 100 0 0 0> + + , <&key_physical_attrs 175 100 000 200 0 0 0> + , <&key_physical_attrs 100 100 175 200 0 0 0> + , <&key_physical_attrs 100 100 275 200 0 0 0> + , <&key_physical_attrs 100 100 375 200 0 0 0> + , <&key_physical_attrs 100 100 475 200 0 0 0> + , <&key_physical_attrs 100 100 575 200 0 0 0> + , <&key_physical_attrs 100 100 675 200 0 0 0> + , <&key_physical_attrs 100 100 775 200 0 0 0> + , <&key_physical_attrs 100 100 875 200 0 0 0> + , <&key_physical_attrs 100 100 975 200 0 0 0> + , <&key_physical_attrs 100 100 1075 200 0 0 0> + , <&key_physical_attrs 100 100 1175 200 0 0 0> + + , <&key_physical_attrs 125 100 000 300 0 0 0> + , <&key_physical_attrs 150 100 125 300 0 0 0> + , <&key_physical_attrs 125 100 275 300 0 0 0> + , <&key_physical_attrs 225 100 400 300 0 0 0> + , <&key_physical_attrs 200 100 625 300 0 0 0> + , <&key_physical_attrs 150 100 825 300 0 0 0> + , <&key_physical_attrs 100 100 975 300 0 0 0> + , <&key_physical_attrs 100 100 1075 300 0 0 0> + , <&key_physical_attrs 100 100 1175 300 0 0 0> + ; + }; + + jetvan_layout: jetvan_layout { + compatible = "zmk,physical-layout"; + display-name = "JetVan"; + + transform = <&jetvan_transform>; + kscan = <&kscan>; + + keys + = <&key_physical_attrs 100 100 000 000 0 0 0> + , <&key_physical_attrs 100 100 100 000 0 0 0> + , <&key_physical_attrs 100 100 200 000 0 0 0> + , <&key_physical_attrs 100 100 300 000 0 0 0> + , <&key_physical_attrs 100 100 400 000 0 0 0> + , <&key_physical_attrs 100 100 500 000 0 0 0> + , <&key_physical_attrs 100 100 600 000 0 0 0> + , <&key_physical_attrs 100 100 700 000 0 0 0> + , <&key_physical_attrs 100 100 800 000 0 0 0> + , <&key_physical_attrs 100 100 900 000 0 0 0> + , <&key_physical_attrs 100 100 1000 000 0 0 0> + , <&key_physical_attrs 175 100 1100 000 0 0 0> + + , <&key_physical_attrs 125 100 000 100 0 0 0> + , <&key_physical_attrs 100 100 125 100 0 0 0> + , <&key_physical_attrs 100 100 225 100 0 0 0> + , <&key_physical_attrs 100 100 325 100 0 0 0> + , <&key_physical_attrs 100 100 425 100 0 0 0> + , <&key_physical_attrs 100 100 525 100 0 0 0> + , <&key_physical_attrs 100 100 625 100 0 0 0> + , <&key_physical_attrs 100 100 725 100 0 0 0> + , <&key_physical_attrs 100 100 825 100 0 0 0> + , <&key_physical_attrs 100 100 925 100 0 0 0> + , <&key_physical_attrs 100 100 1025 100 0 0 0> + , <&key_physical_attrs 150 100 1125 100 0 0 0> + + , <&key_physical_attrs 175 100 000 200 0 0 0> + , <&key_physical_attrs 100 100 175 200 0 0 0> + , <&key_physical_attrs 100 100 275 200 0 0 0> + , <&key_physical_attrs 100 100 375 200 0 0 0> + , <&key_physical_attrs 100 100 475 200 0 0 0> + , <&key_physical_attrs 100 100 575 200 0 0 0> + , <&key_physical_attrs 100 100 675 200 0 0 0> + , <&key_physical_attrs 100 100 775 200 0 0 0> + , <&key_physical_attrs 100 100 875 200 0 0 0> + , <&key_physical_attrs 100 100 975 200 0 0 0> + , <&key_physical_attrs 100 100 1075 200 0 0 0> + , <&key_physical_attrs 100 100 1175 200 0 0 0> + + , <&key_physical_attrs 125 100 000 300 0 0 0> + , <&key_physical_attrs 100 100 125 300 0 0 0> + , <&key_physical_attrs 125 100 225 300 0 0 0> + , <&key_physical_attrs 625 100 350 300 0 0 0> + , <&key_physical_attrs 100 100 975 300 0 0 0> + , <&key_physical_attrs 100 100 1075 300 0 0 0> + , <&key_physical_attrs 100 100 1175 300 0 0 0> + ; + }; + + pos_map { + compatible = "zmk,physical-layout-position-map"; + std { + physical-layout = <&standard_layout>; + positions + = < 36 37 38 39 40 41 42 43 >; + }; + + arrows { + physical-layout = <&arrows_layout>; + positions + = < 36 37 38 39 40 42 43 44 >; + }; + + southpaw { + physical-layout = <&southpaw_layout>; + positions + = < 36 37 38 40 41 42 43 44 >; + }; + + jetvan { + physical-layout = <&jetvan_layout>; + positions + = < 36 37 38 666 39 40 41 42 >; + }; + + }; +};