diff --git a/app/boards/shields/leeloo/Kconfig.defconfig b/app/boards/shields/leeloo/Kconfig.defconfig index d25fd79c..f6dd9d8a 100644 --- a/app/boards/shields/leeloo/Kconfig.defconfig +++ b/app/boards/shields/leeloo/Kconfig.defconfig @@ -4,11 +4,11 @@ if SHIELD_LEELOO_REV2_LEFT config ZMK_KEYBOARD_NAME - default "Leeloo v2" + default "Leeloo v2" config ZMK_SPLIT_ROLE_CENTRAL - default y - + default y + endif if SHIELD_LEELOO_LEFT diff --git a/app/boards/shields/leeloo/Kconfig.shield b/app/boards/shields/leeloo/Kconfig.shield index 3bc0b85d..ad4b76c8 100644 --- a/app/boards/shields/leeloo/Kconfig.shield +++ b/app/boards/shields/leeloo/Kconfig.shield @@ -2,20 +2,20 @@ # SPDX-License-Identifier: MIT config SHIELD_LEELOO - bool + bool config SHIELD_LEELOO_LEFT - def_bool $(shields_list_contains,leeloo_left) - select SHIELD_LEELOO + def_bool $(shields_list_contains,leeloo_left) + select SHIELD_LEELOO config SHIELD_LEELOO_RIGHT - def_bool $(shields_list_contains,leeloo_right) - select SHIELD_LEELOO + def_bool $(shields_list_contains,leeloo_right) + select SHIELD_LEELOO config SHIELD_LEELOO_REV2_LEFT - def_bool $(shields_list_contains,leeloo_rev2_left) - select SHIELD_LEELOO + def_bool $(shields_list_contains,leeloo_rev2_left) + select SHIELD_LEELOO config SHIELD_LEELOO_REV2_RIGHT - def_bool $(shields_list_contains,leeloo_rev2_right) - select SHIELD_LEELOO \ No newline at end of file + def_bool $(shields_list_contains,leeloo_rev2_right) + select SHIELD_LEELOO \ No newline at end of file diff --git a/app/boards/shields/leeloo/README.md b/app/boards/shields/leeloo/README.md index f0a4da0d..026beaab 100644 --- a/app/boards/shields/leeloo/README.md +++ b/app/boards/shields/leeloo/README.md @@ -6,95 +6,106 @@ Keyboard Designer: [clicketysplit.ca](https://clicketysplit.ca) GitHub: [ClicketySplit](https://github.com/ClicketySplit) 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 -* 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. -* All switch locations are socketed. -* Rotary encoder locations are socketed. +- All switch locations are socketed. +- Rotary encoder locations are socketed. - 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. -* Support for per-switch RGB underglow. -* Better location for 110mAh or 700mAh batteries. +- OLED Displays and nice!view Displays are natively supported, socketed, and no extra wiring is required. +- Support for per-switch RGB underglow. +- Better location for 110mAh or 700mAh batteries. - 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](https://github.com/ClicketySplit/build-guides/blob/main/leeloo/images/gallery/Leeloo-v1.jpg) -## Features -* 4x6x5m Split Keyboard -* Support for both Low Profile Choc switches, and Box/MX switches; 19.05mm x 19.05mm spacing. -* 90% of the switches are socketed; with the exception to the rotary encoder positions. -* Support for Alps Alpine EC11 Rotary Encoders—one on each side, in one of three locations. -* Support for OLED Displays or nice!view Displays. +## Features + +- 4x6x5m Split Keyboard +- Support for both Low Profile Choc switches, and Box/MX switches; 19.05mm x 19.05mm spacing. +- 90% of the switches are socketed; with the exception to the rotary encoder positions. +- 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. -* Support for both 110mAh or 700mAh batteries. -* Solder pads for battery leads. -* Support for Alps Alpine Micro On/off switches. +- Support for both 110mAh or 700mAh batteries. +- Solder pads for battery leads. +- Support for Alps Alpine Micro On/off switches. # Building Leeloo's ZMK Firmware + ZMK Firmware: [Introduction to ZMK](https://zmk.dev/docs/) Installation: [Installing ZMK](https://zmk.dev/docs/user-setup) Customization: [Customizing ZMK](https://zmk.dev/docs/customization) Development Environment: [Basic Setup](https://zmk.dev/docs/development/setup) 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/right -p -b nice_nano_v2 -- -DSHIELD=leeloo_right ``` 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/right_v2 -p -b nice_nano_v2 -- -DSHIELD=leeloo_rev2_right ``` 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/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: + ``` 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" ``` ## 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. ### Edit the leeloo[_rev2].keymap File + Near the top 3rd of the leeloo[_rev2].keymap file, locate the following code block: ``` //nice_view_spi: &spi0 { -// compatible = "nordic,nrf-spim"; -// pinctrl-0 = <&spi0_default>; -// pinctrl-1 = <&spi0_sleep>; -// pinctrl-names = "default", "sleep"; -// cs-gpios = <&pro_micro 4 GPIO_ACTIVE_HIGH>; +// compatible = "nordic,nrf-spim"; +// pinctrl-0 = <&spi0_default>; +// pinctrl-1 = <&spi0_sleep>; +// pinctrl-names = "default", "sleep"; +// cs-gpios = <&pro_micro 4 GPIO_ACTIVE_HIGH>; //}; ``` Remove the forward slashes to resemble the following: + ``` nice_view_spi: &spi0 { - compatible = "nordic,nrf-spim"; - pinctrl-0 = <&spi0_default>; - pinctrl-1 = <&spi0_sleep>; - pinctrl-names = "default", "sleep"; - cs-gpios = <&pro_micro 4 GPIO_ACTIVE_HIGH>; + compatible = "nordic,nrf-spim"; + pinctrl-0 = <&spi0_default>; + pinctrl-1 = <&spi0_sleep>; + pinctrl-names = "default", "sleep"; + cs-gpios = <&pro_micro 4 GPIO_ACTIVE_HIGH>; }; ``` Save your changes and close the file. ### Edit the leeloo[_rev2].conf file: + 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: + ``` # Uncomment the following line to enable the OLED Display or nice!view Display CONFIG_ZMK_DISPLAY=y @@ -111,25 +123,30 @@ CONFIG_ZMK_DISPLAY=y Save your changes and close the file. ### Sample Build Commands for nice!view Displays + 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/right -p -b nice_nano_v2 -- -DSHIELD="leeloo_right nice_view_adapter nice_view" ``` 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/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: + ``` 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" ``` # Support + If you have any questions with regards to Leeloo, please [Contact Us](https://clicketysplit.ca/pages/contact-us). Clickety Split diff --git a/app/boards/shields/leeloo/boards/nice_nano_v2.overlay b/app/boards/shields/leeloo/boards/nice_nano_v2.overlay index 67c3db11..5c451b73 100644 --- a/app/boards/shields/leeloo/boards/nice_nano_v2.overlay +++ b/app/boards/shields/leeloo/boards/nice_nano_v2.overlay @@ -1,47 +1,47 @@ #include &pinctrl { - spi3_default: spi3_default { - group1 { - psels = ; - }; - }; + spi3_default: spi3_default { + group1 { + psels = ; + }; + }; - spi3_sleep: spi3_sleep { - group1 { - psels = ; - low-power-enable; - }; - }; + spi3_sleep: spi3_sleep { + group1 { + psels = ; + low-power-enable; + }; + }; }; &spi3 { - compatible = "nordic,nrf-spim"; - status = "okay"; + compatible = "nordic,nrf-spim"; + status = "okay"; - pinctrl-0 = <&spi3_default>; - pinctrl-1 = <&spi3_sleep>; - pinctrl-names = "default", "sleep"; + pinctrl-0 = <&spi3_default>; + pinctrl-1 = <&spi3_sleep>; + pinctrl-names = "default", "sleep"; - led_strip: ws2812@0 { - compatible = "worldsemi,ws2812-spi"; - label = "WS2812"; + led_strip: ws2812@0 { + compatible = "worldsemi,ws2812-spi"; + label = "WS2812"; - /* SPI */ - reg = <0>; /* ignored, but necessary for SPI bindings */ - spi-max-frequency = <4000000>; + /* SPI */ + reg = <0>; /* ignored, but necessary for SPI bindings */ + spi-max-frequency = <4000000>; - /* WS2812 */ - chain-length = <37>; /* arbitrary; change at will */ - spi-one-frame = <0x70>; - spi-zero-frame = <0x40>; + /* WS2812 */ + chain-length = <37>; /* arbitrary; change at will */ + spi-one-frame = <0x70>; + spi-zero-frame = <0x40>; - color-mapping = ; - }; + color-mapping = ; + }; }; / { - chosen { - zmk,underglow = &led_strip; - }; + chosen { + zmk,underglow = &led_strip; + }; }; \ No newline at end of file diff --git a/app/boards/shields/leeloo/leeloo.dtsi b/app/boards/shields/leeloo/leeloo.dtsi index 84ad9736..0db97e64 100644 --- a/app/boards/shields/leeloo/leeloo.dtsi +++ b/app/boards/shields/leeloo/leeloo.dtsi @@ -2,5 +2,5 @@ * Copyright (c) 2022 The ZMK Contributors * SPDX-License-Identifier: MIT */ - + #include "leeloo_common.dtsi" \ No newline at end of file diff --git a/app/boards/shields/leeloo/leeloo.keymap b/app/boards/shields/leeloo/leeloo.keymap index f1d32d18..91e60007 100644 --- a/app/boards/shields/leeloo/leeloo.keymap +++ b/app/boards/shields/leeloo/leeloo.keymap @@ -13,7 +13,7 @@ #define LOWER 1 // lower_layer #define RAISE 2 // raise_layer -/* +/* * Assign the cs-gpios pin to 4. * Uncomment these next few lines if implementing nice!view Displays * A wire from the nice!view CS display needs to be connected to the @@ -21,11 +21,11 @@ * the pins with Arduino Labels. */ //nice_view_spi: &spi0 { -// compatible = "nordic,nrf-spim"; -// pinctrl-0 = <&spi0_default>; -// pinctrl-1 = <&spi0_sleep>; -// pinctrl-names = "default", "sleep"; -// cs-gpios = <&pro_micro 4 GPIO_ACTIVE_HIGH>; +// compatible = "nordic,nrf-spim"; +// pinctrl-0 = <&spi0_default>; +// pinctrl-1 = <&spi0_sleep>; +// pinctrl-names = "default", "sleep"; +// cs-gpios = <&pro_micro 4 GPIO_ACTIVE_HIGH>; //}; / { diff --git a/app/boards/shields/leeloo/leeloo.zmk.yml b/app/boards/shields/leeloo/leeloo.zmk.yml index 25a36357..c7e0e6e8 100644 --- a/app/boards/shields/leeloo/leeloo.zmk.yml +++ b/app/boards/shields/leeloo/leeloo.zmk.yml @@ -11,4 +11,4 @@ features: - encoder siblings: - leeloo_left - - leeloo_right \ No newline at end of file + - leeloo_right diff --git a/app/boards/shields/leeloo/leeloo_common.dtsi b/app/boards/shields/leeloo/leeloo_common.dtsi index 948048a8..795e1de6 100644 --- a/app/boards/shields/leeloo/leeloo_common.dtsi +++ b/app/boards/shields/leeloo/leeloo_common.dtsi @@ -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 { - status = "okay"; + 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>; - }; + 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>; + }; }; \ No newline at end of file diff --git a/app/boards/shields/leeloo/leeloo_left.overlay b/app/boards/shields/leeloo/leeloo_left.overlay index 9d358e90..5d5c974e 100644 --- a/app/boards/shields/leeloo/leeloo_left.overlay +++ b/app/boards/shields/leeloo/leeloo_left.overlay @@ -6,16 +6,16 @@ #include "leeloo.dtsi" &kscan0 { - col-gpios - = <&pro_micro 19 GPIO_ACTIVE_HIGH> - , <&pro_micro 18 GPIO_ACTIVE_HIGH> - , <&pro_micro 15 GPIO_ACTIVE_HIGH> - , <&pro_micro 14 GPIO_ACTIVE_HIGH> - , <&pro_micro 16 GPIO_ACTIVE_HIGH> - , <&pro_micro 10 GPIO_ACTIVE_HIGH> - ; + col-gpios + = <&pro_micro 19 GPIO_ACTIVE_HIGH> + , <&pro_micro 18 GPIO_ACTIVE_HIGH> + , <&pro_micro 15 GPIO_ACTIVE_HIGH> + , <&pro_micro 14 GPIO_ACTIVE_HIGH> + , <&pro_micro 16 GPIO_ACTIVE_HIGH> + , <&pro_micro 10 GPIO_ACTIVE_HIGH> + ; }; &left_encoder { - status = "okay"; + status = "okay"; }; \ No newline at end of file diff --git a/app/boards/shields/leeloo/leeloo_rev2.keymap b/app/boards/shields/leeloo/leeloo_rev2.keymap index 55d1fcdc..2ae48041 100644 --- a/app/boards/shields/leeloo/leeloo_rev2.keymap +++ b/app/boards/shields/leeloo/leeloo_rev2.keymap @@ -27,16 +27,16 @@ #define RGBEFF &rgb_ug RGB_EFF -/* +/* * Assign the cs-gpios pin to 4. * Uncomment these next few lines if implementing nice!view Displays */ //nice_view_spi: &spi0 { -// compatible = "nordic,nrf-spim"; -// pinctrl-0 = <&spi0_default>; -// pinctrl-1 = <&spi0_sleep>; -// pinctrl-names = "default", "sleep"; -// cs-gpios = <&pro_micro 4 GPIO_ACTIVE_HIGH>; +// compatible = "nordic,nrf-spim"; +// pinctrl-0 = <&spi0_default>; +// pinctrl-1 = <&spi0_sleep>; +// pinctrl-names = "default", "sleep"; +// cs-gpios = <&pro_micro 4 GPIO_ACTIVE_HIGH>; //}; diff --git a/app/boards/shields/leeloo/leeloo_rev2.zmk.yml b/app/boards/shields/leeloo/leeloo_rev2.zmk.yml index a43eb819..5e0a4db3 100644 --- a/app/boards/shields/leeloo/leeloo_rev2.zmk.yml +++ b/app/boards/shields/leeloo/leeloo_rev2.zmk.yml @@ -12,4 +12,4 @@ features: - underglow siblings: - leeloo_rev2_left - - leeloo_rev2_right \ No newline at end of file + - leeloo_rev2_right diff --git a/app/boards/shields/leeloo/leeloo_rev2_left.overlay b/app/boards/shields/leeloo/leeloo_rev2_left.overlay index 8b002851..1341a080 100644 --- a/app/boards/shields/leeloo/leeloo_rev2_left.overlay +++ b/app/boards/shields/leeloo/leeloo_rev2_left.overlay @@ -6,16 +6,16 @@ #include "leeloo_rev2.dtsi" &kscan0 { - col-gpios - = <&pro_micro 19 GPIO_ACTIVE_HIGH> - , <&pro_micro 18 GPIO_ACTIVE_HIGH> - , <&pro_micro 15 GPIO_ACTIVE_HIGH> - , <&pro_micro 14 GPIO_ACTIVE_HIGH> - , <&pro_micro 16 GPIO_ACTIVE_HIGH> - , <&pro_micro 10 GPIO_ACTIVE_HIGH> - ; + col-gpios + = <&pro_micro 19 GPIO_ACTIVE_HIGH> + , <&pro_micro 18 GPIO_ACTIVE_HIGH> + , <&pro_micro 15 GPIO_ACTIVE_HIGH> + , <&pro_micro 14 GPIO_ACTIVE_HIGH> + , <&pro_micro 16 GPIO_ACTIVE_HIGH> + , <&pro_micro 10 GPIO_ACTIVE_HIGH> + ; }; &left_encoder { - status = "okay"; + status = "okay"; }; \ No newline at end of file diff --git a/app/boards/shields/leeloo/leeloo_rev2_right.overlay b/app/boards/shields/leeloo/leeloo_rev2_right.overlay index bb7aee5d..a8f44db1 100644 --- a/app/boards/shields/leeloo/leeloo_rev2_right.overlay +++ b/app/boards/shields/leeloo/leeloo_rev2_right.overlay @@ -2,24 +2,24 @@ * Copyright (c) 2022 The ZMK Contributors * SPDX-License-Identifier: MIT */ - + #include "leeloo_rev2.dtsi" &default_transform { - col-offset = <6>; + col-offset = <6>; }; &kscan0 { - col-gpios - = <&pro_micro 10 GPIO_ACTIVE_HIGH> - , <&pro_micro 16 GPIO_ACTIVE_HIGH> - , <&pro_micro 14 GPIO_ACTIVE_HIGH> - , <&pro_micro 15 GPIO_ACTIVE_HIGH> - , <&pro_micro 18 GPIO_ACTIVE_HIGH> - , <&pro_micro 19 GPIO_ACTIVE_HIGH> - ; + col-gpios + = <&pro_micro 10 GPIO_ACTIVE_HIGH> + , <&pro_micro 16 GPIO_ACTIVE_HIGH> + , <&pro_micro 14 GPIO_ACTIVE_HIGH> + , <&pro_micro 15 GPIO_ACTIVE_HIGH> + , <&pro_micro 18 GPIO_ACTIVE_HIGH> + , <&pro_micro 19 GPIO_ACTIVE_HIGH> + ; }; &right_encoder { - status = "okay"; + status = "okay"; }; \ No newline at end of file diff --git a/app/boards/shields/leeloo/leeloo_right.overlay b/app/boards/shields/leeloo/leeloo_right.overlay index 8a4786c3..e2f1f7f3 100644 --- a/app/boards/shields/leeloo/leeloo_right.overlay +++ b/app/boards/shields/leeloo/leeloo_right.overlay @@ -6,20 +6,20 @@ #include "leeloo.dtsi" &default_transform { - col-offset = <6>; + col-offset = <6>; }; &kscan0 { - col-gpios - = <&pro_micro 10 GPIO_ACTIVE_HIGH> - , <&pro_micro 16 GPIO_ACTIVE_HIGH> - , <&pro_micro 14 GPIO_ACTIVE_HIGH> - , <&pro_micro 15 GPIO_ACTIVE_HIGH> - , <&pro_micro 18 GPIO_ACTIVE_HIGH> - , <&pro_micro 19 GPIO_ACTIVE_HIGH> - ; + col-gpios + = <&pro_micro 10 GPIO_ACTIVE_HIGH> + , <&pro_micro 16 GPIO_ACTIVE_HIGH> + , <&pro_micro 14 GPIO_ACTIVE_HIGH> + , <&pro_micro 15 GPIO_ACTIVE_HIGH> + , <&pro_micro 18 GPIO_ACTIVE_HIGH> + , <&pro_micro 19 GPIO_ACTIVE_HIGH> + ; }; &right_encoder { - status = "okay"; + status = "okay"; }; \ No newline at end of file diff --git a/app/boards/shields/leeloo_micro/Kconfig.defconfig b/app/boards/shields/leeloo_micro/Kconfig.defconfig index 546f18a8..895b0d4b 100644 --- a/app/boards/shields/leeloo_micro/Kconfig.defconfig +++ b/app/boards/shields/leeloo_micro/Kconfig.defconfig @@ -4,44 +4,44 @@ if SHIELD_LEELOO_MICRO_LEFT config ZMK_KEYBOARD_NAME - default "Leeloo-Micro" + default "Leeloo-Micro" config ZMK_SPLIT_ROLE_CENTRAL - default y - + default y + endif if SHIELD_LEELOO_MICRO config ZMK_SPLIT - default y + default y if ZMK_DISPLAY config I2C - default y + default y config SSD1306 - default y + default y config SSD1306_REVERSE_MODE - default y + default y endif # ZMK_DISPLAY if LVGL config LV_Z_VDB_SIZE - default 64 + default 64 config LV_Z_DPI - default 148 + default 148 config LV_Z_BITS_PER_PIXEL - default 1 + default 1 choice LV_COLOR_DEPTH - default LV_COLOR_DEPTH_1 + default LV_COLOR_DEPTH_1 endchoice endif # LVGL diff --git a/app/boards/shields/leeloo_micro/Kconfig.shield b/app/boards/shields/leeloo_micro/Kconfig.shield index 9070a367..095ddfbb 100644 --- a/app/boards/shields/leeloo_micro/Kconfig.shield +++ b/app/boards/shields/leeloo_micro/Kconfig.shield @@ -2,12 +2,12 @@ # SPDX-License-Identifier: MIT config SHIELD_LEELOO_MICRO - bool + bool config SHIELD_LEELOO_MICRO_LEFT - def_bool $(shields_list_contains,leeloo_micro_left) - select SHIELD_LEELOO_MICRO + def_bool $(shields_list_contains,leeloo_micro_left) + select SHIELD_LEELOO_MICRO config SHIELD_LEELOO_MICRO_RIGHT - def_bool $(shields_list_contains,leeloo_micro_right) - select SHIELD_LEELOO_MICRO \ No newline at end of file + def_bool $(shields_list_contains,leeloo_micro_right) + select SHIELD_LEELOO_MICRO \ No newline at end of file diff --git a/app/boards/shields/leeloo_micro/README.md b/app/boards/shields/leeloo_micro/README.md index 486b3050..c220b915 100644 --- a/app/boards/shields/leeloo_micro/README.md +++ b/app/boards/shields/leeloo_micro/README.md @@ -6,67 +6,75 @@ Keyboard Designer: [clicketysplit.ca](https://clicketysplit.ca) GitHub: [ClicketySplit](https://github.com/ClicketySplit) 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 -* 3x5x5m Split Keyboard -* Support for Kailh Low Profile Choc switches with 18mm x 18mm spacing. -* All switch locations are socketed. -* Support for Alps Alpine EC11 Rotary Encoders—one on each side, in one of two locations. + +- 3x5x5m Split Keyboard +- Support for Kailh Low Profile Choc switches with 18mm x 18mm spacing. +- 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. -* nice!view Displays are inherently supported, socketed, and no extra wiring is required. -* Support for per-switch RGB underglow. -* Support for both 110mAh or 700mAh batteries. -* Support for Alps Alpine Micro On/off switches. +- nice!view Displays are inherently supported, socketed, and no extra wiring is required. +- Support for per-switch RGB underglow. +- Support for both 110mAh or 700mAh batteries. +- Support for Alps Alpine Micro On/off switches. # Building Leeloo-Micro ZMK Firmware + ZMK Firmware: [Introduction to ZMK](https://zmk.dev/docs/) Installation: [Installing ZMK](https://zmk.dev/docs/user-setup) Customization: [Customizing ZMK](https://zmk.dev/docs/customization) Development Environment: [Basic Setup](https://zmk.dev/docs/development/setup) 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/right -p -b nice_nano_v2 -- -DSHIELD=leeloo_micro_right ``` 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/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 + There are a couple of files that need to be adjusted before the build commands can be run. ### Edit the leeloo_micro.keymap File + Near the top 3rd of the leeloo_micro.keymap file, locate the following code block: ``` //nice_view_spi: &spi0 { -// compatible = "nordic,nrf-spim"; -// pinctrl-0 = <&spi0_default>; -// pinctrl-1 = <&spi0_sleep>; -// pinctrl-names = "default", "sleep"; -// cs-gpios = <&pro_micro 4 GPIO_ACTIVE_HIGH>; +// compatible = "nordic,nrf-spim"; +// pinctrl-0 = <&spi0_default>; +// pinctrl-1 = <&spi0_sleep>; +// pinctrl-names = "default", "sleep"; +// cs-gpios = <&pro_micro 4 GPIO_ACTIVE_HIGH>; //}; ``` Remove the forward slashes to resemble the following: + ``` nice_view_spi: &spi0 { - compatible = "nordic,nrf-spim"; - pinctrl-0 = <&spi0_default>; - pinctrl-1 = <&spi0_sleep>; - pinctrl-names = "default", "sleep"; - cs-gpios = <&pro_micro 4 GPIO_ACTIVE_HIGH>; + compatible = "nordic,nrf-spim"; + pinctrl-0 = <&spi0_default>; + pinctrl-1 = <&spi0_sleep>; + pinctrl-names = "default", "sleep"; + cs-gpios = <&pro_micro 4 GPIO_ACTIVE_HIGH>; }; ``` Save your changes and close the file. ### Edit the leeloo_micro.conf file: + 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: + ``` # Uncomment the following line to enable the OLED Display or nice!view Display CONFIG_ZMK_DISPLAY=y @@ -83,19 +92,23 @@ CONFIG_ZMK_DISPLAY=y Save your changes and close the file. ### Sample Build Commands for nice!view Displays + 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/right -p -b nice_nano_v2 -- -DSHIELD="leeloo_micro_right nice_view_adapter nice_view" ``` 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/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 + If you have any questions with regards to Leeloo-Micro, please [Contact Us](https://clicketysplit.ca/pages/contact-us). Clickety Split diff --git a/app/boards/shields/leeloo_micro/boards/nice_nano_v2.overlay b/app/boards/shields/leeloo_micro/boards/nice_nano_v2.overlay index 747c3656..be5dc54e 100644 --- a/app/boards/shields/leeloo_micro/boards/nice_nano_v2.overlay +++ b/app/boards/shields/leeloo_micro/boards/nice_nano_v2.overlay @@ -1,47 +1,47 @@ #include &pinctrl { - spi3_default: spi3_default { - group1 { - psels = ; - }; - }; + spi3_default: spi3_default { + group1 { + psels = ; + }; + }; - spi3_sleep: spi3_sleep { - group1 { - psels = ; - low-power-enable; - }; - }; + spi3_sleep: spi3_sleep { + group1 { + psels = ; + low-power-enable; + }; + }; }; &spi3 { - compatible = "nordic,nrf-spim"; - status = "okay"; + compatible = "nordic,nrf-spim"; + status = "okay"; - pinctrl-0 = <&spi3_default>; - pinctrl-1 = <&spi3_sleep>; - pinctrl-names = "default", "sleep"; + pinctrl-0 = <&spi3_default>; + pinctrl-1 = <&spi3_sleep>; + pinctrl-names = "default", "sleep"; - led_strip: ws2812@0 { - compatible = "worldsemi,ws2812-spi"; - label = "WS2812"; + led_strip: ws2812@0 { + compatible = "worldsemi,ws2812-spi"; + label = "WS2812"; - /* SPI */ - reg = <0>; /* ignored, but necessary for SPI bindings */ - spi-max-frequency = <4000000>; + /* SPI */ + reg = <0>; /* ignored, but necessary for SPI bindings */ + spi-max-frequency = <4000000>; - /* WS2812 */ - chain-length = <20>; /* arbitrary; change at will */ - spi-one-frame = <0x70>; - spi-zero-frame = <0x40>; + /* WS2812 */ + chain-length = <20>; /* arbitrary; change at will */ + spi-one-frame = <0x70>; + spi-zero-frame = <0x40>; - color-mapping = ; - }; + color-mapping = ; + }; }; / { - chosen { - zmk,underglow = &led_strip; - }; + chosen { + zmk,underglow = &led_strip; + }; }; \ No newline at end of file diff --git a/app/boards/shields/leeloo_micro/leeloo_micro.dtsi b/app/boards/shields/leeloo_micro/leeloo_micro.dtsi index 81c9ed2a..7a2a17b9 100644 --- a/app/boards/shields/leeloo_micro/leeloo_micro.dtsi +++ b/app/boards/shields/leeloo_micro/leeloo_micro.dtsi @@ -2,5 +2,5 @@ * Copyright (c) 2022 The ZMK Contributors * SPDX-License-Identifier: MIT */ - + #include "leeloo_micro_common.dtsi" \ No newline at end of file diff --git a/app/boards/shields/leeloo_micro/leeloo_micro.keymap b/app/boards/shields/leeloo_micro/leeloo_micro.keymap index 998256c2..13ed9676 100644 --- a/app/boards/shields/leeloo_micro/leeloo_micro.keymap +++ b/app/boards/shields/leeloo_micro/leeloo_micro.keymap @@ -40,16 +40,16 @@ #define RGBEFF &rgb_ug RGB_EFF -/* +/* * Assign the cs-gpios pin to 4. * Uncomment these next few lines if implementing nice!view Displays. */ //nice_view_spi: &spi0 { -// compatible = "nordic,nrf-spim"; -// pinctrl-0 = <&spi0_default>; -// pinctrl-1 = <&spi0_sleep>; -// pinctrl-names = "default", "sleep"; -// cs-gpios = <&pro_micro 4 GPIO_ACTIVE_HIGH>; +// compatible = "nordic,nrf-spim"; +// pinctrl-0 = <&spi0_default>; +// pinctrl-1 = <&spi0_sleep>; +// pinctrl-names = "default", "sleep"; +// cs-gpios = <&pro_micro 4 GPIO_ACTIVE_HIGH>; //}; @@ -130,7 +130,7 @@ bindings = < &trans &none &none &none &none &kp SLASH &kp N7 &kp N8 &kp N9 &kp MINUS -RGBON RGBTOG RGBHUI RGBSAI RGBBRI &kp ASTRK &kp N4 &kp N5 &kp N6 &kp PLUS +RGBON RGBTOG RGBHUI RGBSAI RGBBRI &kp ASTRK &kp N4 &kp N5 &kp N6 &kp PLUS RGBOFF RGBEFF RGBHUD RGBSAD RGBBRD &trans &trans &none &kp N1 &kp N2 &kp N3 &kp EQUAL &trans &trans &trans &trans &trans &kp N0 &kp DOT &none >; diff --git a/app/boards/shields/leeloo_micro/leeloo_micro_common.dtsi b/app/boards/shields/leeloo_micro/leeloo_micro_common.dtsi index d2436937..aae9ef84 100644 --- a/app/boards/shields/leeloo_micro/leeloo_micro_common.dtsi +++ b/app/boards/shields/leeloo_micro/leeloo_micro_common.dtsi @@ -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 { - status = "okay"; + 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>; - }; + 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>; + }; }; \ No newline at end of file diff --git a/app/boards/shields/leeloo_micro/leeloo_micro_left.overlay b/app/boards/shields/leeloo_micro/leeloo_micro_left.overlay index f0a13cdd..9e83daf0 100644 --- a/app/boards/shields/leeloo_micro/leeloo_micro_left.overlay +++ b/app/boards/shields/leeloo_micro/leeloo_micro_left.overlay @@ -6,15 +6,15 @@ #include "leeloo_micro.dtsi" &kscan0 { - col-gpios - = <&pro_micro 19 GPIO_ACTIVE_HIGH> - , <&pro_micro 18 GPIO_ACTIVE_HIGH> - , <&pro_micro 15 GPIO_ACTIVE_HIGH> - , <&pro_micro 14 GPIO_ACTIVE_HIGH> - , <&pro_micro 16 GPIO_ACTIVE_HIGH> - ; + col-gpios + = <&pro_micro 19 GPIO_ACTIVE_HIGH> + , <&pro_micro 18 GPIO_ACTIVE_HIGH> + , <&pro_micro 15 GPIO_ACTIVE_HIGH> + , <&pro_micro 14 GPIO_ACTIVE_HIGH> + , <&pro_micro 16 GPIO_ACTIVE_HIGH> + ; }; &left_encoder { - status = "okay"; + status = "okay"; }; \ No newline at end of file diff --git a/app/boards/shields/leeloo_micro/leeloo_micro_right.overlay b/app/boards/shields/leeloo_micro/leeloo_micro_right.overlay index c4345668..13618e51 100644 --- a/app/boards/shields/leeloo_micro/leeloo_micro_right.overlay +++ b/app/boards/shields/leeloo_micro/leeloo_micro_right.overlay @@ -6,19 +6,19 @@ #include "leeloo_micro.dtsi" &default_transform { - col-offset = <5>; + col-offset = <5>; }; &kscan0 { - col-gpios - = <&pro_micro 16 GPIO_ACTIVE_HIGH> - , <&pro_micro 14 GPIO_ACTIVE_HIGH> - , <&pro_micro 15 GPIO_ACTIVE_HIGH> - , <&pro_micro 18 GPIO_ACTIVE_HIGH> - , <&pro_micro 19 GPIO_ACTIVE_HIGH> - ; + col-gpios + = <&pro_micro 16 GPIO_ACTIVE_HIGH> + , <&pro_micro 14 GPIO_ACTIVE_HIGH> + , <&pro_micro 15 GPIO_ACTIVE_HIGH> + , <&pro_micro 18 GPIO_ACTIVE_HIGH> + , <&pro_micro 19 GPIO_ACTIVE_HIGH> + ; }; &right_encoder { - status = "okay"; + status = "okay"; }; \ No newline at end of file