Hi,
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):
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:
And resulting view when re-mapping with one of my favorite macros
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?
If you have questions/suggestions for the project, please write below and I will fill in details.
Thank you in advance!
Best regards,
Jiekebo
[IC] IBM Model M Controller Upgrade
- MinaDarsh
- Location: Netherlands
- Main keyboard: OLKB Planck
- Main mouse: Logitech G600
- Favorite switch: Gateron/Cherry MX Green
- DT Pro Member: -
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?)
- jiekebo
- Location: Sweden
- Main keyboard: IBM Model M (QMK ENABLED!)
- Main mouse: Avoids using mouse
- Favorite switch: Blue Alps
- Contact:
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.
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.
- raoulduke-esq
- Location: United States
- Main keyboard: Current in the rotation: Silver Badge
- Main mouse: Magic Trackpad 2
- Favorite switch: Capacitive Buckling Spring
if you can find a way to do the 2nd design with a Pro Micro instead of a Teensy that saves about $15.
- jiekebo
- Location: Sweden
- Main keyboard: IBM Model M (QMK ENABLED!)
- Main mouse: Avoids using mouse
- Favorite switch: Blue Alps
- Contact:
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!
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!
- raoulduke-esq
- Location: United States
- Main keyboard: Current in the rotation: Silver Badge
- Main mouse: Magic Trackpad 2
- Favorite switch: Capacitive Buckling Spring
That makes sense- teensy might be the best and cheapest way to get that many pins. This is a great project!
- jiekebo
- Location: Sweden
- Main keyboard: IBM Model M (QMK ENABLED!)
- Main mouse: Avoids using mouse
- Favorite switch: Blue Alps
- Contact:
Thank you very much for the encouragement raoulduke-esq
- jiekebo
- Location: Sweden
- Main keyboard: IBM Model M (QMK ENABLED!)
- Main mouse: Avoids using mouse
- Favorite switch: Blue Alps
- Contact:
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. Also I managed to get the leds to work: 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. 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!
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. Also I managed to get the leds to work: 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. 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!
- Muirium
- µ
- Location: Edinburgh, Scotland
- Main keyboard: HHKB Type-S with Bluetooth by Hasu
- Main mouse: Apple Magic Mouse
- Favorite switch: Gotta Try 'Em All
- DT Pro Member: µ
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.
Edit: oh, you have. Try it without the VIA addition. While that’s a nice to have, QMK itself is the real deal.
- jiekebo
- Location: Sweden
- Main keyboard: IBM Model M (QMK ENABLED!)
- Main mouse: Avoids using mouse
- Favorite switch: Blue Alps
- Contact:
Greeting,
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. 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://github.com/ashpil/Model-M-Type-C
https://www.johnhawthorn.com/2020/07/mo ... ontroller/
https://github.com/mschwingen/hardware/ ... modelm-usb
https://github.com/tomic1785/Yugo-M-controller-project
Best of luck in your endeavors!
Best regards,
Jacob
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. 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://github.com/ashpil/Model-M-Type-C
https://www.johnhawthorn.com/2020/07/mo ... ontroller/
https://github.com/mschwingen/hardware/ ... modelm-usb
https://github.com/tomic1785/Yugo-M-controller-project
Best of luck in your endeavors!
Best regards,
Jacob
-
- Location: china
- Main keyboard: cheery
- Main mouse: logitech
- Favorite switch: cherry black
Ibm m101 controller from China
viewtopic.php?f=2&t=25931
viewtopic.php?f=2&t=25931