Author Topic: IBM Model M simply made wireless  (Read 3727 times)

0 Members and 1 Guest are viewing this topic.

Offline martinmeijerink

  • Thread Starter
  • Posts: 29
    • http://www.kelvyn.nl
IBM Model M simply made wireless
« on: Wed, 17 August 2011, 04:07:34 »
Making the IBM Model M wireless is really very simple!
The only thing you need is a PCB from a Logitech Wii Keyboard.
(And some solder stuff)
There's only 1 minor disadvantage, there are two keys swapped, the Keypad Minus and the Keypad Plus, but this can be fixed easlily by remapping those 2 keys in software.

Last week, I read kishy's thread called Wireless Modem M.
He wanted to put a PCB from a Logitech Wireless rubberdome into a Model M and connect the matrix to it.
By just wiring them up randomly and remapping later, but his project died...

Then I saw also Mnemonix' representation of the Model M matrix:

Code: [Select]
Loaded 204 keys and 8 modifiers from "firmware/common/usbkeycodes.h".
IBM Model M 1391401: 103 unique keycodes on 103 keys in a 16x8 matrix.
Keyboard matrix:
   |           1 |           2 |           3 |           4 |           5 |           6 |           7 |           8
---+-------------+-------------+-------------+-------------+-------------+-------------+-------------+-------------
 1 |             |             | MOD_LCTRL   |             |             |             | MOD_RCTRL   |            
 2 |             | MOD_LSHIFT  |             |             |             |             | MOD_RSHIFT  |            
 3 | KEY_esc     | KEY_tab     | KEY_grave   | KEY_1       | KEY_Q       | KEY_A       | KEY_Z       |            
 4 | KEY_Euro    | KEY_cpslck  | KEY_F1      | KEY_2       | KEY_W       | KEY_S       | KEY_X       |            
 5 | KEY_F4      | KEY_F3      | KEY_F2      | KEY_3       | KEY_E       | KEY_D       | KEY_C       |            
 6 | KEY_G       | KEY_T       | KEY_5       | KEY_4       | KEY_R       | KEY_F       | KEY_V       | KEY_B      
 7 | KEY_F5      | KEY_bckspc  | KEY_F9      | KEY_F10     |             | KEY_bckslsh | KEY_enter   | KEY_spc    
 8 | KEY_H       | KEY_Y       | KEY_6       | KEY_7       | KEY_U       | KEY_J       | KEY_M       | KEY_N      
 9 | MOD_LALT    |             |             | KEY_PrtScr  | KEY_scrlck  |             |             | MOD_RALT    
10 | KEY_uarr    |             | KEY_home    | KEY_end     | KEY_KPplus  | KEY_KPenter | KEY_break   | KEY_larr    
11 | KEY_KPdot   | KEY_KP6     | KEY_pgup    | KEY_pgdn    | KEY_KP9     | KEY_KP3     | KEY_KPast   | KEY_KPminus
12 | KEY_KP0     | KEY_KP5     | KEY_ins     | KEY_F12     | KEY_KP8     | KEY_KP2     | KEY_KPslash | KEY_rarr    
13 |             | KEY_KP4     | KEY_del     | KEY_F11     | KEY_KP7     | KEY_KP1     | KEY_numlock | KEY_darr    
14 | KEY_ping    | KEY_lbr     | KEY_minus   | KEY_0       | KEY_P       | KEY_smcol   | KEY_hash    | KEY_slash  
15 |             | KEY_F7      | KEY_F8      | KEY_9       | KEY_O       | KEY_L       | KEY_dot     |            
16 | KEY_F6      | KEY_rbr     | KEY_equal   | KEY_8       | KEY_I       | KEY_K       | KEY_comma   |            


This looks very familiar to me!
I fell out of my chair when I discovered that the IBM Model M matrix is VERY similar to the matrix of my favourite Logitech Wii Keyboard:

Code: [Select]
Logitech Wii Keyboard's matrix:
   |           1 |           2 |           3 |           4 |           5 |           6 |           7 |           8
---+-------------+-------------+-------------+-------------+-------------+-------------+-------------+-------------
 A | KEY_rarr    | KEY_KPslash | KEY_KP0     | KEY_KP2     | KEY_KP5     | KEY_KP8     | KEY_F12     | KEY_ins    
 B | KEY_darr    | KEY_numlock |             | KEY_KP1     | KEY_KP4     | KEY_KP7     | KEY_F11     | KEY_del    
 C | KEY_KPplus  | KEY_KPast   | KEY_KPdot   | KEY_KP3     | KEY_KP6     | KEY_KP9     | KEY_pgdn    | KEY_pgup    
 D | KEY_larr    | KEY_break   | KEY_uarr    | KEY_KPenter |             | KEY_KPminus | KEY_end     | KEY_home    
 E | MOD_RALT    |             | MOD_LALT    |             |             | KEY_scrlck  | KEY_PrtScr  |            
 F |             | MOD_RSHIFT  |             |             | MOD_LSHIFT  |             |             |            
 G |             | MOD_RCTRL   |             |             |             |             |             | MOD_LCTRL  
 H |             |             |             |             |             |             |             |            
 I | KEY_spc     | KEY_enter   | KEY_F5      | KEY_bckslsh | KEY_bckspc  |             | KEY_F10     | KEY_F9      
 J | KEY_slash   | KEY_hash    | KEY_ping    | KEY_smcol   | KEY_lbr     | KEY_P       | KEY_0       | KEY_minus  
 K |             | KEY_dot     |             | KEY_L       | KEY_F7      | KEY_O       | KEY_9       | KEY_F8      
 L |             | KEY_comma   | KEY_F6      | KEY_K       | KEY_rbr     | KEY_I       | KEY_8       | KEY_equal  
 M | KEY_N       | KEY_M       | KEY_H       | KEY_J       | KEY_Y       | KEY_U       | KEY_7       | KEY_6      
 O | KEY_B       | KEY_V       | KEY_G       | KEY_F       | KEY_T       | KEY_R       | KEY_4       | KEY_5      
 P |             | KEY_C       | KEY_F4      | KEY_D       | KEY_F3      | KEY_E       | KEY_3       | KEY_F2      
 Q |             | KEY_X       | KEY_Euro    | KEY_S       | KEY_cpslck  | KEY_W       | KEY_2       | KEY_F1      
 R |             | KEY_Z       | KEY_esc     | KEY_A       | KEY_tab     | KEY_Q       | KEY_1       | KEY_grave  


Only most of the rows and columns are garbled, but only the WHOLE row or column!!
So I realized that if I would connect the wires like this:

then it should work!!!

The Logitech Wii Keyboard's PCB is worth its weight in gold!!!!!

The ONLY difference is the Keypad Minus and the Keypad Plus appeared to be swapped...
This can be fixed by remapping those 2 keys in software.

So i decided to perform this mod!


I took an old 86-pins connector which was intended for use on my Amiga 500 long time ago, and removed some pins...


This is all I had to solder, 24 wires.


Some double-folded cardboard, so it would fit... :)


Ready! (This is my fifth keyboard which I've made wireless)

----

To fix the KP- and KP+ swap:
For Windows:

  [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout]
  "Scancode Map"=hex:00,00,00,00,00,00,00,00,03,00,00,00,4a,00,4e,00,4e,00,4a,00,00,00,00,00

(You can download this registry-hack here: http://files.zutphen.nu/kpplusminusswap.reg )

For Linux: enter the following lines in .Xmodmap:

  keycode  82 = KP_Add
  keycode  86 = KP_Subtract

Offline martinmeijerink

  • Thread Starter
  • Posts: 29
    • http://www.kelvyn.nl
IBM Model M simply made wireless
« Reply #1 on: Wed, 17 August 2011, 15:54:11 »
Thanx ripster!
Now I've added a multifunctional storage solution, so I can store the USB-dongle in the keyboard when not in use, or when traveling with the keyboard, and at the same time the power is automatically physically switched off:

When I insert the dongle, the microswitch will be triggered, and the power is switched off. :)

Final result:


Ready to go, and take the keyboard with me:

Offline REVENGE

  • Posts: 1212
IBM Model M simply made wireless
« Reply #2 on: Wed, 17 August 2011, 22:18:24 »
Win
◕ ‿ ◕

Offline takieda

  • Posts: 3
IBM Model M simply made wireless
« Reply #3 on: Sun, 29 January 2012, 21:31:44 »
martinmeijerink: Thank you very much for figuring this out. For the past several years I've looked into (unsuccessfully) how to make a wireless Model M (for the day I ever get an M15), and only last year spotted the first success story (also here on geekhack), but the work required knowledge of assembler (from what I understand), and I'm anything but a programmer... I kept the page linked for the longest, thinking to myself one day I'll learn assembler and make this damned thing wireless, but earlier today, browsed again to see if any progress had been made at other methods to find yours, and I am stunned. This has been a dream long time coming that has finally come true... I'm ordering the Wii keyboard as soon as I get paid again, and will begin modifications of my first Model M... I intend to make a 3-4 of these for personal use.

That being said, I do have a couple of questions.
1) I'm not familiar enough with electronics to remember how batteries add up or whatever, their power, so with 4 batteries in line like that, do they add voltage, or add amperage? i.e. is that a 1.5 volt battery pack, or a 6.0 volt pack?
2) I've used lots of wireless equipment over the years and have always preferred them, but over time they do eventually go out. The model M itself is such a sturdy beast, I'm forced to wonder, what GOES out on wireless devices to cause these problems. Is it something I should worry about, or is it typically the keys that have problems (mostly what I'm aware of is mice that suddenly can't track for crap, and keyboards that have serious times with some keys, or key sections, etc..). I've always wondered if the antenna system goes out, or if it's something else on the units that goes out. As a result, if the antenna system (transmitter/receiver) is robust and the problems I've experienced were related to the remainder of the hardware of the other devices, am I wrong in assuming that this setup, well installed, should last me many more years to come?
3) Is it possible to fix the key remapping issue on a hardware level, other than to reprogram the matrix (from what I understand that's what has to happen on the other wireless mod)?

I know I ramble, and I'm sorry for the length of the questions, but if nothing else, this tutorial has just made me absolutely ecstatic about the project, and I thank you genuinely for your work on it.

Offline martinmeijerink

  • Thread Starter
  • Posts: 29
    • http://www.kelvyn.nl
IBM Model M simply made wireless
« Reply #4 on: Mon, 30 January 2012, 12:33:13 »
Quote from: takieda;502815
martinmeijerink: Thank you very much for figuring this out. For the past several years I've looked into (unsuccessfully) how to make a wireless Model M (for the day I ever get an M15), and only last year spotted the first success story (also here on geekhack), but the work required knowledge of assembler (from what I understand), and I'm anything but a programmer... I kept the page linked for the longest, thinking to myself one day I'll learn assembler and make this ****** thing wireless, but earlier today, browsed again to see if any progress had been made at other methods to find yours, and I am stunned. This has been a dream long time coming that has finally come true... I'm ordering the Wii keyboard as soon as I get paid again, and will begin modifications of my first Model M... I intend to make a 3-4 of these for personal use.


Ok, cool...

Quote
That being said, I do have a couple of questions.
1) I'm not familiar enough with electronics to remember how batteries add up or whatever, their power, so with 4 batteries in line like that, do they add voltage, or add amperage? i.e. is that a 1.5 volt battery pack, or a 6.0 volt pack?

The Logitech Wii PCB requires 3 volts, so you'll need 2 batteries. In my first keyboard mod, in October 2009,  I took 2 AAA IKEA batteries, and after more than 2 years they *still* last...
To get 3 volts, you have to connect them inline like this:


But if you connect them like this, then they add potentional current (amperage):

The voltage remains 1.5v

You can also add both voltage AND potentional current by connecting 4 batteries this way:

Then the voltage is 3 volts.

Quote
2) I've used lots of wireless equipment over the years and have always preferred them, but over time they do eventually go out. The model M itself is such a sturdy beast, I'm forced to wonder, what GOES out on wireless devices to cause these problems. Is it something I should worry about, or is it typically the keys that have problems (mostly what I'm aware of is mice that suddenly can't track for crap, and keyboards that have serious times with some keys, or key sections, etc..). I've always wondered if the antenna system goes out, or if it's something else on the units that goes out. As a result, if the antenna system (transmitter/receiver) is robust and the problems I've experienced were related to the remainder of the hardware of the other devices, am I wrong in assuming that this setup, well installed, should last me many more years to come?

I don't know why those wireless equipment go out over time. But if only specific sections of your keyboard goes out then it has nothing to do with the wireless part...
(Most wireless devices aren't dishwasher proof)

Quote
3) Is it possible to fix the key remapping issue on a hardware level, other than to reprogram the matrix (from what I understand that's what has to happen on the other wireless mod)?
The only way is to do a bolt mod, but I think it's very hard (or maybe even impossible) to remap the matrix (which consists of membrane) on a hardware level.
Quote

I know I ramble, and I'm sorry for the length of the questions, but if nothing else, this tutorial has just made me absolutely ecstatic about the project, and I thank you genuinely for your work on it.
Ok, no problem... :)

Offline f16pilotjumper

  • Posts: 37
IBM Model M simply made wireless
« Reply #5 on: Mon, 30 January 2012, 17:35:43 »
This is awesome!
Northgate Omnikey Ultra (Home) | Ortek MCK-101FX (In Restoration) | 2x IBM KPD8923 (Work)

Offline takieda

  • Posts: 3
IBM Model M simply made wireless
« Reply #6 on: Sat, 18 February 2012, 11:33:10 »
I feel absolutely foolish for this, but I can't seem to find the keyboard. Let me explain. First, I automatically assumed the first keyboard I'd come across to be the correct one, which is shown here, and saw several auctions for it (mostly out of the states), and missed bidding on 2 of them that could have been affordable. In retrospect I'm glad I didn't get them, because there's another keyboard that keeps cropping up as a logitech wii keyboard, found here. From the picture it looks wired, BUT it has the necessary 101+ keys to match up with the keys on the Model M, whereas the first keyboard listed only has 81 keys. It dawns on me that even if the second one is not the correct keyboard (and probably is wired, from the description), is there perhaps ANOTHER keyboard aside from the first one I listed that might be used? This thought comes two fold, as if the first one listed IS the correct keyboard, that means it has a matrix designed to work with many more keys than the keyboard is designed for, and the only logical explanation for this is that this is a common matrix used in more than one keyboard by logitech (would make sense - why reinvent the wheel, why not just reuse the same board over and over when you can). Secondly, IF the first link is NOT the keyboard, then obviously there must be another keyboard out there that I'm missing.

That being said, IF there's another keyboard that has the right board, I wonder if there's one that would work like this tutorial AND provide bluetooth functionality. I've got several other devices, including a bluetooth mouse that I'm going to be modding that will fit well together to not have another dongle sticking out of my computer. Sorry if I'm rambling, or making an incoherent mess of this question, but it's been a LONG night... But hopefully this makes sense.

Offline martinmeijerink

  • Thread Starter
  • Posts: 29
    • http://www.kelvyn.nl
IBM Model M simply made wireless
« Reply #7 on: Sat, 18 February 2012, 12:07:05 »
The first one listed IS the correct keyboard, and indeed, it means it has a matrix designed to work with many more keys...
But it has also supports the specific Wii-keys.
Quote
and the only logical explanation for this is that this is a common matrix used in more than one keyboard by logitech (would make sense - why reinvent the wheel, why not just reuse the same board over and over when you can). Secondly, IF the first link is NOT the keyboard, then obviously there must be another keyboard out there that I'm missing.
makes also sense to me...

Quote
That being said, IF there's another keyboard that has the right board, I wonder if there's one that would work like this tutorial AND provide bluetooth functionality. I've got several other devices, including a bluetooth mouse that I'm going to be modding that will fit well together to not have another dongle sticking out of my computer. Sorry if I'm rambling, or making an incoherent mess of this question, but it's been a LONG night... But hopefully this makes sense.
ok, makes sense too... you may be right, perhaps another random wireless logitech board may have the same matrix, but I don't know...

Online eugenius

  • Posts: 191
IBM Model M simply made wireless
« Reply #8 on: Fri, 02 March 2012, 04:48:28 »
LOL, it's nice but really what's the point, the model M is the most un-portable keyboard there is. Is it 2KRO?
Cherry ErgoPlus MX5000 + MX5700 / IBM Model M

Offline martinmeijerink

  • Thread Starter
  • Posts: 29
    • http://www.kelvyn.nl
IBM Model M simply made wireless
« Reply #9 on: Fri, 02 March 2012, 05:00:10 »
It's portable enough to me...
How many kro it is depends, when pressing qwas it's just 2kro, but when pressing asdfjk it's 6kro...

Offline luckynet

  • Posts: 118
IBM Model M simply made wireless
« Reply #10 on: Mon, 02 April 2012, 05:04:38 »
does this work for the ssk model as well?
Realforce 104U - HHKB Pro 2
Filco Magestouch 2 Brown - Duckyshine 9008s Brown - QFR Red - Plum MX 96 Blue - KBT Race Red - Leopold FC700R Blue - SS 7G Black
IBM Model M SSK