So today I finished the second version of Alpen Clack -- this one built from scratch. As always, the most work-intensive part was soldering everything together. This time I used non-insulated wire, and added some kapton tape where it might touch anything -- this was much faster than removing the insulation from wires for soldering. The finished connections, before closing the keyboard:
Next comes the programming. I used the same firmware as for version one, except this time I had 6 columns and 17 rows (I kept the layout rotated 90°, as this is much easier to fit in 80 columns of source code). I also drilled a small hole for the reset button, to be able to press it with a pin.
Defining the layout was much easier this time, because of the saner matrix -- the Pololu A* Mini has enough pins broken out for me to not care so much about saving them. Still, I miscalculated a little bit and had to use one of the LED pins. That still left me two LEDs for CapsLock and ScrollLock (no NumLock), so it's fine.
Once everything was ready, I spent the customary 4 hours tearing my hair off and staring at the code, trying to debug a problem with it. In the end, it turned out that the compiler was caching a little more than it should, and recompiling everything from scratch solved it.
I fixed the switches in place with a little bit of glue (they can still be removed if needed), and I soldered the horizontal connections with a thick copper wire. Then I drilled the mounting holes for the A* board, and secured it in place with screws. I also drilled the hole for the USB cable, cut the plug from it, passed it through the hole and re-soldered a "naked" plug back. The board is mounted above the arrow keys in such a way, that you can see the LEDs on it -- I will use those for CapsLock and so on. Finally, I taped the metal back-plate with some transparent tape, so that there are no shorts, and screwed it to the back -- to make sure everything fits properly. The keyboard got much sturdier now, and I think it won't need additional enforcing.
Next step is soldering the SMD diodes and the vertical columns, then connecting it all to the board, and modifying the firmware for this particular layout. It's almost finished.
The Gateron switches and the keycaps that I ordered on Massdrop finally arrived. The switches fit nicely:
And the with the keycaps:
I still have two problems to solve, though. First, while the switches fit, they are not particularry well kept in place by their snaps, which apparently are designed for a thinner board. I will need to hold them in place with something. Second, the acrylic sheet on which they sit is really flimsy. I will either need to find something more robust, or have them touch the back plate for stability. We will see how it develops.
While the switches and keycaps will take their time to arrive, I'm still working on the case. I have cut a back out of stainless steel that I have found at the local hobby supplies store. Took 3 stone wheel for my dremel clone, but it looks good enough.
This is my second attempt at laser cutting, and it went much smoother this time, in a large part due to help from the people at FabLab. I generated the switch plate, and then used that as a base for the face plate, back and the layers for the sides. I made a mistake that I didn't make the holes in the back plate a little bit smaller -- so that I could tap them and screw in the bolts into them directly, but I think that I can fix it with some glue and a drill.
Since the keyboard is transparent, I will need to be much more careful about soldering and generally cable routing, to make it look good. I ordered a white A-Star module for the controller, mostly because it has all the 26 pins broken out, but also because it's white and will look cool. I'm going to make it visible right over the arrow keys, and to use the LEDs on it for the CapsLock and other indicators.
I also ordered some brown Gateron switches (they should look nice too, as they have transparent cases), and some keycaps (they didn't have transparent ones), they should arrive in a couple of weeks and then I can continue this project.
So, I guess I caught the bug, and I will be making another keyboard, this time completely from scratch. This time I'm going to carefully pick the switches, design the layout, have the case laser-cut, etc. And that means, I will need these tools:
So you want to build your own keyboard (or keyboard-like device), but you are not sure what to use for the brains and how to connect and program it? I will describe what I came up with for the #Alpen Clack keyboard.
The ATmega32u4 microcontroller is an excellent choice for any HID device, such a mouse, a joystick or a keyboard. That's mostly because it has hardware USB support, so you don't have to muck about with unreliable and hacky bit-banged VUSB. There are three popular boards with that microcontroller: Arduino Leonardo, Teensy 2.0, and Pro Micro (not to be confused with Pro Mini, which uses ATmega328). Arduino Leonardo is too big for our needs. Teensy 2.0 is quite expensive. Pro Micro can be had for about $4 in singles from the usual oriental sources. Sounds like a winner. Let's look at the pinout:
Read more »
While naked keyboard does have its appeal, it's time to build a case for this baby. I started by cutting out the holes for the keys in the face plate of depron:
Read more »
This was the most laborious step of the work. I had to solder all the keys, defined the pins for the rows and columns, and defined the key map. I started with soldering the columns:
Read more »
The favorite microcontroller for all things USB, such as keyboards, joysticks or mice, is the good old ATMega 32U4, well known from the Arduino Leonardo. Of course I don't plan to stuff an Arduino-footprint board inside my keyboard, I need a smaller board. There are two popular small boards with that chip. One is the Pro Micro, the other is Teensy 2.0. I have some Pro Micros, which I purchased for around $4, in my drawer just for the occasions like that. The keyboard modding community seems to prefer the Teensy for some reason, even though it's around $15. Oh well, I suspected it was because it had a GUI uploader.
I was wrong.
It turns out that Pro Micro doesn't break out all the pins. In fact, it only breaks out 18 GPIO pins, and uses 2 more for build-in LEDs, leaving the remaining 5 pins unconnected. Just take a look at the schematic:
Read more »