Project update 37 of 76
Hi there, and welcome to our monthly status update!
TL;DR: We’ve been making good progress towards mass production. The corrected prototype PCBs have been manufactured, tested, and sent to TÜV Netherlands for final certification. The PCBs for the pilot run are being manufactured. The configuration parser of the firmware has been fully implemented. BusPal got fixed, allowing us to update the firmwares of both keyboard halves. We’ll close the order cancellation period for batch 1 in a week.
You can always check out the expected delivery date and update your shipping address on your Crowd Supply account page.
####Closing order cancellation for batch 1
Order cancellation for batch 1 will be closed in a week. You’re likely to be in batch 1 if your order was made on or before 2017-07-12. The reason is that we’ve already summarized the orders of batch 1, and we’re assembling these orders according to that plan. It’d cause a lot of potential problems to update the orders in the middle of assembly, and the best solution forward is to disallow order cancellation. You can cancel your order until 2017-08-24 but not afterwards. Thank you for understanding!
####Assembling the plates and switches
Our team is working to assemble the 2,000 UHKs of the first batch. Right now, they’re busy with putting switches into the plates. So far, 1,000 pairs of plates have been assembled.
They’ve also half-assembled 150 pair of cases including the magnets, magnet-counter parts, and inserts, and excluding the small rubber feet and the back stickers. It’s a joy to see the fruits of their labor.
####Miscellaneous parts
Lately, some simple but necessary parts arrived from our suppliers, such as the USB cables and the bridge cables. What you see are only some of the many boxes.
We’ve also finished with the metal guides. There are 16,000 of them.
16,000 flip-out feet have been molded.
These are a some of the 5,000 case buttons manufactured so far.
2,000 pairs of vertical PCBs have been fabricated. These will mate with the add-on modules, or with each other when the UHK halves are merged.
####Palm rests
Finally, the palm rests for the pilot run are now ready.
Adding a pair of these palm rests to my prototype truly elevated the overall look and comfort level. It was like putting on the crown jewel.
####Electronics progress
Luckily, the bypass capacitor related fix that I outlined in our previous update solved the I2C communication issue, even though my initial fix didn’t.
When I soldered the through-hole capacitors to the previous version of our PCB it seemed like a success, but it wasn’t. I realized that communication was still unstable. Then I started emailing back and forth with Eben Qiu, field application engineer of ISSI, and he persuaded me that this must be the issue.
Eben sent me an application note titled AN-035-EN Layout Guidelines for IS31FL3731-SASL2 and a further Layout guideline document tailored to the UHK. Based on his advices, I slightly but carefully redesigned the board around the LED driver ICs. The main thing is that the bypass caps must be put as close to the GND and VCC pins of the ICs as possible. GND and VCC traces must be as thick as possible.
Redesigned PCBs featuring bypass caps close to the LED driver ICs
I’m happy to report that the new layout has made I2C communication rock solid, but it’s still possible that it’ll hang every now and then, so we’ll combat this issue in two other ways.
First, I’ve made sure that the state of the LEDs is cached by the master MCU and it only sends updates to the LED drivers when the LED values actually change. By minimizing the amount of communication, we also give minimal chance to the LED drivers to screw I2C.
Second, we’ll make the I2C driver much more robust, so that it’ll be able to recover immediately from errors. Only this solution will result in true robustness.
Having the chance to give the board more attention, I also improved the acoustic noise of the UHK. The noise level was already better than it used to be a while ago, but a subtle high-pitched noise could be heard in a very silent environment. Fortunately, Eben also shared another application note with me titled AN-012-EN Reduce acoustic noise of IS31FL3236 EVB.
I ended up using tantalum electrolytic capacitors instead of ceramic capacitors, which outperformed my wildest expectations in the acoustic noise department. The newest boards are so silent that I cannot hear a damn thing, even when putting my ear as close to the keyboard as possible. And that’s when every LED is driven with full power, which would generate the most noise.
Next up, we went to TÜV Hungary to conduct final measurements at their lab. We finished in the record-breaking time of an hour for both of our prototypes, with the best results so far, and then left the prototypes there. They will send them to TÜV Netherlands for final FCC and CE certification. We should have those papers soon.
Finally, I sent the gerbers to our PCBA contractor, and they started fabricating the boards of the pilot run.
####Firmware progress
We’ve already had a fair number of talented contributors, and it looks like we keep attracting some of the best talent, and this time truly one of the best in the world.
The name of our most recent contributor is Erich Styger and his name is familiar to everybody who has ever worked with Kinetis microcontrollers. That’s because if you search for a Kinetis related issue, you’ll bump into one of his blog posts as the first result which usually also contains the solution to your problem.
Erich started out as a compiler engineer, then accumulated more than 20 years of experience as an embedded systems engineer, and now he works as a professor at ETH Zürich, and also for NXP. His MCU on Eclipse blog is the go-to place for everything Kinetis, and many consider him the world’s most knowledgeable professional in this space.
As you can imagine, Erich is very busy, but over a fair number of emails I’ve managed to persuade him that the UHK is the best thing since sliced bread, and given the development capabilities and open nature of our keyboard, he became quite interested in it. So much so that he allowed me to send him a prototype, then he sent us his fair share of contributions.
Every one if his contributions is a definite step forward, but the one I consider the most valuable is his BusPal fix, as it finally enables the right side firmware to route the firmware to the left keyboard, allowing us to upgrade the firmware of both keyboard halves, and coincidentally the firmwares of the add-on modules, too! He’s also written a relevant blog post on his blog.
Mad props and a pilot run UHK with a palm rest goes to Erich. I feel fortunate, thrilled, and honored beyond words to have him contribute.
Meanwhile, Eric (not Erich), our intern has been hard at work and finished fully implementing the configuration parser. He also started implementing the macro engine. Unfortunately, his internship period is over, so the macro engine is not ready yet, but he was making great progress which I’m very happy about. Thanks so much for your hard work, attention to details, and diligence, Eric!
With the configuration parser in place, the UHK is able to switch across keymaps which was the last major remaining parser related issue. The macro engine will not entirely be ready by the time of the pilot run, but we’ll be gradually shaping it, and it should be ready in the not so distant future.
In the meantime, I implemented an async I2C EEPROM driver, so now the firmware is able to transfer the configuration to and from the EEPROM, enabling the UHK to persist the configuration.
####Estimated delivery and standing issues
These are the major standing issues that affect the delivery of the pilot run:
Top case parts: We’ve already molded numerous cases, but we’re still working on improving the surface quality of the top parts. The molds should be ready in 1-2 weeks at which point we’ll manufacture 150 pairs of them.
Packaging and back stickers: We’ve been working a lot on the design of the packaging of the UHK and the palm rest and we believe they’ll be very fancy. We’ve ordered 3,000 UHK boxes and 1,500 palm rest boxes which may take 3-4 weeks to be manufactured but hopefully we’ll be able to get some of them earlier for the pilot run.
PCBs: The PCBs are being manufactured and are expected to be ready in August. Then our PCBA contract manufacturer will assemble 50 of them for the pilot run.
FCC and CE certification: We don’t have a solid ETA about this, but chances are good that this will be done by the end of August.
The bottom line is that we’re doing absolutely everything we can to deliver the pilot run by the end of August.
Thank you for reading this update! As always, we’ll be keeping you updated on a monthly basis via our blog and newsletter.
Talk to you on 2017-09-14!