Let’s Build A Keyboard Controller
This is the “Mini M” which is from Unicomp and was released earlier this year.
https://www.pckeyboard.com/page/product/MINI_M
It is a “Model M” but with new tooling and a newly redesigned matrix supporting greater than 2-key rollover. It’s about 6-key rollover. It is a modern buckling spring keyboard for modern computers.
It’s got a problem though: I don’t like the stock controller from Unicomp. It has been a bit buggy, and there is maybe some uncertainty around the controller even now. Unicomp may have fixed the bugs. (This is, after all, an update to one of the older “M” variants which was anticipated for the better part of a decade…)
Let’s do our own controller. Not just any controller – one that we can run QMK and Via and other… shall we say… more advanced things.
That New 2021 SSK controller (running QMK) is what this first post is about.
Background
Model M Background Info - Further Reading
There are many keyboards dating from the 1980s that can all fall under the moniker “Model M” – it is a beloved keyboard and “more info on Model M” is a rabbit hole that goes deep and can easily suck up your afternoon. Linus’ video on the Model M is quite good if you’ve got 10 minutes to get caught up:
Putting Together The Dream Team
Often it’s the case that I do something for myself and I’m so busy I don’t have a really good way to share with the world, or think that the world cares. (Yes, yes, Level1 supporters are changing that).
Perhaps sensing my unfocused energies, Eric Raymond put together a team of “Model M” folks to think about the deeper issues with keeping Model M keyboards going in all their flavors and variants. We have M122 keyboards meant for various types of terminals, the older SSK variant and over a dozen other types of M keyboards (even before we get to variants of the M that Shall Be Purged from the Memories of Man – looking at you Rubber Dome Model M).
At the risk of making the project sound too self-important, we must capture and document the knowledge to preserve the ability in the future to easily use these keyboards.
Okay, I’m in. With some high level direction from Eric, the team set about addressing and documenting [ and open sourcing ] everything one would need to know not just to mindlessly install a drop-in modern replacement controller for your model m but also to have a great starting point in another ten years for Model M: The Next Generation as we contemplate a future where one might to upgrade the keyboard controller just a bit more. This is currently still in process.
…some of this warmth and enthusiasm even spills over into predecessors like the Model F and even older BeamSpring keyboards. I myself have a model F, and did a video on it. While I love the Model F, I also love the Model M layout. foreshadowing
Also on the team is Michael , [Jay] (Jay Maynard - Wikipedia) and [Brandon] (https://www.clickykeyboards.com/)
… as we work on this new universal controller, it turns out the 2021 M SSK is the odd man out because of the newly redesigned matrix. So the first not-quite-ripe-yet fruits of our labor of love is what I am posting here.
The Gitlab Pages Are Up
How does this work?
This controller is designed to be drop-in ready for the 2021 SSK M (don’t worry, others are coming. Got a cool idea for what we should name the universal controller? Drop it below!).
The controller is based around the ~$2 ($5, thanks, pandemic!) “Bluepill” STM32 Microcontroller. Why this and not an Atmel? Well, Atmel is fine, but the STM32 is an extreme overkill Arm micro. It supports more USB endpoints and has more hardware on tap in case you want to go off-script.
The default keylayout from us is what-you-see-is-what-you-get but… as you’ll see with the terrible things I’ve done… the only limit is your imagination.
Installation
The full instructions will be located [[ here TODO ]] . In a nutshell:
Open your 2021 SSK Model M.
Carefully remove the Flexible Flat Cables (FFC) and put the keys aside.
The PCB controller is held in with locking washers and those are kinda annoying to remove. Proceed with care on this step.
Place the 2021 SSK replacement controller in the pan, on the same pegs as the old controller.
Press into place the 3d-printed shroud to hold the PCB in place. It is press-fit and it is normal for it to be a bit tight.
This is a reversible mod so hang on to your old PCB if you ever want to undo this.
Carefully tuck your flexible flat cable out of the way and re-assemble the mini M.
Congratulations! You now run QMK for your keyboard firmware.
What can you do with QMK? Macros, custom key functions, things like space-cadet shift (press shift twice rapidly to get open/close parenthesis), remap caps lock as a compose key and remap shift-shift as capslock…install zork… you get the idea!
Compatibility Note
This controller is designed ONLY for the 2021 Unicomp SSK. It does not work on any other keyboard, even older SSK. Watch this space for future updates because we are working on a universal controller that we think will work for just about any Model M.
Where can I get it?
SOON ™
It’s open source. While it is pretty easy to order a PCB online and then just solder a “Bluepill STM32 Micro” in place, we are working on making that easier. I have setup a product at store.level1techs.com which is selling pretty close to our overall cost for this.
I am not sure where the final version of the universal controller will be, but for now you can order a 2021 SSK PCB from us (or at least place yourself on a waitlist to be notified when it is ready).
In the Level1techs.com store kit you will get:
- Bluepill Module (pre-flashed)
- Assortment of IBM FFC connectors
- Ground Strap Pins
- PCB with SMT components populated
- USB type B connector
With some “easy” through-hole soldering, you can be up and running. Note: We do intend to offer completely assembled and tested kits later. Early adopters will give us feedback.
I may put an option on the store if you want a lovingly hand-assembled-by-Wendell 2021 “Mini M” SSK as a limited run kind of thing.
Think of this version of the “M-Star” (as we’re calling it) as a sort of early-bird project just for the “Mini M” to help us get any bugs out of the final universal version. It might have some rough edges. It might not be perfect. But your feedback is appreciated. After all, who else would have read this wall of text but an enthusiast of the highest caliber. Model M enthusiast, I salute you.