Problem adapting a terminal model m of 122 keys

Linye

30 Jan 2019, 17:13

Hello, I am new to this website and keyboard restoration in general, so if I ask something obvious or dumb please bear with me.

Background:
I recently acquired a spanish variant of an original IBM model m of 122 keys terminal version with a 240 degrees 5 pin DIN connector (1389134). I was planning to connect it to my pc, so I started by trying to just bridge it to a ps2 connector. That didn't work, as my pc didn't recognize most of the keys and when connecting it to a ps2 to usb adapter it just went crazy. Then I found a few posts online talking about using a Teensy to drive it, so I decided to use an arduino leonardo.

Problem and question:
When connecting the keyboard to the arduino and visualizing the output in my pc I onticed that most of the keys don't send a release code, they just send their number when pressed. The only ones that do send a release one are those that are expected to do so while writing (eg: shift). This, to my understanding, means that it would be impossible to press many letters at the same time, as the last one would overwrite the previous one. The code doesn't seem to be the problem, as I tried a number of them with the same result.
Would it be possible to send a command to the keyboard in order to overcome this?
Is replacing the internal pcb the only feasible way to solve this problem?

Also, I would love to know if anyone out there know an alternative to the nut and bolt/screw mod that is easier and cheaper.

User avatar
PlacaFromHell

30 Jan 2019, 18:27

Just to be sure, if you are using hid_listen it's how is suposed to look (as I understand you can type normally). In my M122 some keys send two different outputs for some reason, and maybe you are thinking that those are the "reset" codes.
If you want to see all that stuff, you need other type of software.

User avatar
Muirium
µ

30 Jan 2019, 18:32

First of all: try running Soarer's Converter on your Leonardo / Teensy:

viewtopic.php?f=7&t=2510

Those IBM terminal boards speak their own language, which is very different to PS/2 or AT, let alone USB. Soarer's speaks it.

As for bolt mods: those are just to fix *hardware* problems inside the keyboard. They're a lot of work (especially on a 122).

The original IBM controller PCB is actually a detachable module, if you want to replace that. I'm not sure, but I think Unicomp has 122 key compatible ones. Someone might know. But you may not even need to replace it, if your Arduino can do the translation.

User avatar
PlacaFromHell

30 Jan 2019, 19:29

Unfortunately for some models if you want to replace the controller, you also need to swap the membrane, which involves a boltmod.
Years ago a user glued the broken rivets of his model M, but isn't a permanent solution.

Linye

30 Jan 2019, 20:27

Thank you for your replies. I have already tried with Soarer's converter, and it also doesn't let me press two keys at the same time. I fully understand that the keyboard uses a different scan code set and its method of comunicating is slightly different than that of the ps2 protocol, and I was succesful at reading everything it sends.
PlacaFromHell: when you say that's how it is suposes to look, how are you able to know when many keys are pressed at the same time?

User avatar
purdobol

30 Jan 2019, 20:53

If it's connected through Soarer's converter it should send release codes. If it doesn't work properly there's a chance that converter detects the board improperly. There are 3 scancodes involved and sometimes converter gets confused. There's was a way to force specific type via some config. Don't remember the details since it was a while ago. Or change jumper pins on the controller if you board has them (marked B2-B7). I've also played around with connecting directly, but it only worked in pure linux terminal.

So in short play around with soarer's converter configuration, since it's the best and easiest way to get it working properly.

Interesting read on the topic:
http://www.seasip.info/VintagePC/ibm_1390876.html
http://www.seasip.info/VintagePC/ibm_6110344.html
http://www.seasip.info/VintagePC/ibm_1397000.html
http://www.seasip.info/VintagePC/ibm_6110344_cswap.html

User avatar
Muirium
µ

30 Jan 2019, 23:13

Linye wrote:
30 Jan 2019, 20:27
PlacaFromHell: when you say that's how it is suposes to look, how are you able to know when many keys are pressed at the same time?
Here’s some graphical options:

viewtopic.php?f=7&t=19922&p=426129&hili ... rd#p426129

hid_listen is very limited. Don’t rely on it for any more than the basics.

User avatar
PlacaFromHell

31 Jan 2019, 00:12

Linye wrote:
30 Jan 2019, 20:27
PlacaFromHell: when you say that's how it is suposes to look, how are you able to know when many keys are pressed at the same time?
Are you using hid_listen, a logic analizer or what kind of software? Suposing that you are using hid_listen, you will never see the relase codes. That's what I'm trying to say. If you can type properly with no stuck keys, it should be working normal.

Linye

31 Jan 2019, 00:19

I am not using hid_listen, just the serial monitor of the arduino

kpishere

16 Sep 2020, 14:52

Yep, understand the desire here. No, there wan't anything out there that I could find that was suitable.

So, here is a mashup of what I could find and it is turning out to be a very nice solution. I'm using my Model M Terminal-122 keyboard with my High Sierra Mac OS now.

Check out : https://github.com/kpishere/yakt122

---

Something I'm likeing here, I'm often using Windows VMs from this Mac for work, the left [Reset] key is the Apple [GUI] key in Mac-OS, the right [Enter] key is the similar key for Windows world. I find that works for me. Also, the pesky sub-currency-unit key works! (¢ vs #). Full control for the hardware that you own, that is what is is all about. Enjoy!

Post Reply

Return to “Keyboards”