Keyboard
brainsmoke·keyboard·pcb/project/project.kicad_pcb
About the Keyboard PCB
Keyboard is an open source STM32 PCB design by brainsmoke, published on GitHub. It is a 2-layer board measuring 357 × 125 mm, with 310 components from 293 distinct parts.
Its main chip is the C81720, from the STM32 family. Other key parts include the C7519, C51118 and C2678539. By type, the board carries 88 switches, 87 LEDs, 87 diodes, 17 capacitors, 15 resistors and 14 ICs.
It belongs with the keyboards designs in this gallery.
From the project
TODO: find keycaps which look good with AND without backlight

Main components on the Keyboard
Keyboard bill of materials (BOM)
310 components, 293 distinct parts — part numbers from the project's BOM.
| Qty | Part | Footprint | Refs |
|---|---|---|---|
| 1 | C7519 USBLC6-2SC6 | SOT-23-6 | U1 |
| 1 | C81720 STM32F072C8Tx | LQFP-48_7x7mm_P0.5mm | U2 |
| 1 | C51118 AP2112K-3.3 | SOT-23-5 | U3 |
| 1 | C2678539 TLC5916_0 | TSSOP-16_4.4x5mm_P0.65mm | U4 |
| 1 | C2678539 TLC5916_1 | TSSOP-16_4.4x5mm_P0.65mm | U5 |
| 1 | C2678539 TLC5916_2 | TSSOP-16_4.4x5mm_P0.65mm | U6 |
| 1 | C2678539 TLC5916_3 | TSSOP-16_4.4x5mm_P0.65mm | U7 |
| 1 | C2678539 TLC5916_4 | TSSOP-16_4.4x5mm_P0.65mm | U8 |
| 1 | C2678539 TLC5916_5 | TSSOP-16_4.4x5mm_P0.65mm | U9 |
| 1 | C2678539 TLC5916_6 | TSSOP-16_4.4x5mm_P0.65mm | U10 |
| 1 | C2678539 TLC5916_7 | TSSOP-16_4.4x5mm_P0.65mm | U11 |
| 1 | C2678539 TLC5916_8 | TSSOP-16_4.4x5mm_P0.65mm | U12 |
| 1 | C2678539 TLC5916_9 | TSSOP-16_4.4x5mm_P0.65mm | U13 |
| 1 | C2678539 TLC5916_10 | TSSOP-16_4.4x5mm_P0.65mm | U14 |
| 1 | C165948 USB_C_Receptacle_USB2.0 | USB_C_Receptacle_HRO_TYPE-C-31-M-12 | J1 |
| 1 | Conn_01x03_Male | PinHeader_1x03_P2.54mm_Vertical | J2 |
| 1 | key_esc | SW_Cherry_MX_1.00u_PCB | SW1 |
| 1 | key_tilde | SW_Cherry_MX_1.00u_PCB | SW2 |
| 1 | key_leftcontrol | SW_Cherry_MX_1.25u_PCB | SW3 |
| 1 | key_tab | SW_Cherry_MX_1.50u_PCB | SW4 |
Show 273 more
| Qty | Part | Footprint | Refs |
|---|---|---|---|
| 1 | key_capslock | SW_Cherry_MX_1.75u_PCB | SW5 |
| 1 | key_leftshift | SW_Cherry_MX_2.25u_PCB | SW6 |
| 1 | key_1 | SW_Cherry_MX_1.00u_PCB | SW7 |
| 1 | key_fn | SW_Cherry_MX_1.25u_PCB | SW8 |
| 1 | key_q | SW_Cherry_MX_1.00u_PCB | SW9 |
| 1 | key_a | SW_Cherry_MX_1.00u_PCB | SW10 |
| 1 | key_f1 | SW_Cherry_MX_1.00u_PCB | SW11 |
| 1 | key_2 | SW_Cherry_MX_1.00u_PCB | SW12 |
| 1 | key_z | SW_Cherry_MX_1.00u_PCB | SW13 |
| 1 | key_w | SW_Cherry_MX_1.00u_PCB | SW14 |
| 1 | key_alt | SW_Cherry_MX_1.25u_PCB | SW15 |
| 1 | key_s | SW_Cherry_MX_1.00u_PCB | SW16 |
| 1 | key_f2 | SW_Cherry_MX_1.00u_PCB | SW17 |
| 1 | key_3 | SW_Cherry_MX_1.00u_PCB | SW18 |
| 1 | key_x | SW_Cherry_MX_1.00u_PCB | SW19 |
| 1 | key_e | SW_Cherry_MX_1.00u_PCB | SW20 |
| 1 | key_d | SW_Cherry_MX_1.00u_PCB | SW21 |
| 1 | key_f3 | SW_Cherry_MX_1.00u_PCB | SW22 |
| 1 | key_4 | SW_Cherry_MX_1.00u_PCB | SW23 |
| 1 | key_c | SW_Cherry_MX_1.00u_PCB | SW24 |
| 1 | key_r | SW_Cherry_MX_1.00u_PCB | SW25 |
| 1 | key_f | SW_Cherry_MX_1.00u_PCB | SW26 |
| 1 | key_f4 | SW_Cherry_MX_1.00u_PCB | SW27 |
| 1 | key_5 | SW_Cherry_MX_1.00u_PCB | SW28 |
| 1 | key_v | SW_Cherry_MX_1.00u_PCB | SW29 |
| 1 | key_t | SW_Cherry_MX_1.00u_PCB | SW30 |
| 1 | key_g | SW_Cherry_MX_1.00u_PCB | SW31 |
| 1 | key_6 | SW_Cherry_MX_1.00u_PCB | SW32 |
| 1 | key_b | SW_Cherry_MX_1.00u_PCB | SW33 |
| 1 | key_space | SW_Cherry_MX_6.25u_PCB | SW34 |
| 1 | key_f5 | SW_Cherry_MX_1.00u_PCB | SW35 |
| 1 | key_y | SW_Cherry_MX_1.00u_PCB | SW36 |
| 1 | key_h | SW_Cherry_MX_1.00u_PCB | SW37 |
| 1 | key_7 | SW_Cherry_MX_1.00u_PCB | SW38 |
| 1 | key_n | SW_Cherry_MX_1.00u_PCB | SW39 |
| 1 | key_f6 | SW_Cherry_MX_1.00u_PCB | SW40 |
| 1 | key_u | SW_Cherry_MX_1.00u_PCB | SW41 |
| 1 | key_j | SW_Cherry_MX_1.00u_PCB | SW42 |
| 1 | key_8 | SW_Cherry_MX_1.00u_PCB | SW43 |
| 1 | key_m | SW_Cherry_MX_1.00u_PCB | SW44 |
| 1 | key_f7 | SW_Cherry_MX_1.00u_PCB | SW45 |
| 1 | key_i | SW_Cherry_MX_1.00u_PCB | SW46 |
| 1 | key_k | SW_Cherry_MX_1.00u_PCB | SW47 |
| 1 | key_9 | SW_Cherry_MX_1.00u_PCB | SW48 |
| 1 | key_comma | SW_Cherry_MX_1.00u_PCB | SW49 |
| 1 | key_f8 | SW_Cherry_MX_1.00u_PCB | SW50 |
| 1 | key_o | SW_Cherry_MX_1.00u_PCB | SW51 |
| 1 | key_l | SW_Cherry_MX_1.00u_PCB | SW52 |
| 1 | key_0 | SW_Cherry_MX_1.00u_PCB | SW53 |
| 1 | key_altgr | SW_Cherry_MX_1.25u_PCB | SW54 |
| 1 | key_dot | SW_Cherry_MX_1.00u_PCB | SW55 |
| 1 | key_p | SW_Cherry_MX_1.00u_PCB | SW56 |
| 1 | key_semicolon | SW_Cherry_MX_1.00u_PCB | SW57 |
| 1 | key_f9 | SW_Cherry_MX_1.00u_PCB | SW58 |
| 1 | key_minus | SW_Cherry_MX_1.00u_PCB | SW59 |
| 1 | key_slash | SW_Cherry_MX_1.00u_PCB | SW60 |
| 1 | key_win | SW_Cherry_MX_1.25u_PCB | SW61 |
| 1 | key_openbracket | SW_Cherry_MX_1.00u_PCB | SW62 |
| 1 | key_quote | SW_Cherry_MX_1.00u_PCB | SW63 |
| 1 | key_f10 | SW_Cherry_MX_1.00u_PCB | SW64 |
| 1 | key_equals | SW_Cherry_MX_1.00u_PCB | SW65 |
| 1 | key_closebracket | SW_Cherry_MX_1.00u_PCB | SW66 |
| 1 | key_menu | SW_Cherry_MX_1.25u_PCB | SW67 |
| 1 | key_f11 | SW_Cherry_MX_1.00u_PCB | SW68 |
| 1 | key_rightshift | SW_Cherry_MX_2.75u_PCB | SW69 |
| 1 | key_enter | SW_Cherry_MX_2.25u_PCB | SW70 |
| 1 | key_backspace | SW_Cherry_MX_2.00u_PCB | SW71 |
| 1 | key_backslash | SW_Cherry_MX_1.50u_PCB | SW72 |
| 1 | key_rightcontrol | SW_Cherry_MX_1.25u_PCB | SW73 |
| 1 | key_f12 | SW_Cherry_MX_1.00u_PCB | SW74 |
| 1 | key_printscreen | SW_Cherry_MX_1.00u_PCB | SW75 |
| 1 | key_insert | SW_Cherry_MX_1.00u_PCB | SW76 |
| 1 | key_delete | SW_Cherry_MX_1.00u_PCB | SW77 |
| 1 | key_left | SW_Cherry_MX_1.00u_PCB | SW78 |
| 1 | key_scrollock | SW_Cherry_MX_1.00u_PCB | SW79 |
| 1 | key_home | SW_Cherry_MX_1.00u_PCB | SW80 |
| 1 | key_end | SW_Cherry_MX_1.00u_PCB | SW81 |
| 1 | key_up | SW_Cherry_MX_1.00u_PCB | SW82 |
| 1 | key_down | SW_Cherry_MX_1.00u_PCB | SW83 |
| 1 | key_pause | SW_Cherry_MX_1.00u_PCB | SW84 |
| 1 | key_pageup | SW_Cherry_MX_1.00u_PCB | SW85 |
| 1 | key_pagedown | SW_Cherry_MX_1.00u_PCB | SW86 |
| 1 | key_right | SW_Cherry_MX_1.00u_PCB | SW87 |
| 1 | C318893 SW_SPST | SW_Push_1P1T_NO_CK_KMR2 | SW88 |
| 1 | LED_esc | LED3mm | LED1 |
| 1 | LED_tilde | LED3mm | LED2 |
| 1 | LED_leftcontrol | LED3mm | LED3 |
| 1 | LED_tab | LED3mm | LED4 |
| 1 | LED_capslock | LED3mm | LED5 |
| 1 | LED_leftshift | LED3mm | LED6 |
| 1 | LED_1 | LED3mm | LED7 |
| 1 | LED_fn | LED3mm | LED8 |
| 1 | LED_q | LED3mm | LED9 |
| 1 | LED_a | LED3mm | LED10 |
| 1 | LED_f1 | LED3mm | LED11 |
| 1 | LED_2 | LED3mm | LED12 |
| 1 | LED_z | LED3mm | LED13 |
| 1 | LED_w | LED3mm | LED14 |
| 1 | LED_alt | LED3mm | LED15 |
| 1 | LED_s | LED3mm | LED16 |
| 1 | LED_f2 | LED3mm | LED17 |
| 1 | LED_3 | LED3mm | LED18 |
| 1 | LED_x | LED3mm | LED19 |
| 1 | LED_e | LED3mm | LED20 |
| 1 | LED_d | LED3mm | LED21 |
| 1 | LED_f3 | LED3mm | LED22 |
| 1 | LED_4 | LED3mm | LED23 |
| 1 | LED_c | LED3mm | LED24 |
| 1 | LED_r | LED3mm | LED25 |
| 1 | LED_f | LED3mm | LED26 |
| 1 | LED_f4 | LED3mm | LED27 |
| 1 | LED_5 | LED3mm | LED28 |
| 1 | LED_v | LED3mm | LED29 |
| 1 | LED_t | LED3mm | LED30 |
| 1 | LED_g | LED3mm | LED31 |
| 1 | LED_6 | LED3mm | LED32 |
| 1 | LED_b | LED3mm | LED33 |
| 1 | LED_space | LED3mm | LED34 |
| 1 | LED_f5 | LED3mm | LED35 |
| 1 | LED_y | LED3mm | LED36 |
| 1 | LED_h | LED3mm | LED37 |
| 1 | LED_7 | LED3mm | LED38 |
| 1 | LED_n | LED3mm | LED39 |
| 1 | LED_f6 | LED3mm | LED40 |
| 1 | LED_u | LED3mm | LED41 |
| 1 | LED_j | LED3mm | LED42 |
| 1 | LED_8 | LED3mm | LED43 |
| 1 | LED_m | LED3mm | LED44 |
| 1 | LED_f7 | LED3mm | LED45 |
| 1 | LED_i | LED3mm | LED46 |
| 1 | LED_k | LED3mm | LED47 |
| 1 | LED_9 | LED3mm | LED48 |
| 1 | LED_comma | LED3mm | LED49 |
| 1 | LED_f8 | LED3mm | LED50 |
| 1 | LED_o | LED3mm | LED51 |
| 1 | LED_l | LED3mm | LED52 |
| 1 | LED_0 | LED3mm | LED53 |
| 1 | LED_altgr | LED3mm | LED54 |
| 1 | LED_dot | LED3mm | LED55 |
| 1 | LED_p | LED3mm | LED56 |
| 1 | LED_semicolon | LED3mm | LED57 |
| 1 | LED_f9 | LED3mm | LED58 |
| 1 | LED_minus | LED3mm | LED59 |
| 1 | LED_slash | LED3mm | LED60 |
| 1 | LED_win | LED3mm | LED61 |
| 1 | LED_openbracket | LED3mm | LED62 |
| 1 | LED_quote | LED3mm | LED63 |
| 1 | LED_f10 | LED3mm | LED64 |
| 1 | LED_equals | LED3mm | LED65 |
| 1 | LED_closebracket | LED3mm | LED66 |
| 1 | LED_menu | LED3mm | LED67 |
| 1 | LED_f11 | LED3mm | LED68 |
| 1 | LED_rightshift | LED3mm | LED69 |
| 1 | LED_enter | LED3mm | LED70 |
| 1 | LED_backspace | LED3mm | LED71 |
| 1 | LED_backslash | LED3mm | LED72 |
| 1 | LED_rightcontrol | LED3mm | LED73 |
| 1 | LED_f12 | LED3mm | LED74 |
| 1 | LED_printscreen | LED3mm | LED75 |
| 1 | LED_insert | LED3mm | LED76 |
| 1 | LED_delete | LED3mm | LED77 |
| 1 | LED_left | LED3mm | LED78 |
| 1 | LED_scrollock | LED3mm | LED79 |
| 1 | LED_home | LED3mm | LED80 |
| 1 | LED_end | LED3mm | LED81 |
| 1 | LED_up | LED3mm | LED82 |
| 1 | LED_down | LED3mm | LED83 |
| 1 | LED_pause | LED3mm | LED84 |
| 1 | LED_pageup | LED3mm | LED85 |
| 1 | LED_pagedown | LED3mm | LED86 |
| 1 | LED_right | LED3mm | LED87 |
| 1 | C81598 d_esc | D_SOD-123 | D1 |
| 1 | C81598 d_tilde | D_SOD-123 | D2 |
| 1 | C81598 d_leftcontrol | D_SOD-123 | D3 |
| 1 | C81598 d_tab | D_SOD-123 | D4 |
| 1 | C81598 d_capslock | D_SOD-123 | D5 |
| 1 | C81598 d_leftshift | D_SOD-123 | D6 |
| 1 | C81598 d_1 | D_SOD-123 | D7 |
| 1 | C81598 d_fn | D_SOD-123 | D8 |
| 1 | C81598 d_q | D_SOD-123 | D9 |
| 1 | C81598 d_a | D_SOD-123 | D10 |
| 1 | C81598 d_f1 | D_SOD-123 | D11 |
| 1 | C81598 d_2 | D_SOD-123 | D12 |
| 1 | C81598 d_z | D_SOD-123 | D13 |
| 1 | C81598 d_w | D_SOD-123 | D14 |
| 1 | C81598 d_alt | D_SOD-123 | D15 |
| 1 | C81598 d_s | D_SOD-123 | D16 |
| 1 | C81598 d_f2 | D_SOD-123 | D17 |
| 1 | C81598 d_3 | D_SOD-123 | D18 |
| 1 | C81598 d_x | D_SOD-123 | D19 |
| 1 | C81598 d_e | D_SOD-123 | D20 |
| 1 | C81598 d_d | D_SOD-123 | D21 |
| 1 | C81598 d_f3 | D_SOD-123 | D22 |
| 1 | C81598 d_4 | D_SOD-123 | D23 |
| 1 | C81598 d_c | D_SOD-123 | D24 |
| 1 | C81598 d_r | D_SOD-123 | D25 |
| 1 | C81598 d_f | D_SOD-123 | D26 |
| 1 | C81598 d_f4 | D_SOD-123 | D27 |
| 1 | C81598 d_5 | D_SOD-123 | D28 |
| 1 | C81598 d_v | D_SOD-123 | D29 |
| 1 | C81598 d_t | D_SOD-123 | D30 |
| 1 | C81598 d_g | D_SOD-123 | D31 |
| 1 | C81598 d_6 | D_SOD-123 | D32 |
| 1 | C81598 d_b | D_SOD-123 | D33 |
| 1 | C81598 d_space | D_SOD-123 | D34 |
| 1 | C81598 d_f5 | D_SOD-123 | D35 |
| 1 | C81598 d_y | D_SOD-123 | D36 |
| 1 | C81598 d_h | D_SOD-123 | D37 |
| 1 | C81598 d_7 | D_SOD-123 | D38 |
| 1 | C81598 d_n | D_SOD-123 | D39 |
| 1 | C81598 d_f6 | D_SOD-123 | D40 |
| 1 | C81598 d_u | D_SOD-123 | D41 |
| 1 | C81598 d_j | D_SOD-123 | D42 |
| 1 | C81598 d_8 | D_SOD-123 | D43 |
| 1 | C81598 d_m | D_SOD-123 | D44 |
| 1 | C81598 d_f7 | D_SOD-123 | D45 |
| 1 | C81598 d_i | D_SOD-123 | D46 |
| 1 | C81598 d_k | D_SOD-123 | D47 |
| 1 | C81598 d_9 | D_SOD-123 | D48 |
| 1 | C81598 d_comma | D_SOD-123 | D49 |
| 1 | C81598 d_f8 | D_SOD-123 | D50 |
| 1 | C81598 d_o | D_SOD-123 | D51 |
| 1 | C81598 d_l | D_SOD-123 | D52 |
| 1 | C81598 d_0 | D_SOD-123 | D53 |
| 1 | C81598 d_altgr | D_SOD-123 | D54 |
| 1 | C81598 d_dot | D_SOD-123 | D55 |
| 1 | C81598 d_p | D_SOD-123 | D56 |
| 1 | C81598 d_semicolon | D_SOD-123 | D57 |
| 1 | C81598 d_f9 | D_SOD-123 | D58 |
| 1 | C81598 d_minus | D_SOD-123 | D59 |
| 1 | C81598 d_slash | D_SOD-123 | D60 |
| 1 | C81598 d_win | D_SOD-123 | D61 |
| 1 | C81598 d_openbracket | D_SOD-123 | D62 |
| 1 | C81598 d_quote | D_SOD-123 | D63 |
| 1 | C81598 d_f10 | D_SOD-123 | D64 |
| 1 | C81598 d_equals | D_SOD-123 | D65 |
| 1 | C81598 d_closebracket | D_SOD-123 | D66 |
| 1 | C81598 d_menu | D_SOD-123 | D67 |
| 1 | C81598 d_f11 | D_SOD-123 | D68 |
| 1 | C81598 d_rightshift | D_SOD-123 | D69 |
| 1 | C81598 d_enter | D_SOD-123 | D70 |
| 1 | C81598 d_backspace | D_SOD-123 | D71 |
| 1 | C81598 d_backslash | D_SOD-123 | D72 |
| 1 | C81598 d_rightcontrol | D_SOD-123 | D73 |
| 1 | C81598 d_f12 | D_SOD-123 | D74 |
| 1 | C81598 d_printscreen | D_SOD-123 | D75 |
| 1 | C81598 d_insert | D_SOD-123 | D76 |
| 1 | C81598 d_delete | D_SOD-123 | D77 |
| 1 | C81598 d_left | D_SOD-123 | D78 |
| 1 | C81598 d_scrollock | D_SOD-123 | D79 |
| 1 | C81598 d_home | D_SOD-123 | D80 |
| 1 | C81598 d_end | D_SOD-123 | D81 |
| 1 | C81598 d_up | D_SOD-123 | D82 |
| 1 | C81598 d_down | D_SOD-123 | D83 |
| 1 | C81598 d_pause | D_SOD-123 | D84 |
| 1 | C81598 d_pageup | D_SOD-123 | D85 |
| 1 | C81598 d_pagedown | D_SOD-123 | D86 |
| 1 | C81598 d_right | D_SOD-123 | D87 |
| 5 | C52923 1uF | C_0402_1005Metric | C1, C2, C3, C4, C10 |
| 12 | C1525 100nF | C_0402_1005Metric | C5, C6, C7, C8, C9, C11, C12, C13 +4 |
| 2 | C25741 100k | R_0402_1005Metric | R1, R4 |
| 2 | C25905 5k1 | R_0402_1005Metric | R2, R3 |
| 1 | C25905 REXT_0 | R_0402_1005Metric | R5 |
| 1 | C25905 REXT_1 | R_0402_1005Metric | R6 |
| 1 | C25905 REXT_2 | R_0402_1005Metric | R7 |
| 1 | C25905 REXT_3 | R_0402_1005Metric | R8 |
| 1 | C25905 REXT_4 | R_0402_1005Metric | R9 |
| 1 | C25905 REXT_5 | R_0402_1005Metric | R10 |
| 1 | C25905 REXT_6 | R_0402_1005Metric | R11 |
| 1 | C25905 REXT_7 | R_0402_1005Metric | R12 |
| 1 | C25905 REXT_8 | R_0402_1005Metric | R13 |
| 1 | C25905 REXT_9 | R_0402_1005Metric | R14 |
| 1 | C25905 REXT_10 | R_0402_1005Metric | R15 |
Keyboard design files
The KiCad project lives in the brainsmoke/keyboard repository on GitHub; these links point at the commit this page was built from.
Keyboard: common questions
What microcontroller does the Keyboard use?
The Keyboard is built around the C81720, from the STM32 family.
How big is the Keyboard PCB?
The Keyboard measures 357 × 125 mm, has 2 copper layers and is 1.6 mm thick.
How many components are on the Keyboard?
310 components, from 293 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 brainsmoke/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 brainsmoke. 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 STM32 firmware against it before you order a PCB.
Similar boards
STM32
LumenPnP Motherboard
opulo-inc
149 × 95 mm296 parts4LCC-BY-SA-4.03.7kSTM32
AxxSolder
AxxAxx
39 × 82.5 mm122 parts2LGPL-3.01.7kSTM32
AIOC
skuep
21 × 31.5 mm47 parts2LMIT1.4kSTM32
Ferris
pierrechevalier83
208.8 × 86.8 mm102 parts2LSHL-2.11.3kSTM32
Module 16S
stuartpittaway
71.1 × 89.6 mm113 parts4LCC-BY-NC-4.01.1kSTM32
Djinn
tzarc
192.3 × 150.5 mm216 parts2LCERN-OHL-S-2.0988