
M60 – Open-Source USB&BLE, Hot-Swappable Mechanical Keyboard Powered by Python - kfihihc
https://makerdiary.com/pages/m60-mechanical-keyboard
======
1MachineElf
One 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.

~~~
dmix
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.

~~~
jolmg
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?

[1]
[https://en.wikipedia.org/wiki/Hot_swapping](https://en.wikipedia.org/wiki/Hot_swapping)

~~~
hnarn
> 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 :-)

~~~
Nightshaxx
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.

------
jdlyga
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.

~~~
dudeofawesome
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](https://novelkeys.xyz/products/kailh-low-profile-switches) [2]
[https://keeb.io/collections/keyboard-
pcbs/products/nyquist-k...](https://keeb.io/collections/keyboard-
pcbs/products/nyquist-keyboard)
[https://www.littlekeyboards.com/collections/new-
products/pro...](https://www.littlekeyboards.com/collections/new-
products/products/naked48led-keyboard-kit) [3] [https://drop.com/buy/massdrop-
x-olkb-planck-light-mechanical...](https://drop.com/buy/massdrop-x-olkb-
planck-light-mechanical-keyboard)
[https://www.keychron.com/products/keychron-k1-wireless-
mecha...](https://www.keychron.com/products/keychron-k1-wireless-mechanical-
keyboard) [https://www.logitechg.com/en-us/products/gaming-
keyboards/g9...](https://www.logitechg.com/en-us/products/gaming-
keyboards/g915-low-profile-wireless-mechanical-gaming-keyboard.html)

------
agrippanux
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.

~~~
ashtonkem
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.

~~~
Bedon292
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.

------
lukevp
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?

~~~
rgoulter
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](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.

~~~
VectorLock
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.

------
angrygoat
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.)

~~~
nougatbyte
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)

------
RealStickman_
I'm really not a fan of these minuscule keyboards but I'd definitely be
interested in a TKL version.

------
aosaigh
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?).

~~~
cellularmitosis
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.

[1]
[https://github.com/pepaslabs/hexon38](https://github.com/pepaslabs/hexon38)

------
scoutt
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.

~~~
kevinbowman
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.

~~~
scoutt
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...](https://softwareengineering.stackexchange.com/questions/135285/when-
does-it-become-mandatory-to-sign-up-with-the-bluetooth-special-interest-gro)

------
onetom
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](https://geekhack.org/index.php?topic=51069.0)

but it feels like it could be a lot better with split spaces.

~~~
CarVac
In my opinion the best use for a second thumb key is Shift, to take load off
of the pinky fingers.

------
manuelabeledo
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.

~~~
JustFinishedBSG
> what is the purpose of having a M.2 bay

To plug an NRF52840

[https://makerdiary.com/collections/frontpage/products/nrf528...](https://makerdiary.com/collections/frontpage/products/nrf52840-m2-module)

------
Animats
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.

[1]
[https://www.youtube.com/watch?v=OhZ1L8xA_nU&t=32](https://www.youtube.com/watch?v=OhZ1L8xA_nU&t=32)

------
VectorLock
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.

~~~
the_pwner224
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...](https://makerdiary.com/blogs/mechanical-keyboards/a-hand-wired-usb-
bluetooth-keyboard-powered-by-python). That article in the list of materials
lists 'Pitaya Go': [https://github.com/makerdiary/pitaya-
go](https://github.com/makerdiary/pitaya-go). From that page I also found to
[https://makerdiary.com/collections/frontpage](https://makerdiary.com/collections/frontpage)
where you can buy one. And the code from the hand wiring post:
[https://github.com/makerdiary/python-
keyboard](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.

------
hackmiester
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.

~~~
kfihihc
You can find more details about M.2 Module here:
[https://makerdiary.com/collections/frontpage/products/nrf528...](https://makerdiary.com/collections/frontpage/products/nrf52840-m2-module)

