

KP60
Custom 60% Keyboard PCB with TOFU60 Redux in Mind
- Size
- 285 × 94.6 mm
- Copper layers
- 2
- Thickness
- 1.6 mm
- Parts
- 152
- Nets
- 106
- Pads
- 562
- Tracks, vias
- 924, 61
- Pours
- 1
- Routed
- Yes
- KiCad
- KiCad 8.0 (file 20240108)
- Created
- 18 Mar 2025
- Updated
- 25 May 2026
Overview
KP60 is an open-source printed circuit board by Kahan64bit, from the Kahan64bit/KP60 repository on GitHub, published under the CERN-OHL-P-2.0 licence. It is a 2-layer board of 285 × 94.6 mm with 152 parts on 106 nets, routed with 924 tracks and 61 vias.
It is built around the USBLC6-2SC6. Its parts include 62 switches, 61 diodes, 9 capacitors, 3 resistors and 3 ICs. It belongs with the keyboards and input boards and the STM32 boards of this library.
Main components
1README
README.mdCustom 60% Keyboard PCB
This is a custom-designed 60% keyboard PCB created for mechanical keyboard enthusiasts who want full control over their build, layout, and firmware. The PCB is fully compatible with QMK/VIA and uses the QWERTY layout standard.
PCB dimensions have been made to fit Tofu60 Redux Case. More specification related information can be found below.
Features
- QMK/VIA Compatible
- USB-C Connector
- Solder-Only Sockets
- ESD Protection & Power Filtering
- Standard 60% QWERTY Layout (ANSI support)
- Overcurrent Protection
- STM32 MCU
Specifications
| Feature | Details |
|---|---|
| Microcontroller | STM32F072CBT6 |
| Connector | USB-C |
| Switch Compatibility | MX-style (5-pin support) |
| Firmware Support | QMK, VIA |
| Matrix | 5x14 (standard 60% matrix) |
| Dimensions | Standard 60% mounting holes |
| Auxiliary | ESD + Decoupling + Reset |
| Misc | 3V3 Regulator |
Schematic

Diode Matrix

LED Matrix

PCB

Final Build

Render
Click Render to see 3D Render
Roadmap (Will be added as a seperate macroboard)
The KP60 project is actively evolving to support a broader range of features for keyboard customizers and enthusiasts. Here's a sneak peek at what’s coming in future versions:
🛠 Planned Features
-
OLED Screen Integration
Support for a 128x32 OLED screen for displaying layers, animations, or custom text. -
Hot-Swap Socket Support
Enable easy switch swapping without soldering. -
Rotary Encoder Support
Optional encoder support for volume, media, and custom actions.
Parts
152| Qty | Value | Footprint | References |
|---|---|---|---|
| 61 | Diode | Diode_SMD:D_SOD-123 | D1, D2, D10, D11, D12, D13, D14, D15, D16, D17, D18, D19, D20, D21, D22, D23 +45 |
| 6 | 100n | Capacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolder | C1, C2, C3, C4, C5, C9 |
| 6 | MountingHole_2.2mm_M2 | MountingHole:MountingHole_2.2mm_M2 | H1, H2, H3, H4, H5, H6 |
| 4 | Stabilizer_MX_2.00u | ScottoKeebs_Stabilizer:Stabilizer_MX_2.00u | ST2, ST3, ST4, ST5 |
| 2 | 1u | Capacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolder | C7, C8 |
| 2 | 5k1 | Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolder | R2, R3 |
| 1 | " | ScottoKeebs_MX:MX_PCB_1.00u | S43 |
| 1 | , | ScottoKeebs_MX:MX_PCB_1.00u | S53 |
| 1 | - | ScottoKeebs_MX:MX_PCB_1.00u | S12 |
| 1 | . | ScottoKeebs_MX:MX_PCB_1.00u | S54 |
| 1 | / | ScottoKeebs_MX:MX_PCB_1.00u | S55 |
| 1 | 0 | ScottoKeebs_MX:MX_PCB_1.00u | S11 |
| 1 | 1 | ScottoKeebs_MX:MX_PCB_1.00u | S2 |
| 1 | 10k | Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolder | R1 |
| 1 | 10u | Capacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolder | C6 |
| 1 | 2 | ScottoKeebs_MX:MX_PCB_1.00u | S3 |
| 1 | 3 | ScottoKeebs_MX:MX_PCB_1.00u | S4 |
| 1 | 4 | ScottoKeebs_MX:MX_PCB_1.00u | S5 |
| 1 | 5 | ScottoKeebs_MX:MX_PCB_1.00u | S6 |
| 1 | 500mA | Fuse:Fuse_1206_3216Metric_Pad1.42x1.75mm_HandSolder | F1 |
| 1 | 6 | ScottoKeebs_MX:MX_PCB_1.00u | S7 |
| 1 | 7 | ScottoKeebs_MX:MX_PCB_1.00u | S8 |
| 1 | 8 | ScottoKeebs_MX:MX_PCB_1.00u | S9 |
| 1 | 9 | ScottoKeebs_MX:MX_PCB_1.00u | S10 |
| 1 | ; | ScottoKeebs_MX:MX_PCB_1.00u | S42 |
| 1 | = | ScottoKeebs_MX:MX_PCB_1.00u | S13 |
| 1 | Esc | ScottoKeebs_MX:MX_PCB_1.00u | S1 |
| 1 | Fn | ScottoKeebs_MX:MX_PCB_1.25u | S63 |
| 1 | LOGO | LOGO | G*** |
| 1 | Lalt | ScottoKeebs_MX:MX_PCB_1.25u | S59 |
| 1 | Lctrl | ScottoKeebs_MX:MX_PCB_1.25u | S57 |
| 1 | Lshift | ScottoKeebs_MX:MX_PCB_2.25u | S45 |
| 1 | Lsuper | ScottoKeebs_MX:MX_PCB_1.25u | S58 |
| 1 | Ralt | ScottoKeebs_MX:MX_PCB_1.25u | S61 |
| 1 | Rctrl | ScottoKeebs_MX:MX_PCB_1.25u | S64 |
| 1 | Rshift | ScottoKeebs_MX:MX_PCB_2.75u | S56 |
| 1 | Rsuper | ScottoKeebs_MX:MX_PCB_1.25u | S62 |
| 1 | STM32F072CBTx | Package_QFP:LQFP-48_7x7mm_P0.5mm | U2 |
| 1 | SW_Push | Button_Switch_SMD:SW_SPST_TL3342 | SW2 |
| 1 | Stabilizer_MX_6.25u | ScottoKeebs_Stabilizer:Stabilizer_MX_6.25u | ST1 |
| 1 | USBLC6-2SC6 | Package_TO_SOT_SMD:SOT-23-6 | U1 |
| 1 | USB_C_Receptacle_USB2.0_14P | Connector_USB:USB_C_Receptacle_HRO_TYPE-C-31-M-12 | J1 |
| 1 | XC6206PxxxMR | Package_TO_SOT_SMD:SOT-23-3 | U3 |
| 1 | \ | ScottoKeebs_MX:MX_PCB_1.50u | S31 |
| 1 | a | ScottoKeebs_MX:MX_PCB_1.00u | S33 |
| 1 | b | ScottoKeebs_MX:MX_PCB_1.00u | S50 |
| 1 | backspace | ScottoKeebs_MX:MX_PCB_2.00u | S14 |
| 1 | c | ScottoKeebs_MX:MX_PCB_1.00u | S48 |
| 1 | caps | ScottoKeebs_MX:MX_PCB_1.75u | S32 |
| 1 | d | ScottoKeebs_MX:MX_PCB_1.00u | S35 |
| 1 | e | ScottoKeebs_MX:MX_PCB_1.00u | S21 |
| 1 | enter | ScottoKeebs_MX:MX_PCB_2.25u | S44 |
| 1 | f | ScottoKeebs_MX:MX_PCB_1.00u | S36 |
| 1 | g | ScottoKeebs_MX:MX_PCB_1.00u | S37 |
| 1 | h | ScottoKeebs_MX:MX_PCB_1.00u | S38 |
| 1 | i | ScottoKeebs_MX:MX_PCB_1.00u | S26 |
| 1 | j | ScottoKeebs_MX:MX_PCB_1.00u | S39 |
| 1 | k | ScottoKeebs_MX:MX_PCB_1.00u | S40 |
| 1 | l | ScottoKeebs_MX:MX_PCB_1.00u | S41 |
| 1 | m | ScottoKeebs_MX:MX_PCB_1.00u | S52 |
| 1 | n | ScottoKeebs_MX:MX_PCB_1.00u | S51 |
| 1 | o | ScottoKeebs_MX:MX_PCB_1.00u | S27 |
| 1 | p | ScottoKeebs_MX:MX_PCB_1.00u | S28 |
| 1 | q | ScottoKeebs_MX:MX_PCB_1.00u | S19 |
| 1 | r | ScottoKeebs_MX:MX_PCB_1.00u | S22 |
| 1 | s | ScottoKeebs_MX:MX_PCB_1.00u | S34 |
| 1 | space | ScottoKeebs_MX:MX_PCB_6.25u | S60 |
| 1 | t | ScottoKeebs_MX:MX_PCB_1.00u | S23 |
| 1 | tab | ScottoKeebs_MX:MX_PCB_1.50u | S18 |
| 1 | u | ScottoKeebs_MX:MX_PCB_1.00u | S25 |
| 1 | v | ScottoKeebs_MX:MX_PCB_1.00u | S49 |
| 1 | w | ScottoKeebs_MX:MX_PCB_1.00u | S20 |
| 1 | x | ScottoKeebs_MX:MX_PCB_1.00u | S47 |
| 1 | y | ScottoKeebs_MX:MX_PCB_1.00u | S24 |
| 1 | z | ScottoKeebs_MX:MX_PCB_1.00u | S46 |
| 1 | { | ScottoKeebs_MX:MX_PCB_1.00u | S29 |
| 1 | } | ScottoKeebs_MX:MX_PCB_1.00u | S30 |
Questions
How big is the KP60 PCB?
It measures 285 × 94.6 mm and has 2 copper layers, 1.6 mm thick.
What parts does the KP60 use?
152 parts, built around the USBLC6-2SC6. 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 KP60 KiCad files?
From the Kahan64bit/KP60 repository on GitHub, at the commit this page was made from: the board is KP60/KP60.kicad_pcb and its schematic KP60/KP60.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Can I use the KP60 design in my own project?
Its repository publishes it under the CERN-OHL-P-2.0 licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).
Similar boards
- 4 layers16.9 × 119.4 mm

- 2 layers290.1 × 130 mm

- 4 layers95 × 55.5 mm

EinkPDA keyboard
TalismanDesign/PocketMage_PDA
An E-Ink PDA device using the ESP32 S3.
137 parts2kApache-2.0 - 4 layers299 × 127 mm

- 2 layers42 × 67 mm

- 2 layers134 × 88 mm

Tulipcc
shorepine/tulipcc
The Tulip Creative Computer and AMYboard - portable Python synthesizers
103 parts978 - 4 layers70.8 × 108 mm

- 4 layers28.2 × 26.1 mm

DongleHiderPlus PCB
LeoDJ/FW-EC-DongleHiderPlus
Framework Expansion Card that includes a USB hub to hide a bare dongle inside and still have a USB-A port externally
23 parts497CERN-OHL-W-2.0