Skip to the content
PCBKitNew board
2 layers70 × 65 mmKeyholder, the printed circuit board in 3D

Goals - Good ergonomics - Good for programming - No drivers - Configurable - Use standard components where possible

Size
70 × 65 mm
Copper layers
2
Thickness
1.6 mm
Parts
22
Nets
14
Pads
78
Tracks, vias
82, 10
Routed
Yes
KiCad
KiCad 6 (file 20211014)
Created
5 Nov 2022
Updated
9 Jan 2026

Overview

Keyholder is an open-source printed circuit board by jpsecher, from the jpsecher/keyboards repository on GitHub, published under the ISC licence. It is a 2-layer board of 70 × 65 mm with 22 parts on 14 nets, routed with 82 tracks and 10 vias.

Its parts include 8 diodes, 8 switches and 6 connectors.

README

readme.md

Custom Keyboard

Goals

  • Good ergonomics
  • Good for programming
  • No drivers
  • Configurable
  • Use standard components where possible

On the ergonomics side, the initial design will be a pseudo-split staggered-column because it follows the natural physiology of the hands, and because I only need to make one or two for myself. I want to make a PCB for the keyboard, so it seems to convoluted to go all the way to curved surfaces (eg. wells). With a PCB, I can also support hot-swappable keys, which makes it possible to try out different spring weights for the individual fingers (like the Absolem). And no stabilisers should be needed because the keys should just be where your finger naturally land, and therefore there should be no need for large 2U keys. For the thumb keys, size 1.5U is probably sufficient.

Keys that need to be hold down while pressing other keys should only be operated by strong fingers. So all modifier keys and layer shifting should probably be in the thumbs area, where it will be most comfortable to hold down a keys (as opposed to tapping the key). But some modifier keys need to be hold down together, so these modifiers then need to be on opposite sides, using both thumbs at the same time.

Good ergonomics with no curvatures then means that the number of keys must be limited to avoid stretching the fingers too much. Which means that the keyboard needs to have several layers to accommodate all the ASCII characters used in programming, as well as the various European letters I use daily. I am toying with the idea of using the thumb keys exclusively for layer-shift and control keys.

The keyboard should use standard hot-swappable Cherry MX keys. And to ease experimentation, I will start out with DSA profile key caps.

Layers

Contexts:

  1. Programming (standard languages) in non-modal text editor.
  2. Documentation (Markdown) in non-modal editor.
  3. Terminal (shell) operations.
  4. Window manager navigation.
  5. Music control (easy identification of Play/Pause key at a glance)

And:

  • Function keys are important in many of the applications I use.
  • Editors usually inserts ending parenthesis/brace/bracket automatically.
  • I don't care about RGB LEDs, as long as I can turn them off.
  • I occasionally use Nordic/German/Greek letters when writing text.
  • I want modifiers and layer keys on thumbs, and they should stay in the same place as much as possible.

Also, I prefer that each group of keys follow the traditional QWERTY layout, simply because it makes switching between keyboards less stressful.

Keyboards in this repository

  • Acacia: a pseudo-split 40 key column-staggered keyboard

Parts

22
QtyValueFootprintReferences
8DDiode_SMD:D_0805_2012Metric_Pad1.15x1.40mm_HandSolderD1, D2, D3, D4, D5, D6, D7, D8
1Cmech-kbd:MX-Hotswap-1USW3
1C0Connector_Pin:Pin_D0.7mm_L6.5mm_W1.8mm_FlatForkJ4
1C1Connector_Pin:Pin_D0.7mm_L6.5mm_W1.8mm_FlatForkJ5
1C2Connector_Pin:Pin_D0.7mm_L6.5mm_W1.8mm_FlatForkJ6
1Dmech-kbd:MX-Hotswap-1USW2
1Emech-kbd:MX-Hotswap-1USW1
1Fmech-kbd:MX-Hotswap-1USW5
1Gmech-kbd:MX-Hotswap-1USW8
1Rmech-kbd:MX-Hotswap-1USW4
1R0Connector_Pin:Pin_D0.7mm_L6.5mm_W1.8mm_FlatForkJ1
1R1Connector_Pin:Pin_D0.7mm_L6.5mm_W1.8mm_FlatForkJ2
1R2Connector_Pin:Pin_D0.7mm_L6.5mm_W1.8mm_FlatForkJ3
1Tmech-kbd:MX-Hotswap-1USW7
1Vmech-kbd:MX-Hotswap-1USW6

Questions

How big is the Keyholder PCB?

It measures 70 × 65 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Keyholder use?

22 parts. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the Keyholder KiCad files?

From the jpsecher/keyboards repository on GitHub, at the commit this page was made from: the board is acacia/kicad/keyholder.kicad_pcb and its schematic acacia/kicad/acacia-2.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Keyholder design in my own project?

Its repository publishes it under the ISC licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).

More from jpsecher/keyboards

3
  • 2 layers274 × 158 mmAcacia, the printed circuit board in 3D

    Acacia

    jpsecher/keyboards

    Goals - Good ergonomics - Good for programming - No drivers - Configurable - Use standard components where possible

    127 parts1ISC
  • 2 layers268 × 112 mmAcacia-2, the printed circuit board in 3D

    Acacia-2

    jpsecher/keyboards

    Goals - Good ergonomics - Good for programming - No drivers - Configurable - Use standard components where possible

    124 parts1ISC
  • 2 layers50 × 60 mmController, the printed circuit board in 3D

    Controller

    jpsecher/keyboards

    Goals - Good ergonomics - Good for programming - No drivers - Configurable - Use standard components where possible

    35 parts1ISC

Similar boards

  • 2 layers158 × 11 mmDaylight Matchstick, the printed circuit board in 3D

    Daylight Matchstick

    VoronDesign/Voron-Hardware

    Cool Hardware designed by the Voron Design group

    22 parts1.1kGPL-3.0
  • 2 layers57 × 65 mmRgb to hdmi, the printed circuit board in 3D

    Rgb to hdmi

    hoglet67/RGBtoHDMI

    Bare-metal Raspberry Pi project that provides pixel-perfect sampling of Retro Computer RGB/YUV video and conversion to HDMI

    22 parts1kGPL-3.0
  • 2 layers81 × 57.2 mmRP2040-Macropad, the printed circuit board in 3D

    RP2040-Macropad

    hackclub/OnBoard

    💡 Join 1,000 teenagers and make your first PCB with a $100 grant!

    22 parts915
  • 2 layers54.6 × 70.9 mmBeagleLogic Cape, the printed circuit board in 3D

    BeagleLogic Cape

    abhishek-kakkar/BeagleLogic

    A Software Suite that implements a logic analyzer with the PRU on the BeagleBone / BeagleBone Black.

    22 parts479GPL-3.0
  • 2 layers66.4 × 24.5 mmConnecting piece, the printed circuit board in 3D

    Connecting piece

    Chrismettal/flipper-zero-backpacks

    Backpack-style addon boards for the Flipper Zero!

    22 parts456
  • 2 layers51 × 70 mmDMG A04-01, the printed circuit board in 3D

    DMG A04-01

    HDR/NintendoPCBs

    Replacement pcb's for Nintendo games.

    22 parts321
  • 2 layers27.8 × 16 mmSpi 1v8 level shifter, the printed circuit board in 3D

    Spi 1v8 level shifter

    CRImier/MyKiCad

    My KiCad boards. Can't be bothered uploading individually anymore, so here you go.

    22 parts253GPL-3.0