This is a multi-part series that will go on for as long as it takes to get something shipped!
the idea <- we are here!
the hacky prototype
inevitable problems and delays
socials, interest checks, and preorders
to be continued... or not?
hi yall, happy wednesday :)
sooooo, it’s been yet another chaotic week. i'm starting a new job in july!
Everything else aside, this building thing is gonna happen. I promised y'all, and I shall deliver. But my original schemes are far too grand given the circumstances. I'm doing something small and fun instead!
some origin story monologuing you don't care about
I've been at least interested in having a nice keyboard to type on for a long time. I figure if I'm spending a huge chunk of my day typing, I might as well enjoy it!
My very first mechanical keyboard ever was the Qisan Magicforce, which at the time was one of the cheapest keyboards one could get with actual, real mechanical switches.
It was pretty terrible- super hollow, clacky, loud and obnoxious. But it was still the best keyboard I'd ever used so far.
Eventually, I figured it would be fantastic to not annoy literally every single individual within a 2 mile radius. I scoured the depths of the internet to answer the question: is it possible to have a quiet mechanical keyboard?
The next thing I knew, I was spam refreshing the "new" tab of r/MechMarket trying to nab some cheap secondhand parts off some random dude on Reddit. And it worked! I now had a (very used and somewhat questionable) GK64 keyboard, complete with Boba U4 switches, all for the bargain price of $100.
As those of you in the keyboard space know all too well, there's no turning back. I've since acquired a Mode Envoy and Iris CE, though I should probably stop here (we all know this is a lie).
Although these are all "keyboard kits" (i.e. they come disassembled and I have to build them), buying someone else's kit is a far cry from truly building a keyboard from scratch. So it's time for the next evolution in the journey: to make something unique from zero.
the idea
There's an old joke that suggests it should be possible to run Doom (the revolutionary 1993 video game) on anything even vaguely resembling a computer. People have gotten Doom running on a pregnancy test, a refrigerator, and a potato-powered TI-84 calculator just to name a few examples.
We should be able to run Doom on a mechanical keyboard, too!
To be clear, this has been done before- multiple times (exhibit 1, exhibit 2). But to my knowledge, no one's actually sold a production-ready mechanical keyboard kit where this is possible.
The crux of the idea comes in the form of shoving a Raspberry Pi and a mini OLED screen into a keyboard. Almost all custom keyboards use some variation of an ATMega-powered microcontroller unit, which is just enough processing to pipe keystrokes through a USB header, but not much more.
It is possible to run Doom on an ATmega. But this is just an entry point to the reason why I think this keyboard should exist. Making it Raspberry-Pi-powered unlocks a lot more useful doors:
You can run web-enabled code to do things like show the weather or live scores for an ongoing sports game.
It can act like an external hard drive, so you can carry around your most important files on your keyboard.
It can interface with your computer to change the volume/brightness, display music visualizers, and show CPU/memory usage.
The initial prototype probably won't do most of these things, but they are possible! The main point is that the keyboard could be infinitely customizable on the software side, in addition to the hardware.
the big challenges
There are two huge reasons why people don't generally use Raspberry Pi's (or any other ARM-based microcontrollers) for keyboards:
They're super overpowered and expensive (in terms of monetary cost, complexity, and power draw). Why use a tractor when a rake will do?
Raspberry Pi's have a significant bootup time (best case, multiple seconds). Nobody wants to wait that long to start typing after plugging in a keyboard!
Reason #1 is a non-issue for this project. We want it to be overpowered- that's the whole point!
Reason #2 will take some fiddling to get right. It may be possible to hack together a Linux kernel module with high boot priority, or find some other way to get the core typing-related drivers loaded before anything else. (Or, if we can get a sub-5 second cold boot, it might be usable enough that people won't care.)1
Lots of little details still need to be thought about-- can a raspi even run vanilla QMK firmware? how does one become kernel hacker?? etc. etc. But the bootup time is the main problem at hand.
but... why??
So, some of the more big-thinking innovators out there may be asking, how will this invention change the world, uplift the average global living standard, and make $1B a week in revenue by 2025? Or something like that, idk lol.
Even though this isn't some life-changing product, it's still awesome to make stuff just for fun, with low stakes and no expectation of profit. It'll also be a good exercise of designing production-ready hardware, and even if we don't get to the point of making it shippable, we'll at least have made something new and exciting :)
what's next?
Since the idea itself isn't completely novel, there's precedent that this is a possible thing to do- so feasibility isn't a problem.
The next step will be to hack together a prototype. I've procured a Nibble keyboard kit, which features an external, exposed MCU. The idea is to solder up a bunch of headers to the socket rather than the MCU itself, and wire up all the necessary GPIO pinouts to a Raspberry Pi instead. From there, it should be mostly a software problem.
If there's time, it would be fun to 3D print a case for this thing as well, just to see what sorts of dimensions we're working with for a final product.
After the prototype phase, the next steps would be, in roughly this order:
Design the final PCB and case. These will probably be based on an existing open-source design like the KBIC65.
Make a release candidate prototype (order some eng samples for the PCB, and 3D print the final case design).
Figure out how much it would cost to order, assemble, and ship N of these.
Run an interest check / preorder campaign to hit N.
Reach out to possible distribution/fulfillment partners, or set up a custom shop online.
Profit???
Hope to be able to share more updates with you all soon!! Let me know if you're interested, or have any suggestions for what you'd like to see this thing do!
Until next time,
🏝️extras
food for thought: How to go from -1 to 0 - Finn Meeks, Arian Agrawal, Evan Tana
Many people treat ideation like polishing a gemstone. They become protective of the thing that brought them into -1 to 0 or overly attached to the first shiny object they discover. This is not the time to fixate—focus comes later. Early on, you are probably polishing a rock.
stalk my online reading: Sublime
stalk my offline reading: bencuan.me/bookshelf
stalk me on twitter: @bencuan_