Top Related Projects
Corne keyboard, a split keyboard with 3x6 column staggered keys and 3 thumb keys.
Open-source keyboard firmware for Atmel AVR and Arm USB families
A split keyboard based on Lily58, Crkbd and Helix keyboards
Quick Overview
Lily58 is an open-source split keyboard project designed for ergonomic typing. It features a 58-key layout with thumb clusters and is compatible with various microcontrollers, including Pro Micro and Elite-C. The repository contains PCB designs, case files, and firmware for building your own Lily58 keyboard.
Pros
- Ergonomic split design for improved comfort and typing posture
- Customizable layout and firmware using QMK
- Open-source design allows for modifications and improvements
- Supports various switch types and keycap profiles
Cons
- Requires DIY assembly, which may be challenging for beginners
- Limited availability of pre-built options compared to mainstream keyboards
- May have a steeper learning curve for users accustomed to traditional keyboards
- Potential compatibility issues with some operating systems or software
Getting Started
To build your own Lily58 keyboard:
-
Clone the repository:
git clone https://github.com/kata0510/Lily58.git
-
Order PCBs using the provided Gerber files in the
PCB
folder. -
Gather components listed in the
Doc
folder. -
Follow the build guide in the
Doc
folder for assembly instructions. -
Flash the firmware using QMK:
qmk flash -kb lily58 -km default
-
Customize your layout using the QMK Configurator or by editing the keymap files in the
qmk_firmware/keyboards/lily58/keymaps
directory.
Competitor Comparisons
Corne keyboard, a split keyboard with 3x6 column staggered keys and 3 thumb keys.
Pros of Corne (crkbd)
- More compact design with 42 keys, ideal for minimalist setups
- Supports per-key RGB lighting for enhanced customization
- Offers a unique "chocolate bar" split layout for ergonomic typing
Cons of Corne (crkbd)
- Fewer keys may require more layers, increasing learning curve
- Lack of number row can be challenging for some users
- Smaller size might not be suitable for those with larger hands
Code Comparison
Corne (crkbd) firmware example:
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_split_3x6_3(
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ESC,
KC_LGUI, KC_LT, KC_SPC, KC_ENT, KC_BSPC, KC_RALT
)
};
Lily58 firmware example:
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT(
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_MINS,
KC_LCTRL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LBRC, KC_RBRC, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
KC_LALT, KC_LGUI, KC_LOWER,KC_SPC, KC_ENT, KC_SPC, KC_RAISE,KC_BSPC, KC_RGUI, KC_RALT
)
};
Open-source keyboard firmware for Atmel AVR and Arm USB families
Pros of qmk_firmware
- Supports a wide range of keyboard layouts and models
- Extensive documentation and community support
- Regular updates and active development
Cons of qmk_firmware
- Steeper learning curve for beginners
- Requires more setup and configuration
Code Comparison
Lily58:
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT(
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LBRC, KC_RBRC,KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
KC_LALT, KC_LGUI, KC_SPC, KC_ENT, KC_SPC, KC_BSPC, KC_RGUI, KC_RALT
)
};
qmk_firmware:
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_planck_grid(
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT,
KC_LCTL, KC_LALT, KC_LGUI, KC_BSPC, KC_SPC, KC_SPC, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_RGUI, KC_RALT
)
};
A split keyboard based on Lily58, Crkbd and Helix keyboards
Pros of Sofle Keyboard
- Features a more ergonomic design with a slight tenting angle
- Includes an OLED display for additional functionality
- Supports rotary encoders for enhanced input options
Cons of Sofle Keyboard
- Slightly more complex build process due to additional components
- May require more desk space due to its wider layout
- Potentially higher cost due to extra features
Code Comparison
Lily58 (config.h):
#define MASTER_LEFT
#define USE_SERIAL_PD2
#define TAPPING_FORCE_HOLD
#define TAPPING_TERM 100
Sofle Keyboard (config.h):
#define USE_SERIAL
#define MASTER_LEFT
#define SPLIT_USB_DETECT
#define TAPPING_TERM 200
#define ENCODER_RESOLUTION 4
Both keyboards use similar configuration options, but Sofle Keyboard includes additional settings for encoders and a longer tapping term. The Lily58 uses a specific serial pin (PD2), while Sofle Keyboard uses a more generic serial configuration.
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
Lily58
Lily58 is 6*4+4keys column-staggered split keyboard.
Document Site Here
Type
- Lily58 Pro
- Lily58 Lite Rev2
- Lily58(Old)
- Lily58 Lite Rev1(Old)
Top Related Projects
Corne keyboard, a split keyboard with 3x6 column staggered keys and 3 thumb keys.
Open-source keyboard firmware for Atmel AVR and Arm USB families
A split keyboard based on Lily58, Crkbd and Helix keyboards
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot