Recently, mouse scrolling has been implemented in the firmware, making the UHK a fully functional mouse controller. Let me show you how it works.

Of course, the key bindings are fully reconfigurable.

Next up, we'll have some exciting news for you. Stay tuned!

This video is for those of you who want to mount the keyboard halves to your arm chair and asked whether you can use a long cable for this purpose. You can use pretty much any 4P4C cross-over telephone cable to connect the two halves.

Next objective: Try a 100 meter long cable. ;-)

Lately, I've written about the ergonomics of the "6" key and given the vast popularity of that post, I decided to compare the ANSI and ISO keyboard layouts in the same manner from an ergonomics standpoint. Let's start with ANSI.

As you can see, the keys of the home row on which our fingers reside in touch typing position are filled with red. There's a thick red line in between to show the center of the keyboard for measurement purposes. I also painted Left Shift and Enter in green and Backslash in blue because these keys differ on ANSI vs ISO.

Now let's take a look at ISO.

(Please note that we won't provide a full-blown ISO layout, but a half-ISO layout featuring the extra ISO key and a bar-shaped Enter key.)

Now we have an extra ISO key painted in yellow, but Left Shift and Enter got farther from the center of the keyboard which is a bummer given their frequent use. How much farther, exactly?

Enter distance Left Shift distance Backslash distance
ANSI 6 4.5 6.75
ISO 6.75 5.5 4.5

Based on the above, it's hard to argue that ISO is more ergonomical. Enter and Left Shift is pressed at least hundreds, if not thousands of times per day and they're about 1 unit (20 millimeters = 0.8 inch) farther from the center on the ISO layout. Backslash is closer by 1 unit and there's an extra ISO key but they aren't that frequently used so it's not a great tradeoff.

Regardless of ergonomics, many of you have made it clear that the ISO key is a necessity for you and some of you are too used to the L-shaped Enter and aren't willing to unlearn your muscle memory. I get it, we're creatures of habbits.

On the other hand, it's also interesting to see that a fair number of people use the opposite standard that they should be using based on their home country. For example, I as a Hungarian should use ISO but using ANSI. On the Hungarian layout the ISO key translates to "í" which is a Hungarian accented character, but I write Hungarian text almost solely with US characters, without accents. Also, as a developer, I strongly dislike that my native layout unnecessarily remaps dozens of characters like !, @, # compared to the standard US layout.

How about you in this respect? Let us know in the following poll until it's open!

An awesome tester of ours just happens to be a VIM user. Apparently, he customized his prototype by putting a VIM key in place of Esc.

UHK with VIM key

He also modified the keymap by binding Esc to the base layer and backtick to the Mod layer.

Thanks and well done, Gyuri!

Some of you have told us that we're doing it wrong, because the "6" key should be on the right keyboard half, not on the left. In reality, the situation is more nuanced than that, and the placement of the "6" key was a conscious design decision on our part.

US people are taught to press the "6" key with the right index finger, but not all countries are created equal. For example, in Hungary, we're taught to press "6" with our left index finger. Go figure!

Let's examine this issue from an ergonomic standpoint. On the following picture, the keys of the home row on which our fingers reside are painted in red. There's a bright red line exactly between the left and right block of these keys. The "6" key is painted blue. As you can see, the bright red line is rightward of the center of the "6" key which means that given its position, it's more ergonomic to press it with the left index finger.

'6' key ergonomics

Now let's take a look from an aesthetic standpoint. Here's the actual UHK layout where the "6" key is on the left keyboard half.

symmetric version

And here's the alternate layout featuring the "6" key on the right keyboard half.

asymmetric version

It's apparent that the former layout is way more symmetric.

There's even more to this topic; You're welcome to read the relevant thread on Deskthority which I started a while back when thinking about this issue. Those folks know a thing or two about the ergonomics and history of keyboards.

Building a solid piece of hardware has always been one of our topmost priorities and we're about to announce the most important news in this department to this day: We're ditching the retractable cable in favor of the cord cable.

UHK with cord cable

Over time, we've contacted multiple retractable cable manufacturers to find reliable cables and got samples from multiple sources. Despite the wide variety of retractable cables, these things have been failing on us like there's no tomorrow. Sometimes the springy mechanism got loose, other times the electical connection failed, but regardless, all of them died eventually.

Some of you have voiced your concern in this respect and as a response in our What's in the Box post we let you know that a cord cable will be provided next to the retractable cable but it doesn't make any sense anymore to ship an extra cable that surely breaks in the short run. According to our understanding there's no way anyone can manufacture a reliable retractable cable at this price point and the market does not tolerate a higher price so there are no reliable retractable cables on the market.

When we were at Prezi some of the folks over there told us that we must not be serious about using retractable cables. Given that yet another cable failed us there, that was the turning point. We're fully confident that this change will benefit everyone involved. Heck, probably even our image got better now that the retractable cable doesn't spoil it!

Yet another good news is that you'll be able to use any cross-over 4P4C RJ11 telephone handset cord or telephone line cord as a replacement. Such cables are in wide circulation and accessible to everyone for pennies.

Let us take a last look on the retractable cable because we won't ever see it again.

UHK with retractable cable

Rest in piece, you unreliable piece of crap.

As the saying goes, "With great power comes great responsibility". This is especially true in the case of the UHK.

You are given the great power of reconfiguring this keyboard in all kinds of wonderful ways, but you can also abuse this power. Imagine binding every key to the letter "A" and setting it as your default keymap. As you might imagine, you end up with a keyboard that is practically useless. Time to meet the factory reset switch!

factory-reset-switch-distant

The switch from the distance

factory-reset-switch-close

The switch up close

factory-reset-switch-on-pcb

The switch on the PCB

Upon pressing it, the keyboard loads the factory keymap that is stored in the flash, ignoring the default keymap that is stored in the EEPROM, leaving you no way to make your keyboard useless.

I think this is one of the small touches that can make or break a product in some situations.

Under normal circumstances, it's possible to upgrade the firmware of the UHK by sending a special USB control request from the host to the keyboard to reenumerate it as the bootloader.

However, when developing the firmware, one can easily screw it up so badly that it won't be possible to reenumerate it as the bootloader via USB. In such scenarios, one has to pry open the case and short the GND and RESET pins in order to enter the bootloader. This is obviously cumbersome, and it would be great to be able to easily reenumerate the keyboard as the bootloader without opening the case, even when the firmware is screwed up.

When I was thinking about this problem, I figured why not put a reed switch inside of the case to short the pins, so I silicone-glued a switch onto the PCB and wired it. Apparently, this is working like a treat.

As it turns out, most reed switches have molded glass bodies that break like a toothpick under the slightest pressure. This is quite a problem for a mechanical device like the UHK. Luckily, not all reed switches are that fragile, and I found one that I especially like due to its rigid body and small size. The PCB of the 6th generation prototype will have a footprint for such an optional reed switch to be soldered by hardcore developers.

This is yet another useful, unique, developer-oriented feature that we can boast.

In this blog, I usually talk about topics like the firmware, electronics, product design, and all that kind of jazz but not many words have been said about the mechanical side of things. To give you a glimpse into this world, let me show you some pictures of András, mechanical engineer extraordinaire assembling our latest prototypes.

Not many people would think that 3D printed objects can be extremely malleable but pretty often this is exactly the case. We used to use Objet polyjets to print the case as opposed to our more recent SLS case. As it turns out, if you leave an object made of such a photopolymer resting in an unfavorable position it changes its shape significantly according to the forces that act upon it. We weren't particularly mindful about this problem so András had to put weights onto the the case to make it even.

putting-weights-on-the-case

But it's not enough in itself. The weighted down case must be heat gunned so that it'll "remember" its current shape.

heat-gunning-the-case

Making the metal guides that hold the two keyboard halves together is also more difficult than one might think, especially for one-off prototypes. First up, András had to grind the steel pin so that it could be shoved into the sleeve.

pin-grinding

And then, it had to be oriented before fitting it into the hole.

pin-orienting

Next up, the pin was interference-fitted into into the sleeve for the shaft to be securely held.

pin-interference-fit

All these steps resulted in the male part of the guide.

pin-ready

After finishing with the above and taking care of many more problems we ended up with the inner assembly.

Looks like a shining armor of a noble knight, worths all the sweat in the world!

A couple of years ago, I was completely new to electronics and never soldered a thing in my life. Fast forward to the previous week, I was soldering the 5th generation prototypes of the Ultimate Hacking Keyboard. It's been quite a journey and although I am by no means perfect at this stuff, upon reflecting on it I realized that I was able to push my PCB assembly productivity to the next level several times in a row, so let me show you what I learned.

Given that you asked for panels from the fab everything starts with depanelization. Even though this is a no brainer and doesn't require any skills or equipment other than a flash cutter, I decided to show it because I'm sure a lot of people have never seen it in action.

Next up, PCB assembly follows, so it's time to heat up the soldering iron.

Some words of advice:

  • You can notice at the beginning of the video that it takes me about 4 minutes to find the MCUs which is exactly what you want to avoid. A while ago, I purchased way too many AVRs, put them into a drawer and didn't take the time to organize them properly which causes me a time penalty every time I search for a specific AVR. I have yet to solve this problem but regarding passive components I already solved it by buying a resistor and capacitor book and a blank SMT storage book. The productivity boost is incredible.
  • It's easier to solder large components first. It's not a coincidence that I started with the AVRs.
  • After soldering large components, it's worth progressing by the descending number of components used per type. In order to generate such a list I ended up writing a node module (and its dependencies) to extract this information from KiCad files.
  • For passive components that have two or three pads it's worth pre-tinning a pad per component before actually soldering them, then soldering the components using the pre-tinned pads, then soldering the rest of the pads. You only have to grab the soldering 3 times this way instead of hundreds of times.
  • Adding easily readable reference designators and component values to the silk screen can be a major productivity booster. Component values are especially handy.
  • There is no such thing as too much flux and a flux pen is the best choice to deploy flux. I use a Circuitworks CW8100 pen which does a great job.
  • DRC is your friend so use it extensively. Even better if your fab provides you a state-of-the-art PCB visualizer that checks your gerbers, like in the case of Eurocircuits.

Often times, it comes very handy to salvage SMD parts from previous prototypes which can be hard to desolder but with Chip Quik it's so much easier. On the video below it takes me 21 seconds to desolder a TSSOP 20 after starting to heat up the Chip Quik with my soldering iron.

Reusing PTH parts is usually much simpler but it can still be a pain. A desoldering station to the rescue! I purchased my ZD-985 desoldering station for about $100, probably the best bang for the bucks ever.

I'm pretty sure that I missed a lot of things but this is a very broad topic and I mostly wanted to give a glimpse into the world of PCB hand assembly. You're welcome to correct me, add suggestions and ask questions!