Source build of Wyldbuilds 4x6 Dactyl

This commit is contained in:
Greg Hellings
2024-05-27 13:37:53 -05:00
parent 30483f30b8
commit 0d92f76d5d
23 changed files with 901 additions and 164 deletions
@@ -0,0 +1,16 @@
if SHIELD_WYLD_DM_RIGHT
config ZMK_KEYBOARD_NAME
default "Wyld DM"
config ZMK_SPLIT_ROLE_CENTRAL
default y
endif
if SHIELD_WYLD_DM_LEFT || SHIELD_WYLD_DM_RIGHT
config ZMK_SPLIT
default y
endif
@@ -0,0 +1,10 @@
# config SHIELD_WYLD_DM
# bool
config SHIELD_WYLD_DM_LEFT
def_bool $(shields_list_contains,wyld_dm_left)
# select SHIELD_WYLD_DM
config SHIELD_WYLD_DM_RIGHT
def_bool $(shields_list_contains,wyld_dm_right)
# select SHIELD_WYLD_DM
+137
View File
@@ -0,0 +1,137 @@
#include <dt-bindings/zmk/matrix_transform.h>
#include <dt-bindings/led/led.h>
//wyld_dm_6x6 = <
// 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,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(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(1,10) RC(1,11)
// 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(2,10) RC(2,11)
// RC(4,0) RC(4,1) RC(4,2) RC(4,3) RC(4,4) RC(4,5) RC(4,6) RC(4,7) RC(4,8) RC(4,9) RC(4,10) RC(4,11)
// RC(5,2) RC(5,3) RC(5,4) RC(5,5) RC(5,6) RC(5,7) RC(5,8) RC(5,9)
// RC(6,2) RC(6,3) RC(6,4) RC(6,5) RC(6,6) RC(6,7) RC(6,8) RC(6,9)
// >;
//
//wyld_dm_5x7 = <
// 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,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(1,0) RC(1,1) RC(1,2) RC(1,3) RC(1,4) RC(1,5) RC(1,6) RC(5,1) RC(5, 10) RC(1,7) RC(1,8) RC(1,9) RC(1,10) RC(1,11) RC(1,12) RC(1,13)
// 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(2,10) RC(2,11) RC(2,12) RC(2,13)
// RC(4,0) RC(4,1) RC(4,2) RC(4,3) RC(4,4) RC(4,9) RC(4,10) RC(4,11) RC(4,12) RC(4,13)
// RC(5,2) RC(5,3) RC(5,4) RC(5,7) RC(5,8) RC(5,9)
// RC(5,5) RC(5,6)
// >;
/ {
chosen {
zmk,kscan = &kscan0;
zmk,matrix_transform = &default_transform;
// zephyr,display = &oled;
zmk,underglow = &led_strip;
};
default_transform: keymap_transform_0 {
compatible = "zmk,matrix-transform";
columns = <12>;
rows = <5>;
// | SW6 | SW5 | SW4 | SW3 | SW2 | SW1 | | SW1 | SW2 | SW3 | SW4 | SW5 | SW6 |
// | SW12 | SW11 | SW10 | SW9 | SW8 | SW7 | | SW7 | SW8 | SW9 | SW10 | SW11 | SW12 |
// | SW18 | SW17 | SW16 | SW15 | SW14 | SW13 | | SW13 | SW14 | SW15 | SW16 | SW17 | SW18 |
// | SW24 | SW23 | SW22 | SW21 | SW20 | SW19 | | SW19 | SW20 | SW21 | SW22 | SW23 | SW24 |
// | SW30 | SW29 | SW28 | SW27 | SW26 | SW25 | | SW25 | SW26 | SW27 | SW28 | SW29 | SW30 |
//# 5x7 with encoders
// 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,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(1,0) RC(1,1) RC(1,2) RC(1,3) RC(1,4) RC(1,5) RC(1,6) RC(5,1) RC(5, 10) RC(1,7) RC(1,8) RC(1,9) RC(1,10) RC(1,11) RC(1,12) RC(1,13)
// 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(2,10) RC(2,11) RC(2,12) RC(2,13)
// RC(4,0) RC(4,1) RC(4,2) RC(4,3) RC(4,4) RC(4,9) RC(4,10) RC(4,11) RC(4,12) RC(4,13)
// RC(5,2) RC(5,3) RC(5,4) RC(5,7) RC(5,8) RC(5,9)
// RC(5,5) RC(5,6)
// >;
// map = <
//
// RC(1,5) RC(1,4) RC(1,3) RC(1,2) RC(1,1) RC(1,0) RC(1,7) RC(1,8) RC(1,9) RC(1,10) RC(1,11) RC(1,12)
// RC(2,5) RC(2,4) RC(2,3) RC(2,2) RC(2,1) RC(2,0) RC(2,7) RC(2,8) RC(2,9) RC(2,10) RC(2,11) RC(2,12)
// RC(3,5) RC(3,4) RC(3,3) RC(3,2) RC(3,1) RC(3,0) RC(0,6) RC(0,13) RC(3,7) RC(3,8) RC(3,9) RC(3,10) RC(3,11) RC(3,12)
// RC(4,5) RC(4,4) RC(4,3) RC(4,2) RC(4,1) RC(4,0) RC(4,7) RC(4,8) RC(4,9) RC(4,10) RC(4,11) RC(4,12)
// RC(0,0) RC(0,1) RC(0,7)
// RC(0,5) RC(0,2) RC(0,8)
// RC(0,4) RC(0,3) RC(0,10) RC(0,9)
// >;
// RC(4,5) IS THE ENCODER!
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(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(1,10) RC(1,11)
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(2,10) RC(2,11)
RC(3,2) RC(3,3) RC(3,4) RC(3,5) RC(3,8) RC(3,9)
RC(4,0) RC(4,1) RC(4,2) RC(4,3) RC(4,5) RC(4,6) RC(4,7) RC(4,8) RC(4,9)
>;
};
kscan0: kscan_0 {
compatible = "zmk,kscan-gpio-matrix";
label = "KSCAN";
diode-direction = "col2row";
// PILLBUG PINS
// row-gpios
// = <&gpio1 11 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> // PB1 / 1.11
// , <&gpio0 2 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> // PB0 / 1.09
// , <&gpio1 15 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> // PA4 / 1.11
// , <&gpio0 9 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> // PA3 / 0.31
// , <&gpio0 31 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> // PA2 / 1.15
// , <&gpio0 29 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> // PA1 / 0.29
// ;
// NANO V2 PINS
row-gpios
= <&gpio0 10 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> // 0.9
, <&gpio0 9 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> // 0.9
, <&gpio1 7 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> // 1.07
, <&gpio1 02 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> // 1.02
, <&gpio1 01 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> // 1.01
;
// // NANO V2 PINS
// row-gpios
// = <&gpio1 13 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> // 1.13
// , <&gpio1 11 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> // 1.11
// , <&gpio0 10 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> // 0.10
// , <&gpio0 9 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> // 0.9
//// , <&gpio0 31 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> // PA2 / 1.15
//// , <&gpio0 29 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> // PA1 / 0.29
// ;
};
left_encoder: encoder_left {
compatible = "alps,ec11";
label = "LEFT_ENCODER";
a-gpios = <&gpio1 4 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>;
b-gpios = <&gpio1 6 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>;
steps = <60>;
status = "disabled";
};
// right_encoder: encoder_right {
// compatible = "alps,ec11";
// label = "RIGHT_ENCODER";
// a-gpios = <&gpio0 10 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>;
// b-gpios = <&gpio1 13 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>;
// steps = <60>;
// status = "disabled";
// };
sensors: sensors {
compatible = "zmk,keymap-sensors";
sensors = <&left_encoder>;
triggers-per-rotation = <15>;
};
};
@@ -0,0 +1,6 @@
/*
* Copyright (c) 2020 The ZMK Contributors
*
* SPDX-License-Identifier: MIT
*/
#include "../../../wyld_dm.keymap"
@@ -0,0 +1,17 @@
file_format: "1"
id: wyld_dm
Name: wyld_dm
type: shield
url: https://github.com/bullwinkle3000/zmk-config-xiao/
requires:
- nice_nano_v2
exposes:
- i2c_oled
features:
- keys
- display
- encoders
- pointer
siblings:
- wyld_dm_left
- wyld_dm_right
@@ -0,0 +1,19 @@
# CONFIG_SPI=y
# # CONFIG_INPUT=y
# CONFIG_ZMK_RGB_UNDERGLOW=y
# CONFIG_WS2812_STRIP=y
# CONFIG_ZMK_RGB_UNDERGLOW_AUTO_OFF_IDLE=y
# CONFIG_ZMK_RGB_UNDERGLOW_EXT_POWER=n
#
# CONFIG_ZMK_RGB_UNDERGLOW_ON_START=y
# CONFIG_ZMK_RGB_UNDERGLOW_EFF_START=2
# CONFIG_ZMK_USB_LOGGING=y
#
# CONFIG_ZMK_RGB_UNDERGLOW=y
# CONFIG_WS2812_STRIP=y
# CONFIG_ZMK_RGB_UNDERGLOW_AUTO_OFF_IDLE=y
# CONFIG_ZMK_RGB_UNDERGLOW_EXT_POWER=n
#
# CONFIG_ZMK_RGB_UNDERGLOW_ON_START=y
# CONFIG_ZMK_RGB_UNDERGLOW_EFF_START=0
@@ -0,0 +1,37 @@
// wyld_dm_left.overlay
#include "wyld_dm.dtsi"
#include <dt-bindings/led/led.h>
/// PILLBUG PINS
//&kscan0 {
// col-gpios
// = <&gpio0 22 GPIO_ACTIVE_HIGH> // 0.22
// , <&gpio0 24 GPIO_ACTIVE_HIGH> // 0.24
// , <&gpio1 0 GPIO_ACTIVE_HIGH> // 1.00
// , <&gpio0 11 GPIO_ACTIVE_HIGH> // 0.11
// , <&gpio1 4 GPIO_ACTIVE_HIGH> // 1.04
//// , <&gpio1 6 GPIO_ACTIVE_HIGH> // 1.06
//// , <&gpio1 04 GPIO_ACTIVE_HIGH> // PB13 / 1.04
// ;
//};
&left_encoder {
status = "okay";
};
&kscan0 {
col-gpios
= <&gpio0 31 GPIO_ACTIVE_HIGH> // 0.31
, <&gpio0 29 GPIO_ACTIVE_HIGH> // 0.29
, <&gpio0 2 GPIO_ACTIVE_HIGH> // 0.02
, <&gpio1 15 GPIO_ACTIVE_HIGH> // 1.15
, <&gpio1 13 GPIO_ACTIVE_HIGH> // 1.13
, <&gpio1 11 (GPIO_ACTIVE_HIGH )> // 1.11
;
};
@@ -0,0 +1,21 @@
# #enable mouse emulation
CONFIG_ZMK_MOUSE=y
CONFIG_SPI=y
CONFIG_INPUT=y
CONFIG_PMW3610=y
CONFIG_PMW3610_CPI=2400
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=32
CONFIG_PMW3610_INVERT_X=y
CONFIG_PMW3610_AUTOMOUSE_TIMEOUT_MS=750
CONFIG_PMW3610_POLLING_RATE_125_SW=y
CONFIG_PMW3610_SMART_ALGORITHM=y
@@ -0,0 +1,95 @@
// wyld_dm_right.overlay
#include "wyld_dm.dtsi"
#include <dt-bindings/led/led.h>
&default_transform {
col-offset = <6>;
};
&kscan0 {
col-gpios
= <&gpio0 31 GPIO_ACTIVE_HIGH> // 0.31
, <&gpio0 29 GPIO_ACTIVE_HIGH> // 0.29
, <&gpio0 2 GPIO_ACTIVE_HIGH> // 0.02
, <&gpio1 15 GPIO_ACTIVE_HIGH> // 1.15
, <&gpio1 13 GPIO_ACTIVE_HIGH> // 1.13
, <&gpio1 11 (GPIO_ACTIVE_HIGH )> // 1.11
;
};
//&right_encoder {
// status = "okay";
//};
&pinctrl {
spi0_default: spi0_default {
group1 {
psels = <NRF_PSEL(SPIM_SCK, 0, 20)>,
<NRF_PSEL(SPIM_MOSI, 0, 17)>;
};
};
spi0_sleep: spi0_sleep {
group1 {
psels = <NRF_PSEL(SPIM_SCK, 0, 20)>,
<NRF_PSEL(SPIM_MOSI, 0, 17)>;
low-power-enable;
};
};
spi1_default: spi1_default {
group1 {
psels = <NRF_PSEL(SPIM_SCK, 0, 6)>,
<NRF_PSEL(SPIM_MOSI, 0, 8)>,
<NRF_PSEL(SPIM_MISO, 0, 8)>;
};
};
spi1_sleep: sp10_sleep {
group1 {
psels = <NRF_PSEL(SPIM_SCK, 0, 6)>,
<NRF_PSEL(SPIM_MOSI, 0, 8)>,
<NRF_PSEL(SPIM_MISO, 0, 8)>;
low-power-enable;
};
};
};
&spi1 {
compatible = "nordic,nrf-spim";
status = "okay";
pinctrl-0 = <&spi1_default>;
pinctrl-1 = <&spi1_sleep>;
pinctrl-names = "default", "sleep";
cs-gpios = <&gpio0 22 GPIO_ACTIVE_LOW>;
trackball: trackball@0 {
status = "okay";
compatible = "pixart,pmw3610";
reg = <0>;
spi-max-frequency = <2000000>;
irq-gpios = <&gpio0 24 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>;
snipe-layers = <1>;
scroll-layers = <2>;
automouse-layer = <3>;
};
};
nice_view_spi: &spi0 {
compatible = "nordic,nrf-spim";
pinctrl-0 = <&spi0_default>;
pinctrl-1 = <&spi0_sleep>;
pinctrl-names = "default", "sleep";
cs-gpios = <&gpio1 0 GPIO_ACTIVE_HIGH>;
};
/ {
pmw3610_listener {
compatible = "zmk,input-listener";
device = <&trackball>;
};
};
/ {
chosen {
zephyr,display = &nice_view;
};
};