A custom split ergonomic keyboard designed with Ergogen and KiCad.
- 5-column layout: outer, pinky, ring, middle, index, inner
- 5 rows: mod, bottom, home, top, num
- 3-thumb keys: layer, space, extra
- Column-based wiring with row diodes
- Choc hotswap sockets (Kailh Choc low-profile switches)
- Pro Micro microcontroller (ATmega32U4)
- OLED displays (SSD1306, I2C)
- TRRS jack for inter-board communication
- ESD protection on TRRS data lines
- Reset button
- 3D printable case files (STL)
splitKeyboard/
├── ergogen/
│ ├── config.yaml # Ergogen configuration (layout, PCB definitions)
│ ├── footprints/ # Custom footprint definitions
│ └── output/
│ ├── cases/ # 3D printable case files (STL)
│ └── outlines/ # DXF files for CNC cutting
└── kicad/
├── left_board.kicad_pcb # Left half PCB design
└── right_board.kicad_pcb # Right half PCB design
Install ergogen from https://ergogen.xyz/install/, then generate PCBs:
ergogen splitKeyboard/ergogen/ --output build/For users with Nix installed:
nix develop # provides kicad + ergogen
generate # runs ergogen (PCB + cases) and organizes output- Microcontroller: Pro Micro (5V, 16MHz)
- Key switches: Kailh Choc (low-profile)
- Diodes: 1N4148 (or similar)
- OLED: SSD1306 128x32 I2C
- Interconnect: TRRS cable (4-pole)
- ESD Protection: TVS diodes (PRTR5V0U2X or similar)
| Column | Pin |
|---|---|
| outer | P21 |
| pinky | P20 |
| ring | P19 |
| middle | P18 |
| index | P15 |
| inner | P14 |
| thumb | P16 |
| space | P10 |
| extra | P9 |
| Row | Pin |
|---|---|
| mod | P8 |
| bottom | P7 |
| home | P6 |
| top | P5 |
| num | P4 |
- SDA: P2
- SCL: P3
-
Generate PCB files (see Development Setup above)
-
Open
splitKeyboard/kicad/in KiCad to generate Gerbers -
Order PCBs from your preferred manufacturer
-
Solder components:
- Diodes (observe polarity)
- Hotswap sockets
- TRRS jack
- Reset button
- OLED display
- Pro Micro header pins (or socket)
-
Flash firmware using QMK or ZMK
This repository only contains the hardware design. For firmware, use:
GNU General Public License v3. See LICENSE for details.