Microordenadores - Desarrollos modernos para sistemas retro

Como convertir un teclado XT, AT, PS2 o Terminal a USB
2 de Abril de 2018

El conversor Soarer es un proyecto basado en una placa Teensy que sirve para adaptar teclados XT, AT y algunos modelos de terminal a USB de forma configurable y con soporte NKRO, remapeo de teclas y macros.

El conversor Soarer puedes comprarlo prefabricado a orihalcon en eBay con acabado profesional o ahorrar dinero montándolo tú mismo.

Herramientas necesarias

Como programar la placa Teensy++ 2.0 con Soarer

Aunque se recomienda una placa Teensy 2.0 si es más barata, he usado una placa Teensy++ 2.0 ya que la encontré a mejor precio (unos 18 euros en eBay). Grabar el archivo de firmware no tiene mucho misterio, tan sólo tienes que asegurarte de elegir el .hex correspondiente, que para esta placa es Soarer_at2usb_v1.12_at90usb1286.hex, y grabarlo con PJRC Teensy Loader.

Como conectar los pines del teclado a la placa

Si usas otra placa encontrarás la información necesaria en la sección de pines de las placas Teensy en la web oficial.

  • GND es GND
  • Vcc es +5V
  • Data es PD0
  • Clock es PD1

kbdbabel ofrece una gran cantidad de información sobre conectores. Tendrás que identificar cada señal en el teclado que vayas a convertir para hacer las conexiones correctas.

Como remapear teclas y configurar macros desde el controlador USB

Con teclados exóticos como el IBM Model F XT o los IBM para terminales la disposición de teclas no está bien configurada por defecto. Esto se puede arreglar con las herramientas que incluye el software de Soarer, concretamente scas y scwr, cuyo manejo se explica en el archivo tools.html de la documentación.

Junto a estas herramientas he usado hid_listen para ver el código que se genera (precidido por el símbolo +) al pulsar cada tecla. Una vez anotadas las teclas que vas a remapear tienes que buscar dicho código en el archivo codes.html de la documentación de Soarer. Imagínate que quieres remapear la tecla que al pulsarla da el código 0x93 para que actúe como flecha abajo; en ese caso la línea a añadir sería LANG_4 DOWN.

Configuración de ejemplo del conversor Soarer

A continuación incluyo la configuración de un teclado de terminal IBM 1390890 de 122 teclas donde configuro el teclado numérico como en los teclados normales, arreglo un par de teclas que faltan y configuro macros para las 10 teclas de función extra localizadas en la parte izquierda, que corresponden a FAKE_08, FAKE_09, ..., FAKE_17, que he configurado para que cada uno de ellos equivalga a pulsar CTRL + ALT + número, para luego configurar estas combinaciones desde el sistema operativo.

remapblock
	LANG_4 DOWN
	ESC NUM_LOCK
	NUM_LOCK PAD_SLASH
	SCROLL_LOCK PAD_ASTERIX
	EXTRA_SYSRQ PAD_MINUS
	PAD_ASTERIX PAD_PLUS
	PAD_MINUS PAD_PLUS
	PAD_PLUS PAD_ENTER
	F13 ESC
	F23 PRINTSCREEN
	F24 SCROLL_LOCK
	EUROPE_1 BACKSLASH
endblock

macroblock
	macro FAKE_08
		PUSH_META CLEAR_META all
		MAKE LCTRL
		MAKE LALT
		PRESS 1 
		BREAK LALT
		BREAK LCTRL
		POP_ALL_META
	endmacro
	macro FAKE_09
		PUSH_META CLEAR_META all
		MAKE LCTRL
		MAKE LALT
		PRESS 2 
		BREAK LALT
		BREAK LCTRL
		POP_ALL_META
	endmacro
endblock

Como grabar la configuración al controlador del teclado

Una vez escrita la configuración necesitas compilarla y luego escribirla al microcontrolador de esta forma:

scas m122.sc m122.scb
scwr m122.scb

Contenido relacionado: