Skip to the content
2 layers346.5 × 117.9 mmKeeb, the printed circuit board in 3D

A custom 64-key linear mechanical keyboard.

Size
346.5 × 117.9 mm
Copper layers
2
Thickness
1.6 mm
Parts
130
Nets
122
Pads
538
Tracks, vias
308, 0
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
25 Jun 2026
Updated
6 Nov 2026

Overview

Keeb is an open-source printed circuit board by a-hungrybookworm, from the a-hungrybookworm/outta-ctrl repository on GitHub. It is a 2-layer board of 346.5 × 117.9 mm with 130 parts on 122 nets, routed with 308 tracks and 0 vias.

Its parts include 67 switches and 62 diodes. It belongs with the keyboards and input boards and the RP2040 boards of this library.

README

README.md

Outta-Ctrl

A custom 64-key linear mechanical keyboard designed from scratch - including a custom PCB, case, firmware, and even keycaps.

__

Features

  • Custom PCB & layout
  • 3D designed sandwich-mount case
  • Custom RMK firmware
  • Hotswappable MX-compatible switches
  • Screw-in stabilisers
  • Custom keycaps

Components

  • Custom PCB
  • 3D-printed case
  • MX-compatible switches
  • 1N4148 diodes
  • Raspberry Pi Pico
  • Hotswap sockets
  • Clear screw-in stabilizers
  • Blank white (soon-to-be-doodled-on) keycaps

Design Process

Initially, I planned the 64-key layout for my keyboard, and decided which components I would use.

I then designed the PCB in KiCAD. I initially figured out which libraries/ footprints to use, connected them to form the keyboard matrix (row-to-col) and finally arranged the components and routed the traces.

Next, I learnt how to 3D model in Onshape, while simultaneously modelling the case. I used a sandwich mount for its simplicity, and split the case into two mutually screwable sections, as it was too big for the bed size. This will help in easy assembly and disassembly.

Finally, I wrote the RMK firmware, which I will flash to my Pi Pico to control the keyboard.

Why I built it

I've been fascinated by understanding how most everyday objects work, and when I saw a HackClub programme offering to teach me how to build one of them, a keyboard, I was thrilled. Finally, I had the opportunity to learn how to design keyboard PCBs, model their cases, write their custom firmware, and deeply understand how these devices function.

Challenges

While designing the keyboard, I found several tasks challenging, such as

  • understanding the specifications and limitations of the different components
  • accounting for all the specific holes and features of the components while designing the 3D models
  • finding footprints/ 3D models for my components
  • finding keycaps for my design size

What I learnt

I started this ambitious project with no experience at all, and only a list of tutorials (credit to Keeb). Now, I've learnt so much, including (sequentially) -

  • how Github repositories function
  • how to write in Markdown, and how to write a readme
  • how to design a PCB in KiCAD
  • the matrix layout/schematic required for keyboard PCBs
  • how to use Onshape for 3D designing
  • the different keyboard mounting styles, and parts of a case
  • what keyboard firmware does, and how to write it
  • about different keyboard components, and their functions

Images

Schematic:

Schematic

Routed PCB:

Routed

3D Models:

Top(Case):

Top

Plate:

Plate

Base:

Base

Assembly:

(without all keycaps/ stabs)

Assembly

Bill of Materials

SI No.NameNotesQuantityPrice Per UnitTotalRunning TotalPrice/Unit(USD)Total (USD)Running Total (USD)Link
1Keygeek x MZ Y1 Keyboard Switch (Pack of 10)MX-compatible Switches7300210021003.1622.1122.11Switch
2PCB (manufactured by Robu)Manufactured by Robu510625310741011.1855.8978PCB_Robu
3Durock Clear Screw-In Stabilizers V2Screw-in stabilisers116501650906017.3717.3795.37Stabs
4Gateron Hotswap SocketsHotswap Sockets641064097000.116.74102.11Hotswap Switches
51N4148 DiodesPack of 100, TH118018098801.891.89104Diodes
6Raspberry Pi PicoMCU1384384102644.044.04108.04Pico
7Heat Set Threaded Round Female Insert NutM3, pack of 521530102940.160.32108.36Heat Set Insert
8Philips Head Nuts & Bolts SetM3, pack of 1012525103190.260.26108.62Screws
9Blank White Cherry Profile KeycapsFor later customization1100010001131910.5310.53119.15Keycaps
107u SpacebarCustom key1300300116193.163.16122.31Spacebar

Credits

This project was made possible through open-source hardware and design resources, and continuous support from the mechanical keyboard community. A special thank-you to the Hackclub YSWS Keeb, for inspiring me to take up this project, guiding me along the way, and most importantly, funding this project.

Parts

130
QtyValueFootprintReferences
621N4148Diode_THT:D_DO-35_SOD27_P7.62mm_HorizontalD1, D2, D10, D11, D12, D13, D14, D15, D16, D17, D18, D19, D20, D21, D22, D23 +46
62SW_PushPCM_marbastlib-mx:SW_MX_1uSW1, SW2, SW10, SW11, SW12, SW13, SW14, SW15, SW16, SW17, SW18, SW19, SW20, SW21, SW22, SW23 +46
2MX_stabPCM_marbastlib-mx:STAB_MX_2uS4, S5
2MX_stabPCM_marbastlib-mx:STAB_MX_2.25uS1, S3
1MX_stabPCM_marbastlib-mx:STAB_MX_7uS2
1RaspberryPi_PicoModule:RaspberryPi_Pico_Common_UnspecifiedA1

Similar boards

  • 2 layers100 × 100 mmESP drone, the printed circuit board in 3D

    ESP drone

    hackclub/OnBoard

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

    130 parts915
  • 2 layers99.5 × 90.5 mmMRR ESPA, the printed circuit board in 3D

    MRR ESPA

    maplerainresearch/MRR_ESPA

    A basic 3D printer control board based on ESP32

    130 parts59
  • 2 layers42 × 48 mmKERISE, the printed circuit board in 3D

    KERISE

    kerikun11/micromouse-kerise-v3

    MicroMouse KERISE v3

    130 parts32
  • 2 layers234.6 × 89.4 mmKongMX, the printed circuit board in 3D

    KongMX

    weteor/Kong

    48 key ortholinear keyboard

    130 parts27CERN-OHL-P-2.0
  • 2 layers100 × 100 mmUsb2most, the printed circuit board in 3D

    Usb2most

    smartgauges/usb2most

    USB to MOST adapter

    130 parts26GPL-3.0
  • 2 layers247.7 × 127 mmEuclid36, the printed circuit board in 3D

    Euclid36

    sadekbaroudi/euclid36

    At the time of creation, using Kicad 5.1.9 - This may not work with future versions

    130 parts24
  • 2 layers177.8 × 130.8 mmFull, the printed circuit board in 3D

    Full

    zuiko21/minimOS

    Scalable OS for 6502/65816

    130 parts23MIT

Questions

How big is the Keeb PCB?

It measures 346.5 × 117.9 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Keeb use?

130 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 Keeb KiCad files?

From the a-hungrybookworm/outta-ctrl repository on GitHub, at the commit this page was made from: the board is PCB_Files/Keeb.kicad_pcb and its schematic PCB_Files/Keeb.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Keeb design in my own project?

Its repository states no licence, so its author keeps all rights: ask a-hungrybookworm before reusing the design.