prototype

Tilt, tent, and screw with the UHK

The Ultimate Hacking Keyboard gives you options!

Most keyboards don’t have a lot to offer in terms of ergonomics. But with the UHK and our new stretch goal, a super-high-quality palm rest, you’ve got tons of them.

Take a look at the palm rest set up in various arrangements, starting with the flat setup:

flat-stand

Tilted setup:

tilted-stand

Tented setup:

tented-stand

András is quite serious when it comes to durable mechanical design. So much so that the base of the palm rest is a solid stainless steel sheet. We surely don’t expect people to wreck this anytime soon. As you can see, the palm rest also comes with a set of legs which can be set in various configurations. It’s up to you which set-up is most comfortable.

You can even screw in your UHK.

We’ve heard from a few people who love the UHK because it will help them handle their disabilities. One creative backer even suggested that they would be attaching each keyboard half to an armchair. In situations like this, we’ve got you covered!

Mountable case

The keyboard features four threaded stainless steel inserts per keyboard half

As far as we know, the UHK is the first keyboard to use stainless steel mounting inserts. These are perfect for screwing your keyboard into almost any situation.

If you’re mounting your beloved keyboard (like to an arm-chair) and need a little more room than the provided cable can allow, not to worry! We’ve got you covered here, too. You can use any standard telephone cable. A while back, I even tried a 20 meter (66ft) long cable. Check it out:

Mousing scrolling on a Nexus 10 with the UHK

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!

2 keyboard halves 20 meters apart

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. ;-)

VIM users rejoice!

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!

Introducing the factory reset switch

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.

Upgrading the firmware with a neodymium magnet

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.

The nuts and bolts

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!

Assembling prototype PCBs

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!

It's testing time!

Up until this point I was the only one testing the UHK and using it as my daily driver which makes me feel all warm and fuzzy but also somewhat worried. As the lead developer of the project I'm hopelessly biased and rather clueless regarding how other folks would use it.

A while ago András and I were attending to Forbes Flow where we managed to show our beloved keyboard to Ádám Somlai-Fischer, cofounder & principal artist of Prezi. Prezi is considered to be the most successful Hungarian startup of all times so let me just say that this is a big deal for us. Thankfully, Ádám found our project quite interesting and generously offered his help. We asked for testers and we ended up getting contacted by them pretty soon.

Today was a truly remarkable day because it hallmarks the delivery of our two, recently built, 5th generation prototypes to the chosen six, namely:

csaba-testing

Csaba

szabolcs-testing

Szabolcs

mark-testing

Mark

Apparently, we forgot to take pictures of Dávid and Vilmos so shame on us! Also, Kálmán couldn't make it but we hope that we'll be able to meet him in person eventually.

Thank you very much Prezi, Ádám, and the chosen six for your help! We already learned a ton of stuff from you guys and this is only getting better as you start to use the prototypes during your daily work. Fear not, we're here to hold your hands!

Last but not least, special thanks go to Ákos Tolnai, our strategic consultant from Ability Matrix. He was with us all the time at Prezi HQ providing invaluable insights that are critical to onboard future users as gracefully as possible.

Validating the 5th generation prototype

Over the last weekend András and I were having a meeting to test whether our latest and greatest 5th generation prototype really fits together as expected. We've made a couple of improvements to this version, the most significant being the stainless steel inserts. Even though this might not seem like such a big deal to the outsider, in reality András had to make a huge number of changes to the CAD model to make this happen.

As always, a picture says more than a thousand words so let us show you the real deal.

The inside of the semi-assembled right keyboard half

The inside of the semi-assembled right keyboard half

The back of the right keyboard half

The back of the right keyboard half

The stainless steel inserts

The stainless steel inserts

The case in pieces

The case in pieces

Parts laying all around

Parts laying all around

Everything fit together very nicely apart from the 1.5mm thick stainless steel plates which were really 1.3mm thick due to the fault of the company that we entrusted. We're gonna have the steel plates of the correct thickness eventually and we'll assemble some prototypes using those.

Title