

Campus keyboard
mechanical keyboard conversion for a framework 13
- Size
- 307 × 85 mm
- Copper layers
- 2
- Thickness
- 1.6 mm
- Parts
- 293
- Nets
- 180
- Pads
- 921
- Tracks, vias
- 1,395, 135
- Pours
- 1
- Routed
- Yes
- KiCad
- KiCad 9.0 (file 20241229)
- Created
- 6 Sep 2026
- Updated
- 7 Sep 2026
Overview
Campus keyboard is an open-source printed circuit board by flurples, from the flurples/campus repository on GitHub, published under the GPL-3.0 licence. It is a 2-layer board of 307 × 85 mm with 293 parts on 180 nets, routed with 1,395 tracks and 135 vias.
It is built around the ATMEGA32U4-MU and SI2302. Its parts include 86 resistors, 80 diodes, 7 capacitors, 1 IC and 1 transistor. It belongs with the keyboards and input boards and the AVR (ATmega, ATtiny) boards of this library.
Main components
2ATMEGA32U4-MU
VQFN-44-EP(7x7)-40℃~+85℃ 10bit 16MHz 1KB 2.5KB 2.7V~5.5V 26 32KB 8 Bit AVR Built-in FLASH VQFN-44-EP(7x7) Microcontrollers (MCU/MPU/SOC) ROHSMicrochip TechnologyMicrocontrollers (MCU/MPU/SOC)SI2302
SOT-23-55℃~+150℃ 1 N-channel 120pF 1V 1W 20V 300pF 3A 4nC@4.5V 65mΩ@2.5V 80pF N-Channel SOT-23 MOSFETs ROHSYONGYUTAIMOSFETs
README
README.mdcampus
mechanical keyboard conversion for a framework 13
about
campus is designed to be a drop-in replacement housing for a framework 13 that features a hhkb layout kailh choc mechanical keyboard.
you will need
- a framework 13 laptop
bottom chassis parts
- bottom chassis (cnc)
- bottom-bracket-R, L & M (3d print)
input cover parts
- input cover (cnc)
- plate (cnc)
- 3x knobs (cnc)
- 1x touchpad-clamp-R & L (3d print)
- 2x touchpad-clamp-top (3d print)
lid parts
- lid (cnc)
- bezel (3d print)
- lid-corner-cap-R & L (3d print)
other hardware
- 60x kailh choc switches
- choc stabilizers (2x 2u, 1x 6.25u)
- compatible keycaps (be sure to get 6.25u space, 1.75u shift, etc)
- 3x ec12 low profile encoders
- m1.6 x 3mm heat set inserts
- m2 x 4mm heat set inserts
- m2 x 2.5mm heat set inserts
- 5x m2 x 20mm flat head hex screws (to screw the chassis together)
- 3x m2 x 8mm set screws (for the knobs)
- 4x 1" OD rubber bumpers
- variety of double sided tapes
- epoxy
build notes
bottom chassis, input cover, lid, knobs, and plate were cnc'd from aluminum. all 3d printed parts were printed in petg to avoid breaking down over the years. heat set inserts for screw holes to mount factory components are installed into the bottom-brackets, which are then epoxied to the bottom-chassis. due to jlcpcb's minimum thickness requirements, the input and lid do not use heat set inserts. instead, the aluminum is directly tapped.
the keyboard workaround
the usb hub was too complex and I wasn't able to get it working. because the keyboard was originally meant to connect internally through the usb hub, I ended up simply bypassing the usb hub entirely, bypassing it with a unified daughterboard s1. in case anyone wants to attempt to diagnose why, I've uploaded the kicad files as is for reference.
disclaimer
campus is a highly involved project and will require completely tearing down your framework laptop and transplanting all the components into an objectively worse-designed chassis than the factory framework chassis. some features will be lost, for example, the privacy switches built into the webcam module, or the little buttons that lock the expansion cards in place. I am not a professional electronics designer, so expect to perform some janky workarounds to get the laptop functioning as it should. I am not responsible for any issues you may encounter with the build, so please use the files with caution.
I do not sell any products, and I am not affiliated with any vendors who claim to sell my designs. if you choose to support these vendors, I am not responsible for any issues you may encounter with them.
gallery
Parts
293| Qty | Value | Footprint | References |
|---|---|---|---|
| 81 | 470 | campus-parts:R_0805_2012Metric-CenterREF__ | R1, R2, R10, R11, R12, R13, R14, R15, R16, R17, R18, R19, R20, R21, R22, R23 +65 |
| 60 | SOD-123 | campus-parts:D_SOD-123-CenterREF__ | D1, D2, D10, D11, D12, D13, D14, D15, D16, D17, D18, D19, D20, D21, D22, D23 +44 |
| 49 | MX-LED | mbk:Choc-1u-GW | MX1, MX2, MX10, MX11, MX12, MX13, MX14, MX15, MX17, MX18, MX19, MX20, MX21, MX22, MX23, MX24 +33 |
| 40 | , , , , , , , , , , , , , , , +24 | ||
| 20 | 2815 | campus-parts:GW JCLPS2.EM | D61, D62, D63, D64, D65, D66, D67, D68, D69, D70, D71, D72, D73, D74, D75, D76 +4 |
| 4 | MX-LED | mbk:Choc-1.25u-GW | MX56, MX57, MX59, MX60 |
| 3 | 0.1uF | Capacitor_SMD:C_0805_2012Metric | C4, C5, C6 |
| 3 | 10k | campus-parts:R_0805_2012Metric-CenterREF__ | R82, R83, R86 |
| 3 | RotaryEncoder | campus-parts:SW3_EC12E1220301_ALPS | EC1, EC2, EC3 |
| 2 | 22 | campus-parts:R_0805_2012Metric-CenterREF__ | R84, R85 |
| 2 | 22pF | Capacitor_SMD:C_0805_2012Metric | C1, C2 |
| 2 | MX-LED | mbk:Choc-1.5u-GW | MX16, MX29 |
| 2 | MX-LED | mbk:Choc-2.25u-GW | MX42, MX43 |
| 2 | MX-LED | mbk:Choc-1.75u-GW | MX30, MX54 |
| 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 | ATmega32U4-MU | Package_DFN_QFN:QFN-44-1EP_7x7mm_P0.5mm_EP5.2x5.2mm | U1 |
| 1 | Conn_01x04 | Connector_Molex:Molex_Pico-EZmate_78171-0004_1x04-1MP_P1.20mm_Vertical | J1 |
| 1 | LOGO | campus-parts:campus-3mm | G*** |
| 1 | MX-LED | mbk:Choc-6.25u-GW | MX58 |
| 1 | SI2302 | Package_TO_SOT_SMD:SOT-23 | Q1 |
| 1 | SW_Push | random-keyboard-parts:SKQG-1155865 | SW1 |
The 283 most common of 293 parts.
More from flurples/campus
1- 2 layers30 × 122 mm

Similar boards
- 2 layers98.5 × 59.8 mm

Neuron
giant-axon/lu.i-neuron-pcb
Lu.i is an electronic neuron circuit mimicking and illustrating the basic dynamics of real, biological neurons. The printed circuit board (PCB) features a configurable, fully analog implementation of the leaky…
90 parts73CERN-OHL-S-2.0 - 2 layers82 × 134 mm

Pcb badge
john0312/hitcon-pcb-badge
execute fw/merge.py to merge STM32CubeIDE generated main.c with user code in main.cc into main.cc.
258 parts47BSD-3-Clause - 2 layers11 × 11 mm

Rtcbrd
adlerweb/uPoff
Small circuit/library to shut down a µC to save power for battery powered applications
17 parts43BSD-2-Clause - 2 layers141.9 × 103.7 mm

- 2 layers133.4 × 95.4 mm

- 2 layers133.4 × 111.4 mm

Atreus split
bezmi/orthrus
56 key wireless split keyboard running on QMK. Staggered Orthogonal layout
34 parts26 - 2 layers144.9 × 59.8 mm

Monkeys
PacketChat/MonkeyBadge
This repository contains the hardware design files, badge code, and backend infrastructure code for the HushCon Winter 2023 badge.
153 parts21 - 2 layers111.3 × 87.7 mm

Corne choc xiao
tufourn/corne-choc-xiao
Corne keyboard with XIAO BLE microcontroller and LIR2032 support
51 parts21
Questions
How big is the Campus keyboard PCB?
It measures 307 × 85 mm and has 2 copper layers, 1.6 mm thick.
What parts does the Campus keyboard use?
293 parts, built around the ATMEGA32U4-MU and SI2302. 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 Campus keyboard KiCad files?
From the flurples/campus repository on GitHub, at the commit this page was made from: the board is pcb/campus-keyboard/campus-keyboard.kicad_pcb and its schematic pcb/campus-hub/campus-hub.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Can I use the Campus keyboard 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).