Keyboard
M0HID·Keyboard·pcb/hackboard.kicad_pcb
About the Keyboard PCB
Keyboard is an open source RP2040/RP2350 PCB design by M0HID, published on GitHub. It is a 2-layer board measuring 309.7 × 117.3 mm, with 254 components from 12 distinct parts.
Its main chip is the MCU_SEEED_XIAO_RP2040, from the RP2040/RP2350 family. Other key parts include the MCP23017_ML. By type, the board carries 168 diodes, 83 switches and 3 ICs.
It belongs with the keyboards and displays & leds designs in this gallery.
From the project
This is a 75% keyboard fully designed by me, including the PCB, case, and firmware. It is designed to use KMK, a circuitpython-based firmware for keyboards! I included a rotary encoder, as well as a few "action" keys on the side of the keyboard which can be reprogrammed to anythi
This is a 75% keyboard fully designed by me, including the PCB, case, and firmware. It is designed to use KMK, a circuitpython-based firmware for keyboards! I included a rotary encoder, as well as a few "action" keys on the side of the keyboard which can be reprogrammed to anything you want, such as media controls, text controls, or any kind of shortcut you can think of!
Main components on the Keyboard
Keyboard bill of materials (BOM)
254 components, 12 distinct parts — part numbers from the project's BOM.
| Qty | Part | Footprint | Refs |
|---|---|---|---|
| 1 | MCU_SEEED_XIAO_RP2040 MCU_Seeed_XIAO_RP2040 | XIAO-RP2040-DIP | U1 |
| 2 | MCP23017_ML | QFN-28-1EP_6x6mm_P0.65mm_EP4.25x4.25mm | U2, U4 |
| 71 | SW_PUSH_45DEG SW_Push_45deg | SW_Cherry_MX_1.00u_PCB | SW1, SW2, SW3, SW4, SW5, SW6, SW7, SW8 +63 |
| 1 | SW_PUSH_45DEG SW_Push_45deg | SW_Cherry_MX_2.00u_PCB | SW28 |
| 2 | SW_PUSH_45DEG SW_Push_45deg | SW_Cherry_MX_1.50u_PCB | SW30, SW43 |
| 2 | SW_PUSH_45DEG SW_Push_45deg | SW_Cherry_MX_1.75u_PCB | SW45, SW70 |
| 2 | SW_PUSH_45DEG SW_Push_45deg | SW_Cherry_MX_2.25u_PCB | SW57, SW59 |
| 3 | SW_PUSH_45DEG SW_Push_45deg | SW_Cherry_MX_1.25u_PCB | SW73, SW74, SW75 |
| 1 | SW_PUSH_45DEG SW_Push_45deg | SW_Cherry_MX_6.25u_PCB | SW76 |
| 1 | RotaryEncoder_Switch_MP | RotaryEncoder_Alps_EC11E-Switch_Vertical_H20mm | SW84 |
| 82 | D | D_SOD-123 | D1, D2, D3, D4, D5, D6, D7, D8 +74 |
| 86 | WS2812B | SK6812-MINI-E | D83, D84, D85, D86, D87, D88, D89, D90 +78 |
Keyboard design files
The KiCad project lives in the M0HID/Keyboard repository on GitHub; these links point at the commit this page was built from.
- Layoutpcb/hackboard.kicad_pcb
- Schematicpcb/hackboard.kicad_sch
- BOMpcb/production/bom.csv
Keyboard: common questions
What microcontroller does the Keyboard use?
The Keyboard is built around the MCU_SEEED_XIAO_RP2040, from the RP2040/RP2350 family.
How big is the Keyboard PCB?
The Keyboard measures 309.7 × 117.3 mm, has 2 copper layers and is 1.6 mm thick.
How many components are on the Keyboard?
254 components, from 12 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 Keyboard design files?
From the M0HID/Keyboard 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 Keyboard design in my own project?
The repository has no license, so all rights stay with M0HID. Use it as a reference, and ask the author before reusing the design.
Can I test firmware for the Keyboard 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
Jitx design
gusmanb
55.5 × 65 mm26 parts4LGPL-3.05.0kRP2040/RP2350
LogicAnalyzer
gusmanb
57 × 55.2 mm6 parts2LGPL-3.05.0kRP2040/RP2350
Main
google
98 × 71 mm102 parts2LApache-2.02.9k