
PSLab
fossasia/pslab-hardware
PSLab Hardware Design and Schematics https://pslab.io

A custom 80% ISO mechanical keyboard powered by a Raspberry Pi Pico with KMK
Krunchboard is an open-source printed circuit board by krunchiekrunch, from the krunchiekrunch/krunchboard repository on GitHub. It is a 2-layer board of 427.6 × 139.1 mm with 225 parts on 158 nets, routed with 1,203 tracks and 78 vias.
It is built around the 1N4148W. Its parts include 100 diodes, 94 switches, 2 resistors, 2 connectors and 1 IC. It belongs with the keyboards and input boards and the RP2040 boards of this library.
A custom 80% ISO mechanical keyboard powered by a Raspberry Pi Pico with KMK
Prod V1 of the PCB has its I2C lines flipped for the 0.91" OLED Display and MCP23017
Firmware doesn't work yet
I made this keyboard after I designed my macropad, and I thought this would be a fun project to do, I've also never owned a mechanical keyboard so maybe this is a good way to start?

| PCB | 3D View |
|---|---|
![]() | ![]() |
![]() | ![]() |



| Qty | Item | Notes | Cost (USD) | URL |
|---|---|---|---|---|
| 1 | Raspberry Pi Pico | USB-C Clone | 2.30 | AliExpress |
| 1 | EC11 Rotary Encoder | 2.54 | AliExpress | |
| 1 | Rotary Encoder Knob | 0.98 | AliExpress | |
| 92 | Kailh MX Hotswap Socket | Hotswapping for switches | 7.88 | AliExpress |
| 1 | 0.91" OLED Display | 2.06 | AliExpress | |
| 1 | 0.96" OLED Display | 2.18 | AliExpress | |
| 1 | MX Stabilisers Set | For big keycaps | 4.37 | AliExpress |
| 93 | 1N4148W Diode (SOD-123) | Already have | 0.50 | LCSC |
| 1 | MCP23017 GPIO Expander (SOIC-28) | Already have | 1.94 | LCSC |
| 2 | 4 Slot 2.54mm Socket | Already have | 0.43 | LCSC |
| 6 | SK6812MINI-E / SK6812E Neopixel | Already have | 0.74 | LCSC |
| 1 | Keycaps Set | 13.94 | AliExpress | |
| 87 | Linear Key Switch | Main keyboard switches | 9.31 | AliExpress |
| 5 | Tactile MX-Style Switch | Shortcut keys switches | 2.00 | AliExpress |
| 6 | Sticky rubber feet | Antislip for keyboard | 1.26 | AliExpress |
| 12 | M3x5mmx4mm Heatset Inserts (W*H) | For mounting | 2.13 | AliExpress |
| 12 | M3x5mm Screws | For case assembly | 2.44 | AliExpress |
| 1 | Solder Paste | Reflow soldering for SMD | 5.11 | AliExpress |
| 1 | Solder Wire | 50g | 3.32 | AliExpress |
| 1 | 3D Printed Case | print-legion postage (via royal mail) | 7.00 | print-legion |
| 1 | PCB | Shipping $12.89 | 41.79 | JLCPCB |
| Total AliExpress (GBP) | 61.82 | |||
| PCB and Case (GBP) | 48.79 | |||
| Total (USD)** | 103.61 |

| Qty | Value | Footprint | References |
|---|---|---|---|
| 94 | 1N4148W | Diode_SMD:D_SOD-123 | D1, D2, D10, D11, D12, D13, D14, D15, D16, D17, D18, D19, D20, D21, D22, D23 +78 |
| 79 | SW_Push_45deg | ScottoKeebs_Hotswap:Hotswap_MX_Plated_1.00u | SW1, SW2, SW10, SW11, SW12, SW13, SW14, SW15, SW16, SW17, SW18, SW19, SW20, SW21, SW22, SW23 +63 |
| 8 | SW_Push_45deg | ScottoKeebs_Hotswap:Hotswap_MX_Plated_1.25u | SW67, SW82, SW83, SW84, SW86, SW87, SW88, SW89 |
| 7 | TestPoint | TestPoint:TestPoint_Pad_D2.5mm | 5V1, GND1, GPA6, GPA7, MCP_INTA1, MCP_INTB1, NEOPIXEL_DOUT1 |
| 6 | LED_SK6812MINI | SK6812-Mini-E Reverse Mounting:SK6812-MINI-E | D95, D96, D97, D98, D99, D100 |
| 4 | LOGO | LOGO | G***, G***, G***, G*** |
| 2 | Conn_01x04_Pin | Connector_PinSocket_2.54mm:PinSocket_1x04_P2.54mm_Vertical | J1, J2 |
| 2 | KiCad-Logo2_5mm_SilkScreen | Symbol:KiCad-Logo2_5mm_SilkScreen | logo1, logo1 |
| 2 | R4.7k | Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolder | R1, R2 |
| 2 | SolderJumper_2_Open | Jumper:SolderJumper-2_P1.3mm_Open_TrianglePad1.0x1.5mm | JP1, JP2 |
| 1 | MCP23017_SO | Package_SO:SOIC-28W_7.5x17.9mm_P1.27mm | U1 |
| 1 | RaspberryPi_Pico | Module:RaspberryPi_Pico_SMD_HandSolder | A1 |
| 1 | RotaryEncoder_Switch | Rotary_Encoder:RotaryEncoder_Alps_EC11E-Switch_Vertical_H20mm | SW94 |
| 1 | SW_Push_45deg | ScottoKeebs_Hotswap:Hotswap_MX_Plated_2.75u | SW79 |
| 1 | SW_Push_45deg | ScottoKeebs_Hotswap:Hotswap_MX_Plated_ISOEnter | SW65 |
| 1 | SW_Push_45deg | ScottoKeebs_Hotswap:Hotswap_MX_Plated_1.75u | SW52 |
| 1 | SW_Push_45deg | ScottoKeebs_Hotswap:Hotswap_MX_Plated_1.50u | SW35 |
| 1 | SW_Push_45deg | ScottoKeebs_Hotswap:Hotswap_MX_Plated_2.00u | SW30 |
| 1 | SW_Push_45deg | ScottoKeebs_Hotswap:Hotswap_MX_Plated_6.25u | SW85 |
The 215 most common of 225 parts.
It measures 427.6 × 139.1 mm and has 2 copper layers, 1.6 mm thick.
225 parts, built around the 1N4148W. 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.
From the krunchiekrunch/krunchboard repository on GitHub, at the commit this page was made from: the board is kicad-pcb/keyboard/krunchboard.kicad_pcb and its schematic kicad-pcb/keyboard/krunchboard.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Its repository states no licence, so its author keeps all rights: ask krunchiekrunch before reusing the design.

fossasia/pslab-hardware
PSLab Hardware Design and Schematics https://pslab.io

pierrechevalier83/ferris
A low profile split keyboard designed to satisfy one single use case elegantly



MickiusMousius/Rolio46Keyboard
A split wireless keyboard based on the Corne and Sofle


sadekbaroudi/bgkeeb
This is a reversible 100mm x 100mm pcb with support for mx or choc switches (no hotswap), per key led, rotary encoders, and exposes the SDA/SCL/GND/VCC lines in the form of the pimoroni trackball pins (meaning you can…
