M60 – Open-Source USB&BLE, Hot-Swappable Mechanical Keyboard Powered by Python
makerdiary.comOne of the things the Planck Rev 6 PCB made me realize is how important hotswap is for me personally. First, I have _dozens_ of interesting mechanical keyboard kits which are un-built because I simply don't have the convenient time & place to set up my soldering equipment. Second, some of the kits I've managed to build have bricked on me due to unexplained microcontroller problems, and while I have an expensive desoldering gun, it's still a PITA to use/maintain/clean, so hot-swap sockets solve that switch recoverey problem in a very convenient way. Lastly, of course, the ability to change switches on a whim is nice on it's own.
This M60 keyboard builds on all of that by providing a socketed microcontroller, so even if it isn't the layout I prefer, I'll still look into buying one for the sole sake of supporting this work. Open source design & easy-to-program QMK-ish firmware are also huge plusses.
I also love the fact that pictured are the new Kailh Silent Pink switches. I got a small amount a couple weeks ago and want to get more, but they've sold out at US distributors. If the M60 is ever offered as a "full kit" then I hope those switches are an option.
You got the point :)
Hoping you will enjoy M60.
Maybe a dumb question but why don't more mech keyboards have hotswap? That seems like a great feature I don't remember ever coming across in the few times I've bought them.
They have a bit of a learning curve, because if the switch legs aren't straightened out before being pushed in, there's a chance they can be irreversibly crumpled. It can be a hard lesson if the switches were expensive.
De-soldered switches are especially prone to this problem because the leftover solder on the legs makes them 1) more brittle, and 2) irregularly shaped, so switches like vintage blacks are kind of a no-go for hotswap.
Some have reported the hotswap sockets pop out when forcing switches in, which I personally haven't witnessed myself. The impact ranges from a trivial matter of needing to apply more solder to the pad, all the way up to the hot swap socket ripping off the pad itself (very difficult to repair).
Hotswap sockets are less secure than switches that are directly soldered on, which means that one typically will want to use them in combination with a switch plate. Switch plates, however, have the counter-intuitive effect of raising the pitch of your keyboard's sound profile. Most people don't realize this. By a lot of standards, a plate-less keyboard does sound better, and with hotswap all those keys will start looking slightly crooked fast.
These nitpicks are things most users will never notice, but people who have been in the hobby for a long time do notice them, and those folks happen to be very vocal and influential. Then there's also the fact that anyone who is willing to design a PCB is probably savvy enough to desolder without issues. These factors are why there appears to be a strong anti-hotswap movement.
Overall, I'd still recommend using hotswap.
Not a dumb question at all. Hotswappable switches are becoming more common but many keyboard enthusiasts still are iffy about them. Hotswappable switches tend to have a bit more wobble that their soddered counterparts, but in my opinion the benefit of being able to change out the switches outweighs the wobble.
Those who are confident in their switch choice will prefer less wobble, and probably have multiple keyboards anyway with different switches.
I'm getting the feeling that hotswap in this context doesn't refer to being able to plug/unplug the keyboard from the computer while the computer is on[1], since I've never seen a keyboard that wasn't able to do that. So, this may be a dumber question, but what's being referred to as hotswap in this context?
> A keyboard being hot-swappable means the PCB (which, simply put, is the circuit board inside the keyboard) has special sockets so that you can click switches into place and pull them out without ever needing to touch a soldering gun.
From a Google search :-)
This is acctually becoming a more common feature. I recently purchased a new mechanical keyboard and a lot of the newer designs are host swappable.
I would love to see more enthusiast scissor-switch keyboards. I learned to type on a mechanical keyboard, and I've tried all sorts of modern mechanical keyboards over the years. But I feel like laptop-style scissor switch keyboards are more precise and comfortable. Personally, I make more typing errors on a mechanical keyboard. My current favorite keyboard is an HP Wireless Elite V2.
If what you're looking for is a shorter key throw, you might be interested in the Kailh Choc switches[1]. They are still somewhat in their infancy, but you can find them on a few DIY boards[2] as well as a few pre-builts[3].
[1] https://novelkeys.xyz/products/kailh-low-profile-switches [2] https://keeb.io/collections/keyboard-pcbs/products/nyquist-k... https://www.littlekeyboards.com/collections/new-products/pro... [3] https://drop.com/buy/massdrop-x-olkb-planck-light-mechanical... https://www.keychron.com/products/keychron-k1-wireless-mecha... https://www.logitechg.com/en-us/products/gaming-keyboards/g9...
> But I feel like laptop-style scissor switch keyboards are more precise and comfortable.
I agree. The best keyboard I have ever used was a SteelSeries-branded keyboard in a MSI GT70 Dominator Dragon laptop. The keys had great depth/travel, took a fair bit of pressure to press (only a bit annoying after super long sessions), and coupled with the pressure/feedback, the tactile feel was just amazing. I started with Cherry Reds for a number of years before I realized that the switches were the reason my typing sucked. With Cherry Blues my accuracy got much better but still not perfect, and the switches just felt cheap to press and the clicking noise also sounded cheap/plasticky. Recently I switched to Matias Alps quiet clicks which are reminiscent of that SteelSeries keyboard but still not quite as good - the keycaps don't attach perfectly to the switches so they rattle a bit, and the switches just don't feel as good. I'm going to try some low profile switches once I've convinced myself that it's worth spending another $100-150 on a keyboard which probably won't be that great... Unfortunately I've grown used to a split keyboard with my custom keymap and I love it a lot more than the normal keyboard layout so I'm stuck with shitty switches.
I’ve been very happy with a dell premier wireless (717 not the 616 or whatever) scissor keyboard and mouse combo purchased 3 years ago. I don’t care for the mouse at all (don’t use it). I like the key feel much better than HPs offering that I have also used.
One possibility would be to use your HP elite with an inline USB to USB keyboard controller. You could program it to remap all of your keystrokes to Dvorak, or implement a bunch of crazy macros, etc. they run the same software as the custom keyboards.
This could be amazing. I worked 4 years at Massdrop (now Drop) and used probably close to 30 keyboards. I always wanted one that I could script instead of do a Windows -based rigmarole to flash the layers. If this comes in at or below a $300 price point I will definitely order one.
To my eye, the only thing that's unique here software wise is that it uses Python rather than a more typical embedded language like C. A lot of keyboards (including my Ergodox EZ) use QMK, which doesn't require a Windows-based rigamarole to flash; there are at least 2 open source apps that'll do it on OSX.
It is probably because the vast majority of my time is spent in python already, but its very appealing. I am typing this on a keyboard running QMK, and just don't enjoy dealing with the software side. I don't make changes often enough to remember all the steps I have to do to make things work. So I have to re-learn every time. I certainly should take better notes, but I would much prefer this keyboard ran python and I could just change the mapping on the fly without compiling and flashing and all that.
It's true that hundreds of programmable keyboards we use today are supported by QMK, but based on the parent comment's 4 years at Massdrop, it seems likely that a lot of the programmable keyboards they are referring to are ones that didn't support QMK or even TMK out-of-the-box.
There is also config.qmk.fm so you can do it all visually in a browser.
Various DIY approaches, if you're open to some research: https://www.reddit.com/r/MechanicalKeyboards/wiki/firmware?v...
A 75% or compact format is more inline with how I think I want to use something like this. Then this would be an easy upgrade from my WASD.
This sound fascinating. Could you give us some examples of what you'd like your keyboard to do?
I don’t suppose there is a way for the SoC to run something besides Python? I appreciate the flexibility of a scripting language and would love to try one of these out, but I feel like a hardware device should have a RTOS (or no OS) and a language that doesn’t have a GC. Can you imagine having jitter/latency randomly introduced from the Python layer?
I've seen many keyboard PCBs support configuration with firmware such as QMK. (The wiki for the MechanicalKeyboards subreddit mentions other examples of firmware https://www.reddit.com/r/MechanicalKeyboards/wiki/firmware).
If you're comfortable with C (and setting up the toolchain in the right way), great.
Allowing customisation with Python is for greater accessibility.
Being able to change settings with regular files on an a virtual USB disk and not having to install a compiler to make these changes sounds great.
I haven't actually looked at this, but Python has a number of toolkits that compile it down to LLVM targets and then to machine code, even for embedded devices.
Source: run a quantum computer on Python
>Besides, the keyboard is powerful enough to run Python, will also be able to run C/C++, Rust, Go (TinyGo) and JavaScript (JerryScript). The hardware is also optimized for power efficiency.
from https://makerdiary.com/blogs/mechanical-keyboards/the-story-...
Something I've wanted for a while is an option to have two different physical keyboards connected to the one machine, with different keymaps. In my particular case, most of the time I want to type in English, but I also sometimes wish to type in Hebrew. I find typing on my keyboard with English keycaps very clunky, especially when trying to add vowel pointing to letters.
There are solutions out there, but they all amount to hacks; what I think I really want is for the second keyboard to not have a keymap at all, but instead to transmit unicode code points, but there isn't a standard way to do that.
Anyway, this project looks cool: I'd really like to buy a hackable keyboard that lets me work on customisation without having to deal with everything else (especially building it from components.)
I don't know if this is hack by your standards but you can do this with pretty standard tools in linux (I think it was xinput and xkbmap)
I'm really not a fan of these minuscule keyboards but I'd definitely be interested in a TKL version.
I've been looking for an "out of the box" MacOS-friendly mechanical keyboard for a while now. So far, the recent Keychron keyboards seems to be the only real contender, and unfortunately from all reports they are just to tall and cause wrist pain.
This seems like it would be a great alternative where you could have a Mac configuration - with media keys - mapped pretty easily with a custom keycap set (unless I'm misunderstanding?).
After my progress stalled on writing custom firmware for my custom keyboard [1], I went with a Matias quiet pro for Mac. I love this keyboard.
All of the Mac functionality works as expected. The only exception was when I tried to get an 18 year old eMac to boot from CD-ROM (by holding down the C key at boot time), this didn’t work. I had to use an official Apple keyboard for that. Works fine once the machine is booted, so I’m guessing it is some sort of Mac openfirmware issue.
I have a keychron. It's alright, for some reason I find something about the key layout trips me up (although I've never used a 65%, mechanical, or Mac keyboard before, so one of those may be why). It is pretty high but the solution is to get a 10$ wrist rest.
I've been using a CODE [0] with MX Clears on MacOS for a year now.
well worth it imo.
M60 is compatible with MacOS, even media keys.
I wonder how all these maker sellers get along with Bluetooth SiG certification.
Edit: I mean, the product is presented very well. There was a clear investment in time and money. And because of that, this question was the first thing that came to my mind.
They likely use off-the-shelf bluetooth modules which are already certified, and just talk some kind of higher-level protocol over it which sits above the SiG certification.
Many think this is true (even I did) but it's not. You have to certify the product anyway, even if you use an off-the-shelf module.
The only difference is that you can "certify with test" and "certify without test" (and price changes, starting from 5K a pop). Even evaluation boards and for prototyping, so I guess a end-user keyboard has to be certified[1].
[1] https://softwareengineering.stackexchange.com/questions/1352...
A split space-bar version could make it a lot more versatile, without a lot of drawbacks, imho. You could use the 2 halves as layer keys when held or one as space, the other as backspace, or if one half is pressed, then the other half could mean backspace or enter.
There is also the SpaceFn layout, which works with just one space, I know: https://geekhack.org/index.php?topic=51069.0
but it feels like it could be a lot better with split spaces.
In my opinion the best use for a second thumb key is Shift, to take load off of the pinky fingers.
I would be interested to know what are the real advantages of using Python, instead of the well-established QMK, and what is the purpose of having a M.2 bay (unless that's where the Bluetooth module plugs in).
The PCB looks cool though, and BLE 5.0 is relatively uncommon nowadays (most keyboards rely on older, thus cheaper, Bluetooth enabled SoCs), but apart from that, I see little appeal for someone already invested in building mechanical keyboards.
> what is the purpose of having a M.2 bay
To plug an NRF52840
https://makerdiary.com/collections/frontpage/products/nrf528...
What's the point of hand-wiring?
"The Quality Goes In before the Name Goes On. From Zenith, the last TV manufacturer to adopt printed circuits.[1] Not a successful business strategy.
Is there an off the shelf MicroPython board that can be used to make something like this using wired switches in a Dactyl / Manuform style keyboard. I see a lot of bespoke keyboard boards using socket style microcontrollers as well.
At the bottom of the page there's a link to an article on hand wiring this keyboard: https://makerdiary.com/blogs/mechanical-keyboards/a-hand-wir.... That article in the list of materials lists 'Pitaya Go': https://github.com/makerdiary/pitaya-go. From that page I also found to https://makerdiary.com/collections/frontpage where you can buy one. And the code from the hand wiring post: https://github.com/makerdiary/python-keyboard.
It's a bit expensive at $30 but seems a lot better than the Pro Micros normally used with QMK, and the shop has other form factors which are cheaper. With WiFi on the chip too this could potentially push forward the frontier of cool keyboards.
I wonder how hard it would be to make a split keyboard with these. Probably you could do I2C over a TRRS cable.
Was the use of the M.2 slot compliant with usual M.2 pinouts? Seems like an interesting choice. I dug a little, but didn't find much.
You can find more details about M.2 Module here: https://makerdiary.com/collections/frontpage/products/nrf528...