Key ripper
bschwind·key-ripper·pcb/key-ripper.kicad_pcb
About the Key ripper PCB
Key ripper is an open source RP2040/RP2350 PCB design by bschwind, published on GitHub under the Apache-2.0 license. It is a 2-layer board measuring 285.8 × 116.7 mm, with 211 components from 114 distinct parts.
Its main chip is the RP2040, from the RP2040/RP2350 family. Other key parts include the TYPE-C-31-M-12, XC6206PXXXMR, W25Q128JVS, C318884 and PJ-320A. By type, the board carries 78 diodes, 75 switches, 20 capacitors, 9 resistors, 8 ICs and 1 crystal.
It belongs with the keyboards designs in this gallery.
From the project
A keyboard personalized for myself, designed in KiCad, with custom firmware and a case, both written in Rust. Can sit on top of a macbook keyboard.
The RP2040 samples the QSPISS line on boot. If this line is low, it will boot into its USB bootloader mode (i.e. enumerate as a mass storage device so you can upload new firmware). If this line is high on boot, it will start reading program instructions from the quad-SPI flash chip.
Just some measurements I've written down for my own designs are: standard MX cutout - 14×14mm distance between switches (center to center) - 19.05mm (both vertically and horizontally) distance between caps - 0.95mm distance between cap and case side - 0.475mm
Main components on the Key ripper
Key ripper bill of materials (BOM)
211 components, 114 distinct parts — part numbers from the project's BOM.
| Qty | Part | Footprint | Refs |
|---|---|---|---|
| 1 | RP2040 | rp2040 | U1 |
| 1 | TYPE-C-31-M-12 | simple-usb-c | U2 |
| 1 | XC6206PXXXMR XC6206PxxxMR | SOT-23 | U3 |
| 1 | W25Q128JVS W25Q16JVUXIQ | w25q16jvuxiq | U4 |
| 1 | C318884 USB Boot | tactile-switch | U5 |
| 1 | C318884 Reset | tactile-switch | U6 |
| 1 | PJ-320A | trrs-connector-pj320a | U7 |
| 1 | USBLC6-2SC6 | SOT-23-6 | U8 |
| 1 | C9002 12MHz - 20pF | Crystal_SMD_3225-4Pin_3.2x2.5mm | Y1 |
| 1 | TLC_PSMD050 | Fuse_0805_2012Metric | F1 |
| 1 | L_SHIFT_STABILIZER | cherry_mx_stabilizer_2.00u | H1 |
| 1 | SPACE_STABILIZER | cherry_mx_stabilizer_6.25u | H2 |
| 1 | ENTER_STABILIZER | cherry_mx_stabilizer_2.00u | H3 |
| 1 | BACKSPACE_STABILIZER | cherry_mx_stabilizer_2.00u | H4 |
| 1 | Upper Left | threaded_insert_m3_24939 | H5 |
| 1 | Bottom Left | threaded_insert_m3_24939 | H6 |
| 1 | Upper Right | threaded_insert_m3_24939 | H7 |
| 1 | Bottom Right | threaded_insert_m3_24939 | H8 |
| 1 | Upper Left | m2_hex_spacer_passthrough | H9 |
| 1 | Upper Right | m2_hex_spacer_passthrough | H10 |
Show 94 more
| Qty | Part | Footprint | Refs |
|---|---|---|---|
| 1 | Bottom Left | m2_hex_spacer_passthrough | H11 |
| 1 | Bottom Right | m2_hex_spacer_passthrough | H12 |
| 6 | Edge M2 Spacer PassThrough | m2_hex_spacer_passthrough_edge | H13, H14, H15, H16, H17, H18 |
| 1 | C2803348 ESC | cherry_mx_5_pin_1.00u | SW1 |
| 1 | C2803348 F1 | cherry_mx_5_pin_1.00u | SW2 |
| 1 | C2803348 F2 | cherry_mx_5_pin_1.00u | SW3 |
| 1 | C2803348 F3 | cherry_mx_5_pin_1.00u | SW4 |
| 1 | C2803348 F4 | cherry_mx_5_pin_1.00u | SW5 |
| 1 | C2803348 F5 | cherry_mx_5_pin_1.00u | SW6 |
| 1 | C2803348 F6 | cherry_mx_5_pin_1.00u | SW7 |
| 1 | C2803348 F7 | cherry_mx_5_pin_1.00u | SW8 |
| 1 | C2803348 F8 | cherry_mx_5_pin_1.00u | SW9 |
| 1 | C2803348 F9 | cherry_mx_5_pin_1.00u | SW10 |
| 1 | F10 | cherry_mx_5_pin_1.00u | SW11 |
| 1 | F11 | cherry_mx_5_pin_1.00u | SW12 |
| 1 | F12 | cherry_mx_5_pin_1.00u | SW13 |
| 1 | C2803348 TILDE | cherry_mx_5_pin_1.00u | SW14 |
| 1 | 1 | cherry_mx_5_pin_1.00u | SW15 |
| 1 | 2 | cherry_mx_5_pin_1.00u | SW16 |
| 1 | 3 | cherry_mx_5_pin_1.00u | SW17 |
| 1 | 4 | cherry_mx_5_pin_1.00u | SW18 |
| 1 | 5 | cherry_mx_5_pin_1.00u | SW19 |
| 1 | 6 | cherry_mx_5_pin_1.00u | SW20 |
| 1 | 7 | cherry_mx_5_pin_1.00u | SW21 |
| 1 | 8 | cherry_mx_5_pin_1.00u | SW22 |
| 1 | 9 | cherry_mx_5_pin_1.00u | SW23 |
| 1 | 0 | cherry_mx_5_pin_1.00u | SW24 |
| 1 | C2803348 - | cherry_mx_5_pin_1.00u | SW25 |
| 1 | C2803348 = | cherry_mx_5_pin_1.00u | SW26 |
| 1 | C2803348 BACKSPACE | cherry_mx_5_pin_2.00u | SW27 |
| 1 | C2803348 TAB | cherry_mx_5_pin_1.50u | SW28 |
| 1 | C2803348 Q | cherry_mx_5_pin_1.00u | SW29 |
| 1 | C2803348 W | cherry_mx_5_pin_1.00u | SW30 |
| 1 | C2803348 E | cherry_mx_5_pin_1.00u | SW31 |
| 1 | C2803348 R | cherry_mx_5_pin_1.00u | SW32 |
| 1 | C2803348 T | cherry_mx_5_pin_1.00u | SW33 |
| 1 | C2803348 Y | cherry_mx_5_pin_1.00u | SW34 |
| 1 | C2803348 U | cherry_mx_5_pin_1.00u | SW35 |
| 1 | C2803348 I | cherry_mx_5_pin_1.00u | SW36 |
| 1 | C2803348 O | cherry_mx_5_pin_1.00u | SW37 |
| 1 | C2803348 P | cherry_mx_5_pin_1.00u | SW38 |
| 1 | C2803348 [ | cherry_mx_5_pin_1.00u | SW39 |
| 1 | C2803348 ] | cherry_mx_5_pin_1.00u | SW40 |
| 1 | C2803348 \ | cherry_mx_5_pin_1.50u | SW41 |
| 1 | C2803348 CAPS | cherry_mx_5_pin_1.75u | SW42 |
| 1 | C2803348 A | cherry_mx_5_pin_1.00u | SW43 |
| 1 | C2803348 S | cherry_mx_5_pin_1.00u | SW44 |
| 1 | C2803348 D | cherry_mx_5_pin_1.00u | SW45 |
| 1 | C2803348 F | cherry_mx_5_pin_1.00u | SW46 |
| 1 | C2803348 G | cherry_mx_5_pin_1.00u | SW47 |
| 1 | C2803348 H | cherry_mx_5_pin_1.00u | SW48 |
| 1 | C2803348 J | cherry_mx_5_pin_1.00u | SW49 |
| 1 | C2803348 K | cherry_mx_5_pin_1.00u | SW50 |
| 1 | C2803348 L | cherry_mx_5_pin_1.00u | SW51 |
| 1 | C2803348 ; | cherry_mx_5_pin_1.00u | SW52 |
| 1 | C2803348 ' | cherry_mx_5_pin_1.00u | SW53 |
| 1 | C2803348 ENTER | cherry_mx_5_pin_2.25u | SW54 |
| 1 | C2803348 L_SHIFT | cherry_mx_5_pin_2.25u | SW55 |
| 1 | C2803348 Z | cherry_mx_5_pin_1.00u | SW56 |
| 1 | C2803348 X | cherry_mx_5_pin_1.00u | SW57 |
| 1 | C2803348 C | cherry_mx_5_pin_1.00u | SW58 |
| 1 | C2803348 V | cherry_mx_5_pin_1.00u | SW59 |
| 1 | C2803348 B | cherry_mx_5_pin_1.00u | SW60 |
| 1 | C2803348 N | cherry_mx_5_pin_1.00u | SW61 |
| 1 | C2803348 M | cherry_mx_5_pin_1.00u | SW62 |
| 1 | C2803348 , | cherry_mx_5_pin_1.00u | SW63 |
| 1 | C2803348 . | cherry_mx_5_pin_1.00u | SW64 |
| 1 | C2803348 / | cherry_mx_5_pin_1.00u | SW65 |
| 1 | C2803348 UP | cherry_mx_5_pin_1.00u | SW66 |
| 1 | C2803348 FN | cherry_mx_5_pin_1.00u | SW67 |
| 1 | C2803348 BL_CTRL | cherry_mx_5_pin_1.00u | SW68 |
| 1 | C2803348 L_ALT | cherry_mx_5_pin_1.00u | SW69 |
| 1 | C2803348 L_CMD | cherry_mx_5_pin_1.25u | SW70 |
| 1 | C2803348 SPACE | cherry_mx_5_pin_6.25u | SW71 |
| 1 | C2803348 R_CMD | cherry_mx_5_pin_1.25u | SW72 |
| 1 | C2803348 LEFT | cherry_mx_5_pin_1.00u | SW73 |
| 1 | C2803348 DOWN | cherry_mx_5_pin_1.00u | SW74 |
| 1 | C2803348 RIGHT | cherry_mx_5_pin_1.00u | SW75 |
| 75 | C81598 D_Small | D_SOD-123 | D1, D2, D3, D4, D5, D6, D7, D8 +67 |
| 1 | C8598 5819W | D_SOD-123 | D76 |
| 1 | C2297 Power LED (Blue) | LED_0805_2012Metric | D77 |
| 1 | 5819W | D_SOD-123 | D78 |
| 1 | C1015 100@100MHz | L_0805_2012Metric | FB1 |
| 2 | 1UF 2.2uF | C_0603_1608Metric | C1, C2 |
| 3 | 100nF | C_0402_1005Metric | C3, C18, C20 |
| 2 | 1UF 1uF | C_0402_1005Metric | C4, C5 |
| 2 | 30PF 30pF | C_0603_1608Metric | C6, C7 |
| 10 | 100NF 100nF | C_0402_1005Metric | C8, C9, C10, C11, C12, C13, C14, C15 +2 |
| 1 | 2.2uF | C_0603_1608Metric | C19 |
| 2 | C25190 27 ohm | R_0603_1608Metric | R1, R2 |
| 2 | C11702 1k ohm | R_0603_1608Metric | R3, R5 |
| 2 | C25744 10k ohm | R_0603_1608Metric | R4, R8 |
| 2 | 5.1K 5.1k | R_0603_1608Metric | R6, R7 |
| 1 | C25867 1k ohm | R_0603_1608Metric | R9 |
Key ripper design files
The KiCad project lives in the bschwind/key-ripper repository on GitHub; these links point at the commit this page was built from.
Key ripper: common questions
What microcontroller does the Key ripper use?
The Key ripper is built around the RP2040, from the RP2040/RP2350 family.
How big is the Key ripper PCB?
The Key ripper measures 285.8 × 116.7 mm, has 2 copper layers and is 1.6 mm thick.
How many components are on the Key ripper?
211 components, from 114 distinct parts, with part numbers taken from the project's own BOM. The full bill of materials is listed on this page.
Where can I download the Key ripper design files?
From the bschwind/key-ripper repository on GitHub, which has the KiCad layout, the schematic and the BOM; the links under Design files point to each one.
Can I use the Key ripper design in my own project?
Yes, under the terms of its Apache-2.0 license, which bschwind chose for the repository.
Can I test firmware for the Key ripper without the hardware?
Yes. HardLabs builds a simulation of the board from its netlist and BOM, so you can run and debug RP2040/RP2350 firmware against it before you order a PCB.
Similar boards
RP2040/RP2350
Open Book Abridged Edition
joeycastillo
85 × 115 mm29 parts2LCC-BY-SA-4.08.1kRP2040/RP2350
Corne
foostan
277.2 × 107.5 mm164 parts2LCC-BY-4.07.7kRP2040/RP2350
Corne
foostan
277.2 × 107.5 mm164 parts2LCC-BY-4.07.7kRP2040/RP2350
Msa
Mentra-Community
47.8 × 9.4 mm53 parts2LMIT1.2kRP2040/RP2350
Open Source Smart Glasses
Mentra-Community
93 × 10.5 mm80 parts4LMIT1.2kRP2040/RP2350
MSA
Mentra-Community
30.5 × 138 mm61 parts2LMIT1.2k