[IC] IBM Model M Controller Upgrade

User avatar

10 Apr 2021, 15:57


This project focuses on creating two controller boards that are intended to fit most of the various Model M keyboards. The controllers will be fully QMK and VIA/VIAL compatible.

If there is interest from you, would you be so kind as to answer a few questions here? https://forms.gle/iqPyS8hVFppkDvhK8

Below you can see a prototype of one of the boards that is aimed for Model M that have a small controller with integrated LEDs (mine is from 1998):
controller-front.png (583.64 KiB) Viewed 1152 times
IMG_7874.jpg (512.59 KiB) Viewed 1346 times

The board above is based around an Atmega AT90USB1286 MCU, and has QMK loaded. Also configuration has been made so VIA can be used to remap the keyboard without having to re-flash the MCU. Here is the Model M matrix mapped and loaded into VIA:
via_matrix.png (185.97 KiB) Viewed 1152 times

And resulting view when re-mapping with one of my favorite macros :)
via_remapping.png (129.44 KiB) Viewed 1152 times

The second board is underway, meant for earlier IBM Model M's, but I am at a crossroads. There are multiple ways to go forward with the design (one of them you can see in the image below) but also is this even worth doing. Is there enough interest to actually go forward with producing this?
controller.jpg (141.09 KiB) Viewed 1346 times

If you have questions/suggestions for the project, please write below and I will fill in details.

Thank you in advance!

Best regards,
Last edited by jiekebo on 27 Apr 2021, 20:58, edited 2 times in total.

User avatar

11 Apr 2021, 15:03

Owner of a '92 Model M here, and typing using Colemak-DH layout, this is honestly very welcome as it saves the hassle of constantly having to start a AHK script to change the layout. I want to ask though, you mention it's going to be around 120-140 dollars, how come? (Small supply, components chosen?)

User avatar

11 Apr 2021, 15:26

Thanks MinaDarsh for your response! Happy to see that there is interest for this :)

The estimate of the price is based off a "worst-case" scenario, where the most expensive components are selected, then including shipping of the components to me, any import taxes that are due for overseas components, production costs and packaging materials.

The reason for the form is to find out what compromises I can make to the design in order to meet the market expectations, and keeping the price point to a reasonable level.

User avatar

11 Apr 2021, 15:32

if you can find a way to do the 2nd design with a Pro Micro instead of a Teensy that saves about $15.

User avatar

11 Apr 2021, 15:46

Thank you for the tip raoulduke-esq!

Good suggestion to use the pro micro for this, used the little bugger in a few other projects before.
For me the only issue with the pro micro is the small amount of IO pins.
The matrix itself requires 24 pins, then add 3 more pins for the indicator LEDs.
That could be handled using an IO expander over I2C, but adds to the complexity and component count.
But I'll look into it to see if it will work out, any saving is essential!

User avatar

11 Apr 2021, 15:51

That makes sense- teensy might be the best and cheapest way to get that many pins. This is a great project!

User avatar

11 Apr 2021, 16:01

Thank you very much for the encouragement raoulduke-esq :)

User avatar

27 Apr 2021, 21:28

Small update from my side. I have been working on with the design of the second controller. First step was to reverse engineer the matrix behind the boards. I have released a video about my approach, here: https://youtu.be/dNqHS6UykQw

Also I have gotten hold of a few different microcontroller boards for use in prototyping and testing the matrix that I discovered with the above method. The first controller that I tested was a Teensy 2.0 ++. Below you can see it wired up according to the matrix.
HAI_1887.JPG (565.94 KiB) Viewed 926 times
Also I managed to get the leds to work:
HAI_1888.JPG (540.17 KiB) Viewed 926 times
Everything seems to work fine with this controller and it also seems to be a favorite among the people who answered the questionnaire.

Next I tested out the pro micro board. Looks a bit messy on the picture below, and the board is really full to the brim with connections (save for the one you can hack on to at the leds). It works well here too, despite the lack of connections, something that could be solved by adding an io-expander. One thing that I did have an issue with was flashing it with VIA compatible QMK. I got an error saying the EEPROM setting was too large for the MCU. Perhaps a simple fix or an indication that the pro micro has too limited space for VIA? Maybe someone knows better than me.
DSC_1289_small.jpg (639.91 KiB) Viewed 926 times
Lastly I have tested using an RPi Pico, using KMK (https://github.com/KMKfw/kmk_firmware). This worked ok, but you do get a considerable delay before the keyboard is alive after connecting. I have not dug too deep into KMK also so I don't know much about it's capabilities or the tooling around it. It is a really neat mcu, and has just the sufficient amount of pins for this project. The board runs at 3.3V though, which leads to dimmer indicator leds, than with the other boards.

Some things will arrive from China soon, so I can test this out with a bluepill and a blackpill. Also an io-expander will arrive so the pro micro can be tested fully.

Anyway, stay tuned for more updates!

User avatar

27 Apr 2021, 21:33

Try QMK. It’s the hotness. And works real great on everything I’ve thrown it at. Beamsprings on down ;)

Edit: oh, you have. Try it without the VIA addition. While that’s a nice to have, QMK itself is the real deal.

User avatar

03 Aug 2021, 14:48


A while since last update. I thought I would bring this to a conclusion instead just leaving it open ended. Work continued on making a new controller board that would fit most models, and it got to a point where it seemed to be quite good.

So the first prototype was made that you can see in the picture below.
DSC_1202_crop.JPG (297.16 KiB) Viewed 306 times
It as a Teensy++ 2.0 on board, placed in header pins (since I wanted to test other controllers out). On the main board there are all the needed connectors, USB type-C for connecting with the computer, FPC connectors that fits most model-m keyboards, room for resistors when needed (some model-m keyboards didn't have resistors on the led panel), and a jumper to switch between two compatible controllers (teensy and bluepill). Best of all, it works! Writing with it now :)

I realized that I have some challenges to overcome. First the link between the teensy/bluepill controller just feels bad. A cable going from the controller board to the main board is not the most elegant solution... Then there is my soldering skill which is really bad. I managed to waste a lot of components on another board because i botched the soldering job on the USB type-C connector. Feels bad...

So, here comes the sad news. In short, i have run out of time to make this happen. My daily job has become more demanding, and spending time away from family to make this, feels less and less appealing. Also I cannot make this cheap enough to meet the market, it's simply not possible with the current design and the price of all components.

Judging by the interest I got (about 20 replied) I think there might be enough people here to warrant someone else to make this happen, who are more skilled at doing this than I am. Also I noticed there are quite a lot of projects committing to the QMK source code for custom converters for the model-m. Here is a list of them:

https://www.johnhawthorn.com/2020/07/mo ... ontroller/
https://github.com/mschwingen/hardware/ ... modelm-usb

Best of luck in your endeavors!
Best regards,


03 Aug 2021, 17:52

Ibm m101 controller from China

Post Reply

Return to “Group buys”