Convert Figma logo to code with AI

josefadamcik logoSofleKeyboard

A split keyboard based on Lily58, Crkbd and Helix keyboards

1,849
285
1,849
36

Top Related Projects

Open-source keyboard firmware for Atmel AVR and Arm USB families

5,485

Corne keyboard, a split keyboard with 3x6 column staggered keys and 3 thumb keys.

2,661

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:

  1. Clone the repository:

    git clone https://github.com/josefadamcik/SofleKeyboard.git
    
  2. Review the build guide in the docs folder for detailed instructions.

  3. Order PCBs using the provided Gerber files or purchase a kit from a vendor.

  4. Gather components listed in the bill of materials (BOM).

  5. Assemble the keyboard following the build guide.

  6. Flash the firmware using QMK:

    qmk flash -kb sofle -km default
    
  7. 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.

5,485

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
  )
};
2,661

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 Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

Sofle Keyboard

SofleKeyboard

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

ko-fi

Sofle RGB was contributed by Dane Evans.

Sofle soldered was contributed by kb-elmo

Firmware

Sofle uses QMK firmware

Default layout

Default layout for SofleKeyboard

Images of keyboard

SofleKeyboard

SofleKeyboard Choc

SofleKeyboard PCB