From 72045927329f4d3480cbd619c3f1316c34237830 Mon Sep 17 00:00:00 2001 From: Sebastian Moser Date: Mon, 3 Mar 2025 12:58:36 +0100 Subject: [PATCH] newest keyboard config --- zmk-config/boards/shields/.gitkeep | 0 .../shields/charybdis/Kconfig.defconfig | 16 +++++ .../boards/shields/charybdis/Kconfig.shield | 5 ++ .../boards/shields/charybdis/charybdis.conf | 0 .../boards/shields/charybdis/charybdis.dtsi | 51 +++++++++++++ .../shields/charybdis/charybdis.zmk.yml | 12 ++++ .../shields/charybdis/charybdis_left.conf | 0 .../shields/charybdis/charybdis_left.overlay | 18 +++++ .../shields/charybdis/charybdis_right.conf | 26 +++++++ .../shields/charybdis/charybdis_right.overlay | 72 +++++++++++++++++++ zmk-config/build.yaml | 15 ++++ zmk-config/config/charybdis.conf | 3 +- zmk-config/config/charybdis.keymap | 44 ++++++------ zmk-config/config/charybdis_right.conf | 7 +- zmk-config/config/west.yml | 9 ++- zmk-config/zephyr/module.yml | 3 + 16 files changed, 253 insertions(+), 28 deletions(-) create mode 100644 zmk-config/boards/shields/.gitkeep create mode 100644 zmk-config/boards/shields/charybdis/Kconfig.defconfig create mode 100644 zmk-config/boards/shields/charybdis/Kconfig.shield create mode 100644 zmk-config/boards/shields/charybdis/charybdis.conf create mode 100644 zmk-config/boards/shields/charybdis/charybdis.dtsi create mode 100644 zmk-config/boards/shields/charybdis/charybdis.zmk.yml create mode 100644 zmk-config/boards/shields/charybdis/charybdis_left.conf create mode 100644 zmk-config/boards/shields/charybdis/charybdis_left.overlay create mode 100644 zmk-config/boards/shields/charybdis/charybdis_right.conf create mode 100644 zmk-config/boards/shields/charybdis/charybdis_right.overlay create mode 100644 zmk-config/zephyr/module.yml diff --git a/zmk-config/boards/shields/.gitkeep b/zmk-config/boards/shields/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/zmk-config/boards/shields/charybdis/Kconfig.defconfig b/zmk-config/boards/shields/charybdis/Kconfig.defconfig new file mode 100644 index 0000000..5a73bf8 --- /dev/null +++ b/zmk-config/boards/shields/charybdis/Kconfig.defconfig @@ -0,0 +1,16 @@ +if SHIELD_CHARYBDIS_RIGHT + +config ZMK_KEYBOARD_NAME + default "Charybdis" + +config ZMK_SPLIT_BLE_ROLE_CENTRAL + default y + +endif + +if SHIELD_CHARYBDIS_LEFT || SHIELD_CHARYBDIS_RIGHT + +config ZMK_SPLIT + default y + +endif \ No newline at end of file diff --git a/zmk-config/boards/shields/charybdis/Kconfig.shield b/zmk-config/boards/shields/charybdis/Kconfig.shield new file mode 100644 index 0000000..2060526 --- /dev/null +++ b/zmk-config/boards/shields/charybdis/Kconfig.shield @@ -0,0 +1,5 @@ +config SHIELD_CHARYBDIS_LEFT + def_bool $(shields_list_contains,charybdis_left) + +config SHIELD_CHARYBDIS_RIGHT + def_bool $(shields_list_contains,charybdis_right) \ No newline at end of file diff --git a/zmk-config/boards/shields/charybdis/charybdis.conf b/zmk-config/boards/shields/charybdis/charybdis.conf new file mode 100644 index 0000000..e69de29 diff --git a/zmk-config/boards/shields/charybdis/charybdis.dtsi b/zmk-config/boards/shields/charybdis/charybdis.dtsi new file mode 100644 index 0000000..4b42c2d --- /dev/null +++ b/zmk-config/boards/shields/charybdis/charybdis.dtsi @@ -0,0 +1,51 @@ +#include + +/ { + chosen { + zmk,kscan = &kscan0; + zmk,matrix_transform = &default_transform; + }; + + vbatt: vbatt { + compatible = "zmk,battery-nrf-vddh"; + }; + + default_transform: keymap_transform_0 { + compatible = "zmk,matrix-transform"; + columns = <12>; + rows = <4>; + + map = < + RC(0,0) RC(0,1) RC(0,2) RC(0,3) RC(0,4) RC(0,5) RC(0,11) RC(0,10) RC(0,9) RC(0,8) RC(0,7) RC(0,6) + RC(1,0) RC(1,1) RC(1,2) RC(1,3) RC(1,4) RC(1,5) RC(1,11) RC(1,10) RC(1,9) RC(1,8) RC(1,7) RC(1,6) + RC(2,0) RC(2,1) RC(2,2) RC(2,3) RC(2,4) RC(2,5) RC(2,11) RC(2,10) RC(2,9) RC(2,8) RC(2,7) RC(2,6) + RC(3,3) RC(3,4) RC(3,1) RC(3,7) RC(3,9) + >; + }; + + five_column_transform: keymap_transform_1 { + compatible = "zmk,matrix-transform"; + columns = <10>; + rows = <4>; + + map = < + RC(0,1) RC(0,2) RC(0,3) RC(0,4) RC(0,5) RC(0,10) RC(0,9) RC(0,8) RC(0,7) RC(0,6) + RC(1,1) RC(1,2) RC(1,3) RC(1,4) RC(1,5) RC(1,10) RC(1,9) RC(1,8) RC(1,7) RC(1,6) + RC(2,1) RC(2,2) RC(2,3) RC(2,4) RC(2,5) RC(2,10) RC(2,9) RC(2,8) RC(2,7) RC(2,6) + RC(3,3) RC(3,4) RC(3,1) RC(3,6) RC(3,8) + >; + }; + + kscan0: kscan { + compatible = "zmk,kscan-gpio-matrix"; + label = "KSCAN"; + + diode-direction = "row2col"; + row-gpios + = <&pro_micro 18 GPIO_ACTIVE_HIGH> + , <&pro_micro 5 GPIO_ACTIVE_HIGH> + , <&pro_micro 4 GPIO_ACTIVE_HIGH> + , <&pro_micro 9 GPIO_ACTIVE_HIGH> + ; + }; +}; diff --git a/zmk-config/boards/shields/charybdis/charybdis.zmk.yml b/zmk-config/boards/shields/charybdis/charybdis.zmk.yml new file mode 100644 index 0000000..942da5a --- /dev/null +++ b/zmk-config/boards/shields/charybdis/charybdis.zmk.yml @@ -0,0 +1,12 @@ +file_format: "1" +id: charybdis +name: Charybdis +type: shield +url: https://github.com/Bastardkb/Charybdis/ +requires: [pro_micro] +features: + - keys + - pointer +siblings: + - charybdis_left + - charybdis_right \ No newline at end of file diff --git a/zmk-config/boards/shields/charybdis/charybdis_left.conf b/zmk-config/boards/shields/charybdis/charybdis_left.conf new file mode 100644 index 0000000..e69de29 diff --git a/zmk-config/boards/shields/charybdis/charybdis_left.overlay b/zmk-config/boards/shields/charybdis/charybdis_left.overlay new file mode 100644 index 0000000..46791bd --- /dev/null +++ b/zmk-config/boards/shields/charybdis/charybdis_left.overlay @@ -0,0 +1,18 @@ +/* + * Copyright (c) 2020 ZMK Contributors + * + * SPDX-License-Identifier: MIT + */ + +#include "charybdis.dtsi" + +&kscan0 { + col-gpios + = <&pro_micro 19 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> + , <&pro_micro 20 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> + , <&pro_micro 10 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> + , <&pro_micro 6 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> + , <&pro_micro 7 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> + , <&pro_micro 8 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> + ; +}; \ No newline at end of file diff --git a/zmk-config/boards/shields/charybdis/charybdis_right.conf b/zmk-config/boards/shields/charybdis/charybdis_right.conf new file mode 100644 index 0000000..2ef3588 --- /dev/null +++ b/zmk-config/boards/shields/charybdis/charybdis_right.conf @@ -0,0 +1,26 @@ +CONFIG_SPI=y +CONFIG_INPUT=y +CONFIG_ZMK_MOUSE=y + +CONFIG_ZMK_EXT_POWER=y + +CONFIG_PMW3610=y +CONFIG_PMW3610_CPI=3000 +CONFIG_PMW3610_CPI_DIVIDOR=4 +CONFIG_PMW3610_ORIENTATION_90=y +CONFIG_PMW3610_SNIPE_CPI=800 +CONFIG_PMW3610_SNIPE_CPI_DIVIDOR=4 +CONFIG_PMW3610_SCROLL_TICK=21 +CONFIG_PMW3610_INVERT_X=y +CONFIG_PMW3610_INVERT_SCROLL_Y=n +CONFIG_PMW3610_RUN_DOWNSHIFT_TIME_MS=3264 +CONFIG_PMW3610_REST1_SAMPLE_TIME_MS=20 +#CONFIG_PMW3610_REST1_DOWNSHIFT_TIME_MS=9600 +#CONFIG_PMW3610_REST2_SAMPLE_TIME_MS= +#CONFIG_PMW3610_REST2_DOWNSHIFT_TIME_MS= +#CONFIG_PMW3610_REST3_SAMPLE_TIME_MS= +#CONFIG_PMW3610_REST3_DOWNSHIFT_TIME_MS= +#CONFIG_PMW3610_FORCE_AWAKE=n +CONFIG_PMW3610_POLLING_RATE_125_SW=y + +CONFIG_PMW3610_SMART_ALGORITHM=y diff --git a/zmk-config/boards/shields/charybdis/charybdis_right.overlay b/zmk-config/boards/shields/charybdis/charybdis_right.overlay new file mode 100644 index 0000000..24cad4c --- /dev/null +++ b/zmk-config/boards/shields/charybdis/charybdis_right.overlay @@ -0,0 +1,72 @@ +/* + * Copyright (c) 2020 ZMK Contributors + * + * SPDX-License-Identifier: MIT + */ + +#include "charybdis.dtsi" + +&default_transform { + col-offset = <6>; +}; + +&five_column_transform { + col-offset = <5>; +}; + +&kscan0 { + col-gpios + = <&pro_micro 19 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> + , <&pro_micro 20 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> + , <&pro_micro 10 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> + , <&pro_micro 6 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> + , <&pro_micro 7 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> + , <&pro_micro 8 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> + ; +}; + +&pinctrl { + spi0_default: spi0_default { + group1 { + psels = , + , + ; + }; + }; + + spi0_sleep: spi0_sleep { + group1 { + psels = , + , + ; + low-power-enable; + }; + }; +}; + +&spi0 { + status = "okay"; + compatible = "nordic,nrf-spim"; + pinctrl-0 = <&spi0_default>; + pinctrl-1 = <&spi0_sleep>; + pinctrl-names = "default", "sleep"; + cs-gpios = <&gpio0 20 GPIO_ACTIVE_LOW>; + + trackball: trackball@0 { + status = "okay"; + compatible = "pixart,pmw3610"; + reg = <0>; + spi-max-frequency = <2000000>; + irq-gpios = <&gpio0 6 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>; + scroll-layers = <6>; + snipe-layers = <7>; + }; +}; + +/ { + trackball_listener { + compatible = "zmk,input-listener"; + device = <&trackball>; + + }; +}; diff --git a/zmk-config/build.yaml b/zmk-config/build.yaml index d983bc7..9cf8d23 100644 --- a/zmk-config/build.yaml +++ b/zmk-config/build.yaml @@ -12,8 +12,23 @@ # shield: reviung41 # --- +#include: +#- board: nice_nano_v2 +#shield: charybdis_left +#- board: nice_nano_v2 +#shield: charybdis_right + + + + +board: [ "nice_nano_v2" ] +shield: [ "charybdis_left", "charybdis_right" ] + + include: - board: nice_nano_v2 shield: charybdis_left - board: nice_nano_v2 shield: charybdis_right + - board: nice_nano_v2 + shield: settings_reset diff --git a/zmk-config/config/charybdis.conf b/zmk-config/config/charybdis.conf index d926111..cfafbfe 100644 --- a/zmk-config/config/charybdis.conf +++ b/zmk-config/config/charybdis.conf @@ -1,6 +1,7 @@ -CONFIG_BT_LL_SW_LLCP_LEGACY=y +#CONFIG_BT_LL_SW_LLCP_LEGACY=y CONFIG_BT_PERIPHERAL_PREF_MAX_INT=9 CONFIG_BT_PERIPHERAL_PREF_LATENCY=16 CONFIG_BT_BUF_ACL_TX_COUNT=32 CONFIG_BT_L2CAP_TX_BUF_COUNT=32 + diff --git a/zmk-config/config/charybdis.keymap b/zmk-config/config/charybdis.keymap index 25d5083..e00933a 100644 --- a/zmk-config/config/charybdis.keymap +++ b/zmk-config/config/charybdis.keymap @@ -1,9 +1,9 @@ -#include #include -#include +#include #include -#include #include +#include + < { tapping-term-ms = <240>; @@ -18,44 +18,44 @@ Base { label = "base"; bindings = < - &kp TAB &kp Q &kp W &kp E &kp R &kp T &kp U &kp Z &kp I &kp O &kp P &kp BSPC - &kp ESC &kp A &kp S &kp D &kp F &kp G &kp J &kp H &kp K &kp L &to 1 &kp APOS -&to 0 &kp Y &kp X &kp C &kp V &kp B &kp M &kp N &kp COMMA &kp DOT &kp FSLH &to 1 - &kp LGUI &kp LCTRL &kp ENTER &kp LSHFT &kp SPACE +&kp TAB &kp Q &kp W &kp E &kp R &kp T &kp U &kp Y &kp I &kp O &kp P &kp BSPC +&kp ESC &kp A &kp S &kp D &kp F &kp G &kp J &kp H &kp K &kp L &to 1 &kp ENTER +&to 0 &kp Y &kp X &kp C &kp V &kp B &kp M &kp N &kp COMMA &kp DOT &kp FSLH &to 1 + &kp LGUI &kp RIGHT_CONTROL &kp SPACE &kp LEFT_SHIFT &mo 1 >; - trackball-bindings = <&tmv_coarse> ; + /* trackball-bindings = <&tmv_coarse>;*/ }; Lower { label = "numbers"; bindings = < - &trans &trans &kp UP &kp MINUS &kp BSLH &kp EQUAL &kp N7 &trans &kp N8 &kp N9 &kp HOME &kp BSPC - &trans &kp LEFT &to 3 &to 2 &to 0 &kp SEMI &kp N4 &trans &kp N5 &kp N6 &kp N0 &bootloader - &to 0 &trans &trans &kp LBKT &kp RBKT &kp SQT &kp N1 &trans &kp N2 &kp N3 &trans &kp F20 - &kp LGUI &kp LALT &kp ENTER &kp LSHFT &kp SPACE - >; +&trans &trans &kp UP &kp MINUS &kp BSLH &kp EQUAL &kp N7 &kp N7 &kp N8 &kp N9 &kp HOME &kp BSPC +&trans &kp LEFT &to 3 &to 2 &to 2 &kp SEMI &kp N4 &kp NUMBER_4 &kp N5 &kp N6 &kp N0 &kp ENTER +&to 0 &trans &trans &kp LBKT &kp RBKT &kp SQT &kp N1 &kp NUMBER_1 &kp N2 &kp N3 &trans &bootloader + &kp LGUI &kp RIGHT_CONTROL &kp LEFT_SHIFT &kp LSHFT &kp SPACE + >; }; Raise { label = "navigation"; bindings = < - &trans &kp EXCL &kp AT &kp HASH &kp DLLR &kp PRCNT &kp CARET &kp AMPS &kp KP_MULTIPLY &kp LPAR &kp RPAR &kp BSPC - &bootloader &bt BT_CLR &bt BT_PRV &bt BT_NXT &to 0 &kp DOWN &kp DOWN &kp LEFT &kp UP &kp RIGHT &kp BSLH &bootloader - &to 0 &out OUT_TOG &trans &trans &trans &trans &kp MINUS &kp PLUS &kp LBRC &kp RBRC &kp PIPE &kp TILDE - &kp LGUI &kp LALT &kp ENTER &kp LSHFT &kp SPACE +&trans &kp EXCL &kp AT &kp HASH &kp DLLR &kp PRCNT &kp CARET &kp AMPS &kp KP_MULTIPLY &kp LPAR &kp RPAR &kp BSPC +&bootloader &bt BT_CLR &bt BT_PRV &bt BT_NXT &to 0 &kp DOWN &kp DOWN &kp LEFT &kp UP &kp RIGHT &kp BSLH &bootloader +&to 0 &out OUT_TOG &trans &trans &trans &trans &kp MINUS &kp PLUS &kp LBRC &kp RBRC &kp PIPE &kp TILDE + &kp LGUI &kp LALT &kp ENTER &kp LSHFT &kp SPACE >; }; Mouse { label = "mouse"; bindings = < -&trans &trans &trans &trans &kp PG_UP &trans &trans &trans &trans &trans &trans &trans -&trans &trans &mkp RCLK &mkp LCLK &to 0 &sl 4 &trans &kp N1 &trans &trans &trans &trans -&trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &to 0 - &trans &trans &kp LEFT_ALT &kp RGUI &trans +&trans &trans &trans &trans &kp PG_UP &trans &trans &trans &trans &trans &trans &trans +&trans &trans &mkp RCLK &mkp LCLK &to 0 &sl 4 &trans &kp N1 &trans &trans &trans &trans +&trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &to 0 + &trans &trans &kp LEFT_ALT &kp RGUI &trans >; }; - }; }; + diff --git a/zmk-config/config/charybdis_right.conf b/zmk-config/config/charybdis_right.conf index 50eccfc..82b6d97 100644 --- a/zmk-config/config/charybdis_right.conf +++ b/zmk-config/config/charybdis_right.conf @@ -3,9 +3,9 @@ CONFIG_PMW3610_SMART_ALGORITHM=y CONFIG_PMW3610_CPI_DIVIDOR=4 #CONFIG_PMW3610_ORIENTATION_90=y -CONFIG_ZMK_MOUSE_TICK_DURATION=6 -CONFIG_MOUSE_LAYER_ACTIVE_MS=750 -CONFIG_MOUSE_LAYER_INDEX=5 +#CONFIG_ZMK_MOUSE_TICK_DURATION=6 +#CONFIG_MOUSE_LAYER_ACTIVE_MS=750 +#CONFIG_MOUSE_LAYER_INDEX=5 CONFIG_SPI=y #CONFIG_INPUT=y @@ -31,3 +31,4 @@ CONFIG_PMW3610_REST3_SAMPLE_TIME_MS=300 CONFIG_PMW3610_RUN_DOWNSHIFT_TIME_MS=500 CONFIG_PMW3610_REST1_DOWNSHIFT_TIME_MS=3000 CONFIG_PMW3610_REST2_DOWNSHIFT_TIME_MS=30000 + diff --git a/zmk-config/config/west.yml b/zmk-config/config/west.yml index 127744f..1390ea2 100644 --- a/zmk-config/config/west.yml +++ b/zmk-config/config/west.yml @@ -1,11 +1,16 @@ manifest: remotes: - name: zmkfirmware - url-base: https://github.com/ufan + url-base: https://github.com/petejohanson + - name: inorichi + url-base: https://github.com/inorichi projects: - name: zmk remote: zmkfirmware - revision: ptdevice-refactor + revision: feat/pointers-move-scroll import: app/west.yml + - name: zmk-pmw3610-driver + remote: inorichi + revision: main self: path: config diff --git a/zmk-config/zephyr/module.yml b/zmk-config/zephyr/module.yml new file mode 100644 index 0000000..1cc2b35 --- /dev/null +++ b/zmk-config/zephyr/module.yml @@ -0,0 +1,3 @@ +build: + settings: + board_root: .