Discovering and debugging intermittent hardware failure related to detecting key-presses via interrupts; Jack Ganssle was right that a real-time clock tick-based polling scheme is more reliable than wiring switches directly to interrupts.
Developing firmware to support complex interactions like “regular key when tapped, modifier key when held”. I designed and prototyped the logic in Clojure, which was not only much more enjoyable, but also took less time than even porting that same logic over to Rust. While I’m glad to have learned much about embedded Rust over the course of this project, ultimately I’ve found the language to be too complex and bureaucratic for my needs. It certainly got the job done, but I always felt like I was fighting against rather than collaborating with the language. (For my next big embedded project, I’ll probably try the deliberately-much-smaller-and-simpler Zig language.)
As for the industrial design, the furthest I got was laser-cutting leather to sit underneath the exposed circuit board. My hope was that it’d provide sufficient grip, but unfortunately the keyboards are still so lightweight that they up slipping around as one types.
Ultimately, I’d say this first wireless keyboard was successful as a prototype: I learned a heck of a lot about PCB design, embedded programming in Rust and C, and bluetooth.
However, I’m not happy with the end result as a product. Not only is it ugly:
it’s also impossible to just pick up use: The keys are laid out differently (ortholinear rather than staggered), one must use layers to type regular characters, and all the keycaps are blank! (Not by choice — they’re the only kind available for Kailh’s PG1350 “low-profile” switches, so non-blank switches would require one to develop custom tooling and do a plastics manufacturing run).
So, for the next prototype I’ll be implementing the familiar Apple layout. (Well, split across two wireless halves — don’t worry, I’m not going entirely normie on y'all.)
I should be able to reuse most of my software and electrical design from the first prototype, hope to focus my efforts on industrial design. In particular, exploring materials besides injection molded plastic and CNC-machined aluminum.
That’ll come down to the manufacturing capabilities I can find here in Taiwan. As such, I’m hiring a part-time assistant to find and work with suppliers — if you know any hungry, Mandarin + English-speaking industrial design or architecture students in Taipei, please send them my way!
“How to make video calls almost as good as face-to-face”. Please read this and act accordingly. Talking to someone whose audio setup is poor (feedback, external noise pickup) is the 2020 version of “neckbeard with body odor and food-stained t-shirt” vibe. Yeah, your Linux audio system worked fine last week and I understand that dedicated microphone costs money. So does dry cleaning — this is a social choice that’ll impact your career is all I’m saying.
“Given social psychology’s newfound conversion to the religion of replication, a theory devoid of causal claims, and therefore predictions, is the perfect theory: it can never be falsified.”
How Kanye West (a musician) negotiated a better shoe deal than Michael Jordan (a basketballer).
“Why didn’t the future that people expected in the 50’s come to pass and how could we get back on track?”
“I don’t care if I miss out on the desirable status of having overcome great adversity™. It’s a currency that certainly has its value. But it’s not worth the price it demands.”
patio11 on check cashing apps.
“The President has removed perceived political threats from their roles simply for doing their jobs […] senior military leadership cannot exercise their sound judgment without facing retribution. Even those who serve our country in the pursuit of justice and fairness under the law, have been sidelined by the President in favor of blatant cronyism” This official Amazon blog post is not pulling any punches. As an American, I’m proud to see our new system of checks and balances working where trillion dollar companies push back against executive over-reach when our legislature fails to do so.
Orca synthesizer, a musical visual programming environment.