Open Source extends far beyond just linux and kubernetes. I discovered this when I was pleasantly surprised to find an active Open Source community in the realm of mechanical keyboards. Even as an electronics novice, this community enabled me to design my own Open Source mechanical keyboard. In this post, I will introduce the projects that facilitated my journey and show you what the final product looks like.
I didn’t really know where to start as I had never undertaken such a project before. A coworker provided me with a few tips on how to start on this journey. He recommended KiCad for designing the PCB (Printed Circuit Board) and Deskthority as a source of tutorials for the process.
KiCad is an Open Source electronic design automation (EDA) software suite that is considered the de facto standard in the Open Source keyboard realm. All the libraries required to design a keyboard in KiCad are also Open Source. A great example of this is the Keebio-Parts.pretty library.
While the Deskthority tutorials provided a useful starting point, they weren’t handholdy enough for my skill level. After some research, I found a comprehensive tutorial by the keyboard company ai03. This tutorial is exceptional as it guides the user through the entire process, even including a section on how to Open Source the keyboard design.
ai03 has a variety of open-source projects, including the contra keyboard, which served as my introduction to Open Source keyboards. I liked the Contra so much I used it as inspiration for my design. It is a simple, Open Source, 40% ortholinear keyboard that utilizes through-hole components and a socketed microcontroller. I wanted to maintain this simplicity but add an extra row to my design.
The firmware is a crucial component of a keyboard. Fortunately, there’s no need to develop it from scratch. There are multiple Open Source keyboard firmware projects available like qmk, zmk, and prk. While all of them would have been sufficient, I opted for qmk due to its rich features and widespread use among the community. Notably, qmk is not just for DIY projects; established companies such as Keychron also use it for their keyboards. As a bonus, there’s an active subreddit where you can ask questions and showcase your builds.
So, what does the final product look like:
You can find my keyboard design on my GitHub page. I ensured everything was as DIY-friendly as possible for others looking to embark on a similar journey.