Handwired Alpha - Supplies, components, and equipment
Supplies
This keyboard is my very first electronics project. Prior to building Alpha, the only soldering I’ve done was to make the odd custom audio cable. As a result, I was… well, literally ill-equipped to take on his project, which required some serious investment.
Here are some of the essentials I picked up. All part numbers can be found on Digikey, which I used as my primary electronics supplier:
- Soldering Iron (243-1156-ND)
- Soldering Iron Stand (243-1156-ND)
- Hemostat (243-1168-ND)
- Multimeter (MN35-ND)
- Desolder Braid (243-1185-ND)
- Desolder Pump (243-1183-ND)
- Lead bending tool (1568-1132-ND)
- Fume absorber (243-1318-ND)
In addition, I took advantage of a cutting mat that was already in our possession as a work surface.
I also needed some consumables for assembly:
- Magnet Wire (1568-1088-ND)
- Solder (RASW.0201OZ-ND)
A couple of things to note, here.
First, I used magnet wire for the assembly. This was a very good choice. Magnet wire has a couple of incredibly useful properties:
- It is coated with an insulation that burns off with a hot soldering iron and a little solder. This meant no stripping of insulation (except for circumstances where I really wanted to avoid overheating). I could just solder directly, confident that there wouldn’t be unexpected shorts.
- Because it’s solid core wire and not stranded, it can be shaped easily. In the final build you can see how I’ve arranged the wire into clean right angles that would’ve been impossible had I used insulated, stranded wire.
Second, I opted for leaded 63/37 rosin activated solder. This stuff melts clean, freezes fast and consistently, and is generally just very easy to work with.
Components
Just to review, a hand wired keyboard is built of a few essential parts that you have to build or source, including:
- Switches - you gotta press something
- Keycaps - no one wants to just press a switch
- Case - everything’s gotta go in something
- The keyboard controller - so the switches have something to talk to
- Stabilizers - so your spacebar isn’t wobbly
- Diodes - to ensure multiple key presses don’t confuse the controller
- Hardware - you gotta piece that case together with something
Obviously a lot of the nuance in a build is selecting these parts so in the following sections I’ll go over those choices.
Switch selection
Probably the two most important parts decisions when building a keyboard are the switches and the keycaps.
In the case of the former, the best thing you can do is pick up a switch tester, which is a little selection of switches mounted in an acrylic block which allows you to feel out which switches might be best for you.
To narrow it down it’s important to understand the three main classes of switch: linear, tactile, and clicky. All mechanical switches actuate part way through the press, which allows the typist to register a key press without bottoming the key out.
A linear switch provides no explicit tactile feedback during the press. Instead, you just feel some additional resistance as the spring in the switch compresses.
A tactile switch includes the feeling of a “bump” on the way down–a brief increase of resistance followed by a linear-style press through to bottoming out.
A clicky switch behaves like a tactile switch, but includes an audible click to indicate the switch has actuated.
Among these classes things vary widely, from spring weight to tactile bump intensity and click loudness. There’s a lot to choose from!
Since I was building a keyboard for office use, I wanted to avoid clicky switches. But I do appreciate some amount of tactile feedback. Consequently, I decided to buy a KBDfans tactile switch tester.
Once the tester arrived, I eventually settled on the Kailh Hako Violet switch, which is a fairly light switch with a nice, light, tactile bump.
Keycap selection
Keycaps are an interesting challenge to choose. I won’t go too deep into the nuances, as there’s many of other resources out there that explain the variables, but in broad strokes you have to choose between keycap materials (ABS or PBT), printing method (laser etched, dye sublimated, or double shot), key profile (uh.. lots), key profile, and board compatibility.
The material tends to dictate the general feel of the keycap.
The printing method affects how well the keys wear over time.
Key profile is the shape of the keycap. Many mechanical keyboards include sculpted key profiles, which change row to row and create a curved overall shape to the board. Others (in particular the DSA profile) are flat.
Board compatibility is a function of key layout. For example, my layout includes a 1.75u shift (the standard square keycap is 1u all other keys are measured as a ratio of that base size), which is somewhat unusual. As a result, I needed a keycap set that included a shift key of that size.
And, of course, one can’t discount cost.
In my case, my oddball key layout immediately forced me to select DSA profile caps. Why? Well, because my layout had keys in unusual rows (e.g., the arrow keys on the bottom row), sculpted keycaps would’ve resulted in a weird, inconsistent profile, since the keys on my board would be in the wrong place relative to the normal profile for the caps.
Once I was forced to DSA caps, my options were a lot more limited.
On top of that, some of my key size selections (like the 1.75u shift) limited options further.
Factor in cost (keycaps can get enormously expensive!) and I ended up selecting the KBDfans DSA Lazer Etched 145 key blue and white cap set.
They’re not the highest end caps in the world, and the legends will wear off over time, but they’re still a pretty darn nice set!
Controller
To be honest, controller selection was dictated by two factors:
- I wanted an ATmega32u4 CPU, as that’s very well supported by the open source QMK keyboard firmware.
- I was ordering on Digikey.
That left me with a single choice: The Adafruit Itsybitsy 5V (1528-2501-ND).
This device worked out great! It has a decent number of pins (23) at a reasonable price point. The only tricky thing was finding a useful pinout using the AVR pin names. Fortunately, the 40percent.club website had a pin mapping, which I’ve happy cribbed and included here:
With that the rest was a piece of cake.
Case construction
As I mentioned previously, a sandwich-style case is composed of two pieces: the switch plate and the backing plate (and normally a couple of middle layers, but I skipped those).
I opted for 1.5mm brushed stainless steel, laser cut by Underpressure Welding. They did a wonderful job, though I should’ve asked them not to sand off the burrs that resulted from the cut, as the bottom plate ended up with some unsightly marks. Fortunately, the top plate was untouched, and I manually removed the burrs using a metal file.
The plan for the case was designed using the swillkb plate and case builder.
The case is then assembled using nickle plated hex standoffs and screws. Simple and effective.
As you’ll see later, I also lined the bottom plate with a piece of thin foam, both to protect the switch matrix from shorts, and also to reduce noise.
Other parts
There’s a grab bag of other random parts that I needed to complete this build:
- Screws (H742-ND)
- Standoffs (36-24395-ND)
- Diodes (1N4148FS-ND)
- Micro USB Breakout (1568-1194-ND)
- 14 pin board-to-board mating pins (ED6864-14-ND)
- 14 pin board-to-board mating receptacles (ED4764-14-ND)
- 5 pin board-to-board mating pins (ED6864-05-ND)
- 5 pin board-to-board mating receptacles (ED11158-ND)
- 5 pin USB receptacle - (A26475-ND)
- Foam insulation (EAR1033-ND)
- Feet (KBDfans Anodized CNC Aluminum Feet)
- 3M Command adhesive strips (3M162666-ND)
There’s a lot to buy!
Handwired Alpha - Design
Key layout
For my first keyboard I wanted to come up with a design that was unique enough to justify a build, but still practical and useful. After seeing an HHKB layout, I also decided I didn’t want to get locked into a traditional rectangular key layout. I wanted something different.
There are a few things about my target use case for this keyboard, and my own typing habits, that informed the layout I chose.
First, this keyboard would be used at work, where I no longer code professionally. Instead, my keyboard is used mostly for writing prose, in the form of email, documents, and so forth. This fact allowed me to sacrifice dedicated function keys and the grave/tilde key, as I knew I wouldn’t be using them heavily.
Second, my typing style has evolved to rely entirely on my left hand to operate the Alt, Control, and Super keys. Those keys on the right side of the keyboard see no use during my normal day to day activities.
Finally, I do tend to use the arrow cluster and page up/down keys a fair bit. I knew I’d want to preserve them in lieu of a true 60% layout.
What I ultimately arrived at is this somewhat peculiar design:
I developed this using the Keyboard Layout Editor, which is an enormously useful tool!
As you can see, by removing the right-hand meta keys I was able to use that space for other keys that I find most useful. In particular, Vim users will recognize the arrow key arrangement, which mirrors the hjkl navigation cluster. I then adjusted the key dimensions to produce a symmetric, tapered profile across the board.
In addition, I’ve defined a layer that includes the function keys, plus some useful media keys1:
In general this has proved mostly successful, though I gotta admit, the left control key positioning is a little tricky to adjust to (I’ve definitely missed it a few times!) and I do miss the F12 key in Linux (which I use to open Guake).
Case
For the case my primary goal was to build something cheap, flexible, and easy to assemble. I knew that meant a sandwich case design, though in the interest of reducing costs, I left out the interior layers, instead opting for an open plate construction. The result is what I charitably think of as an industrial-style look that let’s you catch a glimpse of the guts of the thing.
Hotswappable
I feel the most interesting aspect of this keyboard design is the entirely hot swappable nature of the build. Rather than soldering the matrix directly to the switches, I used Kailh hotswap sockets, which means the switches themselves can be easily swapped out.
In addition (and I have much more mixed feelings about this), the controller is connected to the matrix using a set of low profile board-to-board mating sockets and pins. This means the board can be easily detached from the matrix, which makes it possible to replace it or reuse the board in another project in the future.
Finally, the use of a USB breakout board with a custom made cable allows me to easily remove the case and detach the breakout board without disturbing the rest of the build.
This construction provides a couple of benefits. First, again, it allows repair or replacement of components and so forth, which is nice. However, for this paranoid first timer solderer, it also meant I could avoid soldering directly to delicate components. Other than soldering the headers to the USB breakout board and controller, all other joints involved cheap, replaceable sockets and pins.
In hindsight, I think this was a great design choice, with the exception of the hotswappable controller. As we’ll get to later, that choice resulted in the case not having enough space, due to the height of the combination of controller plus socket plus pins, which meant I had to get taller standoffs to complete the assembly.
-
This image doesn’t actually reflect the final layout, as I ended up mapping Fn-PgUp to Mute, and configured the Esc key to be the QMK Grave-Esc hyper key, among other minor tweaks. ↩
-
More Mechanized
If you couldn’t tell in my Mechanized post, I’m a big fan of mechanical keyboards1.
Well, unsurprisingly, it turns out I’m not the only one.
In fact, the mechanical keyboard community, which is well represented on Reddit, is a thriving little niche community of total keyboard nerds. And within that community, there are numerous sub-cultures: the keyboard collectors, the artisan keycap fans, the switch hackers, and–and this is the subject of this post–the builders.
Yes, builders–those slightly crazy people who take great pleasure in constructing their very own customized, personalized keyboards.
When my good friend Jas first opened my eyes to this concept, I was fascinated. I joked that this was the nerd equivalent of building your own lightsaber–a right of passage from padawan programmer to master hacker. And, at least initially, the joke ended there.
For context, understand that, in addition to the WASD that I had purchased for myself, I also picked up a Keycool 84s during a drop on Massdrop, with the intent of using the keyboard at work. As a result, I was hardly in need of yet another keyboard.
But the idea got stuck in my brain. I just couldn’t shake the fascination with building my own board.
Now, within the building community there’s a few routes.
First, it’s important to understand the essential bones of a keyboard. A typical build requires:
- The switches
- Keycaps
- A controller
- Some mechanism to wire everything up
- A switch plate
- A case, in which to put everything
The simplest route to fulfilling all these requirements is to buy a kit, which typically includes a PCB, which is used to wire the switches together to a controller to form the essential bones of the board, and the case, where everything lives. The kit might also include switches and keycaps, or they might be sourced separately. In either case, the builder then mounts the switches on the plate, solders them to the PCB, and then puts everything together.
And if it’s a hotswappable build (meaning the switches can be easily replaced), then even the soldering can be avoided!
The more adventurous might have a PCB manufactured, either from an existing open source design or buy designing it themselves.
More adventurous still, one might also have a case custom manufactured, again with either a new or existing design.
And finally, for the most masochistic, one can forego the PCB entirely. Instead, the builder buys a controller (typically an Arduino of some kind), sources or builds a case, and solders the whole thing together by hand with wires and diodes.
Each route has its own pros and cons, trading off cost with effort and flexibility.
As the idea of building a keyboard took root in my brain, I knew one thing: if I was going to do this, I was going to wire it by hand. I wanted the infinite flexibility of a custom PCB with none of the hand holding!
But, of course, I wasn’t actually going to do this, right?
Yet, I found myself playing with different key layouts, trying to find that perfect, unique arrangement that would combine ergonomics, my own usage patterns, and personal aesthetics.
And the I found something I liked, and I thought, well heck, why not send out for some quotes to see how expensive getting a case built would be?
The next thing you know I was filling a shopping cart on Digikey with parts and equipment.
And before you know it, well damn. Apparently, I was committed to building a keyboard.
Let the games begin!
-
And if you read that post, I can confirm that I still love my WASD Keyboard! Those Cherry Blue switches are just… delightful! ↩
Mechanized
I’ve always been a big fan of mechanical keyboards. For many years at work I held on to an IBM Model M, happily driving my neighbours nuts with the loud clickity-clack of its glorious keys. But, alas, it eventually broke down and I had to settle for a run-of-the-mill membrane keyboard.
Weirdly, though, the mechanical keyboard never really died, and thanks to the gaming community, has actually had quite the renaissance over the years. So, when, at work, I found myself needing a new keyboard, I got permission to purchase a eSports Poseidon. I fell in love with it immediately and, with its Cherry MX Brown switches, it has been a total dream (well, until recently… but that’s a whole other story), with just the right amount of tactile response and not entirely excessive noise…
Anyway, my own home setup has been evolving a fair bit lately, and I decided it was about time to ditch my Logitech membrane keyboard for a proper mechanical. But this time, instead of springing (har har) for a mass-produced gaming keyboard, I decided to order something special: a WASD V2 87 Key custom mechanical keyboard with Cherry MX Blue switches.
And it arrived today!
Awww yeah. It’s heavy. It’s seriously clickity-clacky (like… seriously). It looks amazing (some might say “ugly” or “garish” but I prefer “super-retro”). And now I’m writing this post as an excuse to bang away on the damn thing, because man oh man, is it ever fun!
It’s definitely gonna take some getting used to–the keys are definitely stiffer than the MX Brown switches on my work board, though I wonder if that’ll ease over time as I work it in–but compared to the mushy old keyboard I had before, it’s just way too awesome for words!
And it’ll probably drive Lenore crazy!