For decades there has been only one option for a PC input device. You are limited to only the standard keys and no additional input types are possible without separate devices. Additionally, keyboards only come in a few sizes but there are no options for alternate sizes or customizable shapes. Software has evolved to become extremely versatile and user-customizable, and it's time for hardware to follow this idea.
The purpose of the modular keyboard is to provide an extensible and fully customizable input system for any computer. The scale of the keyboard is entirely up to the customer, as they could build a board with only four switches, only twenty-six switches (for the alphabet), a full-sized normal keyboard, or even bigger. The configuration of the keyboard is both physically customizable and digitally customizable. Any key can be mapped to not only normal key inputs, but also perform actions such as executing programs, scripts, and more. Physically, the keyboard comes in individual switch units that can be snapped together in any design possible. In addition to standard keyboard switches, the modular keyboard will have all sorts of input keys. Switches, dials, touchpads, and more can all be added and customized programmatically to interact with the computer in any way the user wants.
The target of this product is not just programmers or gamers who typically dominate the consumption of premium keyboards. Due to the versatility of the input types and what they can do, this keyboard could be used by anyone in any profession. Anyone should be able to find use for this keyboard that will greatly improve their efficiency in whatever they do.
There are two types of keys: the Main Key, and the Extension Keys. The Main Key is required and is the standalone minimum. The Main Key contains a microcontroller, and the Main Key comes in a wired version which would plug in via USB to the PC, or in a bluetooth version. The Extension Keys do not contain any microcontrollers, just electrical connections. Keys will connect together via one of two ways which needs to be determined by me through experimentation. I am first considering using magnetic electrical connections so you just push two keys together and the Extension Key is recognized by the microcontroller in the Main Key. Alternatively if a magnetic connection provides issues such as disconnects or not supporting well, a snap together electrical connection could be used. This would be built into the plastic component of the base of each key, and when snapped together the metal connector plates would connect. This would likely hold together much better if the magnets do not.
The software component would contain both the user friendly interface, as well as all the backend logic needed to make this product fulfill the vision. The interface would display a map of the connected keyboard as it would look in person. You can simply click one of the keys and a menu would appear with all the options for configuring that key. You would be able to set it to any normal input key, or bind an action to it. An action can be anything from a terminal command, to executing any program or application, to even performing a series of macros. I will likely use Electron.js for the user interface, and depending on the microcontroller I will likely need to write new drivers for the keyboard to manage recognizing Extension Keys and their positions, and translating that data for use in the software. The drivers and additional backend logic will be written in C.
I expect this project to be successful as I feel I have the necessary knowledge and skills to successfully build it. Additionally in a scenario where I brought this to market I could see the project being very popular. Selling would be an issue at first because my costs to produce will likely be high at first, but over time and with a proper business and advertising plan I could see the product being a successful and popular keyboard competitor. The first step is making a working prototype for myself, because at the end of the day my biggest customer for this product is myself and I would love to have this product myself and use it.
The costs of the microcontrollers I’ve researched can range from $0.60-$3 per, however with bulk ordering there are sources that could provide them for $0.04 for commercial production. Additionally you can get the mechanisms for mechanical switches for around $0.14 each or even cheaper for commercial productions. The 3D printed parts will encapsulate the microcontroller in the Main Key, as well as the inner electrical connections for Extension Keys. This part must integrate both the base of each individual key as well as the mechanisms of the mechanical switches. While this part hasn’t been specifically designed, a plastic 3D printed part of around this size would cost anywhere from $0.05-$0.45 for each key. A total estimated cost for each individual key would be around $0.80-$3.60 for the Main Key, and $0.20-$0.60 per Extension Key.