Keyboards are how we connect to our computers and very often to the rest of the world. The layout of keys is a physical representation of the languages we speak, and this simple tool gives us a limitless ability to communicate. A keyboard is a collection of mechanical and electrical relays that convert touch into digital signals. This allows it to exist both in our world of real objects and in the digital world of computers.
Open source software already powers most of the world, partially because it is free and mostly because it is so accessible. Under an open source system, the flaws and imperfections in every product can be observed, tracked, and fixed, much like the Japanese philosophy of "continuous improvement" known as kaizen, which is applied to every aspect of a process. By following these principles, we believe that the open hardware movement is poised to fundamentally change the global product economy.
At Input Club, we design and produce mechanical keyboards using this same philosophy and workflow, similar to how a person might develop a website or application. The design files for our keyboard frames and circuit boards are available via GitHub. The open source firmware, the Keyboard Layout Language (KLL), has contributors all over the world. This may seem like a standard process to people active in the open source community, but I assure you that it is not the norm when making keyboards.
Why bother making keyboards open source?
This is a question we hear often. People all over the world use keyboards every day, for a variety of purposes. At the core of all our keyboards is the ability to easily reconfigure any key to do any action. While normal typists make do with simple macros like Ctrl+C and Ctrl+V, programmers and gamers have much more advanced needs. People that use Adobe Photoshop or Premier often have special key bindings for most of their keyboard.
Also, while the English-language QWERTY keyboard layout is the most common type used, there are many other languages spoken on Earth. A standard American National Standards Institute (ANSI) layout is a physical representation of the English language. Languages such as Chinese, Swedish, and Arabic have far more letters and symbols and don't map perfectly to the ANSI keyboard layout.
Beyond languages, there are many people around the world who use alternative layouts to QWERTY that allow them to type faster and strain their fingers less. Some of these layouts include Colemak, Dvorak, and AZERTY. Using open keyboard firmware enables someone to load all the possible layouts directly onto the keyboard. While there are still some challenges ahead, it will eventually be possible to load layouts for every language such that, no matter which language you speak, you'll be able to type the symbols you need.
Much like printers and graphing calculators, keyboards have been mostly ignored by the innovation that has swept through the consumer products market over the last 20 years. During the golden age of computing, when companies like IBM were first popularizing personal computers, keyboards were the shining star of any desk. People had to be convinced to use computers, and it made perfect sense to spend time and energy designing the one part that they would actually touch. Production of iconic keyboards like the IBM Model M could cost upwards of $100. Today, most keyboards are mass-produced, disposable devices that may be purchased for under $10. Luckily for our endeavor, people that type often have realized that very little creativity can be imbued into a $10 object.
Where we began
Input Club started as a project to improve on the keyboard market status quo and to develop a production framework that could output any keyboard. The members of Input Club are all based in different cities around the United States, coordinating entirely through Internet Relay Chat (IRC) and online forums. The online mechanical keyboard community is a vibrant collection of makers and hackers that like inventing and building their own keyboards. In the United States, the biggest forums are Geekhack and /r/mechanicalkeyboards, and the European forum is Deskthority. Jacob Alexander, known online as HaaTa, founded Input Club originally to build keyboard projects for the community group-buy platform Massdrop. Massdrop's model allows people to express interest in a product regardless of whether it exists, enabling things like fancy keyboards to be invented on demand. Working with Massdrop allowed us to develop a no-inventory system of producing keyboards, making only as many as were ordered.
Input Club open source keyboard components
Massdrop, All Rights Reserved
From the beginning, Input Club decided that these keyboards would be open source. The intent was to make sure that the keyboards could be serviced and customized by other enthusiasts. This is similar to how IBM and many other companies used to provide service manuals for all their products. While designing the production framework, we knew that these keyboards would be constantly changing. This meant that we couldn't design any tooling or molds for these keyboards, as the design could be slightly different in a few months. Fortunately, most of the parts of a keyboard are readily available at electronics suppliers such as Digikey, so we were able to separate the bill of materials (BOM) into two categories.
- Off the shelf: A list for off-the-shelf components, things like mechanical keyswitches, USB cables, and electrical components.
- Custom: A list of things that had to be made, things like the circuit board (PCB) and the mounting plate.
Infinity 60% Keyboard: Early lessons learned
For our first product, the Infinity 60% Keyboard, we made our lives much more difficult by including keycaps and stabilizers for wide keys in the Custom list, a decision that delayed the first delivery considerably. Every key but one was readily available, as we foolishly included a custom-width spacebar that was just slightly shorter than a standard spacebar. To summarize a very long ordeal in one sentence, I had to spend a weekend in the Santa Cruz mountains with a very talented tungsten inert gas (TIG) welder bending spacebar stabilizer wires by hand to fulfill the first production run. Even now when I recall this first round of making 350 mechanical keyboard kits, what I remember most are the truly unusual showstoppers that we found a way to navigate around.
Infinity 60% Keyboard
Massdrop, All Rights Reserved
Small mistakes aside, the entire production and fulfillment of our first keyboard took just a few months. We decided to reduce the number of components by one, and instead of using an injection-molded case we simply bent the mounting plate at the edges to create a "minimum viable keyboard." After we shipped the first round, we released all the design files and firmware on GitHub so that anyone who was interested could reproduce our design. To our pleasant surprise, within a year we discovered derivatives being made in China with genuine improvements on our design. Most companies would be terrified to see a Chinese clone of their product that was better and cheaper, but for our team, it was the moment we knew we had achieved our goal.
Part of what makes open source development so exciting is seeing other people using what you make. Accessibility is fundamental to open source and to magnify that idea we chose to make the keyboards a force multiplier for accessibility. To program one of our keyboards, you can use our web configurator as well as the command line tool dfu-util. The keyboards can easily be flashed over USB, meaning that the actual keyboard layout is changed at a hardware level. This is in stark contrast to the more common technique of using a piece of software that constantly runs in the background to interpret custom macros and read every one of your keypresses. An added bonus to changing the keyboard itself, instead of using software, is that it is compatible across operating systems.
Infinity ErgoDox: Solving the split keyboard
Infinity ErgoDox split keyboard
Massdrop, All Rights Reserved
Once we had a working model that enabled the creation of keyboards with any layout, we decided to add challenges to the framework. The next product was a split keyboard, the Infinity ErgoDox. One keyboard is very easy to control, but for this project, we needed to modify the KLL to handle multiple keyboards connected to one another. The implementation we chose was to make each half a standalone keyboard, but when they were connected, one would take over and control the other half. For fun, we made it possible to daisy-chain five or six keyboards together, though this was more as a proof of skill than anything else.
Keyboards daisy-chained together
Jacob Alexander, All Rights Reserved
WhiteFox: Collaboration pays off with dream keyboard
After completing the Infinity ErgoDox, we partnered with enthusiast keyboard designer Matteo Spinelli, known as matt3o, to build his dream keyboard, the WhiteFox. The Infinity Keyboard's goal was simply to make a keyboard, and the Infinity ErgoDox's goal was to solve split keyboards. The WhiteFox started out as an exchange, as we needed assistance creating our configurator. Input Club was sorely lacking members with web development skills, so we asked Matteo to help build a configurator while we helped design a keyboard. Collaborative partnerships like this are common in the world of open source software, and it was a joy to work together to make something beautiful.
Massdrop, All Rights Reserved
To create the WhiteFox, we created a master PCB with six different layouts and offered six different metal mounting plates to hold the keys. We used a computer numerical control (CNC) machined aluminum case simply for the wonderful aesthetic and lack of tooling costs. To make the custom keycaps, we selected standard Cherry profile caps with dye-sublimated legends, a process that requires minimal tooling. The design went through over a dozen major changes, with prototypes sent from China to Italy to the United States and back again. Fortunately, prototyping costs were fairly minimal; otherwise, the WhiteFox would never have seen the light of day.
K-Type Mechanical Keyboard: The next generation
K-Type Mechanical Keyboard
Input Club, All Rights Reserved
Our latest project is the K-Type Mechanical Keyboard. The K-Type is a full-metal frame, RGB backlit and underlit, fully programmable, open source, dual USB Type C keyboard with the most advanced RGB-capable, hot-swappable mechanical keyswitches and doubleshot Polybutylene terephthalate (PBT) backlit keycaps. These are the best and most desirable properties present in the finest mechanical keyboards, but they are only one part of our objective for this product. The true purpose of the K-Type is to get an open source device onto the general public's desks.
It is our firm belief that the open source version of anything can and should be the superior option, and the K-Type is our latest way to further that goal.
Change is inherent to open source products, and the process by which improvements are made and implemented must be intentional to the whole framework. Without Massdrop's assistance and unique method of organizing demand, we wouldn't be able to rapidly develop and produce new keyboards. This style of creating hardware is only possible with a global network of suppliers and manufacturers and support from the open source community.
Products with an active community helping to improve them over time have so much more potential than normal products that it is hard to compare them. Reproducing the engineering team and hiring a team to work on these products full time could cost millions and simply wouldn't make business sense. Instead, we work on these projects because we care about them and really want to type on a great keyboard. These are the reasons why we build open source mechanical keyboards.