Keycaps come in many sizes

Not all keycaps are square. Keycap ratios are expressed as proportional widths relative to a "one unit", or, "1u" standard, which you find on most of the "normal" alpha-numeric keys on a keyboard.

Other key sizes exist: modifiers are usually 125% width, or 1.25u. Here are some common sizes (these may vary with different designs):

  • "normal" keys = 1u
  • alt, ctrl = 1.25u
  • tab = 1.5u
  • caps lock = 1.75u
  • numpad 0, +, enter = 2u
  • spacebar = 6.25u

Here's a nice resource for learning more about keyboard anatomy, Keyboard University.

Getting Off the Grid

Since this design uses a few 2u keycaps, we'll need to move some of the NeoKey snap-apart PCBs off of the default 1u grid.

The NeoKey Ortho 6x5 Snap-Apart PCB makes it easy to rearrange the layout.

To keep things neat and stable, you can design a key plate for 3D printing, laser cutting, or CNC milling.

An excellent tool for designing your layout in the browser is the Keyboard Layout Editor.

Keyboard Layout Editor

An excellent tool for designing your layout in the browser is the Keyboard Layout Editor.

You can start a new, blank layout, then add keys and rearrange their sizes and positions using the per-key controls.

Using the Keyboard Layout Editor I created the layout I want.

Once the layout is set, I headed to the Raw Data tab to copy the markup text shown here:


Highlight and copy the markup text so you can use it in the next step.

Note, I added the _s:0 code to remove stabilizer cutouts from the 2u switches.

Plate & Case Builder

Now that you have the keyboard laid out, you can use the swillkb Plate & Case Builder to generate the CAD drawings of your plate layout.

Paste the markup text from the Raw Data you copied in the Keyboard Layout Editor in to the Plate Layout field. Pick and options you want, and then click the Draw My CAD!!! button.

Pick the CAD Output tab and you'll see your drawing.

Click on the file type button to download an SVG, DXF, or EPS file of the drawing. You'll use this in your 3D modeling package of choice, or to generate a laser cutter or CNC toolpath.


Most 3D modeling and CAD programs will allow you to import the drawing file of your choice. I used the venerable .dxf file and imported it into Rhino/Grasshopper.

I then created a Grasshopper workflow to effectively extrude the collection of curves 1.6mm in height to generate the switch plate model. (I also had it offset the outer boundary curve by 2mm and fillet the corners.)

The 1.6mm plate height is a good starting point, allowing the switches to click into place nicely, but you can try making it thicker if you like.

Export the model as an .stl file and 3D print it! (Note, the print shown here was made using the notched keyswitch profile, but the squares work just as well or better due to increased connection surface.)

This guide was first published on Aug 17, 2021. It was last updated on Jun 18, 2024.

This page (Numpad Layout) was last updated on Mar 08, 2024.

Text editor powered by tinymce.