

Controller
A modern yet simple Model M replacement controller
- Size
- 118.3 × 38.9 mm
- Copper layers
- 2
- Thickness
- 1.6 mm
- Parts
- 22
- Nets
- 42
- Pads
- 150
- Tracks, vias
- 442, 40
- Pours
- 2
- Routed
- Yes
- KiCad
- KiCad 5 (file 20171130)
- Created
- 29 Oct 2019
- Updated
- 30 May 2023
Overview
Controller is an open-source printed circuit board by ashpil, from the ashpil/Model-M-Type-C repository on GitHub, published under the GPL-3.0 licence. It is a 2-layer board of 118.3 × 38.9 mm with 22 parts on 42 nets, routed with 442 tracks and 40 vias.
It is built around the AT90USB1286-AU and PRTR5V0U2X. Its parts include 7 capacitors, 6 resistors, 3 connectors, 2 ICs and 1 switch. It belongs with the keyboards and input boards and the AVR (ATmega, ATtiny) boards of this library.
Main components
2AT90USB1286-AU
TQFP-64LQFP-64(14x14) Microcontrollers (MCU/MPU/SOC) ROHSMicrochip TechnologyMicrocontrollers (MCU/MPU/SOC)PRTR5V0U2X
SOT-143-55℃~+125℃ 0.3pF、0.8pF 100W 10V、15V 5V 6.5V 6A 80nA ESD IEC 61000-4-2、IEC 61000-4-5、IEC 61000-4-4 Three channels Unidirectional SOT-143 ESD and Surge Protection (TVS/ESD) ROHSTECH PUBLICESD And Surge Protection (TVS/ESD)
README
README.mdModel M Type C
This is a project with the simple goal of recreating the old IBM Model M keyboard controller with modern technologies in mind.

Motivation
Although the IBM Model M is perhaps the most well-known and popular of old keyboards, it isn't equipped with some modern ameneties we have grown used to enjoying. Key features that the Model M lacks are Windows and Media keys(or, broader, firmware-level repogramability), as well as a hotswappable connection with a modern interface. This controller is designed to bring 21st century features to a 20th century keyboard.
Goals
- Native USB C
- Hotswappable
- Fully configurable with QMK compatibility
- Less power draw
- Complete reversability
Usage
Note: If your Model M has two ribbon cables with a 16-12 split rather than the three connectors with 16-8-4 split, see this issue.
- Print the board either using a cheap foreign service such as JLCPBC for around $6 + shipping, or a domestic service such as OSH Park for around $35. Someone also seems to be selling a PCB for this on eBay, which is totally a scam for $47.95. Does make me feel flattered, though.
- Order the components- part list from Digikey. USB-C port needs to be bought elsewhere, I recommend here. $15 total for components. If your LEDs connect via a ribbon, get this instead of the JST 4 pin connector. I used this cable as a riser cable to connect the controller's USB C port to the side of the keyboard. Unfortunately, due to size conflicts, this cannot be done without a riser cable if you want the external usb c cable to be detachable. This brings total component cost to $25 without shipping.
- Put it together. It's possible to solder these SMD components manually with a soldering iron, but if you are able to find a hot air gun or a reflow oven, it'll be significantly easier. Reference the visual BOM to see what goes where.
- 3D print the USB-C cable dock. You can mount this on top of the board for it to look near-native. Attach the riser cable to the dock with some hot glue or epoxy.
- Connect the ribbon cables and LED wires, and mount the PCB in the same way the old PCB was mounted. Attach the USB-C dock on top of that.
- Install firmware.
Firmware
This board is fully compatible with QMK. This is a default QMK configuration, so all you need to do is run this from your QMK directory when you are ready:
make ashpil/modelm_usbc:default:flashCheck here for details.
Alternatively you can use the Vial firmware. Setup is analogous to QMK, clone the Vial repo and run:
make ashpil/modelm_usbc:vial:flashOther
If you have any problems/comments, or find anything that could be improved, please submit issue or a pull request!
Parts
22| Qty | Value | Footprint | References |
|---|---|---|---|
| 3 | 0.1uF | Capacitor_SMD:C_0805_2012Metric | C4, C5, C6 |
| 2 | 10k | Resistor_SMD:R_0805_2012Metric | R5, R6 |
| 2 | 22 | Resistor_SMD:R_0805_2012Metric | R3, R4 |
| 2 | 22pF | Capacitor_SMD:C_0805_2012Metric | C1, C2 |
| 2 | 5.1k | Resistor_SMD:R_0805_2012Metric | R1, R2 |
| 1 | 10uF | Capacitor_SMD:C_0805_2012Metric | C7 |
| 1 | 16MHz | Crystal:Crystal_SMD_3225-4Pin_3.2x2.5mm | Y1 |
| 1 | 1uF | Capacitor_SMD:C_0805_2012Metric | C3 |
| 1 | 500mA | Fuse:Fuse_1206_3216Metric | F1 |
| 1 | AT90USB1286-AU | Package_QFP:TQFP-64_14x14mm_P0.8mm | U2 |
| 1 | Conn_01x04 | Connector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_Vertical | J3 |
| 1 | Conn_01x08 | Connector_PinHeader_2.54mm:PinHeader_1x08_P2.54mm_Vertical | J2 |
| 1 | Conn_01x16 | Connector_PinHeader_2.54mm:PinHeader_1x16_P2.54mm_Vertical | J1 |
| 1 | HRO-TYPE-C-31-M-12 | Type-C:HRO-TYPE-C-31-M-12-HandSoldering | USB1 |
| 1 | PRTR5V0U2X | random-keyboard-parts:SOT143B | U1 |
| 1 | SW_Push | random-keyboard-parts:SKQG-1155865 | SW1 |
Questions
How big is the Controller PCB?
It measures 118.3 × 38.9 mm and has 2 copper layers, 1.6 mm thick.
What parts does the Controller use?
22 parts, built around the AT90USB1286-AU and PRTR5V0U2X. 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 Controller KiCad files?
From the ashpil/Model-M-Type-C repository on GitHub, at the commit this page was made from: the board is controller.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.
Can I use the Controller design in my own project?
Its repository publishes it under the GPL-3.0 licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).
Similar boards
- 2 layers405.8 × 127.3 mm

- 2 layers327.7 × 137.2 mm

- 2 layers430.2 × 141.3 mm

- 2 layers

- 2 layers388.9 × 122.2 mm

- 2 layers100 × 100 mm

- 2 layers40 × 50 mm

Wired sculpt
chadaustin/wired-sculpt-pcb
KiCad design files for the Wired Sculpt conversion mod
39 parts35 - 2 layers74.3 × 99.7 mm
