Today, I've got a Teensy 2.0 and applied the converter to an old IBM 3270 terminal keyboard (1394312, M-122, no LEDs, RJ-45 connector). I had already created a little LED control PCB, so adding it was a matter of minutes. Absolutely great!
Since my main keyboard is a Unicomp PC/5250 keyboard, I've created a layout that's nearly 100% compatible to that (actually, it handles certain conditions BETTER than the original, which I intend to modify a bit once this replacement keyboard is fully up to the job). Here it is:
ifset set3
# Arakula's config for Terminal Model M (No 1394312, 122 keys, ISO Layout, cable with RJ45 connector)
# This one mimics the Unicomp PC/5250's behavior as closely as possible
###############################################################################
# macros to mimic the PC/5250 set 2 behavior
###############################################################################
# left hand side function keys
macroblock
macro EXTRA_F2
PUSH_META CLEAR_META all # save and clear all metas
SET_META lctrl
press 2
POP_ALL_META
endmacro
macro EXTRA_F5
PUSH_META CLEAR_META all # save and clear all metas
SET_META LCTRL
press PAUSE
POP_ALL_META
endmacro
macro EXTRA_F6
PUSH_META CLEAR_META all # save and clear all metas
SET_META LALT
press F1
POP_ALL_META
endmacro
macro EXTRA_F7
PUSH_META CLEAR_META all # save and clear all metas
SET_META LCTRL LSHIFT
press 4
POP_ALL_META
endmacro
macro EXTRA_F8
PUSH_META CLEAR_META all # save and clear all metas
SET_META LCTRL LSHIFT
press 3
POP_ALL_META
endmacro
endblock
# function keys upper row
macroblock
macro F13
PUSH_META CLEAR_META all # save and clear all metas
SET_META lshift
press F1
POP_ALL_META
endmacro
macro F14
PUSH_META CLEAR_META all # save and clear all metas
SET_META lshift
press F2
POP_ALL_META
endmacro
macro F15
PUSH_META CLEAR_META all # save and clear all metas
SET_META lshift
press F3
POP_ALL_META
endmacro
macro F16
PUSH_META CLEAR_META all # save and clear all metas
SET_META lshift
press F4
POP_ALL_META
endmacro
macro F17
PUSH_META CLEAR_META all # save and clear all metas
SET_META lshift
press F5
POP_ALL_META
endmacro
macro F18
PUSH_META CLEAR_META all # save and clear all metas
SET_META lshift
press F6
POP_ALL_META
endmacro
macro F19
PUSH_META CLEAR_META all # save and clear all metas
SET_META lshift
press F7
POP_ALL_META
endmacro
macro F20
PUSH_META CLEAR_META all # save and clear all metas
SET_META lshift
press F8
POP_ALL_META
endmacro
macro F21
PUSH_META CLEAR_META all # save and clear all metas
SET_META lshift
press F9
POP_ALL_META
endmacro
macro F22
PUSH_META CLEAR_META all # save and clear all metas
SET_META lshift
press F10
POP_ALL_META
endmacro
macro F23
PUSH_META CLEAR_META all # save and clear all metas
SET_META lshift
press F11
POP_ALL_META
endmacro
macro F24
PUSH_META CLEAR_META all # save and clear all metas
SET_META lshift
press F12
POP_ALL_META
endmacro
endblock
# cursor block
macroblock
# This is really for the INSERT key, which has been remapped to the unused key INTERNATIONAL_8
macro INTERNATIONAL_8
PUSH_META CLEAR_META all # save and clear all metas
SET_META lshift
press TAB
POP_ALL_META
endmacro
# This is really for the DELETE key, which has been remapped to the unused key INTERNATIONAL_9
macro INTERNATIONAL_9
# this one is completely senseless, but Unicomp PC/5250...
PUSH_META CLEAR_META all # save and clear all metas
# must be set separately to get them in precise order
SET_META lshift
SET_META lctrl
POP_ALL_META
endmacro
endblock
# Numpad
macroblock
macro SCROLL_LOCK shift
PRESS NUM_LOCK
endmacro
endblock
###############################################################################
# key remapping
###############################################################################
remapblock
# left hand side function keys
EXTRA_F1 ESC
# EXTRA_F2 macro: LCtll - 2 - 2 up - LCtrl up
EXTRA_F3 PRINTSCREEN
EXTRA_F4 PAUSE
# EXTRA_F5 macro: LCtrl - Break down - Break up - LCtrl up
# EXTRA_F6 macro: LAlt - F1 - F1 up - LAlt up
# EXTRA_F7 macro: LCtrl - LShift - 4 - LShift up - LCtrl up
# EXTRA_F8 macro: LCtll - LShift - 3 - LShift up - LCtrl up
EXTRA_F9 LGUI
EXTRA_F10 APP
# function keys upper row
# F13 macro: LShift - F1 - F1 up - LShift up
# F14 macro: LShift - F2 - F2 up - LShift up
# F15 macro: LShift - F3 - F3 up - LShift up
# F16 macro: LShift - F4 - F4 up - LShift up
# F17 macro: LShift - F5 - F5 up - LShift up
# F18 macro: LShift - F6 - F6 up - LShift up
# F19 macro: LShift - F7 - F7 up - LShift up
# F20 macro: LShift - F8 - F8 up - LShift up
# F21 macro: LShift - F9 - F9 up - LShift up
# F22 macro: LShift - F10 - F10 up - LShift up
# F23 macro: LShift - F11 - F11 up - LShift up
# F24 macro: LShift - F12 - F12 up - LShift up
# cursor block
# these 2 mapped to unused keys, which are then treated by macros
INSERT INTERNATIONAL_8
DELETE INTERNATIONAL_9
HOME INSERT
END DELETE
LANG_4 HOME
# Numpad
ESC END
NUM_LOCK SCROLL_LOCK
SCROLL_LOCK PAD_SLASH
EXTRA_SYSRQ PAD_ASTERIX
PAD_ASTERIX PAD_MINUS
PAD_MINUS PAD_PLUS
PAD_PLUS PAD_ENTER
# #-key
EUROPE_1 BACKSLASH
endblock
... does the job, including the idiotic key behavior of the Delete key (in the sense of a normal PS/2 keyboard) on the number block.
Pics will follow once I got the final cabling :-)