Top Related Projects
Open-source keyboard firmware for Atmel AVR and Arm USB families
Corne keyboard, a split keyboard with 3x6 column staggered keys and 3 thumb keys.
Miryoku is an ergonomic, minimal, orthogonal, and universal keyboard layout.
Quick Overview
The SofleKeyboard is an open-source, split keyboard project designed for ergonomic typing. It features a 6x4+5 key layout with rotary encoders, RGB underglow, and per-key LED backlighting options. The keyboard is programmable using QMK firmware, allowing for extensive customization.
Pros
- Ergonomic split design for improved comfort and typing posture
- Customizable layout and firmware using QMK
- Optional features like rotary encoders and RGB lighting
- Detailed build guide and documentation available
Cons
- Requires DIY assembly, which may be challenging for beginners
- Limited availability of pre-built options or kits
- May have a steeper learning curve compared to traditional keyboards
- Potential compatibility issues with some operating systems or software
Getting Started
To build a Sofle Keyboard:
-
Clone the repository:
git clone https://github.com/josefadamcik/SofleKeyboard.git
-
Review the build guide in the
docs
folder for detailed instructions. -
Order PCBs using the provided Gerber files or purchase a kit from a vendor.
-
Gather components listed in the bill of materials (BOM).
-
Assemble the keyboard following the build guide.
-
Flash the firmware using QMK:
qmk flash -kb sofle -km default
-
Customize your keymap by editing the
keymap.c
file in the QMK firmware.
Note: This project requires soldering skills and familiarity with keyboard firmware. It's recommended to review the entire build process before starting.
Competitor Comparisons
Open-source keyboard firmware for Atmel AVR and Arm USB families
Pros of qmk_firmware
- Extensive support for a wide range of keyboards and microcontrollers
- Large community and active development, resulting in frequent updates and improvements
- Comprehensive documentation and resources for customization
Cons of qmk_firmware
- Steeper learning curve due to its complexity and vast feature set
- Requires more setup and configuration for specific keyboard layouts
Code Comparison
SofleKeyboard (config.h):
#define MATRIX_ROWS 10
#define MATRIX_COLS 6
#define MATRIX_ROW_PINS { C6, D7, E6, B4, B5 }
#define MATRIX_COL_PINS { F6, F7, B1, B3, B2, B6 }
qmk_firmware (generic config.h):
#define MATRIX_ROWS 2
#define MATRIX_COLS 2
#define MATRIX_ROW_PINS { D0, D5 }
#define MATRIX_COL_PINS { F1, F0 }
#define DIODE_DIRECTION COL2ROW
The SofleKeyboard repository is specifically tailored for the Sofle split keyboard, while qmk_firmware provides a more generic framework for various keyboard layouts. SofleKeyboard offers a simpler setup for users specifically interested in the Sofle design, whereas qmk_firmware provides greater flexibility and customization options for a wide range of keyboard projects.
Corne keyboard, a split keyboard with 3x6 column staggered keys and 3 thumb keys.
Pros of crkbd
- More compact design with 42 keys, ideal for portability
- Supports per-key RGB lighting for customization
- Established community with numerous resources and modifications
Cons of crkbd
- Steeper learning curve due to fewer keys
- Less ergonomic without the extra thumb keys
- May require more layers for full functionality
Code Comparison
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
)
};
SofleKeyboard firmware example:
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT(
KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
KC_TAB, 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_RSFT,
KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_ENT, KC_SPC, KC_BSPC, KC_RGUI, KC_RALT, KC_RCTL
)
};
Miryoku is an ergonomic, minimal, orthogonal, and universal keyboard layout.
Pros of Miryoku
- Highly optimized and ergonomic layout design
- Extensive cross-platform compatibility (QMK, ZMK, KMonad)
- Detailed documentation and customization options
Cons of Miryoku
- Steeper learning curve due to its minimalist approach
- Less visual customization compared to Sofle's OLED support
- May require more time to adapt for users accustomed to traditional layouts
Code Comparison
Miryoku (layout definition):
#define LAYOUT_miryoku( \
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, \
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, \
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, \
K32, K33, K34, K35, K36, K37 \
) \
LAYOUT_wrapper( \
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, \
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, \
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, \
K32, K33, K34, K35, K36, K37 \
)
Sofle Keyboard (keymap):
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/*
* QWERTY
* ,-----------------------------------------. ,-----------------------------------------.
* | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | ` |
* |------+------+------+------+------+------| |------+------+------+------+------+------|
* | ESC | Q | W | E | R | T | | Y | U | I | O | P | Bspc |
* |------+------+------+------+------+------| |------+------+------+------+------+------|
* | Tab | A | S | D | F | G |-------. ,-------| H | J | K | L | ; | ' |
* |------+------+------+------+------+------| | | |------+------+------+------+------+------|
* |LShift| Z | X | C | V | B |-------| |-------| N | M | , | . | / |RShift|
* `-----------------------------------------/ / \ \-----------------------------------------'
* | LGUI | LAlt | LCTR |LOWER | /Enter / \Space \ |RAISE | RCTR | RAlt | RGUI |
* | | | | |/ / \ \ | | | | |
* `----------------------------------' '------''---------------------------'
*/
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
Sofle Keyboard
Sofle is 6Ã4+5 keys column-staggered split keyboard with encoder support. Based on Lily58, Corne and Helix keyboards.
For more information and documentation visit https://josefadamcik.github.io/SofleKeyboard/
SofleKeyboard was created by Josef Adamcik. The motivation and process is covered in following blog-post: Let me introduce you SofleKeyboard - a split keyboard based on Lily58 and Crkbd
Sofle RGB was contributed by Dane Evans.
Sofle soldered was contributed by kb-elmo
Firmware
Sofle uses QMK firmware
Default layout
Images of keyboard
Top Related Projects
Open-source keyboard firmware for Atmel AVR and Arm USB families
Corne keyboard, a split keyboard with 3x6 column staggered keys and 3 thumb keys.
Miryoku is an ergonomic, minimal, orthogonal, and universal keyboard layout.
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