-
-
Notifications
You must be signed in to change notification settings - Fork 2.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat(shields): Add MechWild OBE #1713
base: main
Are you sure you want to change the base?
Changes from all commits
b4f0341
d8c8465
9b8a2d3
77b2ad1
727045e
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
# Copyright (c) 2023 The ZMK Contributors | ||
# SPDX-License-Identifier: MIT | ||
|
||
if SHIELD_OBE | ||
|
||
config ZMK_KEYBOARD_NAME | ||
default "OrangeBoyErgo" | ||
|
||
if LVGL | ||
|
||
config LVGL_VDB_SIZE | ||
default 64 | ||
|
||
config LVGL_DPI | ||
default 148 | ||
|
||
config LVGL_BITS_PER_PIXEL | ||
default 1 | ||
|
||
choice LVGL_COLOR_DEPTH | ||
default LVGL_COLOR_DEPTH_1 | ||
endchoice | ||
|
||
endif # LVGL | ||
|
||
endif |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
# Copyright (c) 2023 The ZMK Contributors | ||
# SPDX-License-Identifier: MIT | ||
|
||
config SHIELD_OBE | ||
def_bool $(shields_list_contains,obe) |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
# Necessary to stop double matrix reads on first row | ||
CONFIG_ZMK_KSCAN_MATRIX_WAIT_BEFORE_INPUTS=150 | ||
CONFIG_ZMK_KSCAN_MATRIX_WAIT_BETWEEN_OUTPUTS=150 |
Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
@@ -0,0 +1,38 @@ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
/* | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
* Copyright (c) 2023 The ZMK Contributors | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
* | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
* SPDX-License-Identifier: MIT | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
*/ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#include <dt-bindings/led/led.h> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
&spi1 { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
compatible = "nordic,nrf-spim"; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
status = "okay"; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
mosi-pin = <25>; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
// Unused pins, needed for SPI definition, but not used by the ws2812 driver itself. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
sck-pin = <27>; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
miso-pin = <28>; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Comment on lines
+9
to
+15
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
led_strip: ws2812@0 { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
compatible = "worldsemi,ws2812-spi"; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
label = "WS2812"; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
/* SPI */ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
reg = <0>; /* ignored, but necessary for SPI bindings */ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
spi-max-frequency = <4000000>; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
/* WS2812 */ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
chain-length = <10>; /* number of LEDs */ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
spi-one-frame = <0x70>; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
spi-zero-frame = <0x40>; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
color-mapping = <LED_COLOR_ID_GREEN LED_COLOR_ID_RED LED_COLOR_ID_BLUE>; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
}; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
}; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
/ { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
chosen { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
zmk,underglow = &led_strip; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
}; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
}; |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
# Uncomment to turn on logging, and set ZMK logging to debug output | ||
#CONFIG_ZMK_USB_LOGGING=y | ||
|
||
# Uncomment both to enable underglow, will not work with blackpill (currently) | ||
#CONFIG_ZMK_RGB_UNDERGLOW=y | ||
#CONFIG_WS2812_STRIP=y | ||
|
||
# Uncomment both to enable encoder | ||
#CONFIG_EC11=y | ||
#CONFIG_EC11_TRIGGER_GLOBAL_THREAD=y | ||
|
||
# Quality of life settings | ||
#CONFIG_ZMK_IDLE_TIMEOUT=300000 | ||
#CONFIG_BT_CTLR_TX_PWR_PLUS_8=y |
Original file line number | Diff line number | Diff line change | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
@@ -0,0 +1,93 @@ | ||||||||||||
/* | ||||||||||||
* Copyright (c) 2023 The ZMK Contributors | ||||||||||||
* | ||||||||||||
* SPDX-License-Identifier: MIT | ||||||||||||
*/ | ||||||||||||
|
||||||||||||
#include <behaviors.dtsi> | ||||||||||||
#include <dt-bindings/zmk/keys.h> | ||||||||||||
#include <dt-bindings/zmk/bt.h> | ||||||||||||
#include <dt-bindings/zmk/rgb.h> | ||||||||||||
#include <dt-bindings/zmk/ext_power.h> | ||||||||||||
|
||||||||||||
#define TIMEOUT 300 | ||||||||||||
|
||||||||||||
&encoder_1 { | ||||||||||||
status = "okay"; | ||||||||||||
}; | ||||||||||||
|
||||||||||||
/ { | ||||||||||||
combos { | ||||||||||||
compatible = "zmk,combos"; | ||||||||||||
combo_btclr { | ||||||||||||
timeout-ms = <TIMEOUT>; | ||||||||||||
key-positions = <1 6>; | ||||||||||||
bindings = <&bt BT_CLR>; | ||||||||||||
}; | ||||||||||||
combo_lock { | ||||||||||||
timeout-ms = <TIMEOUT>; | ||||||||||||
key-positions = <1 7>; | ||||||||||||
bindings = <&tog 2>; | ||||||||||||
}; | ||||||||||||
combo_reset { | ||||||||||||
timeout-ms = <TIMEOUT>; | ||||||||||||
key-positions = <1 3>; | ||||||||||||
bindings = <&reset>; | ||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
This is part of the Zephyr 3.2 update circa April 2023. |
||||||||||||
}; | ||||||||||||
combo_bootloader { | ||||||||||||
timeout-ms = <TIMEOUT>; | ||||||||||||
key-positions = <1 15>; | ||||||||||||
bindings = <&bootloader>; | ||||||||||||
}; | ||||||||||||
combo_bt_nxt { | ||||||||||||
timeout-ms = <TIMEOUT>; | ||||||||||||
key-positions = <1 4>; | ||||||||||||
bindings = <&bt BT_NXT>; | ||||||||||||
}; | ||||||||||||
}; | ||||||||||||
|
||||||||||||
sensors { | ||||||||||||
compatible = "zmk,keymap-sensors"; | ||||||||||||
sensors = <&encoder_1>; | ||||||||||||
}; | ||||||||||||
Comment on lines
+48
to
+52
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||||||||
|
||||||||||||
keymap0: keymap { | ||||||||||||
compatible = "zmk,keymap"; | ||||||||||||
|
||||||||||||
default_layer { | ||||||||||||
label = "default layer"; | ||||||||||||
bindings = < | ||||||||||||
&kp C_MUTE &kp ESC &kp N1 &kp N2 &kp N3 &kp N4 &kp N5 &kp N6 &kp N7 &kp N8 &kp N9 &kp N0 &kp MINUS &kp EQUAL &kp BSLH &kp BSPC | ||||||||||||
&kp PG_UP &kp TAB &kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P &kp LBKT &kp RBKT &kp BSLH | ||||||||||||
&kp PG_DN &mo 1 &kp A &kp S &kp D &kp F &kp G &kp H &kp J &kp K &kp L &kp SEMI &kp APOS &kp ENTER | ||||||||||||
&kp LSHFT &kp Z &kp X &kp C &kp V &kp B &kp B &kp N &kp M &kp COMMA &kp DOT &kp FSLH &kp UP &kp RSHFT | ||||||||||||
&kp LCTRL &kp LGUI &kp LALT &kp SPACE &mo 1 &kp SPACE &kp RALT &mo 1 &kp LEFT &kp DOWN &kp RIGHT | ||||||||||||
>; | ||||||||||||
sensor-bindings = <&inc_dec_kp C_VOL_UP C_VOL_DN>; | ||||||||||||
}; | ||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||||||||
|
||||||||||||
fn_layer { | ||||||||||||
label = "fn layer"; | ||||||||||||
bindings = < | ||||||||||||
&tog 2 &trans &kp F1 &kp F2 &kp F3 &kp F4 &kp F5 &kp F6 &kp F7 &kp F8 &kp F9 &kp F10 &kp F11 &kp F12 &trans &kp DEL | ||||||||||||
&bootloader &trans &bt BT_SEL 0 &bt BT_SEL 1 &bt BT_SEL 2 &bt BT_SEL 3 &trans &trans &trans &trans &trans &trans &trans &trans &trans | ||||||||||||
&bt BT_NXT &kp CAPS &kp KP_NUM &kp SLCK &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans | ||||||||||||
&trans &trans &bt BT_CLR &trans &trans &trans &trans &trans &trans &trans &trans &trans &kp PG_UP &trans | ||||||||||||
&trans &trans &rgb_ug RGB_BRD &rgb_ug RGB_EFR &ext_power EP_TOG &rgb_ug RGB_EFF &rgb_ug RGB_BRI &trans &kp HOME &kp PG_DN &kp END | ||||||||||||
>; | ||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||||||||
sensor-bindings = <&inc_dec_kp PG_UP PG_DN>; | ||||||||||||
}; | ||||||||||||
|
||||||||||||
lock_layer { | ||||||||||||
label = "fn layer"; | ||||||||||||
bindings = < | ||||||||||||
&none &none &none &none &none &none &none &none &none &none &none &none &none &none &none &none | ||||||||||||
&none &none &none &none &none &none &none &none &none &none &none &none &none &none &none | ||||||||||||
&none &none &none &none &none &none &none &none &none &none &none &none &none &none | ||||||||||||
&none &none &none &none &none &none &none &none &none &none &none &none &none &none | ||||||||||||
&none &none &none &none &none &none &none &none &none &none &none | ||||||||||||
>; | ||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||||||||
sensor-bindings = <&inc_dec_kp PG_UP PG_DN>; | ||||||||||||
}; | ||||||||||||
}; | ||||||||||||
}; |
Original file line number | Diff line number | Diff line change | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
@@ -0,0 +1,63 @@ | ||||||||||||||||||
/* | ||||||||||||||||||
* Copyright (c) 2023 The ZMK Contributors | ||||||||||||||||||
* | ||||||||||||||||||
* SPDX-License-Identifier: MIT | ||||||||||||||||||
*/ | ||||||||||||||||||
|
||||||||||||||||||
#include <dt-bindings/zmk/matrix_transform.h> | ||||||||||||||||||
|
||||||||||||||||||
/ { | ||||||||||||||||||
chosen { | ||||||||||||||||||
zmk,kscan = &kscan0; | ||||||||||||||||||
zmk,matrix_transform = &default_transform; | ||||||||||||||||||
}; | ||||||||||||||||||
|
||||||||||||||||||
kscan0: kscan { | ||||||||||||||||||
compatible = "zmk,kscan-gpio-matrix"; | ||||||||||||||||||
label = "KSCAN"; | ||||||||||||||||||
diode-direction = "col2row"; | ||||||||||||||||||
row-gpios | ||||||||||||||||||
= <&blackpill 29 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> | ||||||||||||||||||
, <&blackpill 28 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> | ||||||||||||||||||
, <&blackpill 27 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> | ||||||||||||||||||
, <&blackpill 26 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> | ||||||||||||||||||
, <&blackpill 25 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> | ||||||||||||||||||
, <&blackpill 38 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> | ||||||||||||||||||
, <&blackpill 39 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> | ||||||||||||||||||
; | ||||||||||||||||||
col-gpios | ||||||||||||||||||
= <&blackpill 21 GPIO_ACTIVE_HIGH> | ||||||||||||||||||
, <&blackpill 19 GPIO_ACTIVE_HIGH> | ||||||||||||||||||
, <&blackpill 18 GPIO_ACTIVE_HIGH> | ||||||||||||||||||
, <&blackpill 17 GPIO_ACTIVE_HIGH> | ||||||||||||||||||
, <&blackpill 16 GPIO_ACTIVE_HIGH> | ||||||||||||||||||
, <&blackpill 15 GPIO_ACTIVE_HIGH> | ||||||||||||||||||
, <&blackpill 14 GPIO_ACTIVE_HIGH> | ||||||||||||||||||
, <&blackpill 13 GPIO_ACTIVE_HIGH> | ||||||||||||||||||
, <&blackpill 12 GPIO_ACTIVE_HIGH> | ||||||||||||||||||
, <&blackpill 11 GPIO_ACTIVE_HIGH> | ||||||||||||||||||
; | ||||||||||||||||||
}; | ||||||||||||||||||
|
||||||||||||||||||
default_transform: keymap_transform_0 { | ||||||||||||||||||
compatible = "zmk,matrix-transform"; | ||||||||||||||||||
columns = <12>; | ||||||||||||||||||
rows = <4>; | ||||||||||||||||||
map = < | ||||||||||||||||||
RC(5,5) RC(5,4) RC(5,3) RC(5,2) RC(5,1) RC(5,0) 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(6,5) RC(5,9) RC(5,8) RC(5,7) RC(5,6) 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(6,4) RC(6,9) RC(6,8) RC(6,3) 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(6,2) RC(6,0) RC(6,7) RC(6,6) RC(3,0) RC(3,1) RC(3,2) RC(3,3) RC(3,4) RC(3,5) RC(3,6) RC(3,7) RC(3,8) RC(3,9) | ||||||||||||||||||
RC(6,1) 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) | ||||||||||||||||||
>; | ||||||||||||||||||
}; | ||||||||||||||||||
|
||||||||||||||||||
encoder_1: encoder_1 { | ||||||||||||||||||
compatible = "alps,ec11"; | ||||||||||||||||||
label = "Encoder 1"; | ||||||||||||||||||
a-gpios = <&blackpill 40 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>; | ||||||||||||||||||
b-gpios = <&blackpill 41 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>; | ||||||||||||||||||
resolution = <4>; | ||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||||||||||||||
status = "disabled"; | ||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I have it on good authority that the
Suggested change
|
||||||||||||||||||
}; | ||||||||||||||||||
}; |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
file_format: "1" | ||
id: obe | ||
name: OrangeBoyErgo | ||
type: shield | ||
url: https://mechwild.com/product/orange-boy-ergo/ | ||
requires: [blackpill] | ||
features: | ||
- keys | ||
- encoder | ||
- underglow |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No display on this board.