Lunchtop & Cyberdeck

23 Sep 2021

projects: keebs
builds: lunchtop

I’ve been collecting parts in earnest for two new projects. The basic idea is a portable, hackable, ruggedized workstation. The first iteration of this idea came to me from my partner, who is a Homestuck fan. That one is Lunchtop, and will be built into a red plastic lunchbox from the 70s. The other idea came from, and built into a Pelican case.

These projects interest me partly because I like thinking about the ubiquitous format (“laptop”) being turned on its head and reimagined. And it interests me partly because I get to build two new mechanical keyboards. This post will focus on the latter challenge.


The task is to design and fabricate two keyboards for these computers. The parameters:

  • Lunchtop can fit 8u tall and 11u wide, based on the lunchbox dimensions
  • Cyberdeck can fit 13u wide and 7u tall, based on the dimensions of the Pelican hardcase I’ve selected
  • both must have switch plates that fasten to underlying case structure with screws
  • both may have points on the underside of the switch plate for the pcb to fasten to
  • both should only use a single ProMicro-style microcontroller
  • both should allow for hotswapping the switches, so I can iterate on the switchplate design

I was glad to find a hotswap pcb in a good size for the Cyberdeck (5x12). So far I have not found a good hotswap option for 11u or 10u wide, so I have a few options:

  1. I could cobble multiple non-hotswap PCBs together (Gherkin 3x10 and Yasui 4x10, for instance). This ditches the “single ProMicro” and “hotswap” design parameters.
  2. I could cobble multiple non-hotswap PCBs together, and use mill-max inserts to make them hotswap. This also ditches “single ProMicro”.
  3. I could cobble multiple non-hotswap PCBs together and cut a bunch of traces, soldering new wires on to re-grid them. This would allow for “single ProMicro” but it’s more damaging than I’d like.
  4. I could follow this guide for a 3d-printable hotswap “PCB”. This would meet the design parameters but will take a little more time than options 2 or 3.


The tipping point came when I started reading this very detailed guide to hand- wiring one’s own keyboard. So I’m headed down the road of the printed hotswap “pcb”.

  1. the hotswap guide requires npm and OpenSCAD. I started by making sure nvm was installed, and picked the latest version of npm. I installed OpenSCAD. I should maybe note that everything I do on the terminal is in WSL, and everything in a GUI application is in Windows. And any time I need to build and flash QMK firmware…I do it on a Mac.
  2. I made a layout over at I downloaded the layout JSON and ran it through the hotswap guide’s npm script. [note about exact file IO]
  3. I opened the generated scad files in OpenSCAD. I’m much more familiar with FreeCAD lately, but I’ve had experience with many CAD programs, so a new one can’t be all that foreign, right?

[transmission cuts off here]