Framework 16 Keyboard v1
The Framework 16 Keyboard v1 (subtitled "Poor Man's Ortho") is an ortholinear split keyboard designed to fit inside the Framework Laptop 16 in place of the stock keyboard module. Created by Per Sommer (GitHub: sommerper), it uses 40 Kailh Choc low-profile switches in a column-staggered layout and connects via USB or Bluetooth using an nRF52840 microcontroller — rather than interfacing with the Framework 16's Input Module connector1.
The 3D-printed case has a 5-degree typing angle, meaning the laptop cannot be closed while the keyboard is installed. The project was announced in February 2025 and all design files were published on GitHub in April 2025 under the MIT license12.
Design
Layout
The keyboard uses a split ortholinear layout with 40 keys total1:
- 3 rows of 5 keys per side (30 main keys)
- 2 keys per side on the bottom row (4 keys)
- 3 thumb keys per side (6 keys)
The layout uses column stagger (slight ergonomic offset between columns) rather than a flat grid. The design is column-staggered rather than row-staggered like a traditional laptop keyboard.
Hardware
| Component | Details |
|---|---|
| Switches | Kailh Choc PG1350 (low-profile), 40 hotswap positions |
| MCU | SuperMini nRF52840 (Pro Micro compatible footprint) |
| Alternative MCUs | nice!nano v2, generic RP2040 Pro Micro |
| Matrix | 6 columns x 8 rows, COL2ROW diode direction, 40 combo diodes |
| PCB | 270.0 x 104.2 mm, 1.6 mm thickness, 2-layer |
| PCB tool | KiCad 9.0 |
| Battery connector | JST-PH 2-pin (for wireless operation) |
| Power switch | SPDT slide switch (C128955) |
| Reset button | ALPS SKQGABE010 tactile switch |
| Design tool (case) | Autodesk Fusion |
| License | MIT |
Connectivity
The keyboard does not connect via the Framework 16 Input Module pogo pins. It operates as a standalone keyboard, connecting via USB cable or Bluetooth (using the nRF52840's wireless capability). This simplifies the design but means it cannot use the FW16's built-in keyboard backlight control, VIA integration, or native keyboard hot-plug system1.
Case
Four STL files are provided for 3D printing1:
| File | Purpose |
|---|---|
| Left | Left half for laptop installation (tight fit between internal components) |
| Right | Right half for laptop installation |
| Bottom | Desk case for external use (fits diagonally on a Prusa i3 MK3S build plate) |
| Top | Travel protection cover for the Bottom case |
The left and right cases are designed to slot into the physical space where the stock keyboard sits inside the laptop chassis.
Firmware
ZMK (Primary)
The ZMK configuration is the more fully developed firmware option, based on Urob's ZMK config. It includes1:
- 12 layers: BASE (Linux Colemak-DH variant), LOWER, RAISE, BASEMAC, LOWERMAC, RAISEMAC, QWERTY, EXTRAS, NUMPAD, NUMBERS, BLUETOOTH, LANG
- Home-row mods (HRM)
- Combos, tri-layer, tap-dance, mod-morph
- Macros for German characters ("qu", "qui", "sch")
- Bluetooth profile switching and output selection (USB/BLE)
- Sleep mode, +8dBm TX power
- nRF internal RC oscillator
QMK (Basic)
A simple starter QMK configuration with a single QWERTY layer and basic key mapping. Uses Caterina bootloader targeting ATmega32U41.
Development History
Per Sommer designed the keyboard after transitioning to ortholinear split keyboards (including the Corne) and finding he could no longer comfortably use the Framework 16's staggered stock keyboard. A friend confirmed the FW16 could boot without the keyboard by disabling checks in BIOS, making the project feasible2.
The PCB was designed using Ergogen for initial layout generation and KiCad for schematic and routing. The 3D-printed case was designed in Autodesk Fusion2.
| Date | Event |
|---|---|
| February 15, 2025 | Blog post announcing the project2 |
| March 22, 2025 | Reddit post "Poor mans ortho" on r/framework |
| April 8, 2025 | GitHub repo created with all design files1 |
| April 8, 2025 | Framework Community forum thread posted |
| April 9, 2025 | Thread renamed to "Framework 16 Keyboard v1 (Poor man's Ortho)" by moderator |
| September 2, 2025 | Additional Q&A about connectivity and daily use |
| March 1, 2026 | Forum thread auto-closed after 180 days of inactivity |
No updates have been published since April 2025. The project appears to be a completed v1 release.
Installation
Prerequisites
The Framework 16 must be configured to boot without its stock keyboard by disabling keyboard checks in BIOS2.
Building the PCB
- Download the appropriate Gerber ZIP from the
kicad/framework16v1/gerber_to_order/directory (JLCPCB, PCBWay, Elecrow, FusionPCB, or default format) - Order the PCB: 270.0 x 104.2 mm, 1.6 mm, 2-layer
- Solder components: SuperMini nRF52840, 40 combo diodes, SPDT switch, reset button, JST-PH connector, 40 Kailh Choc switches1
3D Printing
Print the Left and Right case halves for laptop use, or Bottom + Top for external desk use. Files are in the case/ directory1.
Flashing Firmware
ZMK: Use the shield config in zmk/boards/shields/framework_v1/ with Per's fork of Urob's ZMK (sommerper/urob_zmk)1.
QMK: qmk compile -kb framework_v1 -km default using the keyboard definition in qmk/keyboards/framework_v1/1.
Limitations
| Limitation | Details |
|---|---|
| Laptop cannot close | 5-degree typing angle prevents lid closure |
| No Input Module integration | Does not use FW16 pogo pins; no backlight, VIA, or hot-plug support |
| No formal build guide | PCB BOM must be inferred from KiCad schematic files |
| Lid clearance | ~3.4 mm available; Kailh Choc switches may be too tall for lid closure even without the typing angle |
| Single revision | No updates or revisions since April 2025 |
Related Projects
- Framework 16 Keyboard v1 — Forum Thread — Community discussion (14 posts, 1,541 views)3
- HandyWork — An Ergo Keyboard for Framework 16 — Alternative ergo keyboard that uses the FW16 Input Module connector (January 2026)
- DIY Staggered Columnar Laptop Keyboard — dosssman's semi-ortholinear keyboard for Framework 13 (91 posts)
- Ortholinear keyboard option? — Long-running feature request thread (60 posts, 19K views, started July 2021)
- Framework One Key Module — Framework's official product for custom keyboard layouts using individual keyswitch modules
- FrameworkComputer/InputModules — Official FW16 Input Module reference designs