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:
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:
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