modules

UHK at Mechanicon, and fixing the freeze bug

We’ll be at Mechanicon, Frankfurt on November 3.

Feel free to check out our delivery status page for the estimated delivery date of your order.

Hi there, and welcome to our monthly status update! Let’s get right to it!

Mechanicon

We got a nice invitation from Christian Bäuerlein, organizer of Mechanicon, the largest German meetup for mechanical keyboard enthusiasts. Based on the video and photos of Mechanicon 2017, it’s quite an event, so we’ll be there!

By “we”, I really mean myself. I’ll make sure to bring a couple of UHKs, so that you’ll be able to give them a try. I’ve never been to Frankfurt, so I’m excited to be there, and meet with fellow keyboard enthusiasts.

I hope we can stretch the fun times, and nerd out even after Mechanicon ends at 20:00. Speaking of afterwards, if any of you could offer a couchsurfing opportunity in Frankfurt, I’d be more than happy to take it. I’d only stay for a night after the event.

Progress on the freeze bug

Miraculously, I was able to reproduce the freeze bug since our last monthly update, I believe I made a lot of progress after that, and committed a fix. Unfortunately, I don’t have a sufficiently large amount of feedback to confidently say so.

Given the unusually rare occurrence of the bug, there’s only one way to figure out whether the firmware is sufficiently stable: to flash it to production UHKs in the factory, which is exactly what we’ll do soon. Worst case scenario: some of you will have to downgrade to firmware 8.2.5. In my mind, this is way better than having to stick to an old firmware version till the end of times.

Brett’s review

An awesome UHK backer, Brett Terpstra wrote a very nice and aptly named article “I wrote a review of the Ultimate Hacking Keyboard for you nerds” on his blog which you’re welcome to read.

To my surprise, Brett also talked about his UHK on his podcast called Overtired. Listen to episode 77, and jump to ~30:40 for the UHK part.

Max’s new keycap set

Max’s never-ending journey of pimping his UHK continues. His current creation is a black and white UHK.

In his true style, Max shared the keycap sets he used on Reddit, and posted a fair number of nice photos on Imgur.

In an interesting turn of events, Max and I have actually met in person since our last monthly update. It just so happened that he was crossing through Hungary, which served as the perfect excuse for the two of us to meet. We ended up talking for hours, mostly about keyboards as you can imagine. He’s a great guy, I enjoyed his company very much, and I’m looking forward to seeing him again.

Module ETA

The standing ETA of the modules is December, but it’s blindingly obvious that we won’t make it in time.

This year has been unusually eventful. We had to scale up production which called for a manufacturing execution and fulfillment system that I developed from the ground up. Then we set up and fine-tuned our webshop. Soon, we’ll have to transition to on-demand manufacturing which will call for quite a few backend system changes. And amidst all these happenings, we’ve been pushing the firmware and Agent further, and answering an increasing rate of customer inquiries.

We keep churning out the mini batches at a steady rate, and things are expected to settle down by the end of the year. Only from that point on we will be able to truly focus on the modules.

In the past, we have always laid out an ETA, often missed it, then updated the ETA. It’s alluring to lay out estimates because it temporarily calms people down, and stops the seemingly endless flow of “When will my order arrive?” questions. But every time the ETA is not met, it erodes trust just a little bit more. We didn’t mean to lay out bullshit ETAs on purpose, it’s only so that hardware is incredibly hard to make, much more so than software, which is very hard by itself.

Given the above, I decided to not lay out an ETA for modules right now, only later when we'll be sufficiently close to their production. I’m confident that we’ll make tremendous progress with them as soon as things settle down, and I welcome you to join to our journey of making the modules by following us via our blog or newsletter.

Thank you for reading this update! We’ll be keeping you updated on all things UHK, and we’re looking forward to talking to you on 2018-11-15.

Production and module progress

Important: Please make sure that your shipping address is up to date! You can change it on your Crowd Supply account page. Please also check out the delivery status page.

Hi there, and welcome to our monthly status update!

TL;DR: Since our last update, we’ve sent out mini batches 5, 6, 7, 8, and 9. This is the highest volume we’ve produced so far, but not as high as we ultimately aim for. We’ve fallen behind with pre-assembly due to the aforementioned staffing issues, but we’re catching up, and the ramp up is still underway. The development of the modules is in progress.

First up, let us share a beautiful and very original picture that we love very much. It’s made by Yukio Miyamoto. He is a masterful illustrator who also happens to be an awesome backer of ours.

Your recent feedback

The feedback you keep giving to us continue to be amazing.

The following is an interesting one. Did you know that when armed with a USB OTG cable, you can connect your UHK to your Android phone, and you can probably also control the mouse pointer? (Recent Android kernels tend to support USB mice.)

Lastly, this one made us laugh out loud:

Please keep them coming! We’re excited to hear about y’all.

Module progress

Production does keep us busy, and we can’t yet devote as much time for development as we’d like to, but we’ve made some progress with the modules.

The following is sitting on my desk, and it might just be the weirdest keyboard ever.

But most importantly, this Frankenstein keyboard is a proof of concept! This is 1 UHK right half and 3 left halves interconnected. The top left half simulates a left module, and the top right half (which is a left UHK half) simulates a right module.

The keyboard halves and modules communicate via the main I2C bus of the UHK. The right UHK half is the I2C master which initiates all communication on the bus. The rest of the devices are I2C slaves. From the standpoint of the firmware, there is no difference between the left keyboard half and the modules.

I basically dremeled a protoboard to size, and created a passive 4 port 4P4C hub out of it to interconnect the pieces. Then I added test keymaps for the modules, and reflashed the firmwares of the left module and the right module, so that their I2C addresses don’t clash with the I2C address of the left UHK half.

This proof of concept works as intended, and now I can type on all the 4 keyboard halves, making me seem like I overcompensate for something.

As you can imagine, this is the first step of many to follow. Next up, I will extract the part of the firmware that will be shared across the modules and the left half, and then create separate firmware projects for the modules, utilizing the extracted code.

Then I’ll attach the peripherials specific to the individual modules to these development UHK left halves, and write firmware code to drive them.

In the meantime, András will finalize the plastic cases and mechanical design of the modules, so that they’ll be optimized for manufacturing. This will, in turn, enable me to design the custom PCBs of the modules.

In a way, developing the modules is like developing additional products - 4 products to be exact, and even though we’ve gained a lot of experience, realistically speaking, there’s no way the modules will be ready by the end of August as originally planned.

Given the above, we’re changing the estimated delivery date of the modules to the end of December which should be more realistic. None of us are happy with delays, but we’d much rather take our time than compromise the quality of the product even the slightest bit. According to your feedback, it’s the right thing to do.

Thank you for reading this update! As always, we’ll be keeping you updated on all things UHK, and we’re looking forward to talking with you on 2018-07-12.

Pilot run success and what’s next

Hi there, and welcome to our monthly status update!

TL;DR: The first 50 UHKs and palm rests of the pilot run were delivered, and according to the feedback we received it was a huge success! The recipients of the pilot run gave us a ton of feedback, so we’ll go over the issues they encountered, and tell you how we’ll fix them in upcoming batches. We’re raising the price of the palm rest to $55, and we’ll raise the rest of the items by 10% soon. We plan to deliver the remaining 1,950 UHKs of the first batch from February to April. We’re putting an increasingly heavy emphasis on finalizing and manufacturing the modules.

The Pilot Run Was a Huge Success

It’s one thing to design a product, and another to ship it to all over the world. András and I poured our hearts and souls into this project, we obsessed about the smallest of details, and even though we were definitely hoping for the best, we couldn’t know for sure how much you’d like the end product, so it’s safe to say that we were excited.

I’m happy to say that the feedback we received from the recipients of the pilot run was absolutely fantastic! You praised the overall build quality, the nice packaging, the onboarding experience, and the ease of use of Agent among other things.

Let me feature a couple of your tweets:

Thanks so much for the posts, everyone! Your enthusiasm and support have been overwhelming!

Pilot Run Issues

Despite its success, the pilot run wasn’t without issues. In the spirit of transparency, we’ll go through all of the issues you encountered.

Smashed Boxes

There are two small boxes within the main UHK box which got smashed on four occasions out of the fifty pilot run units. We believe that some of these occurrences went unreported, and there may be more. This is what a smashed box looks like:

We spent a ton of time and a fortune on packaging, so this is a big deal. Even worse, on one occasion, even the case of a keyboard snapped apart. Luckily, the owner managed to snap it back with a bit of pressure, but this doesn’t make the issue any more acceptable.

According to the reports we received, only USPS-shipped UHKs were affected. We’re not sure whether it was due to the holiday madness, or if it’s a general issue, but we reinforced the boxes, which will hopefully resolve this issue in the long run.

Sharp USB Cable Recess

There are two recesses in the case which hold the USB cable and they’re way too sharp and chew up the USB cable quickly.

The mold has already been modified, so the edges should be smooth going forward. A backer reported that he easily managed to sand down the sharp edge, resolving the issue in no time. If you’re affected, you might want to do the same, but if you want a replacement case, please just let us know.

Loosely Connected LED Display

Some of you reported strange artifacts appearing on your LED display, which is a sure sign of a loose FFC cable.

The FFC cable connects the display with the left main board. Apparently, we could have done a better job connecting them during the assembly process. As a result, the cables of two UHKs got loose during shipping. We’ll try our best to more thoroughly assemble future batches.

This issue called for our first ever repair guide. We have already emphasized the importance of repair before, and this was the golden opportunity to follow our words up with action. Both affected backers were able to fix the issue using the guide and they even contributed to it. Thanks so much!

Just to get things straight, we don’t expect anybody to repair his/her UHK, but the opportunity is there, and we encourage repair in general. It’s certainly much faster than sending it back and forth to the other side of the world, and especially useful after the warranty period is over.

Feet Molding Issues

On two occasions, visible artifacts were noticeable on some feet.

This is clearly an injection molding issue. We’ll do heavier QA in this respect.

Software and Firmware Issues

A number of issues have been reported recently in the firmware and agent repos. The vast majority of these issues are not critical, but they affect usability in one way or another.

Understandably, we’ve been mostly busy with the critical issues. The most critical was a firmware issue that made the UHK freeze after a while. This was really annoying because it was super hard to find the root cause of it. Luckily, it looks like we’ve been able to resolve this, and it shouldn’t affect more people.

There was another critical issue in which the left keyboard half got bricked during the firmware update process. I’ve made the update process more robust, and improved the update script, which unbricked the unit. This script feature will be integrated into Agent soon. The UHK should very rarely get bricked, and when it happens it should always be unbrickable.

Going forward, we’ll be addressing all of the issues of the agent and firmware repos, but there’s a lot on our plate nowadays, so some may take a while. We’re doing our best.

All Hail Our Contributors

Mikko Lakomaa, an early contributor of ours, switched into high gear after receiving his UHK, and implemented two much-welcomed issues. Thanks to the fruits of his labor, now we can adjust mouse speed and LED brightness via Agent.

Thanks so much for your contributions, Mikko! It’s nice to see Agent improving so rapidly.

Price Increases

Effective immediately, we’re raising the price of the palm rest to $55, and we’ll raise the rest of the items by 10% soon. Let me explain why.

When we originally envisioned the UHK palm rest, its design wasn’t finalized, and we weren’t sure about the materials and technologies we’d ultimately use to craft it. We were also unfamiliar with the costs involved. As the design progressed, we were consistently moving toward an increasingly high-end, premium product which inevitably added to its cost, so much so that up until this point we haven’t had any profit on the palm rests when selling them for $30.

For what the palm rest is worth, $55 is still a bargain considering the market prices. If you search for “wooden wrist rest”, $40 is a usual price tag, but those palm rests are made of one wood piece, not two pieces, don’t feature powder coated black plates, and their geometry is less ergonomical (simpler, thus cheaper to machine) than the UHK palm rest.

Eventually, we’ll further raise the price of the current wooden UHK palm rest to about $80 which is a reasonable market price, but before doing so, we plan to offer a less premium, and more affordable palm rest in addition to the current wooden palm rest.

We’ll also soon raise the price of the other items by about 10%, including the UHK, extra keycap sets, extra cases, and the modules. This is justified by the heavy weakening of the US dollar during 2017. We pay our suppliers primarily in Hungarian forint, so this very much affects us. 10% is actually less than the weakening of the dollar which is about 15%, so we’re trying to not raise prices too heavily.

Nobody likes price increases, but we’d much rather take this route than sacrificing quality, or allocating less funding for R&D. We hope you understand and resonate with our mindset.

Expected Delivery and What’s Next

Going forward, our most immediate goal is to deliver the remaining 1,950 UHKs and accessories (everything but the modules) of the first batch. We expect to deliver these items from February to April, and then the second batch will closely follow.

Our assembly operation is admittedly micro-scale compared to the assembly lines of China. As we previously stated, instead of hiring a Chinese OEM for assembly, we opted to set up our own assembly line in Hungary and operate it in the long term. This has numerous benefits, like rigorous QA and direct control, but the downside is that the throughput of this line is rather low.

It wouldn’t make sense to massively scale up production because the accumulated preorders translate to a huge peak regarding assembly. It’ll considerably settle down after delivering the pre-orders, so hiring a bunch of people only to fire them soon afterwards doesn’t seem like a good idea.

We plan to keep assembly going continuously, and ship so-called mini batches on a weekly basis. We’ll remind you in a future update to change your shipping address before orders start going out, but please do check/change your current address by going to your Crowd Supply account.

As for the modules, fear not, we didn’t forget about them. We’ll be allocating more and more resources to finalize and manufacture them. András has been working on them recently, and this is the latest, and probably final design of the trackball module.

I think András did a great job designing this module. I cannot wait to see it work and give it a whirl (pun clearly intended).

Thank you for reading this update! We hope you enjoyed it, and we’re excited to talk to you on 2018-02-15.

Tweaking the molds and preparing for the pilot run

Hi there, and welcome to our monthly status update!

TL;DR: The BOM is fully finalized and ordered. The UHK prototypes have improved a ton in the EMC department. Agent and the firmware has evolved a lot. The key cluster and trackball modules have been mechanically prototyped and tested. New developers joined our forces. We've tested the molds and found some issues which will introduce some delay. We plan to ship a pilot run of 50 UHKs in July. The rest of the UHKs are planned to be shipped starting from August. Please read on!

You can always check out the expected delivery date and update your shipping address on your Crowd Supply account page.

EMC improvements

We've been visiting the EMC lab of TÜV since our first successful test. The reason is twofold. First, we wanted to improve on the results, and second, there were some further tests to be done.

The testing results that we shared with you the last time already passed, but the safety margin was only 2 dbμV/m, instead of the recommended 5 dbμV/m. Our worry was that the margin was so thin that it was possible for the final test to fail. We really wanted to avoid any potential failure, so we have been tweaking various resistor and capacitor values, and have been trying various bridge cables and USB cables to make the margin wider.

You know what made a drastic difference? The USB cable. As soon as we tried a USB cable with a ferrite choke on the keyboard end, the EMC graph changed very substantially. Don't worry, this ferrite choke is only 24 mm x 14 mm in size, and it's very light so it doesn't weigh down the cable.

The updated EMC graph

According to this graph, we went from a 2 dbμV/m safety margin to about 18 dbμV/m! (See the vertical distance between the blue mark around 100M and the red line.) Given these results, we'd be extremely surprised not to pass the final test.

We've also conducted some further tests that we haven't done before. First, we put the prototype into the test chamber and tried to disturb it with focused radiation. We were watching it with a camera to see whether the LEDs go out, and checked it after the test. The prototype didn't break a sweat and kept functioning perfectly.

In the second test, the USB cable was put into a metal cage, and got a healthy dose of radiation. The criteria for this test is that the device can go out of service, but ultimately, it must recover by the end of the test.

The first time this test was executed, the LEDs on the left keyboard half went out and it didn't recover. After that, I made the firmware much more robust, and as a result, the left keyboard half was able to recover like a champ.

Speaking of LEDs, we got so many inquiries about backlighting that it justified its own post, so here you are: Everything about UHK backlighting.

Things are looking so good in the EMC department that I fully finalized and ordered the BOM for the PCBs of 2,000 UHKs, and if everything goes well the UHK will be certified very soon, possibly in June.

Agent progress

A lot has been happening to Agent, our configuration application recently. Józsi is still involved in the development of Agent, but he told me that going forward, he cannot guarantee a fixed number of working hours per month because his life got a lot busier. This made me search for the right candidates, and I'm happy to report that I found two excellent developers.

Róbert Kiss is busy with some of the most pressing Agent issues. Agent has an initial OS-specific privilege escalation step that allows it to access the USB interface of the UHK. Robi implemented the missing Windows-specific part of the privilege escalation step. He's also set up a build process, so that now Travis generates releases for Linux and Macintosh, and AppVeyor generates releases for Windows, and these files get uploaded to the releases section of GitHub. He's also mostly finished the auto-update mechanism of Agent.

Attila Csányi will be busy with a number of important but less time consuming issues given his limited time. He's already made the macro layout more responsive and made the currently selected key highlight and animate very nicely. These seemingly small issues add up big time when it comes to user experience.

Luckily, Józsi is still involved with the development of Agent. Lately, among other things, he's implemented ISO/ANSI layouts. Agent used to display only the ANSI layout but this change will allow it to show the correct layout, be it ISO or ANSI as soon as you plug in your UHK.

Firmware progress

Substantial progress has been made with the firmware recently. The easier part was making the communication between the halves more robust. First up, I added a CRC16-CCITT checksum to the messages between the keyboard halves to improve message integrity. Next up, I implemented a recovery mechanism for LED drivers so that the LEDs also recover when disconnecting/reconnecting the halves. I also made the communication packets between the halves more efficient and smaller.

The harder part is upgrading the firmware of the left keyboard half and modules via USB. You see, it's fairly easy to upgrade the firmware of the right keyboard half because it's directly connected to the host computer. The modules and left keyboard half however are not directly connected via USB. They're connected via an I2C bus to the right keyboard half.

The plan is to implement a proxy mode for the right keyboard half, so that it can route the firmware from the USB host to the left keyboard half and to the modules via I2C. Luckily, such a protocol translator is already implemented so we can use it. It's called BusPal, and it's part of the KBOOT (Kinetis bootloader) package. Unfortunately, it's not nearly as mature as KBOOT, and it was obvious that integrating it to the UHK firmware won't be a walk in the park. I was searching for a proficient developer to make this happen but despite my best shot, I couldn't find a right candidate, so I had to try to integrate BusPal myself.

There were three variants of BusPal within the KBOOT package but I noticed that only one supported USB, so I picked it. In the beginning, I couldn't even build it because it was developed using the the proprietary IAR embedded workbench, not with the free Kinetis Development Studio that is based on Eclipse and GCC. I simply started by putting BusPal into a subdirectory of our firmware repo and trying to make it work. It was an uphill battle at first because BusPal has a huge codebase of which we need very little functionality. Just making the compiler happy has taken days, and after that it was even more work to make it functional. Luckily, over the course of about two weeks, BusPal enumerated over USB and could talk to the left keyboard half. Well, mostly.

Now, I can send protocol commands to the left keyboard half via BusPal but they don't work every time. As it turns out, the ROM bootloader of the KL03, the processor of the left keyboard half is buggy as documented by errata ID 8060, and these bugs have to be worked around. I can erase the processor and query properties, but the firmware upgrade command breaks. Given my myriad of responsibilities, I'd much rather delegate this last step, and it seems that I might have just found the ultimate developer. More about him later.

The state of modules

Up until this point, not too much has been said about the progress of the modules. That's because our primary focus is getting the UHK to market, so András only works on the modules when he has some free time.

At last, I'm happy to show you the first version of the 3D printed modules:

These prototypes were printed using a white, powder-like material, but the final modules will be offered in black color.

Originally, we created two versions of the modules, one of them being totally flat, the other one being angled.

Flat key cluster module on the left, angled key cluster module on the right

We've been experimenting with a front and a top mini trackball on the key cluster module, but concluded that the top one is much more usable, so we'll ditch the front-sided mini trackball.

Angled trackball module on the left, flat trackball module on the right

The trackball module from the inside without the PCB

The reason we've made two versions is to test them and see which version is more ergonomic. The flat modules made our thumbs stretch significantly less, so we're confident that they're a better choice. This is also very fortunate from a manufacturing standpoint as the space inside of the modules is very limited, and even more so in their angled versions, so the flat versions will be easier to design and manufacture.

We also found that it's not a good idea to use two buttons per module because the inner button which is closer to the UHK usually gets pressed when pressing the case button of the UHK. Our plan is to only feature a single button per module, the outer button that is farther from the case button of the UHK.

This is a big step forward, but there's still a lot to do in the future. These plastic cases don't contain PCBs yet, so they will have to be designed. Luckily, the left keyboard half is an module from an electrical, firmware, and protocol standpoint, so we will be able to reuse its schematic and firmware. These plastic cases of the modules are only made for mechanical testing purposes and need to be redesigned here and there because they are not manufacturable, and lack structural support.

Molding plastic parts

I'm a software developer by trade, so I have little knowledge about injection molding. A couple days earlier however, I was fortunate enough to observe the process up close in an injection molding facility where we tested our molds.

The mold of the top right case

As so many things, injection molding looks deceptively simple. Plastic flows into a mold, and the perfect plastic part falls out of the machine. Just like on this video:

In practice, lot of things can make a plastic part less than perfect, such as warping, which is the major issue we have mostly fixed.

You see, warping is a very common phenomenon, and it's usually so slight it doesn't matter. In our case however, it does. As it turns out, of all the keyboards ever created, the UHK is probably the most sensitive to warping. This is because when the plastic cases of the two keyboard halves are merged, it becomes extremely pronounced.

When the UHK is merged and the halves warp even slightly, a very slight V shape can be noticed. This shape raises the four outer legs while the four inner legs firmly touch the ground which is obviously unacceptable.

Surface finish issues, such as sink marks and surface defects are another category of injection molding issues we have to deal with which we have also mostly fixed.

One way to fix the above issues is to tweak various mold and injection parameters which we were actively pursuing quite successfully during our three-day stay at the factory. It's mind-boggling how many parameters can be tweaked, such as the injection speed, pressure, after-pressure, mold temperature, the duration of the molding process, and many more. To make things even more complicated, these parameters are not single numeric values but rather graphs, and multiple points of the graph can be set along the time axis!

The other way to fix these issues is to modify the molds themselves. This is usually more time consuming and involves machining the molds in various ways. Some of our issues can only be solved this way.

We have a rough schedule in place regarding the plastic parts:

  1. Within days, the injection-molded cases will be scanned with a 3D laser scanner to reveal the inaccuracies for the molds to be fixed.
  2. In the next week, the left and right bottom molds will be fixed according to the above results.
  3. Another week later, we'll mass-produce the bottom parts for the pilot run.
  4. Within a month, we'll get all the molds fixed, fine-tune technological parameters, and manufacture every plastic part for the pilot run.

As for the big picture schedule:

  1. In July, we’ll manufacture a pilot run of 50 UHKs and send them out to our pilot testers, which include the various developers, contributors, and backers who have helped us along the way and indicated a willingness to help us rigorously test the UHKs before the main production run and work out any final kinks should they arise. All 50 pilot run units have been assigned, but if any of our pilot testers drops out and we need to fill a spot, we'll solicit volunteers. We haven’t talked about the pilot run yet, but we think it’s critical for the first UHKs to be tested before we actually start the main production run.
  2. In August, we'll launch the mass production of the remaining 1,950 UHKs. The goods will flow out continuously and be shipped approximately in the order they were purchased. Since we are using fulfillment centers in both Hungary and the US, there will be some variation in when your order is shipped, depending on your shipping address, but, basically, the sooner you ordered your UHK, the sooner you'll receive it.

Thank you for reading this update! As you can see, we have to deal with the molding issues which do introduce some delay, but at the same time, we're also making rapid progress. We're asking for your patience and support during these last miles. We'll make sure the UHK will be worth the wait.

As always, we'll be keeping you updated on a weekly basis on social media, and on a monthly basis in this blog and our newsletter.

Talk to you on 2017-07-13!

Updated delivery schedule and a bonus

Another month has passed, and so it’s time for our monthly status update! This one will contain a bad bit of news, a good bit of news, and lots of news bites on our progress.

Updated delivery schedule

Over the last few months, a lot of you have been giving positive feedback on our progress and appreciated the detailed updates. According to our Crowd Supply campaign page, the goods are expected to ship at the end of September.

We’re trying our best to deliver on time, busting our ass day by day, usually even on weekends, and still, it’s quite apparent that we can’t meet this deadline even if we bend over backwards. So the delivery schedule needs to be revised:

  • The keyboard and palm rest are expected to deliver by the end of December
  • The modules are expected to deliver in April 2017

Please let us explain the reasons.

Our April delay that was caused by our previous bank (which we abandoned forever) has definitely contributed to this one, as it caused a lot of overhead, and we could only pay to our mold making contractor in a delayed manner.

Another reason is design delays. We have just finished the design of the feet and the palm rest. Getting the design right has definitely taken longer than expected and now the molds of the feet are about to be made. As a rule of thumb, we rather take the time to get the design right than to rush things and end up with a mediocre product.

We have to focus on the core keyboard first and implement the modules afterwards. So the mold of the modules will be created right after the mold of the keyboard. We will pay the extra shipping fees because of the separate shipment of the modules. That’s the least we can do.

We’re running things in parallel as aggressively as we can to hit our updated schedule. For example, a mold of our special keycaps just got ready in Taiwan, the mold of the case and the cutting tool is being created in Serbia, and our contractor for the LED display has just started to work on their mold.

We’re very sorry for this delay. We understand that you can’t wait to put the UHK under your hands and waiting sucks. We’re asking for your patience and to remedy the situation a bit we’d like to offer something, which is an...

Anodized aluminium palm rest

There are plenty of ways to make a palm rest and we have considered various designs over time. One of the candidates involved a beautiful anodized base plate milled from solid aluminium.

Of course they come in pairs. This is the left one.

Of course they come in pairs. This is the left one.

It was clear from the get go that it won’t be cheap and we were thinking about making it available as a premium product later. But now, it’s our golden opportunity to make up for the delay of the project schedule. So I’m here to announce that we will provide this anodized aluminium palm rest to those who purchase the palm rest pledge before keyboard shipment! The price for the aluminum palm rest will go up afterwards.

Now that we wrapped up the bad and the good news let’s move on to the rest.

Tented UHK prototyped

Since our latest update we got the feet 3D printed, screwed it onto the back of a prototype and shoot a picture of it.

Tented UHK prototype

Everything feels right about the feet and we’re satisfied with the overall design. The palm rest is yet to be fabricated. We’ll make sure to show it to you as soon as it gets ready.

The state of the mold

The molds of the bottom cases are complete. This is the left one.

The molds of the bottom cases

The remaining molds are also in the works, and in our true style, we’ll be posting more pictures as they get made.

Injection molded UHK keycaps

The UHK features two keycap types that are non-standard. One is a concave-shaped, 1.75U, row 4 keycap used by the Mod and Space keys, and the other is convex-shaped, 1.5U, row 1 keycap used by the backspace key.

I’m happy to let you know that recently, our keycap supplier got the molds ready for these keycaps and sent us a couple of samples:

Injection molded Mod and Backspace keycaps, take 1

Injection molded Mod and Backspace keycaps, take 2

These custom keycaps are impeccable and totally consistent with the rest, just as expected. They put a smile on our faces because custom parts like these are major milestones for the project.

The state of the modules

Not much has been said about the modules recently, so it’s time to share some information on them. We’ve actually made a couple of videos of them in action, so that you can get an idea how the modules feel and behave.

Please note that the plastic case and electronics of the modules are not ready yet. So far, the key components have been chosen so we show you the guts of the modules directly connected to the PC.

If you are curious about the exact ICs that we use inside of the UHK, or in the modules then you’re welcome to delve into our datasheets repository.

As for the number of buttons of the right-handed modules we’re not exactly sure yet but we’re aiming for two buttons per module.

Let’s see what we have!

Trackball module

The trackball module features an ADNS-3530 optical sensor which is remarkably tiny and communicates over SPI. This demo board translates SPI to USB but we’ll use a KL03P24M48SF0 microcontroller to translate SPI to I2C which is spoken by the UHK.

Trackpoint module

The trackpoint module features a sensor of an unknown part number (our supplier signed an NDA with the manufacturer so we don’t know) but it’s remarkably similar to the now defunct SK8702 trackpoint module which features the SK7102 controller. Our supplier only provided an incomplete datasheet to us, which is not a major problem because the module speaks PS/2.

We’ll use the FlexIO capability of the KL03P24M48SF0 microcontroller to implement a protocol translator which will translate from PS/2 to the I2C protocol of the UHK.

Touchpad module

This is an Azoteq ProxSense TPS43 touchpad driven by the Azoteq IQS572 capacitive controller. The touchpad is connected via the Azoteq CT 210 configuration tool to the PC.

Being an I2C device, the controller will directly connect to the UHK. We’ll have to design a custom-sized touchpad, however, featuring the IQS572. Luckily, Azoteq provided a design guide for that.

It’s not a coincidence that I mentioned the name of Azoteq a fair number of times above. Back in the day I blogged that we’re looking for a suitable part, then they contacted to us and provided the most awesome support ever!

Key cluster module

The key cluster module features a couple of keys and buttons which are simple to scan by the microcontroller. The tiny trackball is a Blackberry trackball which uses hall effect sensor along the 4 axis. We haven’t yet hooked up the Blackberry trackball to control the mouse pointer but you can find plenty of videos on YouTube of its various applications. I recommend watching Sparkfun’s video of their trackballer breakout board which explains it in detail.

Introducing our firmware developer

A while ago, we reached out to you looking for a firmware developer. We’ve gotten quite a few excellent applications and please let me take the opportunity to thank every one of the applicants for contacting us.

Without further ado, let me introduce you our firmware developer, Santiago González Fabián from the sunny city of Madrid.

Santiago González Fabián

My name is Santiago González and I've been playing with electronics and computers since I can remember, but I discovered the amazing world of embedded systems in the Electronics Engineering Bachelor where I felt in love with 8051 and ASM code.
I've programmed 8 bit and 32 bit MCUs in C and Assembly mainly, and my focus the last 4 years has been the Cortex M world, working at Freescale and NXP as Field Application Engineer trying to solve all kind of issues with Embedded Systems all over Spain, from Automotive to Industrial equipments, from 8 Kb Flash devices toggling LEDs to 2 MB Cortex M7 doing Ethernet, Motor Control and RTOS scheduling at the same time.

Embedded systems are my job and my hobby (Although I also climb mountains in the weekend) so in my free time I look for new challenges in several places (Stack Exchange, HackADay, Electronic Forums...) and that's how I met László and UHK, in my weekly check of NXP Community. After having a look into the project and the open source philosophy behind it, I decided I would love to help if possible. Now the UHK PCBs have arrived to Spain, so I can begin the Bootloaders development :). I cannot wait to start coding!

The new prototype sitting on Santiago’s desk

The new prototype sitting on Santiago’s desk

Since first getting in touch with Santiago, I’ve exchanged almost a hundred emails with him about deep technical stuff. It’s apparent to me that he’s highly knowledgeable, a truly excellent communicator, and his enthusiasm clearly shows. We couldn’t ever wish for more than that.

The bootloaders of the UHK are a lot more complex than those of regular keyboards (not that most keyboards have a single bootloader to begin with). This is because our design is highly modular, composed of separate keyboard halves and modules, each running separate firmware images. So naturally, we want to enable you to upgrade the firmware of every module over USB with a click of a button.

The idea is that the right keyboard half will run the master bootloader that will directly upgrade the application firmware from the PC. The left keyboard half and the modules will run the slave bootloader which will connect over I2C to the master bootloader, which will in turn relay the firmware image from the host computer over USB.

KBOOT 2 already supports the above scenario, but a fair amount of customization has to be done by somebody who really knows what he’s doing.

Apart from implementing the bootloaders, Santiago will be working on parts of the firmware that require deep knowledge of the Kinetis platform, like the FlexIO based PS2 to I2C protocol translator of the trackball, and such.

Still reading? Then pat yourself on the back because you deserve it! Talk to you on 2016-09-15.

The UHK modules and palm rest are for sale!

The UHK with palm rest

Good news, everyone: From this moment on, every one of the 4 originally suggested modules, along with the palm rest, are available for purchase! Here’s the full list of new perks to purchase:

  • a module for $50
  • 2 modules for $80
  • 2 modules and 1 palm rest for just $100
  • 1 palm rest for $30

We will cover shipping costs for the modules, so there is no additional fee for you!

Plus: the first 100 people to get modules will enjoy special early-bird pricing, so get yours now!

None of these perks are stretch goals. As it turned out, the tooling costs of these additions are fairly reasonable - so we wanted to make them immediately available to you.

Module poll results

UHK modules stats

We included a poll in the previous update, and according to the results, you were super eager to participate. Here are the results as we are writing this message:

Our main goal behind running a poll was to find out if there were any modules that people just didn’t really want. But according to the results, each module has a healthy demand! This gives us good reason to make every one of them.

Most of you opted for a key cluster, which is reasonable because it’s the only left-handed module, and it complements any of the others quite nicely.

Most popular questions

There was a comment field in the poll which you’ve made a good use of. When the comments started to flow in, I diligently wrote response emails to all of you, one by one. But I quickly realized that it’s a fight against windmills, and I’m simply not able to keep up with the heavy flow of seemingly endless comments.

So I decided to extract the most popular thoughts into the following FAQ to address them. If these FAQ entries don’t cover your own question, and you still didn’t receive an answer from me, then you either didn’t specify your email address or you’re one of the 5 people whose email requires further, longer discussion and I haven’t answered yet.

Q: The trackpoint needs to be up by the Y/H keys, not down by the N/Space.

A: Believe it or not, we found only a single kind of trackpoint module in all of the Internet. This trackpoint sits in the middle of a 3x3 cm sized printed circuit board, so not only we can’t put it near the Y/H keys but we can’t even move it higher because the stainless steel guides that hold the module and the keyboard together are in the way.

Q: Is there an option to make the pointer modules attach higher, roughly between g and h keys, so that they could be easier to reach with the index finger as opposed to the thumb?

A: In most cases, this is not possible because, again, the stainless steel guides that hold the module and the keyboard together are in the way. It’d also make the modules very bulky because they connect electrically via the bottom connectors of the UHK so the module would have to stretch all they way down.

Q: Is the touchpad multi-touch capable?

A: Unfortunately, it isn’t. A while back, I contacted with Synaptics, another huge multi-touch touchpad manufacturer. When I asked for their datasheets, they wanted me to sign an NDA (non-disclosure agreement). I didn’t want to corrupt the open source spirit of the UHK, so I refused. Based on your comments, I’m sure that many of you feel the same way. If any of you know a multi-touch touchpad manufacturer who doesn’t insist on NDAs, then please get in touch with me and I’ll contact them.

Q: Can

[your favorite module] be switched from moving the pointer to scrolling by keeping another key pressed?

A: Yes, this will be possible. You’ll be able to specify a set of layer switcher keys (of Mod, Fn, Mouse), and keeping one of those key pressed will activate the non-default mode of pointer modules (moving vs scrolling). You’ll also be able to specify the default mode for each module, of course.

Q: Is it possible to right click and scroll with the touchpad alone?

A: Yes! By default, these features are supported out of the box. The upper right region of the trackpad emulates right click. There’s also a scroll zone on the right side and an outer drag and drop zone.

Q: Is there a way to design these modules to plug into either half of the keyboard? Currently, it looks like each given module will only work with one half (for instance, the trackpoint only docks on the right half).

A: It’s possible to design the trackball, trackpoint and touchpad modules to be both-sided but that’d make them very bulky and unappealing, so we decided against it. We’d like to make other-sided modules available at some point in the future.

Q: I’d like to have extra buttons on the trackball / trackpoint module.

A: We’ll try to add 2 buttons to these modules, but we’re not sure whether there’ll be enough space for them. We’ll keep you updated on this.

Q: I worry about the ergonomics/usability/quality of [your favorite module].

A: We’re very serious about these issues. We’ll get all modules tested by many of you backers, and iterate accordingly to make sure that ergonomics/usability/quality is up to very high standards. The ergonomics and shape of the modules are not finalized yet.

Q: Will the modules be compatible with the palm rest?

A: Yes!

Q: Will 3rd parties be able to make and sell their own modules? Open API, 3D-printable CAD data, and easy-to-buy connectors are really expected for 3rd party module developers.

A: The answer is yes to all of the above. We’d love to see more modules and empower the community to make them!

Suggested modules

You were really creative when it comes to new module possibilities. Here are some of the suggestions:

  • LED/LCD display
  • USB hub
  • Fingerprint scanner
  • Analog joystick
  • 8-way directional thumb-pad
  • NFC module
  • Wireless charger
  • Motion sensor like Leap Motion or Project Soli

Not all of these modules are feasible - only low-bandwidth (no more than 10-100 kbps) and low-power (no more than tens of milliamps) modules can be implemented. This means that the USB hub, the NFC module, and the wireless charger are out of question. And I’m not sure how bandwidth-intensive the fingerprint scanner is. The rest should be feasible, I believe.

We’re super stoked about all the extra perks, so now is the time to make them come to life!

If you have any questions, please ask us!

Introducing UHK modules!

The UHK with modules

The key design principles of the Ultimate Hacking Keyboard are productivity and ergonomics. Over the past 4 weeks the UHK has taken the Internet by storm - proving that our philosophy is on-target. The encouragement we got led us to announce something nobody else has done before.

To take productivity and ergonomics even further, we’re excited to introduce modules to the UHK. A video shows so much more than I could ever tell:

As far as we know, this is the first time anyone has created a truly extendable keyboard - and it really opens up a whole new realm of possibilities. Let’s take a closer look at the modules featured in the video.

UHK key cluster module

The key cluster module features 3 regular keys, 2 buttons and a mini trackball which can also be pressed - acting as an extra button.

In-line with the UHK itself, all of these keys and buttons are fully programmable, and you’ll even be able to configure whether you want the trackball to move the pointer or scroll in documents.

Moving vs scrolling is not only configurable for the key cluster module, but for every other module featured below! The modules can be used in conjunction with each-other, so personally, I’d use the mini trackball of the key cluster for scrolling and one of the modules below to move the pointer.

UHK trackpoint module

The trackpoint module surely brings back fond memories for those of you who have owned an IBM ThinkPad laptop in the past. With it, you can not only move the pointer, but click by pressing it.

UHK touchpad module

The touchpad module shouldn’t be stranger to anyone, given that it’s a part of pretty much every laptop and netbook ever manufactured. This module takes it to another level by placing the touchpad where it’s easier to reach - right at the middle of the keyboard. Of course, you can emulate clicking with a simple tap.

UHK trackball module

The trackball module features excellent precision and usability and is well-suited to be used by a thumb.

The UHK is an extensible platform

I cannot emphasize enough that the UHK is a truly extensible platform. In addition to the above modules, we plan to design and manufacture countless others in the future. But we at UGL shouldn’t be the only people able to make new modules.

Just as promised, we’ll open-source the firmware, the electronics and the host-side software. We’ll also extensively document the protocol via which the modules communicate with the keyboard and publish the 3D files that enable you to design new modules yourself. We even use I2C as the basis of our protocol, enabling crazy stuff like chaining multiple modules, or creating submodules of modules.

I personally get all excited when thinking about the range of possibilities. Wanna build a scroll wheel, or a joystick module? How about a mouse sensor that would make the UHK slide and act as a mouse? The possibilities are truly endless!

Which modules do you want?

uhk-modules

So which modules should we start with? You tell us! We’re interested in your preferences and opinions. Given enough interest, we may end up manufacturing every one of the above modules during the campaign.

Even though there are standalone pointing devices with which you can both move the pointer and click, we recommend using 2 modules for improved productivity. That’s because even though you can emulate left click with the trackpoint, drag and drop is a pain and you can’t emulate multiple buttons. The thumb cluster provides you all the 3 mouse buttons, drag and drop becomes easier and you can configure its small trackball to scroll instead of moving the pointer. Basically, you can offset the downsides of any pointing device simply with another module!

Just to avoid any misunderstandings, we want to make clear that the key cluster module mounts to the left keyboard half, and the rest of the modules mount to the right keyboard half. Although it’s possible to design both-sided modules, such modules would be more bulky so we’d rather not make the sacrifice. Over time, we may end up designing both left-handed and right-handed versions of these modules. It all depends on your level of support.

The modules that get chosen will be made available for purchase on Tuesday. The expected price is around $50 per module but we’re planning to offer some good deals if you choose at least 2 modules.

Title