Ctrl-M
nuess0r·ctrl-M
About the Ctrl-M PCB
Ctrl-M is an open source STM32 PCB design by nuess0r, published on GitHub under the CERN-OHL-S-2.0 license. It is a 2-layer board measuring 171 × 50.5 mm, with 18 components from 11 distinct parts.
Its main chip is the STM32F072CBT6, from the STM32 family. Other key parts include the USBLC6-2SC6 and XC6206P332PR. By type, the board carries 8 capacitors, 4 resistors, 3 ICs, 2 connectors and 1 switch.
It belongs with the keyboards designs in this gallery.
From the project
Replacement controller for the famous IBM Model M keyboard based on the STM32F072 microcontroller. Supported by QMK.
This is a replacement controller for the famous IBM Model M keyboard based on the STM32F072 microcontroller. Goal is to get it upstream in QMK.
Work in progress, prototypes are working in Model M from 1989, there is a bug for the version from 1986 and test for other variants are outstanding.
Controller based on a STM32F072 chip and designed with KiCAD.
To make the controller as flexible as possible there are four possible LED and earth cable connectors. Also the PCB can be cut into a smaller variant that fits the later IBM/Lexmark variant.

Main components on the Ctrl-M
Ctrl-M bill of materials (BOM)
18 components, 11 distinct parts — part numbers from the project's BOM.
| Qty | Part | Footprint | Refs |
|---|---|---|---|
| 1 | USBLC6-2SC6 | SOT-23-6 | U1 |
| 1 | XC6206P332PR | SOT-89-3 | U2 |
| 1 | STM32F072CBT6 | LQFP-48_7x7mm_P0.5mm | U3 |
| 1 | CONN_01X16 Conn_01x16 | TE_6-520315-6_1x16_P2.54mm_Vertical | J7 |
| 1 | Conn_01x08 | PinHeader_1x08_P2.54mm_Vertical | J13 |
| 1 | SW_Push | SW_SPST_UK_B0205-G4.3-B-250 | SW1 |
| 2 | 4.7U 4.7u | C_0805_2012Metric | C1, C3 |
| 5 | 100N 100n | C_0603_1608Metric | C2, C4, C5, C6, C7 |
| 1 | 10N 10n | C_0603_1608Metric | C8 |
| 1 | 1k | R_0603_1608Metric | R1 |
| 3 | 120 | R_0603_1608Metric | R2, R3, R4 |
Ctrl-M design files
The KiCad project lives in the nuess0r/ctrl-M repository on GitHub; these links point at the commit this page was built from.
- Layoutctrl-m.kicad_pcb
- Schematicctrl-m.kicad_sch
- BOMexport/ctrl-m_bom.csv
Ctrl-M: common questions
What microcontroller does the Ctrl-M use?
The Ctrl-M is built around the STM32F072CBT6, from the STM32 family.
How big is the Ctrl-M PCB?
The Ctrl-M measures 171 × 50.5 mm, has 2 copper layers and is 1.6 mm thick.
How many components are on the Ctrl-M?
18 components, from 11 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 Ctrl-M design files?
From the nuess0r/ctrl-M 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 Ctrl-M design in my own project?
Yes, under the terms of its CERN-OHL-S-2.0 license, which nuess0r chose for the repository.
Can I test firmware for the Ctrl-M 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