

Keychron has some good entry points for getting into the mechanical keyboard scene. Lots of layout options, some open source keyboard firmware support, and you can buy a lot of them barebones if you want to bring your own keys and caps.


Keychron has some good entry points for getting into the mechanical keyboard scene. Lots of layout options, some open source keyboard firmware support, and you can buy a lot of them barebones if you want to bring your own keys and caps.


Looks great! I love the choice of keycaps!


Are you looking to build a keyboard from a kit, or design one from scratch?
SplitKB.com has forked a few popular open source keyboard designs like the Corne or the Sofle. Even if you don’t end up purchasing their kits, they have some excellent build guides and documentation. If you’re a keyboard or DIY electronics beginner, it’s a good way of seeing what sort of techniques and tools you’d be in for when soldering things like microcontrollers, switches, and diodes. https://docs.splitkb.com/product-guides/aurora-series/build-guide
If you’re interested in designing a keyboard, I’d recommend looking into the keyboard layout editor Egogen. https://github.com/ergogen/ergogen


It’s still surreal to see OpenAI’s need for training data be so vast that they casually developed and open sourced a generational leap in transcription technology just so that they could scrape online videos better.
NuPhy’s got some interesting options as well. https://nuphy.com/collections/keyboards/products/halo75-v2-qmk-via-wireless-custom-mechanical-keyboard
The low profile space is a little tricky. It leans into column staggered ergonomic boards really quickly. Kailh’s Choc switch is as low as you can go, but those folks get really custom really quick. They’re not big on function rows or arrow clusters, so the next step after Keychron or NuPhy would be something along the lines of the Afternoon Breeze. https://www.afternoonlabs.com/breeze/
Have you taken a look at any of Keychron’s offerings? https://www.keychron.com/products/keychron-k3-max-qmk-via-wireless-custom-mechanical-keyboard Checks most of the boxes other than the knob.
The two hardest problems in computer science are cache invalidation, naming things, and off by one errors.
My favorite compile error happened while I was taking a Haskell class.
ghc: panic! (the ‘impossible’ happened)
The issue is plainly stated, and it provides clear next steps to the developer.
There’s a whole linage of arcade game button design, but you occasionally see keyboard switches show up in custom fighting game sticks.
Mice and trackballs often borrow from the whole universe of buttons to make their sculpted formfactors work. I feel like I’ve seen one or two with mechanical keyboard switches in them.
Like rockSlayer mentioned, they just bridge a physical connection between two pins and can technically be used anywhere a typical button could be. Keyboard switches are so optimized for their large square footprint and particular travel distance that they’re usually not the best fit for random industrial needs. You could make an elevator control panel out of key switches, but there’s probably a cheaper, more well suited button you could use instead.
https://www.serverbuilds.net/ is a popular website online for folks building NASes at home. They’re fans of Unraid as well. They’ve got a Discord if you’re looking for something more interactive. Worth checking out. 👍


There’s tons of super enthusiast keyboards out there. (See: All of the other comments here.) If you’re just curious what’s out there beyond Logitech and Razor, pretty much anything Keychron makes will be exceedingly pleasant without breaking the bank or going off the deep end.
I’m running out the door, so sorry for keeping this a little terse. Just wanted to throw out some things for you to potentially look into with regards to your USB-C port in case you were about to send this PCB off for fabbing.
1 - Consider including an ESD Protection chip. It’s a small IC which you pass your data lines through. It can help protect your microcontroller in case there’s some static electricity in the cable you’re plugging in.
2 - There’s a variety of different detection mechanisms and handshakes in USB-C to identify the amount of power a USB-C device supports. Adding a pair of 5.1K resistors to the CC1 and CC2 pins on your USB-C port will definitively tell the device on the other end that your keyboard is a simple USB 2 device and should get a nice chill 5V. Some devices will default to providing 5V is CC1 and CC2 are left floating, but others are more picky. Adding the two 5.1K resistors will help make sure you don’t run into any trouble with a USB-C to USB-C cable.
3 - I’m less confident on the specifics of this one, so maybe do a bit of research yourself. Most of the USB-C implementations I’ve seen on keyboards tie the redundant pins on the USB-C port together. I believe some of these are only connected when the cable’s face up, and others are only connected when the cable’s face down. Routing them together on your board will make sure you don’t run into any trouble with cheap USB-C to USB-A cables.
Here’s a quick example of those three items in action. (Ignore the weird vias and disconnected ground nets. I deleted the fill to make it easier to read.)
Sorry to post and run. Hope that helps!