forked from zmkfirmware/zmk
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat(shields): Add splitkb.com Aurora Sofle
* Add new shield for splitkb.com Aurora Sofle, supporting keys, encoder(s), displays, and RGB. Co-authored-by: Cem Aksoylar <caksoylar@users.noreply.github.com>
- Loading branch information
1 parent
147f7f2
commit f743d57
Showing
10 changed files
with
422 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,53 @@ | ||
# Copyright (c) 2023 The ZMK Contributors | ||
# SPDX-License-Identifier: MIT | ||
|
||
if SHIELD_SPLITKB_AURORA_SOFLE_LEFT | ||
|
||
config ZMK_KEYBOARD_NAME | ||
default "Aurora Sofle" | ||
|
||
config ZMK_SPLIT_ROLE_CENTRAL | ||
default y | ||
|
||
endif # SHIELD_SPLITKB_AURORA_SOFLE_LEFT | ||
|
||
if SHIELD_SPLITKB_AURORA_SOFLE_LEFT || SHIELD_SPLITKB_AURORA_SOFLE_RIGHT | ||
|
||
config ZMK_SPLIT | ||
default y | ||
|
||
config ZMK_RGB_UNDERGLOW | ||
select WS2812_STRIP | ||
select SPI | ||
|
||
if ZMK_DISPLAY | ||
|
||
config SSD1306 | ||
default y | ||
|
||
config I2C | ||
default y | ||
|
||
config SSD1306_REVERSE_MODE | ||
default y | ||
|
||
endif # ZMK_DISPLAY | ||
|
||
if LVGL | ||
|
||
config LV_Z_VDB_SIZE | ||
default 64 | ||
|
||
config LV_DPI_DEF | ||
default 148 | ||
|
||
config LV_Z_BITS_PER_PIXEL | ||
default 1 | ||
|
||
choice LV_COLOR_DEPTH | ||
default LV_COLOR_DEPTH_1 | ||
endchoice | ||
|
||
endif # LVGL | ||
|
||
endif # SHIELD_SPLITKB_AURORA_SOFLE_LEFT || SHIELD_SPLITKB_AURORA_SOFLE_RIGHT |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
# Copyright (c) 2023 The ZMK Contributors | ||
# SPDX-License-Identifier: MIT | ||
|
||
config SHIELD_SPLITKB_AURORA_SOFLE_LEFT | ||
def_bool $(shields_list_contains,splitkb_aurora_sofle_left) | ||
|
||
config SHIELD_SPLITKB_AURORA_SOFLE_RIGHT | ||
def_bool $(shields_list_contains,splitkb_aurora_sofle_right) |
46 changes: 46 additions & 0 deletions
46
app/boards/shields/splitkb_aurora_sofle/boards/nice_nano.overlay
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,46 @@ | ||
#include <dt-bindings/led/led.h> | ||
|
||
&pinctrl { | ||
spi3_default: spi3_default { | ||
group1 { | ||
psels = <NRF_PSEL(SPIM_MOSI, 0, 6)>; | ||
}; | ||
}; | ||
|
||
spi3_sleep: spi3_sleep { | ||
group1 { | ||
psels = <NRF_PSEL(SPIM_MOSI, 0, 6)>; | ||
low-power-enable; | ||
}; | ||
}; | ||
}; | ||
|
||
&spi3 { | ||
compatible = "nordic,nrf-spim"; | ||
status = "okay"; | ||
|
||
pinctrl-0 = <&spi3_default>; | ||
pinctrl-1 = <&spi3_sleep>; | ||
pinctrl-names = "default", "sleep"; | ||
|
||
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 = <6>; /* arbitrary; change at will */ | ||
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; | ||
}; | ||
}; |
46 changes: 46 additions & 0 deletions
46
app/boards/shields/splitkb_aurora_sofle/boards/nice_nano_v2.overlay
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,46 @@ | ||
#include <dt-bindings/led/led.h> | ||
|
||
&pinctrl { | ||
spi3_default: spi3_default { | ||
group1 { | ||
psels = <NRF_PSEL(SPIM_MOSI, 0, 6)>; | ||
}; | ||
}; | ||
|
||
spi3_sleep: spi3_sleep { | ||
group1 { | ||
psels = <NRF_PSEL(SPIM_MOSI, 0, 6)>; | ||
low-power-enable; | ||
}; | ||
}; | ||
}; | ||
|
||
&spi3 { | ||
compatible = "nordic,nrf-spim"; | ||
status = "okay"; | ||
|
||
pinctrl-0 = <&spi3_default>; | ||
pinctrl-1 = <&spi3_sleep>; | ||
pinctrl-names = "default", "sleep"; | ||
|
||
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 = <6>; /* arbitrary; change at will */ | ||
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; | ||
}; | ||
}; |
9 changes: 9 additions & 0 deletions
9
app/boards/shields/splitkb_aurora_sofle/splitkb_aurora_sofle.conf
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
# Uncomment these two line to add support for encoders to your firmware | ||
# CONFIG_EC11=y | ||
# CONFIG_EC11_TRIGGER_GLOBAL_THREAD=y | ||
|
||
# Uncomment the following line to enable the OLED Display | ||
# CONFIG_ZMK_DISPLAY=y | ||
|
||
# Uncomment the following lines to enable RGB underglow | ||
# CONFIG_ZMK_RGB_UNDERGLOW=y |
79 changes: 79 additions & 0 deletions
79
app/boards/shields/splitkb_aurora_sofle/splitkb_aurora_sofle.dtsi
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,79 @@ | ||
/* | ||
* Copyright (c) 2023 The ZMK Contributors | ||
* | ||
* SPDX-License-Identifier: MIT | ||
*/ | ||
|
||
#include <dt-bindings/zmk/matrix_transform.h> | ||
|
||
/ { | ||
|
||
chosen { | ||
zephyr,display = &oled; | ||
zmk,matrix_transform = &default_transform; | ||
}; | ||
|
||
default_transform: keymap_transform_0 { | ||
compatible = "zmk,matrix-transform"; | ||
columns = <14>; | ||
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 | SW25 | | SW25 | SW19 | SW20 | SW21 | SW22 | SW23 | SW24 | | ||
// | SW30 | SW29 | SW28 | SW27 | SW26 | | SW26 | SW27 | SW28 | SW29 | SW30 | | ||
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,0) RC(3,1) RC(3,2) RC(3,3) RC(3,4) RC(3,5) RC(4,5) RC(4,6) RC(3,6) RC(3,7) RC(3,8) RC(3,9) RC(3,10) RC(3,11) | ||
RC(4,0) RC(4,1) RC(4,2) RC(4,3) RC(4,4) RC(4,7) RC(4,8) RC(4,9) RC(4,10) RC(4,11) | ||
>; | ||
}; | ||
|
||
left_encoder: left_encoder { | ||
compatible = "alps,ec11"; | ||
label = "L_ENCODER"; | ||
steps = <144>; | ||
status = "disabled"; | ||
|
||
a-gpios = <&pro_micro 16 GPIO_PULL_UP>; | ||
b-gpios = <&pro_micro 10 GPIO_PULL_UP>; | ||
}; | ||
|
||
right_encoder: right_encoder { | ||
compatible = "alps,ec11"; | ||
label = "R_ENCODER"; | ||
steps = <144>; | ||
status = "disabled"; | ||
|
||
a-gpios = <&pro_micro 16 GPIO_PULL_UP>; | ||
b-gpios = <&pro_micro 10 GPIO_PULL_UP>; | ||
}; | ||
|
||
sensors { | ||
compatible = "zmk,keymap-sensors"; | ||
sensors = <&left_encoder &right_encoder>; | ||
triggers-per-rotation = <36>; | ||
}; | ||
}; | ||
|
||
&pro_micro_i2c { | ||
status = "okay"; | ||
|
||
oled: ssd1306@3c { | ||
compatible = "solomon,ssd1306fb"; | ||
reg = <0x3c>; | ||
label = "DISPLAY"; | ||
width = <128>; | ||
height = <32>; | ||
segment-offset = <0>; | ||
page-offset = <0>; | ||
display-offset = <0>; | ||
multiplex-ratio = <31>; | ||
segment-remap; | ||
com-invdir; | ||
com-sequential; | ||
prechargep = <0x22>; | ||
}; | ||
}; |
78 changes: 78 additions & 0 deletions
78
app/boards/shields/splitkb_aurora_sofle/splitkb_aurora_sofle.keymap
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,78 @@ | ||
/* | ||
* 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/ext_power.h> | ||
|
||
/* Uncomment this block if using RGB | ||
&led_strip { | ||
chain-length = <6>; | ||
// chain-length = <35>; // Uncomment if using both per-key and underglow LEDs | ||
// chain-length = <29>; // Uncomment if using only per-key LEDs. | ||
}; | ||
*/ | ||
|
||
/ { | ||
keymap { | ||
compatible = "zmk,keymap"; | ||
|
||
default_layer { | ||
// ------------------------------------------------------------------------------------------------------------ | ||
// | ESC | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | ` | | ||
// | TAB | Q | W | E | R | T | | Y | U | I | O | P | - | | ||
// | CTRL | A | S | D | F | G | | H | J | K | L | ; | ' | | ||
// | SHIFT | Z | X | C | V | B | "[" | | "]" | N | M | , | . | / | SHIFT | | ||
// |CTRL | ALT | GUI | LOWER| SPACE | | ENTER | RAISE| BSPC | GUI | RALT | | ||
bindings = < | ||
&kp ESC &kp N1 &kp N2 &kp N3 &kp N4 &kp N5 &kp N6 &kp N7 &kp N8 &kp N9 &kp N0 &kp GRAVE | ||
&kp TAB &kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P &kp MINUS | ||
&kp LCTRL &kp A &kp S &kp D &kp F &kp G &kp H &kp J &kp K &kp L &kp SEMI &kp SQT | ||
&kp LSHFT &kp Z &kp X &kp C &kp V &kp B &kp LBKT &kp RBKT &kp N &kp M &kp COMMA &kp DOT &kp FSLH &kp RSHFT | ||
&kp LCTRL &kp LALT &kp LGUI &mo 1 &kp SPACE &kp RET &mo 2 &kp BSPC &kp RGUI &kp RALT | ||
>; | ||
|
||
sensor-bindings = <&inc_dec_kp C_VOL_UP C_VOL_DN>; | ||
}; | ||
|
||
lower_layer { | ||
// ------------------------------------------------------------------------------------------------------------ | ||
// | BTCLR | BT1 | BT2 | BT3 | BT4 | BT5 | | | | | | | | | ||
// | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 | | ||
// | ` | ! | @ | # | $ | % | | ^ | & | * | ( | ) | ~ | | ||
// | | | | | | | | | | | _ | + | { | } | "|" | | ||
// | | | | | | | | | | | | | ||
bindings = < | ||
&bt BT_CLR &bt BT_SEL 0 &bt BT_SEL 1 &bt BT_SEL 2 &bt BT_SEL 3 &bt BT_SEL 4 &trans &trans &trans &trans &trans &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 | ||
&kp GRAVE &kp EXCL &kp AT &kp HASH &kp DOLLAR &kp PRCNT &kp CARET &kp AMPS &kp STAR &kp LPAR &kp RPAR &kp TILDE | ||
&trans &ext_power EP_ON &ext_power EP_OFF &ext_power EP_TOG &trans &trans &trans &trans &trans &kp MINUS &kp PLUS &kp LBRC &kp RBRC &kp PIPE | ||
&trans &trans &trans &trans &trans &trans &trans &trans &trans &trans | ||
>; | ||
|
||
sensor-bindings = <&inc_dec_kp C_VOL_UP C_VOL_DN>; | ||
}; | ||
|
||
raise_layer { | ||
// ------------------------------------------------------------------------------------------------------------ | ||
// | | | | | | | | | | | | | | | ||
// | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | | | ||
// | F1 | F2 | F3 | F4 | F5 | F6 | | | <- | v | ^ | -> | | | ||
// | F7 | F8 | F9 | F10 | F11 | F12 | | | | + | - | = | [ | ] | \ | | ||
// | | | | | | | | | | | | | ||
bindings = < | ||
&trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans | ||
&kp GRAVE &kp N1 &kp N2 &kp N3 &kp N4 &kp N5 &kp N6 &kp N7 &kp N8 &kp N9 &kp N0 &trans | ||
&kp F1 &kp F2 &kp F3 &kp F4 &kp F5 &kp F6 &trans &kp LEFT &kp DOWN &kp UP &kp RIGHT &trans | ||
&kp F7 &kp F8 &kp F9 &kp F10 &kp F11 &kp F12 &trans &trans &kp KP_PLUS &kp MINUS &kp EQUAL &kp LBKT &kp RBKT &kp BSLH | ||
&trans &trans &trans &trans &trans &trans &trans &trans &trans &trans | ||
>; | ||
|
||
sensor-bindings = <&inc_dec_kp C_VOL_UP C_VOL_DN>; | ||
}; | ||
}; | ||
}; |
15 changes: 15 additions & 0 deletions
15
app/boards/shields/splitkb_aurora_sofle/splitkb_aurora_sofle.zmk.yml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
file_format: "1" | ||
id: splitkb_aurora_sofle | ||
name: splitkb.com Aurora Sofle | ||
type: shield | ||
url: https://splitkb.com/products/aurora-sofle-pcb-kit | ||
requires: [pro_micro] | ||
exposes: [i2c_oled] | ||
features: | ||
- keys | ||
- display | ||
- encoder | ||
- underglow | ||
siblings: | ||
- splitkb_aurora_sofle_left | ||
- splitkb_aurora_sofle_right |
43 changes: 43 additions & 0 deletions
43
app/boards/shields/splitkb_aurora_sofle/splitkb_aurora_sofle_left.overlay
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,43 @@ | ||
/* | ||
* Copyright (c) 2023 The ZMK Contributors | ||
* | ||
* SPDX-License-Identifier: MIT | ||
*/ | ||
|
||
#include "splitkb_aurora_sofle.dtsi" | ||
|
||
/ { | ||
chosen { | ||
zmk,kscan = &kscan; | ||
}; | ||
|
||
kscan: kscan { | ||
compatible = "zmk,kscan-gpio-matrix"; | ||
|
||
label = "KSCAN"; | ||
diode-direction = "col2row"; | ||
|
||
row-gpios | ||
= <&pro_micro 20 (GPIO_PULL_DOWN | GPIO_ACTIVE_HIGH)> | ||
, <&pro_micro 15 (GPIO_PULL_DOWN | GPIO_ACTIVE_HIGH)> | ||
, <&pro_micro 18 (GPIO_PULL_DOWN | GPIO_ACTIVE_HIGH)> | ||
, <&pro_micro 19 (GPIO_PULL_DOWN | GPIO_ACTIVE_HIGH)> | ||
, <&pro_micro 14 (GPIO_PULL_DOWN | GPIO_ACTIVE_HIGH)> | ||
; | ||
|
||
col-gpios | ||
= <&pro_micro 9 GPIO_ACTIVE_HIGH> | ||
, <&pro_micro 8 GPIO_ACTIVE_HIGH> | ||
, <&pro_micro 7 GPIO_ACTIVE_HIGH> | ||
, <&pro_micro 6 GPIO_ACTIVE_HIGH> | ||
, <&pro_micro 5 GPIO_ACTIVE_HIGH> | ||
, <&pro_micro 4 GPIO_ACTIVE_HIGH> | ||
; | ||
}; | ||
}; | ||
|
||
&left_encoder { | ||
status = "okay"; | ||
}; | ||
|
||
|
Oops, something went wrong.