Skip to the content
2 layers274 × 158 mmAcacia, the printed circuit board in 3D

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

Size
274 × 158 mm
Copper layers
2
Thickness
1.5 mm
Parts
127
Nets
86
Pads
501
Tracks, vias
612, 98
Pours
3
Routed
Yes
KiCad
KiCad 6 (file 20211014)
Created
5 Nov 2022
Updated
9 Jan 2026

Overview

Acacia 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 274 × 158 mm with 127 parts on 86 nets, routed with 612 tracks and 98 vias.

It is built around the ATMEGA32U2-AU, USBLC6-2SC6 and USB4500-03-0-A. Its parts include 44 switches, 42 diodes, 8 capacitors, 8 resistors and 2 ICs. It belongs with the AVR (ATmega, ATtiny) boards of this library.

Main components

3

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

127
QtyValueFootprintReferences
42DDiode_SMD:D_0805_2012Metric_Pad1.15x1.40mm_HandSolderD1, D2, D10, D11, D12, D13, D14, D15, D16, D17, D18, D19, D20, D21, D22, D23 +26
10MountingHoleMountingHole:MountingHole_3.2mm_M3H1, H2, H3, H4, H5, H6, H7, H8, H9, H10
422pCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC2, C3, C4, C7
322Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR2, R3, R5
210kResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR4, R6
2120Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderFB1, FB2
21µCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC5, C8
25k1Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR7, R8
116MHzCrystal:Crystal_SMD_HC49-SDY1
11MResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR1
11µCapacitor_SMD:C_1206_3216Metric_Pad1.33x1.80mm_HandSolderC6
1350mAResistor_SMD:R_1210_3225Metric_Pad1.30x2.65mm_HandSolderF1
14µ7Capacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC1
15VTestPoint:TestPoint_Pad_1.0x1.0mmTP2
1Amech-kbd:MX-Hotswap-1USW1
1ATmega32U2-APackage_QFP:TQFP-32_7x7mm_P0.8mmU2
1Altmech-kbd:MX-Hotswap-1.25USW19
1AltGrmech-kbd:MX-Hotswap-1USW22
1Bmech-kbd:MX-Hotswap-1USW4
1Backmech-kbd:MX-Hotswap-1USW16
1Cmech-kbd:MX-Hotswap-1USW10
1C2TestPoint:TestPoint_Pad_1.0x1.0mmTP5
1C4TestPoint:TestPoint_Pad_1.0x1.0mmTP6
1C5TestPoint:TestPoint_Pad_1.0x1.0mmTP7
1Commmech-kbd:MX-Hotswap-1USW33
1Ctlmech-kbd:MX-Hotswap-1USW25
1Ctlmech-kbd:MX-Hotswap-1.5USW18
1Dmech-kbd:MX-Hotswap-1USW9
1D0TestPoint:TestPoint_Pad_1.0x1.0mmTP3
1D1TestPoint:TestPoint_Pad_1.0x1.0mmTP4
1Dotmech-kbd:MX-Hotswap-1USW36
1Emech-kbd:MX-Hotswap-1USW8
1Entermech-kbd:MX-Hotswap-1USW30
1Fmech-kbd:MX-Hotswap-1USW12
1Fwdmech-kbd:MX-Hotswap-1USW21
1Gmech-kbd:MX-Hotswap-1USW15
1GNDTestPoint:TestPoint_Pad_1.0x1.0mmTP1
1Guimech-kbd:MX-Hotswap-1USW17
1Hmech-kbd:MX-Hotswap-1USW41
1Imech-kbd:MX-Hotswap-1USW31
1Jmech-kbd:MX-Hotswap-1USW27
1Kmech-kbd:MX-Hotswap-1USW32
1Lmech-kbd:MX-Hotswap-1USW35
1L1mech-kbd:MX-Hotswap-1.25USW24
1L2mech-kbd:MX-Hotswap-1.5USW23
1Mmech-kbd:MX-Hotswap-1USW28
1Nmech-kbd:MX-Hotswap-1USW29
1NCC0805F900KTRFInductor_SMD:L_CommonModeChoke_Coilcraft_0805USBFL1
1Omech-kbd:MX-Hotswap-1USW34
1Pmech-kbd:MX-Hotswap-1USW38
1Qmech-kbd:MX-Hotswap-1USW48
1QMKButton_Switch_SMD:SW_SPST_EVQQ2SW43
1Rmech-kbd:MX-Hotswap-1USW11
1RESETButton_Switch_SMD:SW_SPST_EVQQ2SW49
1Smech-kbd:MX-Hotswap-1USW6
1Semimech-kbd:MX-Hotswap-1USW39
1Sftmech-kbd:MX-Hotswap-1USW20
1Slshmech-kbd:MX-Hotswap-1USW40
1Tmech-kbd:MX-Hotswap-1USW14
1Tabmech-kbd:MX-Hotswap-1USW3
1Umech-kbd:MX-Hotswap-1USW26
1USB4500-03-0-Amech-kbd:USB4500030AJ1
1USBLC6-2SC6Package_TO_SOT_SMD:SOT-23-6U1
1Vmech-kbd:MX-Hotswap-1USW13
1Wmech-kbd:MX-Hotswap-1USW5
1Xmech-kbd:MX-Hotswap-1USW7
1Ymech-kbd:MX-Hotswap-1USW42
1Zmech-kbd:MX-Hotswap-1USW2

More from jpsecher/keyboards

3
  • 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
  • 2 layers70 × 65 mmKeyholder, the printed circuit board in 3D

    Keyholder

    jpsecher/keyboards

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

    22 parts1ISC

Similar boards

  • 2 layers100 × 60 mmKINK box, the printed circuit board in 3D

    KINK box

    FunDeckHermit/KINK-box

    Audio amplifier / Web radio based on ESP32-S3

    112 parts2Apache-2.0
  • 2 layers30 × 51 mmWasteIndicator, the printed circuit board in 3D

    WasteIndicator

    FunDeckHermit/WasteIndicator

    Scripts that modify Tasmota to interact with the Ximmio waste API

    16 partsMIT
  • 4 layers104.5 × 81 mmTinytapeout demo, the printed circuit board in 3D

    Tinytapeout demo

    KiCad/kicad-source-mirror

    This is an active mirror of the KiCad development branch, which is hosted at GitLab (updated every time something is pushed). Pull requests on GitHub are not accepted or watched.

    309 parts3.1kGPL-3.0
  • 4 layers90 × 100 mmBackplane, the printed circuit board in 3D

    Backplane

    MichaelBell/RV4028

    RV4028 - A hackable Risc-V computer

    37 parts9BSD-3-Clause
  • 4 layers25 × 16 mmSwd over c, the printed circuit board in 3D

    Swd over c

    kitspace-test-repos/kicad6-file-collection

    17 partsMIT
  • 2 layers74.2 × 124.6 mmDolphin, the printed circuit board in 3D

    Dolphin

    evyd13/fin-pad

    Replacement PCB for Lin Dolphin Pad

    71 parts1MIT
  • 2 layers81.3 × 100.3 mmNumpad, the printed circuit board in 3D

    Numpad

    aaron-lucas/NumpadPCB

    53 parts

Questions

How big is the Acacia PCB?

It measures 274 × 158 mm and has 2 copper layers, 1.5 mm thick.

What parts does the Acacia use?

127 parts, built around the ATMEGA32U2-AU, USBLC6-2SC6 and USB4500-03-0-A. 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 Acacia KiCad files?

From the jpsecher/keyboards repository on GitHub, at the commit this page was made from: the board is acacia/kicad/acacia.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 Acacia 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).