Failure......is the word. I really got ahead of myself there with that hint at getting an IC going.
But although the recent months have been a bit of a struggle, I've not given up on my project just yet and there's light at the end of the tunnel. So... what happened?
The caseDue to my lack of experience, it was very hard to find anyone willing to take on the project and when I did, the result was not what I had hoped for. The finish was so-so, the parts didn't actually fit together, nor did the PCB.
As I later found out, the core issue seems to be the sheer size of the part as well as relatively very little surface area on both top and bottom. Fine details and small tolerances didn't help either.
For my next prototype I will be looking at machining one myself from either wood or aluminium if it doesn't come out much more expensive. If I do go the 3d-printing route again, I'll split the model into multiple parts that can be glued together and most-likely do away with some features or details that are not necessary for functional validation of the design.
Speaking of functional validation, even though it came out the way it did, it was money well spent. Although I'm not able to assemble the whole thing using the parts I have, I was still able to get a feel for it and the verdict is:
- I'm really happy with how thin the case is (MX keys for comparison) and it feels almost exactly as good as I would've hoped for...
- ...'Almost' because the wrist-pad is way too narrow, it needs to be pushed out another 1.5-2cm so your fingers rest on the home row in the natural position.
PCBFor my first PCB I consider it a success. That said, it wasn't without it's own fair share of issues:
- Assembling the entire thing by hand was an absolute nightmare (ca. 450 smd parts) and as I later found out, I burned about 90% of the LEDs in the process.
- By mistake I used a 3.3V ESD diode for VBUS which led to me removing all the QFP chips and the bluetooth module looking for shorts. Putting them back evenly afterwards was a challenge.
- I also removed the USB port as part of that process and shorted one of it's D+/D- pins which caused data not to work.
- One of the debug output footprints I used (from official KiCAD library) was mirrored rendering it useless. Luckily I was precautious enough to add a second, different one just in case which worked just fine.
After working through all that, I did get ZMK flashed onto the board and validated what I could, even wrote a driver for the IS31FL3743A RGB matrix controller.
But once I decided I learned what there was to learn from this board, I switched my attention to designing the next version - adding features, simplifying the design and making it easier and cheaper to manufacture.
The new boards are already being manufactured and I'm hoping to be able to start working with them by the end of the month - and this time I checked the assembly option
To point out some key changes:
- Added a battery fuel gauge for accurate battery level as well as temperature measurements.
- Added a 5-LED strip indicator above the navigation cluster for all your indication needs (bootloader, charging, caps lock or just pretty lights if you fancy).
- Backtracked on my idea of using two IS31FL3743A drivers and replaced them with a single IS31FL3741.
- Added a buzzer...
- ...and soft-shutdown capability for the power switch so your board can properly greet you when you turn it on or off.
KeycapsI also finalized the keycap profiles - unfortunately the availability of full-size Choc compatible caps hasn't improved much in the last year - and will be printing them next week for some initial testing.