

Framework
Ortholinear keyboard with a knob
- Size
- 238.1 × 375.5 mm
- Copper layers
- 2
- Thickness
- 1.6 mm
- Parts
- 197
- Nets
- 92
- Pads
- 760
- Tracks, vias
- 2,688, 45
- Pours
- 5
- Routed
- Yes
- KiCad
- KiCad 5 (file 20171130)
- Created
- 17 Jan 2021
- Updated
- 8 Feb 2023
Overview
Framework is an open-source printed circuit board by stevennguyen, from the stevennguyen/framework repository on GitHub. It is a 2-layer board of 238.1 × 375.5 mm with 197 parts on 92 nets, routed with 2,688 tracks and 45 vias.
It is built around the ATMEGA328P-PU. Its parts include 65 switches, 62 diodes, 6 resistors, 5 capacitors and 2 connectors. It belongs with the keyboards and input boards and the AVR (ATmega, ATtiny) boards of this library.
Main components
1README
readme.md7c8 Framework

Framework is a 5x12 ortholinear keyboard featuring:
- All through-hole components (except Kailh hotswap sockets)
- QMK firmware with VIA support
- Rotary encoder
- Hotswappable switches
- FR-4 and acrylic sandwich construction
- USB Type-C
- MIT (one 2u), grid (two 1u), and two 2u, bottom row configuration
Info
Discord
License
Framework is licensed under CC BY-NC-SA 4.0. Please modify my design to make a keyboard that fits you!
Revisions
rev0 is an early prototype/proof of concept
rev1 is the current revision and should be used for fabrication or modification
General
The ATmega328P does not come with a USB bootloader from factory. You will need to flash the chip with a bootloader through the ISP header first. You can find a pre-compiled .hex to flash at USBaspLoader/bootloader.hex, or compile your own using the documentation found in the USBaspLoader/ folder. Everything has been preconfigured for use with the Framework.
USBaspLoader is a project maintained by Stephan Baerwolf.
Fuse bytes should be:
- lfuse = 0xd7
- hfuse = 0xd0
- efuse = 0x04
After setting up your QMK environment, flash the Framework firmware:
make 7c8/framework:default:flash # default keymap
make 7c8/framework:via:flash # via-compatible keymapAlternatively, a precompiled .hex with bootloader and Framework QMK firmware with VIA support can be found at firmware/bl_framework_via.hex. Flashing/fusing with avrdude looks like this:
avrdude -c <programmer> -p atmega328p -U flash:w:bl_framework_via.hex:i -U lfuse:w:0xd7:m -U hfuse:w:0xd0:m -U efuse:w:0x04:mLayout
Framework supports MIT, grid, and 2x2u spacebar layouts. Refer to framework.h. Layout options are also configurable in VIA.

Physical construction
Please see this separate note on physical construction.
Build guide
Please see the build guide for more information.
Parts
197| Qty | Value | Footprint | References |
|---|---|---|---|
| 62 | SW_Push_45deg | framework:Kailh_socket_MX_no_fsilk | SW10, SW11, SW12, SW13, SW14, SW15, SW16, SW17, SW18, SW19, SW20, SW21, SW22, SW23, SW24, SW25 +46 |
| 60 | D | framework:D_DO-35_SOD27_P7.62mm_Horizontal | D10, D11, D12, D13, D14, D15, D16, D17, D18, D19, D20, D21, D22, D23, D24, D25 +44 |
| 10 | VAL** | panelization:mouse-bite-2mm-slot | mouse-bite-2mm-slot, mouse-bite-2mm-slot, mouse-bite-2mm-slot, mouse-bite-2mm-slot, mouse-bite-2mm-slot, mouse-bite-2mm-slot, mouse-bite-2mm-slot, mouse-bite-2mm-slot, mouse-bite-2mm-slot, mouse-bite-2mm-slot |
| 2 | 0u1 | framework:C_Axial_L3.8mm_D2.6mm_P7.50mm_Horizontal | C2, C3 |
| 2 | 22p | framework:C_Axial_L3.8mm_D2.6mm_P7.50mm_Horizontal | C4, C5 |
| 2 | 3v6 | framework:D_DO-35_SOD27_P7.62mm_Horizontal | D1, D2 |
| 2 | 5k1 | framework:R_Axial_DIN0204_L3.6mm_D1.6mm_P5.08mm_Horizontal | R5, R6 |
| 2 | 75 | framework:R_Axial_DIN0204_L3.6mm_D1.6mm_P5.08mm_Horizontal | R2, R3 |
| 2 | SW_Push | framework:SW_PUSH_6mm_H4.3mm | SW1, SW2 |
| 1 | 10k | framework:R_Axial_DIN0204_L3.6mm_D1.6mm_P5.08mm_Horizontal | R1 |
| 1 | 16M | framework:Crystal_HC49-4H_Vertical | Y1 |
| 1 | 1k5 | framework:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal | R4 |
| 1 | 4u7 | framework:CP_Radial_D4.0mm_P1.50mm | C1 |
| 1 | ATmega328P-PU | framework:DIP-28_W7.62mm | U1 |
| 1 | AVR-ISP-6 | framework:PinHeader_2x03_P2.54mm_Vertical | J1 |
| 1 | LOGO | framework:7c8stevennguyen | G*** |
| 1 | LOGO | framework:7c8small | G*** |
| 1 | LOGO | framework:7c8 | G*** |
| 1 | LOGO | graphics:framework | G*** |
| 1 | LOGO | framework:framework_rev1 | G*** |
| 1 | Rotary_Encoder_Switch | framework:RotaryEncoder_Alps_EC11E-Switch_Vertical_H20mm | SW63 |
| 1 | USB_C_Receptacle_USB2.0 | framework:USB_C_Receptacle_GCT_USB4085 | J2 |
The 157 most common of 197 parts.
Questions
How big is the Framework PCB?
It measures 238.1 × 375.5 mm and has 2 copper layers, 1.6 mm thick.
What parts does the Framework use?
197 parts, built around the ATMEGA328P-PU. 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 Framework KiCad files?
From the stevennguyen/framework repository on GitHub, at the commit this page was made from: the board is rev1/framework.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.
Can I use the Framework design in my own project?
Its repository states no licence, so its author keeps all rights: ask stevennguyen before reusing the design.
More from stevennguyen/framework
1- 2 layers238.1 × 375.5 mm

Similar boards
- 2 layers68.8 × 53.6 mm

ZArduino
zmaker/arduino_cookbook
gli sketch del nuovo progetto Arduino Cookbook e dei video di YouTube
46 parts269 - 2 layers76.3 × 122.8 mm

Discipad pcb
coseyfannitutti/discipad
17-key numpad assembled with only through hole components, including usb type-c
63 parts221GPL-3.0 - 2 layers111.3 × 106.4 mm

Super Sixteen v1
matthewcieplak/super-sixteen
Code and schematics for the Super Sixteen Eurorack sequencer
141 parts171 - 2 layers247.6 × 99.2 mm

Romeo pcb
coseyfannitutti/romeo
Staggered 40% keyboard pcb that can be assembled with only through hole components, including USB Type-C
138 parts148GPL-3.0 - 2 layers90 × 140 mm

Drumkid
mattybrad/drumkid
Version 4 was the first successful working design, with full code, schematics, Gerbers, etc available on GitHub.
70 parts137 - 2 layers

LM80C R6
leomil72/LM80C
A Z80-based homebrew computer withTMS9918, AY-3-8910, Z80 CTC, Z80 PIO, and Z80 SIO
153 parts123GPL-3.0 - 2 layers145.3 × 44.5 mm

- 2 layers
