campus is a modular, repairable laptop with a custom mechanical keyboard interface. designed with the intent to create a fully reversible, drop-in aftermarket chassis for commercially available framework laptops.
image source: framework
I'm a big fan of framework laptops. I think they've done an excellent job at creating a laptop that is modular, repairable, and most importantly, up to date with modern hardware. The biggest draw for me is that you can replace your entire mainboard to refresh the same machine with new processing power.
unfortunately, as with any modern laptop, the keyboard falls short. it's mushy. unsatisfying. feels like typing on a yoga mat.
what if, I thought, I could keep everything I love about the framework laptop, but with a real, enthusiast grade mechanical keyboard?
and this project began.
the plan was simple: design a new housing with a mechanical keyboard to fit the framework parts, and drop them in.
image source: framework
fortunately, framework has provided the physical dimensions of some of their parts via their github.
unfortunately, they only provided some. most of the parts required tedious, manual caliper measurement.
with my collection of measurements and technical drawings, many weeks were spent in fusion.
the finished chassis mimics the overall structure from the framework laptop with its 3-piece design: bottom chassis, input cover, and top cover.
in addition to the physical chassis, campus also required two custom pcb designs. shown above is the keyboard pcb, which I think turned out rather elegant. the panel on the right snaps off, allowing three rotary encoders to be mounted separately from the keyboard.
a little less elegant was the custom usb-c hub. ideally, it would permanently split one of the mainboard's usb-c ports into three usb's (including one to plug in the custom keyboard internally), an hdmi, and micro sd.
this is the required connection flowchart for the usb hub...
...and this is what the schematic actually turned out looking like.
yeah, I would not want to do this again.
with the parts cnc'd and pcbs made, it's time to move on to the assembly.
the bottom chassis features 3d printed petg brackets with brass heat-set inserts that offer more durability compared to simple tapped aluminum threads. these brackets are permanently epoxied into place.
assembly of the bottom chassis included installing the mainboard and usb hub, battery, audio board and wifi board.
the input cover was too thin to implement the brackets with heat set inserts, so its holes simply needed to be tapped.
some of the holes were very shallow, so I made my own bottom tap.
the keyboard was built with kailh choc sunset switches and an aluminum plate.
custom rotary encoder knobs were also cnc'd.
the input cover fully assembled with the keyboard and rotary encoder pcbs, touchpad, and speakers.
the keyboard is mounted using flexible o-rings that isolate the typing interface from the rest of the metal chassis, significantly improving the typing experience.
assembling the lid consisted of installing the hinges, wifi antenna, webcam module, and screen.
putting the whole thing together.
installing keycaps.
the overall experience using this laptop is awesome. the campus's unapologetically thick body and loud keyboard simply transcends the typical laptop experience.
as with any custom project however, this laptop is far from perfect. I experienced two main issues upon completion:
the wifi was functional, but reception was ridiculously weak
the custom usb hub did not work
I later managed to address the wifi issue by replacing the antenna module with an new one I snagged for free at one of the framework launch events. it turns out you probably shouldn't trim off parts of a specifically tuned antenna like I did on my original build.
as for the usb hub, I still have yet to diagnose exactly what is wrong with it. for the time being, I have the keyboard plugged into the mainboard's usb-c port internally, bypassing the usb-c hub. the laptop still has three fully functional usb-c ports though, so I have been fine with just using those.
in the future it could be a good project to get the usb hub fully working.