How to build your first Mechanical Keyboard

I built my first mechanical keyboard from scratch! Learn how I did it.


For an outline of the steps and a full list of tools and materials, check out the final pages of this project. I recommend reading the entire guide, as I go into a lot of details that will definitely help out newer hobbyists

I’ve recently gotten sucked into the world of mechanical keyboards, with their varying switch types and unlimited customization. I’m not as much of a fanatic as others, but nonetheless I’m very intrigued by the merging of a daily tool with a piece of artistic expression; I do spend 8+ hours each day operating one after all.

However, when it comes to the hobby, I’m most interested in building my own custom boards from scratch. It takes my love of electronics, soldering, and programming and lets me turn it into a device that is both practical and fairly attractive. I figured I would start easy – my Mechanical Keyboard, although sleek and compact, is missing a numpad. Now, most days I don’t need a numpad but it’s nice to have every once in a while.

So, I set out to build my own. I quickly became very frustrated with the lack of resources I could find online – searching through assorted threads on random enthusiast forums for details on my next step. There was no central location that provided all the information I needed – nor the directions on how to do it myself. I didn’t want to simply copy someone else, I wanted to know how to make my own!

So, that leads us to this guide. I wanted to provide a ‘one stop shop’ of instructions, required parts, and advice on how to make your very own mechanical keyboard. You’ll follow me through my process and even some of the mistakes I made, and hopefully learn how to create something that’s your own.

Getting Started

First things first, all of the source for this numpad project is available on it’s GitHub page. You shouldn’t have any trouble creating everything from scratch, and won’t need to copy anything. You are going to use a few skills for this project, including light GitHub usage, minor Python experience (don’t worry, the example code should take care of most of it), microcontrollers, basic soldering, and woodworking. Everything is easily achievable by an absolute beginner – it just takes a little practice and patience while following these steps.

This tutorial intends to cover creating CAD models of the keyboard layout, and then the cutting and assembly of each piece. It then goes over how to create the circuit, the wiring of the electronics, and the contents of the firmware. Finally, it includes a full Bill of Materials (BOM) to help with deciding which parts to use. I encourage everyone to use these guidelines for making your first design, but there’s tons of room for improvement that I hope you’ll explore for yourself.



Are you ready to make the climb?

Climbeleon is the first game I’ve developed and released. It is an arcade infinite climber that challenges players to reach as high as possible on an increasingly difficult tower. They are also required to match colors on their way up, and if they are too slow they will get fried by an ever chasing laser.

The game can be found here!

I hope you enjoy playing it as much as I do!

Sort Visualizer

I haven’t quite figured out how to post it directly to WordPress, so you’ll have to follow the link below

One thing that I always liked about introductory programming classes was the ‘sorting dances‘ the instructors would have students perform. These were fantastic ice breakers, got people off of their feet, and also helped to visualize how the algorithms work.

I find that colors sorting via a predictable algorithm is also very pleasing to watch. So I went and made an application that will sort randomized color arrays that folks could watch.

It is also a great showcase for the efficiency of various algorithms. You can see just how slow Bubble Sort is, or try to keep up with more complicated, yet better sorting methods.

For a lot of great information on sorting algorithms, check out!

You’ll notice some glitches and other issues with the visualizer. I haven’t touched it in years and as you can see it needs some work. Eventually I’d love for it to act as some sort of ‘art installation’ so hopefully I can spend time on it in the future.