Model-M-USB-v4
mschwingen·hardware·modelm-usb/V4-draft/Model-M-USB-v4.kicad_pcb
About the Model-M-USB-v4 PCB
Model-M-USB-v4 is an open source AVR/Arduino PCB design by mschwingen, published on GitHub. It is a 2-layer board measuring 150 × 37 mm, with 58 components from 35 distinct parts.
Its main chip is the ATMEGA32U4-MU, from the AVR/Arduino family. Other key parts include the PRTR5V0U2X, 74HC165 and MAX809T. By type, the board carries 23 resistors, 14 capacitors, 8 connectors, 5 ICs, 2 crystals and 1 transistor.
It belongs with the keyboards designs in this gallery, and the repository also holds 3 earlier revisions of it.
From the project
Hardware designs by Michael Schwingen, michael at schwingen dot org
The IBM Model M keyboard is a beast: weighing roughly 2kg, the buckling spring mechanism provides a unique feel (and a loud clicking sound that will drive your co-workers nuts). I learned to love these keyboards quite some time ago, when people started throwing them out to get new, "modern" keyboards. Unlike these, a Model M is nearly indestructible - the one I am typing this text on has "copyright 1985" printed on the bottom label, and the IC datecodes are from 1989.

Main components on the Model-M-USB-v4
Model-M-USB-v4 bill of materials (BOM)
58 components, 35 distinct parts — part numbers from the project's BOM.
| Qty | Part | Footprint | Refs |
|---|---|---|---|
| 1 | ATMEGA32U4-MU ATmega32U4-MU | QFN-44-1EP_7x7mm_P0.5mm_EP5.2x5.2mm | U1 |
| 1 | PRTR5V0U2X | SOT-143 | U2 |
| 2 | 74HC165 | SOIC-16_3.9x9.9mm_P1.27mm | U3, U5 |
| 1 | MAX809T | SOT-23_Handsoldering | U4 |
| 1 | 2N7002 | SOT-23 | Q1 |
| 1 | 16.0MHZ 16.0MHz | Crystal_SMD_HC49-SD_HandSoldering | Y1 |
| 1 | 16.0MHZ 16.0MHz | Crystal_HC49-U_Vertical | Y2 |
| 1 | CONN_01X16 Conn_01x16 | PinHeader_1x16_P2.54mm_Vertical | J1 |
| 1 | CONN_01X12 Conn_01x12 | PinHeader_1x12_P2.54mm_Vertical | J2 |
| 1 | CONN_01X05_MALE Conn_01x05_Male | PinHeader_1x05_P2.54mm_Horizontal | J3 |
| 1 | USB_B | USB_B_OST_USB-B1HSxx_Horizontal | J4 |
| 1 | CONN_01X04 Conn_01x04 | PinHeader_1x04_P2.54mm_Vertical | J6 |
| 1 | CONN_01X05_MALE Conn_01x04_Male | PinHeader_1x04_P2.54mm_Vertical | J7 |
| 1 | CONN_01X02 Conn_01x02 | PinHeader_1x02_P2.54mm_Horizontal | J8 |
| 1 | AVR-ISP-6 | PinHeader_2x03_P2.54mm_Vertical | J9 |
| 1 | Jumper | PinHeader_1x02_P2.54mm_Vertical | JP1 |
| 1 | www.schwingen.org | QR_schwingen_Silk | QR1 |
| 1 | SW_Push | SW_Tactile_SPST_Angled_PTS645Vx83-2LFS | SW1 |
| 1 | LED | LED_0603_1608Metric_Pad1.05x0.95mm_HandSolder | D1 |
| 1 | BLM18PG121 | L_0603_1608Metric_Pad1.05x0.95mm_HandSolder | FB1 |
Show 15 more
| Qty | Part | Footprint | Refs |
|---|---|---|---|
| 2 | 22PF 22pF | C_0603_1608Metric_Pad1.05x0.95mm_HandSolder | C1, C2 |
| 1 | 1UF 1uF | C_0603_1608Metric_Pad1.05x0.95mm_HandSolder | C3 |
| 8 | 100NF 100nF | C_0603_1608Metric_Pad1.05x0.95mm_HandSolder | C4, C5, C6, C8, C10, C11, C12, C14 |
| 1 | 10UF 10uF | C_0805_2012Metric_Pad1.15x1.40mm_HandSolder | C7 |
| 1 | 10NF 10nF | C_0603_1608Metric_Pad1.05x0.95mm_HandSolder | C9 |
| 1 | 100nF | C_0603_1608Metric_Pad1.05x0.95mm_HandSolder | C13 |
| 3 | 120 | R_0603_1608Metric_Pad0.98x0.95mm_HandSolder | R1, R7, R13 |
| 2 | 1k | R_0603_1608Metric_Pad1.05x0.95mm_HandSolder | R2, R12 |
| 2 | 22 | R_0603_1608Metric_Pad1.05x0.95mm_HandSolder | R3, R4 |
| 2 | 10k | R_0603_1608Metric_Pad1.05x0.95mm_HandSolder | R5, R6 |
| 4 | 47K 47k | R_Array_Convex_4x0603 | R8, R9, R10, R11 |
| 3 | 10K 10k | R_0603_1608Metric_Pad1.05x0.95mm_HandSolder | R14, R17, R22 |
| 2 | 22 | R_1206_3216Metric_Pad1.42x1.75mm_HandSolder | R15, R16 |
| 3 | 120 0 | R_0603_1608Metric_Pad0.98x0.95mm_HandSolder | R18, R19, R20 |
| 2 | 100 | R_Array_Convex_4x0603 | R21, R23 |
Model-M-USB-v4 design files
The KiCad project lives in the mschwingen/hardware repository on GitHub; these links point at the commit this page was built from.
Model-M-USB-v4: common questions
What microcontroller does the Model-M-USB-v4 use?
The Model-M-USB-v4 is built around the ATMEGA32U4-MU, from the AVR/Arduino family.
How big is the Model-M-USB-v4 PCB?
The Model-M-USB-v4 measures 150 × 37 mm, has 2 copper layers and is 1.6 mm thick.
How many components are on the Model-M-USB-v4?
58 components, from 35 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 Model-M-USB-v4 design files?
From the mschwingen/hardware repository on GitHub, which has the KiCad layout and the BOM; the links under Design files point to each one.
Can I use the Model-M-USB-v4 design in my own project?
The repository has no license, so all rights stay with mschwingen. Use it as a reference, and ask the author before reusing the design.
Can I test firmware for the Model-M-USB-v4 without the hardware?
Yes. HardLabs builds a simulation of the board from its netlist and BOM, so you can run and debug AVR/Arduino firmware against it before you order a PCB.
More boards in hardware
Raspberry Pi
YOGA - Yet anOther GPIB Adapter
mschwingen
85 × 56 mm80 parts2LNo license10R/C Compensation Tool
mschwingen
37 × 75 mm31 parts2LNo license10AVR/Arduino
I2C slave with error injection
mschwingen
32 × 32 mm23 parts2LNo license10AVR/Arduino
USB-C PD Sniffer for Logic Analyzer
mschwingen
23 × 26 mm17 parts2LNo license10Esp prog
mschwingen
30 × 19 mm8 parts2LNo license10
Earlier revisions in the repo: Model-M-USB-v3, Model-M-USB-v2, Model-M-USB-v1
Similar boards
AVR/Arduino
Redox keyboard
mattdibi
162.2 × 126.5 mm77 parts2LMIT2.0kAVR/Arduino
ModuleV450
stuartpittaway
30 × 61.4 mm39 parts2LCC-BY-NC-4.01.1kAVR/Arduino
V4
stuartpittaway
30 × 50 mm38 parts2LCC-BY-NC-4.01.1kAVR/Arduino
Discipline
coseyfannitutti
304.9 × 122.8 mm170 parts2LCC-BY-NC-4.01.0kAVR/Arduino
Megadesk
gcormier
41.7 × 32.2 mm23 parts2LGPL-3.0818AVR/Arduino
Easyduino Atmega Nano
Hanqaqa
43.4 × 18 mm30 parts4LCERN-OHL-P-2.0746