IBM Converged Keyboard (122-key Model M) keymatrix simulator

This interactive tool simulates the keyboard matrix (keymatrix) of a IBM Converged Keyboard (122-key Model M) so that you can test if possible key combinations work without needing to test on a physical keyboard. Model Ms are all fundamentally two-key rollover (2KRO) keyboards due to the use of a membrane assembly, but this doesn't mean Model Ms cannot register more than 2 keys unlike popular belief. This tool demonstrates this and can allow you to see if a given Model M keymatrix would be suitable for your needs.

Disclaimer & notes

This tool is intended to be a guideline only. The results from any input are based on physical keymatrix data only and doesn't take into account firmware (ie, differing deghosting algorithm implementations or bugs/quirks). If you're using this tool as part of a purchasing decision, if possible, it would be prudent to try verifying results on a real keyboard someone you know has or ask on /r/modelm subreddit. The tool is also best viewed on desktop.

Keyboard simulator (5250)

F13
F14
F15
F16
F17
F18
F19
F20
F21
F22
F23
F24
F1
F2
F3
F4
F5
F6
F7
F8
F9
F10
F11
F12
SysRq Attn
ScrLk
`
1
2
3
4
5
6
7
8
9
0
-
=
Backspace
Back Tab
Dup
RollDn
End
NumLk
Num /
Num *
Print Screen
Clear
Tab
Q
W
E
R
T
Y
U
I
O
P
[
]
Field Exit
Return
Delete
RollUp
Num 7
Num 8
Num 9
Field -
Print
Help
Caps Lock
A
S
D
F
G
H
J
K
L
;
'
\
Up
Num 4
Num 5
Num 6
Field +
Record
Play
LShift
N/A 1
Z
X
C
V
B
N
M
,
.
/
RShift
Left
Home
Right
Num 1
Num 2
Num 3
Num Field Exit
GUI
Menu
Reset
LAlt
Space
RAlt
Enter
Down
Num 0
Num .
Switch to 3270

Only US English functional layout is available for the 5250 simulator at this time

Key

Firmware caution: A 3-key combination that may or may not be problematic depending on keyboard's firmware. A custom QMK-based controller would probably be fine with these, but IBM/Lexmark/Unicomp native firmware may not.
Hardware block: A N-key combination that will block in any circumstance due to the matrix's design. There is nothing you can do about these since they're a fundamental keymatrix limitation.

Matrix

This is a tabular representation of the data used by the simulator above. A keyboard matrix is constructed from a series of columns (X-axis) and rows (Y-axis) whose intersections are used for key assignment. Such matrices allows a large number of keys to be driven by relatively few traces, as opposed to each key requiring its own circuit.

0 1 2 3 4 5 6 7 8 9 A B C D E F G H I J
0 k_lalt k_space k_rctrl k_lshift k_nubs k_b k_n k_f23 k_f24 k_f12 k_fwslash kp_0 kp_dot kp_enter
1 k_left kp_1 k_caps k_rshift k_z k_x k_c k_v k_m k_f22 k_f10 k_f11 k_cm k_period k_nuhs k_return kp_2 kp_3
2 k_lb5 k_lb6 k_t k_y k_f20 k_f21 k_f9 k_rbrc k_lbrc k_backsl k_end
3 kp_plus k_lb4 k_tab k_q k_w k_e k_r k_u k_f19 k_f7 k_f8 k_i k_o k_p kp_7 k_pgdn kp_8 kp_9
4 k_lb1 k_lb2 k_tild k_5 k_6 k_f17 k_f18 k_f6 k_equals k_minus k_backspace k_ins k_home
5 kp_minus k_lb3 k_1 k_2 k_3 k_4 k_7 k_f16 k_f4 k_f5 k_8 k_9 k_0 kp_nl k_pgup kp_div kp_mult
6 kp_plus_hidden k_lb7 k_lb8 k_a k_s k_d k_f k_j k_f14 k_f15 k_f3 k_k k_l k_semicolon kp_4 k_del kp_5 kp_6 k_right
7 k_lctrl k_lb9 k_lb10 k_ralt k_g k_h k_f13 k_f1 k_f2 k_singlequote k_down k_up k_navmid

More info