fix: use goosekb zmk config as starting point for firmware

This commit is contained in:
phiwan-dev 2025-07-20 15:09:43 +02:00
parent 1878cfe636
commit b3b04d9847
10 changed files with 393 additions and 0 deletions

View file

@ -0,0 +1,16 @@
if SHIELD_GOOSE_LEFT
config ZMK_KEYBOARD_NAME
default "Cherry Goose"
config USB_DEVICE_MANUFACTURER
default "Pipshag"
config ZMK_SPLIT_ROLE_CENTRAL
default y
endif
if SHIELD_GOOSE_LEFT || SHIELD_GOOSE_RIGHT
config ZMK_SPLIT
default y
endif

View file

@ -0,0 +1,5 @@
config SHIELD_GOOSE_LEFT
def_bool $(shields_list_contains,goose_left)
config SHIELD_GOOSE_RIGHT
def_bool $(shields_list_contains,goose_right)

View file

@ -0,0 +1,47 @@
#include <dt-bindings/zmk/matrix_transform.h>
/ {
chosen {
zmk,kscan = &kscan0;
zmk,matrix_transform = &default_transform;
};
default_transform: keymap_transform_0 {
compatible = "zmk,matrix-transform";
columns = <10>;
rows = <4>;
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(1,0) RC(1,1) RC(1,2) RC(1,3) RC(1,4) RC(1,5) RC(1,6) RC(1,7) RC(1,8) RC(1,9)
RC(2,0) RC(2,1) RC(2,2) RC(2,3) RC(2,4) RC(2,5) RC(2,6) RC(2,7) RC(2,8) RC(2,9)
RC(3,1) RC(3,2) RC(3,3) RC(3,4) RC(3,5) RC(3,6) RC(3,7) RC(3,8)
>;
};
left_encoder: left_encoder {
compatible = "alps,ec11";
label = "LEFT_ENCODER";
steps = <80>;
status = "disabled";
a-gpios = <&xiao_d 8 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>;
b-gpios = <&xiao_d 7 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>;
};
right_encoder: right_encoder {
compatible = "alps,ec11";
label = "RIGHT_ENCODER";
steps = <80>;
status = "disabled";
a-gpios = <&xiao_d 8 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>;
b-gpios = <&xiao_d 7 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>;
};
sensors {
compatible = "zmk,keymap-sensors";
sensors = <&left_encoder &right_encoder>;
triggers-per-rotation = <24>;
};
};

View file

@ -0,0 +1,13 @@
file_format: "1"
id: goose
name: Cherry Goose
type: shield
url: https://github.com/Pipshag/goosekb
requires:
- seeeduino_xiao_ble
features:
- keys
- encoder
siblings:
- goose_left
- goose_right

View file

@ -0,0 +1,33 @@
#include "goose.dtsi"
/ {
chosen {
zmk,kscan = &kscan0;
};
kscan0: kscan_0 {
compatible = "zmk,kscan-gpio-matrix";
label = "KSCAN";
diode-direction = "col2row";
col-gpios
= <&xiao_d 0 GPIO_ACTIVE_HIGH>
, <&xiao_d 1 GPIO_ACTIVE_HIGH>
, <&xiao_d 2 GPIO_ACTIVE_HIGH>
, <&xiao_d 3 GPIO_ACTIVE_HIGH>
, <&xiao_d 4 GPIO_ACTIVE_HIGH>
;
row-gpios
= <&xiao_d 5 (GPIO_PULL_DOWN | GPIO_ACTIVE_HIGH)>
, <&xiao_d 6 (GPIO_PULL_DOWN | GPIO_ACTIVE_HIGH)>
, <&xiao_d 10 (GPIO_PULL_DOWN | GPIO_ACTIVE_HIGH)>
, <&xiao_d 9 (GPIO_PULL_DOWN | GPIO_ACTIVE_HIGH)>
;
};
};
&left_encoder {
status = "okay";
};

View file

@ -0,0 +1,39 @@
#include "goose.dtsi"
/ {
chosen {
zmk,kscan = &kscan0;
};
kscan0: kscan_0 {
compatible = "zmk,kscan-gpio-matrix";
label = "KSCAN";
diode-direction = "col2row";
col-gpios
= <&xiao_d 4 GPIO_ACTIVE_HIGH>
, <&xiao_d 3 GPIO_ACTIVE_HIGH>
, <&xiao_d 2 GPIO_ACTIVE_HIGH>
, <&xiao_d 1 GPIO_ACTIVE_HIGH>
, <&xiao_d 0 GPIO_ACTIVE_HIGH>
;
row-gpios
= <&xiao_d 5 (GPIO_PULL_DOWN | GPIO_ACTIVE_HIGH)>
, <&xiao_d 6 (GPIO_PULL_DOWN | GPIO_ACTIVE_HIGH)>
, <&xiao_d 10 (GPIO_PULL_DOWN | GPIO_ACTIVE_HIGH)>
, <&xiao_d 9 (GPIO_PULL_DOWN | GPIO_ACTIVE_HIGH)>
;
};
};
&right_encoder {
status = "okay";
};
&default_transform {
col-offset = <5>;
};