Mechanical keyboard business card

Mechanical Keyboard Business Card

Lukas Reineke
Published in
4 min readNov 17, 2020

--

I designed a PCB business card that can be used as a macro keyboard as well.
When looking through Twitter, I saw user @zk_phi do something similar and wanted to try it as well.

I have built a lot of mechanical keyboards before, but this is the first time I designed a PCB from scratch. Before looking into it, making my own PCB sounded difficult and expensive, but it turns out it is neither.

There is a lot of information online on how to design PCBs. Reading a couple of tutorials and watching some YouTube videos made me understand the basics. After that, everything was pretty simple.
Most of the tutorials recommended EasyEDA as the software. It is browser-based and pretty intuitive to use.

One of my main goals was to make the keyboard as easy as possible to build for anyone who gets my card. I didn’t want to include Diodes, LEDs, sockets, or other features a normal mechanical keyboard might have. The absolute minimum components are switches and a microcontroller.
I chose the Pro Micro as the microcontroller, mostly because it is cheap and used in a lot of other designs as well.
For the switches, I went with standard MX style switches.
All my keyboards run QMK as the firmware, so I definitely wanted to use that for my card as well. There is already a business card style keyboard with QMK support that uses the Pro Micro github.com/Biacco42/meishi. To make the firmware as easy as possible, I used the same pinout on the controller.

Schematic

To make a PCB, I first had to create the schematic. The schematic lists all components of the final product and how they are connected together.

Because all the complex logic is handled by the Pro Micro microcontroller. All I needed for the PCB is the pro micro itself and MX style switches.
In EasyEDA, to add a component to the schema you can either use the EELib tab to use common predefined components like Ground, VVC and resistors or use the Library to search for specific components.
For both the Pro Micro and the MX switches, there are user-contributed components in the library.

Board schematic

After placing the components I connected them with the wiring tools.
Using ports instead of connected wires can clean up the schematic.
Every connection with the same port will become connected.
In my case I used wires for the columns, and a port for the row.
I also added a ‘No Connect Flag’ to all pro micro pins I am not using. EasyEDA
can check that no connections are missed.

PCB

Before starting with the PCB, it is important to make sure EasyEDA is set up with the correct design rules.
Every PCB manufacturer has different rules about tolerances and sizes.
I use jlcpcb.com to make my PCBs. They list their rules online jlcpcb.com/capabilities/Capabilities

Once the schema was done and the rules were set up, I could start with the actual PCB.
PCBs can have all different kind of shapes and sizes. I went for the default business card size of 85mm x 55mm.
Laying out the PCB is very similar to the schema. Move the components in place and connect them with traces. Because had I already connected the components in the schematic, EasyEDA shows lines between things that need to be connected.
A rule of thumb when drawing the traces is to avoid right angles, they could cause reflection issues.

PCB design start

A PCB is basically a sandwich of multiple layers of copper. A simple
PCB has 2 copper layers. More complex boards can have many more.
To connect layers together, a small hole is drilled in the PCB. This is called
VIA. In my PCB I only used the top layer.

Because this is supposed to be a business card I also needed text.
On a PCB text is done with silk layers. It is possible to add text, shapes and even images.

Finished PCB design

After the design is done, I just had to export the Gerber file and order the PCB at jlcpcb.com

Final Thoughts

This was a fun project. Overall it was a lot simpler and cheaper than I was expecting before I started. I am already thinking about other things I could prototype with this.
Build instructions and the Gerber files are on GitHub github.com/lukas-reineke/meishi

Finished PCB

--

--