

Worst keyboard ever
It's a mechanical keyboard made from limit switches. It has QMK firmware, it's worse than you think, but better than you expect.
- Size
- 141.8 × 73.1 mm
- Copper layers
- 2
- Thickness
- 1.6 mm
- Parts
- 149
- Nets
- 158
- Pads
- 373
- Tracks, vias
- 440, 8
- Pours
- 2
- Routed
- Yes
- KiCad
- KiCad 6 (file 20211014)
- Created
- 5 May 2026
- Updated
- 6 May 2026
Overview
Worst keyboard ever is an open-source printed circuit board by xunker, from the xunker/worst_keyboard_ever repository on GitHub. It is a 2-layer board of 141.8 × 73.1 mm with 149 parts on 158 nets, routed with 440 tracks and 8 vias.
It is built around the D2F-FL. Its parts include 69 diodes, 66 switches, 3 resistors and 3 connectors. It belongs with the keyboards and input boards of this library.
Main components
1README
README.mdWorst. Keyboard. Ever.
https://github.com/xunker/worst_keyboard_ever
It's a mechanical keyboard made from limit switches1. Sorry.
Parts
| Part | Quantity | Notes |
|---|---|---|
| PCB | 1 | Using more than one is not recommended |
| Omron D2F-FL | 66 | 2 |
| 1N4148 Diode | 66 | SOT-123 package recommended, but you can use LL34 (MiniMELF) if you like things that roll away while you're soldering them |
| 2.54MM pin (male) headers | 23 pos | Use whatever fits in the holes3 |
| 0805 LED | 3 | Prefer the kind that light up; LEDs that don't light up are not good indicators |
| 0805 330 ohm resistor | 3 | You'll learn to solder SMD components and you'll like it |
Your microcontroller is not listed. Use whatever you like. There's QMK firmware for the Pi Pico if you want it.
Matrix
| row/col | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | bksp |
| 1 | tab | q | w | e | r | t | y | u | i | o | p | [ | ] | \ |
| 2 | cap | a | s | d | f | g | h | j | k | l | ; | ' | ent | --- |
| 3 | shft | z | x | c | v | b | n | m | , | . | / | shft | up | fn |
| 4 | ctrl | win | alt | --- | spc1 | spc2 | spc3 | --- | --- | alt | app | left | down | right |
LEDs
The caps/num/scroll LEDs are active-low. That means the common pin should be connected to your microcontroller's VCC, and the LEDs are activated by pulling the approriate pin to ground.
If you're using a 3.3V MCU like the Pi Pico, do NOT connect common to a 5V source like VBUS or USB power. If you do that, you'll fry your MCU you'll be sad.
Firmware
There is QMK firmware available, targeting the Raspberry Pi Pico (RP2040). Find it in the qmk_firmware directory.
If you don't want to build it yourself, and you don't need to customize anything, a prebuild .u2f file is also available.
Useless Questions
Why?
Because I needed one switch, but it was cheaper to buy a whole gross of them.
The switches are too close together
I recommend installing smaller fingers on one or both hands.
I've used worse keyboards than this!
- "Worst. Keyboard. Ever." is a product/marketing name.
- No you haven't.
A Scroll Lock LED? Really?
Don't worry about it. No one in the history of the world has ever used Scroll Lock. No, not even that one guy from the internet, he's lying.
Is there an ISO version?
Assuming drills exist, yes.
It has no legends!
If you're asking for key legends, that means you want to use this as an actual keyboard to type real things. That's a crazy idea, you should stand up and slowly back away.
But, if you insist, here are some suggestions.
Your soldering is terrible!
Wrong, MY soldering is AWESOME. My cat's soldering is terrible.
Note: Cat hair seen in the photos is not included.
License

Footnotes
Parts
149| Qty | Value | Footprint | References |
|---|---|---|---|
| 66 | D | Diode_SMD:D_1206_3216Metric_Pad1.42x1.75mm_HandSolder | D1, D2, D10, D11, D12, D13, D14, D15, D16, D17, D18, D19, D20, D21, D22, D23 +50 |
| 66 | D2F-FL | D2F-FL:SW_D2F-FL_rotated_1.5xwide | S1, S2, S10, S11, S12, S13, S14, S15, S16, S17, S18, S19, S20, S21, S22, S23 +50 |
| 8 | MountingHole | MountingHole:MountingHole_2.2mm_M2_DIN965 | H1, H2, H3, H4, H5, H6, H7, H8 |
| 3 | LED | LED_SMD:LED_0805_2012Metric_Pad1.15x1.40mm_HandSolder | D65, D66, D67 |
| 3 | R | Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolder | R1, R2, R3 |
| 1 | Conn_01x04_Male | Connector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_Vertical | J3 |
| 1 | Conn_01x05_Male | Connector_PinHeader_2.54mm:PinHeader_1x05_P2.54mm_Vertical | J1 |
| 1 | Conn_01x14_Male | Connector_PinHeader_2.54mm:PinHeader_1x14_P2.54mm_Vertical | J2 |
Similar boards
- 4 layers51 × 82 mm

- 2 layers68.8 × 53.6 mm

Relatively Universal ROM Programmer
AndersBNielsen/Relatively-Universal-ROM-Programmer
Hardware to program W27C512 EEPROM or any 24/28/32 pin ROM requiring from 5V to 27V programming voltage.
149 parts257GPL-3.0 - 2 layers191.3 × 128.5 mm

- 2 layers299 × 138.8 mm

- 2 layers268 × 110.5 mm

Unicorn
yanghu/unicorne
A one-piece 40% ortho keyboard design inspired by crkbd, Kyria and Ferris.
149 parts63MIT - 2 layers256 × 87 mm

- 2 layers89.3 × 52.1 mm

Divergence Meter Project v2
waicool20/Divergence-Meter-Project-v2
This is the second iteration of the Divergence Meter Project and another personal learning project, this time learning how to integrate Li-Ion batteries into a project, new electrical converter topologies, Rust…
149 parts28 - 2 layers298.8 × 122 mm

Ursaminor pcb
markstory/ursa-minor-keyboard
Design and schematics for the ursaminor keyboard
149 parts23
Questions
How big is the Worst keyboard ever PCB?
It measures 141.8 × 73.1 mm and has 2 copper layers, 1.6 mm thick.
What parts does the Worst keyboard ever use?
149 parts, built around the D2F-FL. 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 Worst keyboard ever KiCad files?
From the xunker/worst_keyboard_ever repository on GitHub, at the commit this page was made from: the board is kicad/worst keyboard ever.kicad_pcb and its schematic kicad/worst keyboard ever.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Can I use the Worst keyboard ever design in my own project?
Its repository states no licence, so its author keeps all rights: ask xunker before reusing the design.

