Skip to the content
2 layers322 × 105 mmKeyboard, the printed circuit board in 3D

I am making a custom keyboard for myself , it is based on 60% keyboard layout . I will also have nobs for volume and brightness control. PCB is designed in kicad and 3D covers are made in fusion. ## Features

Size
322 × 105 mm
Copper layers
2
Thickness
1.6 mm
Parts
138
Nets
101
Pads
695
Tracks, vias
663, 37
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
15 May 2026
Updated
1 Jul 2026

Overview

Keyboard is an open-source printed circuit board by sauravraj67, from the sauravraj67/Keyboard repository on GitHub. It is a 2-layer board of 322 × 105 mm with 138 parts on 101 nets, routed with 663 tracks and 37 vias.

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

README

README.md

Keyboard

I am making a custom keyboard for myself , it is based on 60% keyboard layout . I will also have nobs for volume and brightness control. PCB is designed in kicad and 3D covers are made in fusion.

Features

  • Base on Raspberry pico W
  • Has 60% Keyboard Matrix
  • Has 2 Rotor Encoder For voulem and brigtness controll

    Schematic

    HOURS Worked :- 5.2 hours
    So i firstly thought what would be the features of my keyboard . It is a simple mechanical keyboard in 60% layout that uses keyboard matrix so that it uses less gpio pins and diodes are used to preventing ghosting. and i will also use hot-swap so that if i want i can change the keys without soldering or de soldering. Prior to that it will has 2 rotor encoders to control the volume and brightness.

So firstly i imported all the footprints and layout of components which would be used.

Then i started with making the keyboard matrix . I used references from the web for the layout of the switches also i assigned the key sizes accordingly . I also added stabilizers for keys whose width was over 1.75 U. then i made the connection of rows and columns of the matrix . After it i added the 2 rotor encoder ,stabilizers with required size and raspberry pi pico and made the connections of the rotor encoders to the analog pins anf colums and rows to the gpio pins.

The most time consuming part was to make the matrix because firstly you have to decide which key would be assigned to which column because after column one there are more columns then the switches over to that the sizes of each switches aren't same so i have to take a proper look on that as well . Final Look

Screenshot 2026-05-13 020343

PCB Design

PCB Layout

text
 HOURS Worked :- 3.5 Hours  <br>

So i loaded the pcb with all the components again the hardest and most time consuming part was re arranging the keyboard matrix. First i added the satirizers to there responded key size , then i started arranging all the keys as per my layout at 19.05 mm and 0.7937mm grid so that the keys could easy snap with each other but many a times i had difficulties doing so , then i used different sized grides for that after i arranged all the keys then i started with arrangement of the resistors as per there connected switches in such a way that it would turn out to be a ease to me while i rout. Final look

Screenshot 2026-07-01 091626

Routing

Hours Worked :- 3.1

I started with routing the Diodes to the swich first then after that I routed the Rows and columns and then connected it to the MCU after which I made the connections for the Rotor encoders as well . I tried to make as clean routs as possible and used both side of the PCB to rout. Somethimes there wasn;t a way to rout so I had to make some changes onto the previous rout and this ishow the final PCB looks

Screenshot 2026-05-13 075501

Made the case

Hours worked :- 4.25 Hours

So I Firstly took the dimensions of the PCB and moved to fusion for the case design firstly i started with designing the Base for that I created sketch for the base added a base height of 3mm and then moved to calculate the PCB height which will be 4.6mm (3mm for hot swap and 1.6 mm for PCB) and i added .4 mm of free space and modeled the base. Base width was 10mm less by each side in inner meserement so that the PCB can fix into in. Sketch

Screenshot 2026-07-01 092745

BASE Screenshot 2026-07-01 092849

Then I updated the schematics with exact PCB dimensions so that PCB alight perfectly with the base and added holes for the screws onto it. Prior to that i extrude the base so that to fix the above components of the pcb in the base (distance from top of PCB to mid of key switch is 5mm) Top layer would be 1.1mm so i extruded 3.9mm because few components were not fitting in the Base such as the USB-B typeScreenshot 2026-07-01 092929

Then I added a hole for the USB type connection and polished the Base By curing it's side Screenshot 2026-07-01 093009

After that i stated with making the Top layer i added the keyboard layout sketches and aligned it perfectly to the keys and made the top layer by adding them and added holes for the rotor encoder .First i thought just to add a small circular hole for the top but later i found that it would not fix well as come part of rotor encoder base was colliding with the top so i made square holes for it . Final Look

Screenshot 2026-05-15 224021 Screenshot 2026-05-15 224000 Screenshot 2026-05-15 223839

Bill of Materials (BOM)

IndexComponentQtyCost (USD)Link
1Mechanical Keyboard Switches2 packs$10.62https://www.amazon.in/gp/product/B0G39H2G4H
2Meckeys Shipping1$1.07https://meckeys.com
3Raspberry Pi Pico SC09171$5.79https://www.amazon.in/gp/product/B0B69KZBD8
4Keycap Set1$10.73https://www.amazon.in/gp/product/B0GFNPXVJL
5Stabilizers1$10.74https://meckeys.com/shop/accessories/keyboard-accessories/more/glorious-goat-stabilizers/
6Kailh Hot Swap Sockets7 packs$5.41https://meckeys.com/shop/accessories/keyboard-accessories/key-switches/kailh-hot-swap-socket/
7PCB + Shipping (JLCPCB)1$35.98https://jlcpcb.com
8Rotary Encoder1 pack$1.84https://www.amazon.in/gp/product/B0888RWNM1
9Headset / Connector1$0.79https://www.amazon.in/gp/product/B0BB86CQSJ
10M3 Screws1$2.20https://www.amazon.in/dp/B07XFP714Z
113D Printed Case10Made by Cookie With Coffee from #printing-legion

Total Estimated Cost

~$84.17 USD

Hardware

  • Raspberry Pico
  • Cherry MX compatible Switches
  • Diode
  • 2 layer PCB + 3D Case
  • 2 Rotor Encoder
  • Hot Swap
  • Key Caps

Firmware

  • It is Based on KMK and Circuit Python

Parts

138
QtyValueFootprintReferences
611N4148Diode_THT:D_DO-35_SOD27_P7.62mm_HorizontalD1, D2, D10, D11, D12, D13, D14, D15, D16, D17, D18, D19, D20, D21, D22, D23 +45
46SW_PushDri:MX100HSW1, SW2, SW10, SW11, SW12, SW13, SW16, SW17, SW18, SW19, SW20, SW21, SW22, SW23, SW24, SW25 +30
8, , , , , , ,
7SW_PushDri:MX125HSW42, SW43, SW44, SW46, SW47, SW48, SW49
2MX_stabStab:STAB_MX_2.25uS2, S3
2RotaryEncoder_Switch_MPRotary_Encoder:RotaryEncoder_Alps_EC11E-Switch_Vertical_H20mmSW62, SW63
2SW_PushDri:MX225HRSW41, SW50
2SW_PushDri:MX150HSW15, SW28
1MX_stabStab:STAB_MX_2uS1
1MX_stabStab:STAB_MX_6.25uS5
1MX_stabStab:STAB_MX_2.75uS4
1RaspberryPi_PicoModule:RaspberryPi_Pico_Common_UnspecifiedA1
1SW_PushDri:MX175HSW29
1SW_PushDri:MX275HSW61
1SW_PushDri:MX625HSW45
1SW_PushDri:MX200HSW14

Similar boards

  • 2 layers391 × 45 mmAddOnB, the printed circuit board in 3D

    AddOnB

    freeDSP/freeDSP-aurora

    freeDSP ADAU1452 with 8 analog input, 8 analog outputs, S/P-DIF I/O, ADAT I/O, USB Audio Class2, WiFi, Bluetooth

    138 parts226CC-BY-SA-4.0
  • 2 layers80 × 60 mmFPGA para todos, the printed circuit board in 3D

    FPGA para todos

    ciaa/Hardware

    Hardware de la CIAA

    138 parts216
  • 2 layers87.9 × 98.7 mmBitdoglab smd, the printed circuit board in 3D

    Bitdoglab smd

    BitDogLab/BitDogLab

    Open-source educational hardware for embedded systems, programming, electronics, and physical computing.

    138 parts203
  • 2 layers247.6 × 99.2 mmRomeo pcb, the printed circuit board in 3D

    Romeo pcb

    coseyfannitutti/romeo

    Staggered 40% keyboard pcb that can be assembled with only through hole components, including USB Type-C

    138 parts148GPL-3.0
  • 2 layers313.8 × 110.8 mmOpenot rev2, the printed circuit board in 3D

    Openot rev2

    Skycode22/HIDs

    HID projects

    138 parts132
  • 2 layers271.3 × 120 mmCornelius, the printed circuit board in 3D

    Cornelius

    foostan/corneliuskbd

    The public branch for the cornelius keyboard

    138 parts122
  • 2 layers112.5 × 65.6 mmEaserCAT-7000, the printed circuit board in 3D

    EaserCAT-7000

    MetalMusings/MyOwnEtherCATDevice

    Documentation accompanying the "Make My Own EtherCAT device" video serie on Youtube.

    138 parts93
  • 2 layers100 × 100 mmVNA, the printed circuit board in 3D

    VNA

    profdc9/VNA

    Vector Network Analyzer based on the STM32F103C8T6 bluepill

    138 parts93

Questions

How big is the Keyboard PCB?

It measures 322 × 105 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Keyboard use?

138 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 Keyboard KiCad files?

From the sauravraj67/Keyboard repository on GitHub, at the commit this page was made from: the board is KeyBoard/PCB/KeyBoard.kicad_pcb and its schematic KeyBoard/PCB/KeyBoard.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Keyboard design in my own project?

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