Skip to the content
PCBKitNew board
2 layers50 × 60 mmController, the printed circuit board in 3D

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

Size
50 × 60 mm
Copper layers
2
Thickness
1.6 mm
Parts
35
Nets
40
Pads
121
Tracks, vias
263, 21
Pours
11
Routed
Yes
KiCad
KiCad 6 (file 20211014)
Created
5 Nov 2022
Updated
9 Jan 2026

Overview

Controller 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 50 × 60 mm with 35 parts on 40 nets, routed with 263 tracks and 21 vias.

It is built around the ATMEGA32U2-AU, USBLC6-2SC6 and MUSBD111M0. Its parts include 8 capacitors, 6 resistors, 3 connectors, 2 ICs and 2 switches. 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

35
QtyValueFootprintReferences
322Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR2, R5, R6
322pCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC1, C2, C3
210kResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR1, R3
2120Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderFB1, FB2
21µCapacitor_SMD:C_1206_3216Metric_Pad1.33x1.80mm_HandSolderC4, C6
116MHzCrystal:Crystal_SMD_HC49-SDY1
11MResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR4
11µCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC5
122p/100VCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC8
1350mAResistor_SMD:R_1210_3225Metric_Pad1.30x2.65mm_HandSolderF1
14µ7Capacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC7
15VTestPoint:TestPoint_Pad_1.0x1.0mmTP6
1ATmega32U2Package_QFP:TQFP-32_7x7mm_P0.8mmU1
1DEBUGButton_Switch_SMD:SW_SPST_EVQQ2SW2
1GNDTestPoint:TestPoint_Pad_1.0x1.0mmTP5
1LEFTConnector_IDC:IDC-Header_2x05_P2.54mm_HorizontalJ2
1MUSBD111M0mech-kbd:AMPHENOL_MUSBD111M0J1
1NCC0805F900KTRFInductor_SMD:L_CommonModeChoke_Coilcraft_0805USBFL1
1PDITestPoint:TestPoint_Pad_1.0x1.0mmTP3
1PDOTestPoint:TestPoint_Pad_1.0x1.0mmTP4
1RESETButton_Switch_SMD:SW_SPST_EVQQ2SW1
1RIGHTConnector_IDC:IDC-Header_2x05_P2.54mm_HorizontalJ3
1SCKTestPoint:TestPoint_Pad_1.0x1.0mmTP2
1USBLC6-2SC6Package_TO_SOT_SMD:SOT-23-6U2
1caseMountingHole:MountingHole_3.2mm_M3_DIN965_PadH1
1~{RESET}TestPoint:TestPoint_Pad_1.0x1.0mmTP1

The 33 most common of 35 parts.

Questions

How big is the Controller PCB?

It measures 50 × 60 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Controller use?

35 parts, built around the ATMEGA32U2-AU, USBLC6-2SC6 and MUSBD111M0. 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 Controller KiCad files?

From the jpsecher/keyboards repository on GitHub, at the commit this page was made from: the board is acacia/kicad/controller.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 Controller 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 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 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
  • 2 layers108.8 × 118.3 mmKeypadV2-compact, the printed circuit board in 3D

    KeypadV2-compact

    JKattackk/JKattPad-ATM32u2

    Custom numpad using ATMega32u2, QMK, and USB-C connectivity

    70 parts
  • 2 layers77.2 × 123.1 mmNt210, the printed circuit board in 3D

    Nt210

    evyd13/nt-series

    Replacement PCBs for the FC660m, FC750r and FC980m.

    90 parts56CC-BY-SA-4.0
  • 2 layers242.2 × 72.1 mmAtom47, the printed circuit board in 3D

    Atom47

    evyd13/atom47

    Replacement PCB for the Vortex Core

    142 parts30Apache-2.0
  • 2 layers87.2 × 59 mmReform2-trackball, the printed circuit board in 3D

    Reform2-trackball

    jackhumbert/reform

    This is the main repository for the MNT Reform open source laptop.

    47 parts1
  • 2 layers168 × 109.2 mmPocketVoltex, the printed circuit board in 3D

    PocketVoltex

    mon/PocketVoltex

    A portable Cherry MX controller for KSM or SDVX

    51 parts155GPL-3.0
  • 2 layers194.3 × 79 mmQEZ, the printed circuit board in 3D

    QEZ

    str-dst/QEZ

    A seamless, gasketmounted QAZ-like 40% keyboard

    82 parts111