Custom computer keyboards
Contents
Introduction
The goal of this page is to show you what are computer keyboards, what is possible and how to make one. Making your own keyboard isn't as hard as it seems and there are so many different ways that we'll only scratch the surface here. Of course there are difficult and easy ways, depending on your motivation, skills and time. Let's start on those first.
Many more if you're curious https://github.com/help-14/mechanical-keyboard
Motivations
Why make a custom computer keyboard? Maybe you would like a particular appearance, material or placement of your keys. Maybe you're keen on ergonomics, programmability or DIY, fully open-source/libre. Maybe you want a specialized input device for yourself or for your program (a macropad). Maybe you just want to learn a lot while making something useful!
Personal story
In 2015, during my studies, as my friends told me about mechanical keyobards, I decided to give it a go and I liked how the keys responded to my typing (clicky noise and tactile feedback). I bought one and then decided to make my own keyboard layout (the OS decides what each keys does) based on the french bépo (less movement for french). It took a few months but it was a really great investment! Typing feels easier, more ergonomic and more relaxing.
Recently in 2020, I felt my typing experience could be improved once more (I have a filco majestouch keyboard). I wanted something more ergonomic, with a split design, that follows the ISO layout convention and also low profile keys. Sadly I couldn't find candidates that would fit all those criteria, only partially (One of the big factor is that split keyboards are already… way out of the norm). Thus I decided why not give a try.
That's the road of DIY and innovation… how you can improve life :)
Skills
Not necessary but having some skills will take you to the fast tracks. While making a custom keyboard, you will learn those:
- Electronics (microcontrollers, chips)
- Programming (keyboard firmware like QMK, C language)
- Technical design (vector drawing or CAD)
- Crafting / Manufacturing (soldering, laser cut, 3d print)
Time
Be patient and good luck :)
Anatomy of a keyboard
A keyboard is an input peripheral for a computer, it has materials, hardware and software. We'll scratch the surface and detail further ahead.
- The material commonly consists* of a plate, a case, switches (=buttons), screws, etc.
- The hardware commonly consists* of a microcontroller, the wires, the electronic components (like diodes), the PCB and more.
- The software part is the firmware exposing itself as a USB HID Keyboard and translating the electric signals into keys to register.
Let's delve into the details of each. Once you know each parts with enough details, you can make educated decisions and make your own perfect fit just for you or someone special ;)
* When I say "commonly consists" I mean that some parts are optional or you make hacks (more info below)}}
Material
TODO: explain from top to bottom: Keycaps, switches, plate, layout, case, screws/bolts, bottom.
Plate (the backbone of the keyboard). Theory of layout?
Hardware
TODO: microcontroller, diodes, PCB, wires/solder
Handwire vs PCB.
Software
Firmware. QMK / alternatives. C code, logic, matrix scanning.
Making it yourself
Steps
preparations: brainstorm (what device to "type"), layout, prototyping, buying parts, plate design, pcb design, technical design, manufacturing solutions, validation.
manufacturing: buying final parts, order pcb*, machine lasercut/3d print;