newest keyboard config

This commit is contained in:
Sebastian Moser
2025-03-03 12:58:36 +01:00
parent 16198c41e8
commit 7204592732
16 changed files with 253 additions and 28 deletions

View File

View File

@@ -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

View File

@@ -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)

View File

@@ -0,0 +1,51 @@
#include <dt-bindings/zmk/matrix_transform.h>
/ {
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>
;
};
};

View File

@@ -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

View File

@@ -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)>
;
};

View File

@@ -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

View File

@@ -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 = <NRF_PSEL(SPIM_SCK, 0, 8)>,
<NRF_PSEL(SPIM_MOSI, 0, 17)>,
<NRF_PSEL(SPIM_MISO, 0, 17)>;
};
};
spi0_sleep: spi0_sleep {
group1 {
psels = <NRF_PSEL(SPIM_SCK, 0, 8)>,
<NRF_PSEL(SPIM_MOSI, 0, 17)>,
<NRF_PSEL(SPIM_MISO, 0, 17)>;
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>;
};
};

View File

@@ -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

View File

@@ -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

View File

@@ -1,9 +1,9 @@
#include <behaviors.dtsi>
#include <dt-bindings/zmk/mouse.h>
#include <dt-bindings/zmk/keys.h>
#include <behaviors.dtsi>
#include <dt-bindings/zmk/bt.h>
#include <dt-bindings/zmk/outputs.h>
#include <dt-bindings/zmk/keys.h>
#include <dt-bindings/zmk/outputs.h>
&lt {
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
>;
};
};
};

View File

@@ -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

View File

@@ -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

View File

@@ -0,0 +1,3 @@
build:
settings:
board_root: .