Updates from pre-commit.

This commit is contained in:
ClicketySplit 2023-04-26 14:24:02 +00:00
parent 2b1e91f37d
commit 6cadaa71cd
23 changed files with 277 additions and 247 deletions

View file

@ -4,10 +4,10 @@
if SHIELD_LEELOO_REV2_LEFT if SHIELD_LEELOO_REV2_LEFT
config ZMK_KEYBOARD_NAME config ZMK_KEYBOARD_NAME
default "Leeloo v2" default "Leeloo v2"
config ZMK_SPLIT_ROLE_CENTRAL config ZMK_SPLIT_ROLE_CENTRAL
default y default y
endif endif

View file

@ -2,20 +2,20 @@
# SPDX-License-Identifier: MIT # SPDX-License-Identifier: MIT
config SHIELD_LEELOO config SHIELD_LEELOO
bool bool
config SHIELD_LEELOO_LEFT config SHIELD_LEELOO_LEFT
def_bool $(shields_list_contains,leeloo_left) def_bool $(shields_list_contains,leeloo_left)
select SHIELD_LEELOO select SHIELD_LEELOO
config SHIELD_LEELOO_RIGHT config SHIELD_LEELOO_RIGHT
def_bool $(shields_list_contains,leeloo_right) def_bool $(shields_list_contains,leeloo_right)
select SHIELD_LEELOO select SHIELD_LEELOO
config SHIELD_LEELOO_REV2_LEFT config SHIELD_LEELOO_REV2_LEFT
def_bool $(shields_list_contains,leeloo_rev2_left) def_bool $(shields_list_contains,leeloo_rev2_left)
select SHIELD_LEELOO select SHIELD_LEELOO
config SHIELD_LEELOO_REV2_RIGHT config SHIELD_LEELOO_REV2_RIGHT
def_bool $(shields_list_contains,leeloo_rev2_right) def_bool $(shields_list_contains,leeloo_rev2_right)
select SHIELD_LEELOO select SHIELD_LEELOO

View file

@ -6,95 +6,106 @@ Keyboard Designer: [clicketysplit.ca](https://clicketysplit.ca)
GitHub: [ClicketySplit](https://github.com/ClicketySplit) GitHub: [ClicketySplit](https://github.com/ClicketySplit)
Hardware Supported: Pro Micro, Elite-C, and nice!nano v2 Hardware Supported: Pro Micro, Elite-C, and nice!nano v2
Leeloo v2 has been designed from scratch—again. Everything from the wiring schematic to its case. Leeloo v2 still keeps the column stagger that it's known for, along with its low profile design. Leeloo v2 has been designed from scratch—again. Everything from the wiring schematic to its case. Leeloo v2 still keeps the column stagger that it's known for, along with its low profile design.
## Features/Differences from Leeloo v1 ## Features/Differences from Leeloo v1
* Support for Kailh Low Profile Choc switches with 18mm x 18mm spacing.
- Support for Kailh Low Profile Choc switches with 18mm x 18mm spacing.
- A version for Kailh Box/MX switches with 19.05mm x 19.05mm spacing will be available in the future. - A version for Kailh Box/MX switches with 19.05mm x 19.05mm spacing will be available in the future.
* All switch locations are socketed. - All switch locations are socketed.
* Rotary encoder locations are socketed. - Rotary encoder locations are socketed.
- One of two locations on each side can be used for a rotary encoder. - One of two locations on each side can be used for a rotary encoder.
* OLED Displays and nice!view Displays are natively supported, socketed, and no extra wiring is required. - OLED Displays and nice!view Displays are natively supported, socketed, and no extra wiring is required.
* Support for per-switch RGB underglow. - Support for per-switch RGB underglow.
* Better location for 110mAh or 700mAh batteries. - Better location for 110mAh or 700mAh batteries.
- Different location for soldering battery leads. - Different location for soldering battery leads.
* Support for Alps Alpine Micro On/off switches. - Support for Alps Alpine Micro On/off switches.
# Leeloo v1 # Leeloo v1
![Leeloo](https://github.com/ClicketySplit/build-guides/blob/main/leeloo/images/gallery/Leeloo-v1.jpg) ![Leeloo](https://github.com/ClicketySplit/build-guides/blob/main/leeloo/images/gallery/Leeloo-v1.jpg)
## Features ## Features
* 4x6x5m Split Keyboard
* Support for both Low Profile Choc switches, and Box/MX switches; 19.05mm x 19.05mm spacing. - 4x6x5m Split Keyboard
* 90% of the switches are socketed; with the exception to the rotary encoder positions. - Support for both Low Profile Choc switches, and Box/MX switches; 19.05mm x 19.05mm spacing.
* Support for Alps Alpine EC11 Rotary Encoders—one on each side, in one of three locations. - 90% of the switches are socketed; with the exception to the rotary encoder positions.
* Support for OLED Displays or nice!view Displays. - Support for Alps Alpine EC11 Rotary Encoders—one on each side, in one of three locations.
- Support for OLED Displays or nice!view Displays.
- nice!view displays require a wire to be soldered from the CS Pin on nice!view display to P0.22 or D4 on the nice!nano. - nice!view displays require a wire to be soldered from the CS Pin on nice!view display to P0.22 or D4 on the nice!nano.
* Support for both 110mAh or 700mAh batteries. - Support for both 110mAh or 700mAh batteries.
* Solder pads for battery leads. - Solder pads for battery leads.
* Support for Alps Alpine Micro On/off switches. - Support for Alps Alpine Micro On/off switches.
# Building Leeloo's ZMK Firmware # Building Leeloo's ZMK Firmware
ZMK Firmware: [Introduction to ZMK](https://zmk.dev/docs/) ZMK Firmware: [Introduction to ZMK](https://zmk.dev/docs/)
Installation: [Installing ZMK](https://zmk.dev/docs/user-setup) Installation: [Installing ZMK](https://zmk.dev/docs/user-setup)
Customization: [Customizing ZMK](https://zmk.dev/docs/customization) Customization: [Customizing ZMK](https://zmk.dev/docs/customization)
Development Environment: [Basic Setup](https://zmk.dev/docs/development/setup) Development Environment: [Basic Setup](https://zmk.dev/docs/development/setup)
Build commands for the default keymap of Leeloo v1: Build commands for the default keymap of Leeloo v1:
``` ```
west build -d build/left -p -b nice_nano_v2 -- -DSHIELD=leeloo_left west build -d build/left -p -b nice_nano_v2 -- -DSHIELD=leeloo_left
west build -d build/right -p -b nice_nano_v2 -- -DSHIELD=leeloo_right west build -d build/right -p -b nice_nano_v2 -- -DSHIELD=leeloo_right
``` ```
Build commands for the default keymap of Leeloo v2: Build commands for the default keymap of Leeloo v2:
``` ```
west build -d build/left_v2 -p -b nice_nano_v2 -- -DSHIELD=leeloo_rev2_left west build -d build/left_v2 -p -b nice_nano_v2 -- -DSHIELD=leeloo_rev2_left
west build -d build/right_v2 -p -b nice_nano_v2 -- -DSHIELD=leeloo_rev2_right west build -d build/right_v2 -p -b nice_nano_v2 -- -DSHIELD=leeloo_rev2_right
``` ```
Build commands for your custom keymap of Leeloo v1: Build commands for your custom keymap of Leeloo v1:
``` ```
west build -d build/right -p -b nice_nano_v2 -- -DSHIELD=leeloo_right -DZMK_CONFIG="C:/dev/zmk/[yourNmae]/leeloo/config" west build -d build/right -p -b nice_nano_v2 -- -DSHIELD=leeloo_right -DZMK_CONFIG="C:/dev/zmk/[yourNmae]/leeloo/config"
west build -d build/left -p -b nice_nano_v2 -- -DSHIELD=leeloo_left -DZMK_CONFIG="C:/dev/zmk/[yourName]/leeloo/config" west build -d build/left -p -b nice_nano_v2 -- -DSHIELD=leeloo_left -DZMK_CONFIG="C:/dev/zmk/[yourName]/leeloo/config"
``` ```
Build commands for your custom keymap of Leeloo v2: Build commands for your custom keymap of Leeloo v2:
``` ```
west build -d build/right_v2 -p -b nice_nano_v2 -- -DSHIELD=leeloo_rev2_right -DZMK_CONFIG="C:/dev/zmk/[yourNmae]/leeloo_v2/config" west build -d build/right_v2 -p -b nice_nano_v2 -- -DSHIELD=leeloo_rev2_right -DZMK_CONFIG="C:/dev/zmk/[yourNmae]/leeloo_v2/config"
west build -d build/left_v2 -p -b nice_nano_v2 -- -DSHIELD=leeloo_rev2_left -DZMK_CONFIG="C:/dev/zmk/[yourName]/leeloo_v2/config" west build -d build/left_v2 -p -b nice_nano_v2 -- -DSHIELD=leeloo_rev2_left -DZMK_CONFIG="C:/dev/zmk/[yourName]/leeloo_v2/config"
``` ```
## Building Leeloo's ZMK Firmware with nice!view Displays ## Building Leeloo's ZMK Firmware with nice!view Displays
There are a couple of files that need to be adjusted before the build commands can be run. There are a couple of files that need to be adjusted before the build commands can be run.
### Edit the leeloo[_rev2].keymap File ### Edit the leeloo[_rev2].keymap File
Near the top 3rd of the leeloo[_rev2].keymap file, locate the following code block: Near the top 3rd of the leeloo[_rev2].keymap file, locate the following code block:
``` ```
//nice_view_spi: &spi0 { //nice_view_spi: &spi0 {
// compatible = "nordic,nrf-spim"; // compatible = "nordic,nrf-spim";
// pinctrl-0 = <&spi0_default>; // pinctrl-0 = <&spi0_default>;
// pinctrl-1 = <&spi0_sleep>; // pinctrl-1 = <&spi0_sleep>;
// pinctrl-names = "default", "sleep"; // pinctrl-names = "default", "sleep";
// cs-gpios = <&pro_micro 4 GPIO_ACTIVE_HIGH>; // cs-gpios = <&pro_micro 4 GPIO_ACTIVE_HIGH>;
//}; //};
``` ```
Remove the forward slashes to resemble the following: Remove the forward slashes to resemble the following:
``` ```
nice_view_spi: &spi0 { nice_view_spi: &spi0 {
compatible = "nordic,nrf-spim"; compatible = "nordic,nrf-spim";
pinctrl-0 = <&spi0_default>; pinctrl-0 = <&spi0_default>;
pinctrl-1 = <&spi0_sleep>; pinctrl-1 = <&spi0_sleep>;
pinctrl-names = "default", "sleep"; pinctrl-names = "default", "sleep";
cs-gpios = <&pro_micro 4 GPIO_ACTIVE_HIGH>; cs-gpios = <&pro_micro 4 GPIO_ACTIVE_HIGH>;
}; };
``` ```
Save your changes and close the file. Save your changes and close the file.
### Edit the leeloo[_rev2].conf file: ### Edit the leeloo[_rev2].conf file:
Near the top of the leeloo[_rev2].conf file, locate the following line items: Near the top of the leeloo[_rev2].conf file, locate the following line items:
``` ```
@ -103,6 +114,7 @@ Near the top of the leeloo[_rev2].conf file, locate the following line items:
``` ```
Remove the # character in front of the CONFIG_ZMK_DISPLAY configuration item to resemble the following: Remove the # character in front of the CONFIG_ZMK_DISPLAY configuration item to resemble the following:
``` ```
# Uncomment the following line to enable the OLED Display or nice!view Display # Uncomment the following line to enable the OLED Display or nice!view Display
CONFIG_ZMK_DISPLAY=y CONFIG_ZMK_DISPLAY=y
@ -111,25 +123,30 @@ CONFIG_ZMK_DISPLAY=y
Save your changes and close the file. Save your changes and close the file.
### Sample Build Commands for nice!view Displays ### Sample Build Commands for nice!view Displays
Build commands for the default keymap of Leeloo v1: Build commands for the default keymap of Leeloo v1:
``` ```
west build -d build/left -p -b nice_nano_v2 -- -DSHIELD="leeloo_left nice_view_adapter nice_view" west build -d build/left -p -b nice_nano_v2 -- -DSHIELD="leeloo_left nice_view_adapter nice_view"
west build -d build/right -p -b nice_nano_v2 -- -DSHIELD="leeloo_right nice_view_adapter nice_view" west build -d build/right -p -b nice_nano_v2 -- -DSHIELD="leeloo_right nice_view_adapter nice_view"
``` ```
Build commands for the default keymap of Leeloo v2: Build commands for the default keymap of Leeloo v2:
``` ```
west build -d build/left_v2 -p -b nice_nano_v2 -- -DSHIELD="leeloo_rev2_left nice_view_adapter nice_view" west build -d build/left_v2 -p -b nice_nano_v2 -- -DSHIELD="leeloo_rev2_left nice_view_adapter nice_view"
west build -d build/right_v2 -p -b nice_nano_v2 -- -DSHIELD="leeloo_rev2_right nice_view_adapter nice_view" west build -d build/right_v2 -p -b nice_nano_v2 -- -DSHIELD="leeloo_rev2_right nice_view_adapter nice_view"
``` ```
Build commands for your custom keymap of Leeloo v2: Build commands for your custom keymap of Leeloo v2:
``` ```
west build -d build/left -p -b nice_nano_v2 -- -DSHIELD="leeloo_rev2_left nice_view_adapter nice_view" -DZMK_CONFIG="/workspaces/zmk-config/[yourNmae]/leeloo_v2/config" west build -d build/left -p -b nice_nano_v2 -- -DSHIELD="leeloo_rev2_left nice_view_adapter nice_view" -DZMK_CONFIG="/workspaces/zmk-config/[yourNmae]/leeloo_v2/config"
west build -d build/right -p -b nice_nano_v2 -- -DSHIELD="leeloo_rev2_right nice_view_adapter nice_view" -DZMK_CONFIG="/workspaces/zmk-config/[yourNmae]/leeloo_v2/config" west build -d build/right -p -b nice_nano_v2 -- -DSHIELD="leeloo_rev2_right nice_view_adapter nice_view" -DZMK_CONFIG="/workspaces/zmk-config/[yourNmae]/leeloo_v2/config"
``` ```
# Support # Support
If you have any questions with regards to Leeloo, please [Contact Us](https://clicketysplit.ca/pages/contact-us). If you have any questions with regards to Leeloo, please [Contact Us](https://clicketysplit.ca/pages/contact-us).
Clickety Split Clickety Split

View file

@ -1,47 +1,47 @@
#include <dt-bindings/led/led.h> #include <dt-bindings/led/led.h>
&pinctrl { &pinctrl {
spi3_default: spi3_default { spi3_default: spi3_default {
group1 { group1 {
psels = <NRF_PSEL(SPIM_MOSI, 0, 6)>; psels = <NRF_PSEL(SPIM_MOSI, 0, 6)>;
}; };
}; };
spi3_sleep: spi3_sleep { spi3_sleep: spi3_sleep {
group1 { group1 {
psels = <NRF_PSEL(SPIM_MOSI, 0, 6)>; psels = <NRF_PSEL(SPIM_MOSI, 0, 6)>;
low-power-enable; low-power-enable;
}; };
}; };
}; };
&spi3 { &spi3 {
compatible = "nordic,nrf-spim"; compatible = "nordic,nrf-spim";
status = "okay"; status = "okay";
pinctrl-0 = <&spi3_default>; pinctrl-0 = <&spi3_default>;
pinctrl-1 = <&spi3_sleep>; pinctrl-1 = <&spi3_sleep>;
pinctrl-names = "default", "sleep"; pinctrl-names = "default", "sleep";
led_strip: ws2812@0 { led_strip: ws2812@0 {
compatible = "worldsemi,ws2812-spi"; compatible = "worldsemi,ws2812-spi";
label = "WS2812"; label = "WS2812";
/* SPI */ /* SPI */
reg = <0>; /* ignored, but necessary for SPI bindings */ reg = <0>; /* ignored, but necessary for SPI bindings */
spi-max-frequency = <4000000>; spi-max-frequency = <4000000>;
/* WS2812 */ /* WS2812 */
chain-length = <37>; /* arbitrary; change at will */ chain-length = <37>; /* arbitrary; change at will */
spi-one-frame = <0x70>; spi-one-frame = <0x70>;
spi-zero-frame = <0x40>; spi-zero-frame = <0x40>;
color-mapping = <LED_COLOR_ID_GREEN LED_COLOR_ID_RED LED_COLOR_ID_BLUE>; color-mapping = <LED_COLOR_ID_GREEN LED_COLOR_ID_RED LED_COLOR_ID_BLUE>;
}; };
}; };
/ { / {
chosen { chosen {
zmk,underglow = &led_strip; zmk,underglow = &led_strip;
}; };
}; };

View file

@ -21,11 +21,11 @@
* the pins with Arduino Labels. * the pins with Arduino Labels.
*/ */
//nice_view_spi: &spi0 { //nice_view_spi: &spi0 {
// compatible = "nordic,nrf-spim"; // compatible = "nordic,nrf-spim";
// pinctrl-0 = <&spi0_default>; // pinctrl-0 = <&spi0_default>;
// pinctrl-1 = <&spi0_sleep>; // pinctrl-1 = <&spi0_sleep>;
// pinctrl-names = "default", "sleep"; // pinctrl-names = "default", "sleep";
// cs-gpios = <&pro_micro 4 GPIO_ACTIVE_HIGH>; // cs-gpios = <&pro_micro 4 GPIO_ACTIVE_HIGH>;
//}; //};
/ { / {

View file

@ -71,21 +71,21 @@ 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)
}; };
&pro_micro_i2c { &pro_micro_i2c {
status = "okay"; status = "okay";
oled: ssd1306@3c { oled: ssd1306@3c {
compatible = "solomon,ssd1306fb"; compatible = "solomon,ssd1306fb";
reg = <0x3c>; reg = <0x3c>;
label = "DISPLAY"; label = "DISPLAY";
width = <128>; width = <128>;
height = <32>; height = <32>;
segment-offset = <0>; segment-offset = <0>;
page-offset = <0>; page-offset = <0>;
display-offset = <0>; display-offset = <0>;
multiplex-ratio = <31>; multiplex-ratio = <31>;
segment-remap; segment-remap;
com-invdir; com-invdir;
com-sequential; com-sequential;
prechargep = <0x22>; prechargep = <0x22>;
}; };
}; };

View file

@ -6,16 +6,16 @@
#include "leeloo.dtsi" #include "leeloo.dtsi"
&kscan0 { &kscan0 {
col-gpios col-gpios
= <&pro_micro 19 GPIO_ACTIVE_HIGH> = <&pro_micro 19 GPIO_ACTIVE_HIGH>
, <&pro_micro 18 GPIO_ACTIVE_HIGH> , <&pro_micro 18 GPIO_ACTIVE_HIGH>
, <&pro_micro 15 GPIO_ACTIVE_HIGH> , <&pro_micro 15 GPIO_ACTIVE_HIGH>
, <&pro_micro 14 GPIO_ACTIVE_HIGH> , <&pro_micro 14 GPIO_ACTIVE_HIGH>
, <&pro_micro 16 GPIO_ACTIVE_HIGH> , <&pro_micro 16 GPIO_ACTIVE_HIGH>
, <&pro_micro 10 GPIO_ACTIVE_HIGH> , <&pro_micro 10 GPIO_ACTIVE_HIGH>
; ;
}; };
&left_encoder { &left_encoder {
status = "okay"; status = "okay";
}; };

View file

@ -32,11 +32,11 @@
* Uncomment these next few lines if implementing nice!view Displays * Uncomment these next few lines if implementing nice!view Displays
*/ */
//nice_view_spi: &spi0 { //nice_view_spi: &spi0 {
// compatible = "nordic,nrf-spim"; // compatible = "nordic,nrf-spim";
// pinctrl-0 = <&spi0_default>; // pinctrl-0 = <&spi0_default>;
// pinctrl-1 = <&spi0_sleep>; // pinctrl-1 = <&spi0_sleep>;
// pinctrl-names = "default", "sleep"; // pinctrl-names = "default", "sleep";
// cs-gpios = <&pro_micro 4 GPIO_ACTIVE_HIGH>; // cs-gpios = <&pro_micro 4 GPIO_ACTIVE_HIGH>;
//}; //};

View file

@ -6,16 +6,16 @@
#include "leeloo_rev2.dtsi" #include "leeloo_rev2.dtsi"
&kscan0 { &kscan0 {
col-gpios col-gpios
= <&pro_micro 19 GPIO_ACTIVE_HIGH> = <&pro_micro 19 GPIO_ACTIVE_HIGH>
, <&pro_micro 18 GPIO_ACTIVE_HIGH> , <&pro_micro 18 GPIO_ACTIVE_HIGH>
, <&pro_micro 15 GPIO_ACTIVE_HIGH> , <&pro_micro 15 GPIO_ACTIVE_HIGH>
, <&pro_micro 14 GPIO_ACTIVE_HIGH> , <&pro_micro 14 GPIO_ACTIVE_HIGH>
, <&pro_micro 16 GPIO_ACTIVE_HIGH> , <&pro_micro 16 GPIO_ACTIVE_HIGH>
, <&pro_micro 10 GPIO_ACTIVE_HIGH> , <&pro_micro 10 GPIO_ACTIVE_HIGH>
; ;
}; };
&left_encoder { &left_encoder {
status = "okay"; status = "okay";
}; };

View file

@ -6,20 +6,20 @@
#include "leeloo_rev2.dtsi" #include "leeloo_rev2.dtsi"
&default_transform { &default_transform {
col-offset = <6>; col-offset = <6>;
}; };
&kscan0 { &kscan0 {
col-gpios col-gpios
= <&pro_micro 10 GPIO_ACTIVE_HIGH> = <&pro_micro 10 GPIO_ACTIVE_HIGH>
, <&pro_micro 16 GPIO_ACTIVE_HIGH> , <&pro_micro 16 GPIO_ACTIVE_HIGH>
, <&pro_micro 14 GPIO_ACTIVE_HIGH> , <&pro_micro 14 GPIO_ACTIVE_HIGH>
, <&pro_micro 15 GPIO_ACTIVE_HIGH> , <&pro_micro 15 GPIO_ACTIVE_HIGH>
, <&pro_micro 18 GPIO_ACTIVE_HIGH> , <&pro_micro 18 GPIO_ACTIVE_HIGH>
, <&pro_micro 19 GPIO_ACTIVE_HIGH> , <&pro_micro 19 GPIO_ACTIVE_HIGH>
; ;
}; };
&right_encoder { &right_encoder {
status = "okay"; status = "okay";
}; };

View file

@ -6,20 +6,20 @@
#include "leeloo.dtsi" #include "leeloo.dtsi"
&default_transform { &default_transform {
col-offset = <6>; col-offset = <6>;
}; };
&kscan0 { &kscan0 {
col-gpios col-gpios
= <&pro_micro 10 GPIO_ACTIVE_HIGH> = <&pro_micro 10 GPIO_ACTIVE_HIGH>
, <&pro_micro 16 GPIO_ACTIVE_HIGH> , <&pro_micro 16 GPIO_ACTIVE_HIGH>
, <&pro_micro 14 GPIO_ACTIVE_HIGH> , <&pro_micro 14 GPIO_ACTIVE_HIGH>
, <&pro_micro 15 GPIO_ACTIVE_HIGH> , <&pro_micro 15 GPIO_ACTIVE_HIGH>
, <&pro_micro 18 GPIO_ACTIVE_HIGH> , <&pro_micro 18 GPIO_ACTIVE_HIGH>
, <&pro_micro 19 GPIO_ACTIVE_HIGH> , <&pro_micro 19 GPIO_ACTIVE_HIGH>
; ;
}; };
&right_encoder { &right_encoder {
status = "okay"; status = "okay";
}; };

View file

@ -4,44 +4,44 @@
if SHIELD_LEELOO_MICRO_LEFT if SHIELD_LEELOO_MICRO_LEFT
config ZMK_KEYBOARD_NAME config ZMK_KEYBOARD_NAME
default "Leeloo-Micro" default "Leeloo-Micro"
config ZMK_SPLIT_ROLE_CENTRAL config ZMK_SPLIT_ROLE_CENTRAL
default y default y
endif endif
if SHIELD_LEELOO_MICRO if SHIELD_LEELOO_MICRO
config ZMK_SPLIT config ZMK_SPLIT
default y default y
if ZMK_DISPLAY if ZMK_DISPLAY
config I2C config I2C
default y default y
config SSD1306 config SSD1306
default y default y
config SSD1306_REVERSE_MODE config SSD1306_REVERSE_MODE
default y default y
endif # ZMK_DISPLAY endif # ZMK_DISPLAY
if LVGL if LVGL
config LV_Z_VDB_SIZE config LV_Z_VDB_SIZE
default 64 default 64
config LV_Z_DPI config LV_Z_DPI
default 148 default 148
config LV_Z_BITS_PER_PIXEL config LV_Z_BITS_PER_PIXEL
default 1 default 1
choice LV_COLOR_DEPTH choice LV_COLOR_DEPTH
default LV_COLOR_DEPTH_1 default LV_COLOR_DEPTH_1
endchoice endchoice
endif # LVGL endif # LVGL

View file

@ -2,12 +2,12 @@
# SPDX-License-Identifier: MIT # SPDX-License-Identifier: MIT
config SHIELD_LEELOO_MICRO config SHIELD_LEELOO_MICRO
bool bool
config SHIELD_LEELOO_MICRO_LEFT config SHIELD_LEELOO_MICRO_LEFT
def_bool $(shields_list_contains,leeloo_micro_left) def_bool $(shields_list_contains,leeloo_micro_left)
select SHIELD_LEELOO_MICRO select SHIELD_LEELOO_MICRO
config SHIELD_LEELOO_MICRO_RIGHT config SHIELD_LEELOO_MICRO_RIGHT
def_bool $(shields_list_contains,leeloo_micro_right) def_bool $(shields_list_contains,leeloo_micro_right)
select SHIELD_LEELOO_MICRO select SHIELD_LEELOO_MICRO

View file

@ -6,67 +6,75 @@ Keyboard Designer: [clicketysplit.ca](https://clicketysplit.ca)
GitHub: [ClicketySplit](https://github.com/ClicketySplit) GitHub: [ClicketySplit](https://github.com/ClicketySplit)
Hardware Supported: nice!nano v2, nice!view v1 Hardware Supported: nice!nano v2, nice!view v1
Leeloo-Micro is a 3x5x5m derivative of Leeloo v2; inheriting the column stagger and modifiers row, yet, reducing the number of switches by removing the top row and outside columns. With Leeloo-Micro's inaugural release being wireless, it leverages nice!nanos and nice!views for its microcontrollers and displays. Leeloo-Micro is a 3x5x5m derivative of Leeloo v2; inheriting the column stagger and modifiers row, yet, reducing the number of switches by removing the top row and outside columns. With Leeloo-Micro's inaugural release being wireless, it leverages nice!nanos and nice!views for its microcontrollers and displays.
## Features ## Features
* 3x5x5m Split Keyboard
* Support for Kailh Low Profile Choc switches with 18mm x 18mm spacing. - 3x5x5m Split Keyboard
* All switch locations are socketed. - Support for Kailh Low Profile Choc switches with 18mm x 18mm spacing.
* Support for Alps Alpine EC11 Rotary Encoders—one on each side, in one of two locations. - All switch locations are socketed.
- Support for Alps Alpine EC11 Rotary Encoders—one on each side, in one of two locations.
- Rotary encoder locations are socketed. - Rotary encoder locations are socketed.
* nice!view Displays are inherently supported, socketed, and no extra wiring is required. - nice!view Displays are inherently supported, socketed, and no extra wiring is required.
* Support for per-switch RGB underglow. - Support for per-switch RGB underglow.
* Support for both 110mAh or 700mAh batteries. - Support for both 110mAh or 700mAh batteries.
* Support for Alps Alpine Micro On/off switches. - Support for Alps Alpine Micro On/off switches.
# Building Leeloo-Micro ZMK Firmware # Building Leeloo-Micro ZMK Firmware
ZMK Firmware: [Introduction to ZMK](https://zmk.dev/docs/) ZMK Firmware: [Introduction to ZMK](https://zmk.dev/docs/)
Installation: [Installing ZMK](https://zmk.dev/docs/user-setup) Installation: [Installing ZMK](https://zmk.dev/docs/user-setup)
Customization: [Customizing ZMK](https://zmk.dev/docs/customization) Customization: [Customizing ZMK](https://zmk.dev/docs/customization)
Development Environment: [Basic Setup](https://zmk.dev/docs/development/setup) Development Environment: [Basic Setup](https://zmk.dev/docs/development/setup)
Build commands for the default keymap of Leeloo-Micro: Build commands for the default keymap of Leeloo-Micro:
``` ```
west build -d build/left -p -b nice_nano_v2 -- -DSHIELD=leeloo_micro_left west build -d build/left -p -b nice_nano_v2 -- -DSHIELD=leeloo_micro_left
west build -d build/right -p -b nice_nano_v2 -- -DSHIELD=leeloo_micro_right west build -d build/right -p -b nice_nano_v2 -- -DSHIELD=leeloo_micro_right
``` ```
Build commands for your custom keymap of Leeloo-Micro: Build commands for your custom keymap of Leeloo-Micro:
``` ```
west build -d build/right -p -b nice_nano_v2 -- -DSHIELD=leeloo_micro_right -DZMK_CONFIG="C:/dev/zmk/[yourNmae]/leeloo_micro/config" west build -d build/right -p -b nice_nano_v2 -- -DSHIELD=leeloo_micro_right -DZMK_CONFIG="C:/dev/zmk/[yourNmae]/leeloo_micro/config"
west build -d build/left -p -b nice_nano_v2 -- -DSHIELD=leeloo_micro_left -DZMK_CONFIG="C:/dev/zmk/[yourName]/leeloo_micro/config" west build -d build/left -p -b nice_nano_v2 -- -DSHIELD=leeloo_micro_left -DZMK_CONFIG="C:/dev/zmk/[yourName]/leeloo_micro/config"
``` ```
## Building Leeloo-Micro's ZMK Firmware with nice!view Displays ## Building Leeloo-Micro's ZMK Firmware with nice!view Displays
There are a couple of files that need to be adjusted before the build commands can be run. There are a couple of files that need to be adjusted before the build commands can be run.
### Edit the leeloo_micro.keymap File ### Edit the leeloo_micro.keymap File
Near the top 3rd of the leeloo_micro.keymap file, locate the following code block: Near the top 3rd of the leeloo_micro.keymap file, locate the following code block:
``` ```
//nice_view_spi: &spi0 { //nice_view_spi: &spi0 {
// compatible = "nordic,nrf-spim"; // compatible = "nordic,nrf-spim";
// pinctrl-0 = <&spi0_default>; // pinctrl-0 = <&spi0_default>;
// pinctrl-1 = <&spi0_sleep>; // pinctrl-1 = <&spi0_sleep>;
// pinctrl-names = "default", "sleep"; // pinctrl-names = "default", "sleep";
// cs-gpios = <&pro_micro 4 GPIO_ACTIVE_HIGH>; // cs-gpios = <&pro_micro 4 GPIO_ACTIVE_HIGH>;
//}; //};
``` ```
Remove the forward slashes to resemble the following: Remove the forward slashes to resemble the following:
``` ```
nice_view_spi: &spi0 { nice_view_spi: &spi0 {
compatible = "nordic,nrf-spim"; compatible = "nordic,nrf-spim";
pinctrl-0 = <&spi0_default>; pinctrl-0 = <&spi0_default>;
pinctrl-1 = <&spi0_sleep>; pinctrl-1 = <&spi0_sleep>;
pinctrl-names = "default", "sleep"; pinctrl-names = "default", "sleep";
cs-gpios = <&pro_micro 4 GPIO_ACTIVE_HIGH>; cs-gpios = <&pro_micro 4 GPIO_ACTIVE_HIGH>;
}; };
``` ```
Save your changes and close the file. Save your changes and close the file.
### Edit the leeloo_micro.conf file: ### Edit the leeloo_micro.conf file:
Near the top of the leeloo_micro.conf file, locate the following line items: Near the top of the leeloo_micro.conf file, locate the following line items:
``` ```
@ -75,6 +83,7 @@ Near the top of the leeloo_micro.conf file, locate the following line items:
``` ```
Remove the # character in front of the CONFIG_ZMK_DISPLAY configuration item to resemble the following: Remove the # character in front of the CONFIG_ZMK_DISPLAY configuration item to resemble the following:
``` ```
# Uncomment the following line to enable the OLED Display or nice!view Display # Uncomment the following line to enable the OLED Display or nice!view Display
CONFIG_ZMK_DISPLAY=y CONFIG_ZMK_DISPLAY=y
@ -83,19 +92,23 @@ CONFIG_ZMK_DISPLAY=y
Save your changes and close the file. Save your changes and close the file.
### Sample Build Commands for nice!view Displays ### Sample Build Commands for nice!view Displays
Build commands for the default keymap of Leeloo-Micro: Build commands for the default keymap of Leeloo-Micro:
``` ```
west build -d build/left -p -b nice_nano_v2 -- -DSHIELD="leeloo_micro_left nice_view_adapter nice_view" west build -d build/left -p -b nice_nano_v2 -- -DSHIELD="leeloo_micro_left nice_view_adapter nice_view"
west build -d build/right -p -b nice_nano_v2 -- -DSHIELD="leeloo_micro_right nice_view_adapter nice_view" west build -d build/right -p -b nice_nano_v2 -- -DSHIELD="leeloo_micro_right nice_view_adapter nice_view"
``` ```
Build commands for your custom keymap of Leeloo-Micro: Build commands for your custom keymap of Leeloo-Micro:
``` ```
west build -d build/left -p -b nice_nano_v2 -- -DSHIELD="leeloo_micro_left nice_view_adapter nice_view" -DZMK_CONFIG="/workspaces/zmk-config/[yourNmae]/leeloo_micro/config" west build -d build/left -p -b nice_nano_v2 -- -DSHIELD="leeloo_micro_left nice_view_adapter nice_view" -DZMK_CONFIG="/workspaces/zmk-config/[yourNmae]/leeloo_micro/config"
west build -d build/right -p -b nice_nano_v2 -- -DSHIELD="leeloo_micro_right nice_view_adapter nice_view" -DZMK_CONFIG="/workspaces/zmk-config/[yourNmae]/leeloo_micro/config" west build -d build/right -p -b nice_nano_v2 -- -DSHIELD="leeloo_micro_right nice_view_adapter nice_view" -DZMK_CONFIG="/workspaces/zmk-config/[yourNmae]/leeloo_micro/config"
``` ```
# Support # Support
If you have any questions with regards to Leeloo-Micro, please [Contact Us](https://clicketysplit.ca/pages/contact-us). If you have any questions with regards to Leeloo-Micro, please [Contact Us](https://clicketysplit.ca/pages/contact-us).
Clickety Split Clickety Split

View file

@ -1,47 +1,47 @@
#include <dt-bindings/led/led.h> #include <dt-bindings/led/led.h>
&pinctrl { &pinctrl {
spi3_default: spi3_default { spi3_default: spi3_default {
group1 { group1 {
psels = <NRF_PSEL(SPIM_MOSI, 0, 6)>; psels = <NRF_PSEL(SPIM_MOSI, 0, 6)>;
}; };
}; };
spi3_sleep: spi3_sleep { spi3_sleep: spi3_sleep {
group1 { group1 {
psels = <NRF_PSEL(SPIM_MOSI, 0, 6)>; psels = <NRF_PSEL(SPIM_MOSI, 0, 6)>;
low-power-enable; low-power-enable;
}; };
}; };
}; };
&spi3 { &spi3 {
compatible = "nordic,nrf-spim"; compatible = "nordic,nrf-spim";
status = "okay"; status = "okay";
pinctrl-0 = <&spi3_default>; pinctrl-0 = <&spi3_default>;
pinctrl-1 = <&spi3_sleep>; pinctrl-1 = <&spi3_sleep>;
pinctrl-names = "default", "sleep"; pinctrl-names = "default", "sleep";
led_strip: ws2812@0 { led_strip: ws2812@0 {
compatible = "worldsemi,ws2812-spi"; compatible = "worldsemi,ws2812-spi";
label = "WS2812"; label = "WS2812";
/* SPI */ /* SPI */
reg = <0>; /* ignored, but necessary for SPI bindings */ reg = <0>; /* ignored, but necessary for SPI bindings */
spi-max-frequency = <4000000>; spi-max-frequency = <4000000>;
/* WS2812 */ /* WS2812 */
chain-length = <20>; /* arbitrary; change at will */ chain-length = <20>; /* arbitrary; change at will */
spi-one-frame = <0x70>; spi-one-frame = <0x70>;
spi-zero-frame = <0x40>; spi-zero-frame = <0x40>;
color-mapping = <LED_COLOR_ID_GREEN LED_COLOR_ID_RED LED_COLOR_ID_BLUE>; color-mapping = <LED_COLOR_ID_GREEN LED_COLOR_ID_RED LED_COLOR_ID_BLUE>;
}; };
}; };
/ { / {
chosen { chosen {
zmk,underglow = &led_strip; zmk,underglow = &led_strip;
}; };
}; };

View file

@ -45,11 +45,11 @@
* Uncomment these next few lines if implementing nice!view Displays. * Uncomment these next few lines if implementing nice!view Displays.
*/ */
//nice_view_spi: &spi0 { //nice_view_spi: &spi0 {
// compatible = "nordic,nrf-spim"; // compatible = "nordic,nrf-spim";
// pinctrl-0 = <&spi0_default>; // pinctrl-0 = <&spi0_default>;
// pinctrl-1 = <&spi0_sleep>; // pinctrl-1 = <&spi0_sleep>;
// pinctrl-names = "default", "sleep"; // pinctrl-names = "default", "sleep";
// cs-gpios = <&pro_micro 4 GPIO_ACTIVE_HIGH>; // cs-gpios = <&pro_micro 4 GPIO_ACTIVE_HIGH>;
//}; //};

View file

@ -69,21 +69,21 @@ RC(2,0) RC(2,1) RC(2,2) RC(2,3) RC(2,4) RC(3,4) RC(3,5) RC(2,5) RC(2,6) RC(2,7)
}; };
&pro_micro_i2c { &pro_micro_i2c {
status = "okay"; status = "okay";
oled: ssd1306@3c { oled: ssd1306@3c {
compatible = "solomon,ssd1306fb"; compatible = "solomon,ssd1306fb";
reg = <0x3c>; reg = <0x3c>;
label = "DISPLAY"; label = "DISPLAY";
width = <128>; width = <128>;
height = <32>; height = <32>;
segment-offset = <0>; segment-offset = <0>;
page-offset = <0>; page-offset = <0>;
display-offset = <0>; display-offset = <0>;
multiplex-ratio = <31>; multiplex-ratio = <31>;
segment-remap; segment-remap;
com-invdir; com-invdir;
com-sequential; com-sequential;
prechargep = <0x22>; prechargep = <0x22>;
}; };
}; };

View file

@ -6,15 +6,15 @@
#include "leeloo_micro.dtsi" #include "leeloo_micro.dtsi"
&kscan0 { &kscan0 {
col-gpios col-gpios
= <&pro_micro 19 GPIO_ACTIVE_HIGH> = <&pro_micro 19 GPIO_ACTIVE_HIGH>
, <&pro_micro 18 GPIO_ACTIVE_HIGH> , <&pro_micro 18 GPIO_ACTIVE_HIGH>
, <&pro_micro 15 GPIO_ACTIVE_HIGH> , <&pro_micro 15 GPIO_ACTIVE_HIGH>
, <&pro_micro 14 GPIO_ACTIVE_HIGH> , <&pro_micro 14 GPIO_ACTIVE_HIGH>
, <&pro_micro 16 GPIO_ACTIVE_HIGH> , <&pro_micro 16 GPIO_ACTIVE_HIGH>
; ;
}; };
&left_encoder { &left_encoder {
status = "okay"; status = "okay";
}; };

View file

@ -6,19 +6,19 @@
#include "leeloo_micro.dtsi" #include "leeloo_micro.dtsi"
&default_transform { &default_transform {
col-offset = <5>; col-offset = <5>;
}; };
&kscan0 { &kscan0 {
col-gpios col-gpios
= <&pro_micro 16 GPIO_ACTIVE_HIGH> = <&pro_micro 16 GPIO_ACTIVE_HIGH>
, <&pro_micro 14 GPIO_ACTIVE_HIGH> , <&pro_micro 14 GPIO_ACTIVE_HIGH>
, <&pro_micro 15 GPIO_ACTIVE_HIGH> , <&pro_micro 15 GPIO_ACTIVE_HIGH>
, <&pro_micro 18 GPIO_ACTIVE_HIGH> , <&pro_micro 18 GPIO_ACTIVE_HIGH>
, <&pro_micro 19 GPIO_ACTIVE_HIGH> , <&pro_micro 19 GPIO_ACTIVE_HIGH>
; ;
}; };
&right_encoder { &right_encoder {
status = "okay"; status = "okay";
}; };