
En esta ocasión os traemos un dispositivo bastante interesante que nos permite conectar un teclado USB a la placa OMEGA (MSX2+). Gracias a sillycony por su contribución con la comunidad.
El proyecto en si, es interesante porque permite adaptar esta placa a cualquier MSX y conectar un teclado externo USB, una solución para aquellos ordenadores que sufren el típico deterioro de las membranas del teclado.
El dispositivo es compatible con la placa JFF (MSX1) y también se ha adaptado a la placa EXPERT 4 turbo funcionando perfectamente.
Teniendo el esquema de teclado del ordenador en cuestión, se pueden identificar los pines necesarios e ir conectándolos a la placa OMEGA USB KEYB CTRL, la mayoría de los teclados el MSX funcionan de la misma manera. Utilizaremos el ejemplo de la placa EXPERT4 turbo para poder identificar y entender el esquema del teclado y la manera de conectarlo.
El proyecto está compartido a través de su página de github como un «USB-keyboard-to-OMEGA-converter«, un convertidor para teclado USB ‘qwerty’ o ‘azerty’ al puerto de teclado del ordenador OMEGA MSX».
Tenemos que destacar que este dispositivo funciona muy bien. En las pruebas que hemos realizado no hemos identificado ningún tipo de retraso y la velocidad de pulsación de las teclas es inmejorable. Esto último lo podremos comprobar más adelante con un programa muy sofisticado que tiene el MSX, específico para hacer los test de respuesta del teclado.
Este proyecto está diseñado en su totalidad con componentes SMD, con la particularidad de tener dos chips multi-pin. En este caso hablamos de un chip modelo CH9350L, que controla el puerto USB y del chip STM32G030C8T6 que es el microcontrolador encargado de contener el código que traduce la señal USB procedente del teclado externo, en otra señal de teclado que entiende el MSX.
Aquí podemos observar la placa PCB que conectará los componentes. Como podéis comprobar la mayor dificultad en este proyecto es soldar los chips multi-pin U1 y U2. El resto de componentes son mucho más asequibles.

Las partes importantes del dispositivo son las siguientes:

Y llegados a este punto ya estamos preparados para explicar paso a paso todo el procedimiento a seguir.
PASO1. Adquisición de los componentes necesarios.
1-U2 Microcontrolador ST STM32G030C8T6: Contiene el código que traduce las señales del teclado USB a señales de teclado que entiende el MSX.

2- U1 Controlador CH9350L: Controlador de comunicación USB para teclado y ratón:

3- U3 Regulador de voltaje: Regulador de voltaje AMS117 de 3.3v:

4- USB1 Zócalo USB hembra:

5- Condensadores SMD:
Hay de dos tipos, de TANTALIO o CERÁMICOS:

1x / C1= 3.3uF 25v: Este condensador puede ser tanto cerámico tamaño 1206 o de tantalio tamaño A3216.
1x / C3=100uF 10v: Condensador de tantalio tamaño D 7343
1x / C6=10uF 16v: Condensador cerámico tamaño 0805. Puede instalarse un tamaño más grande 1206 pero ira justo en la huella y será complicado de soldar.
4x / C2, C4, C5, C7=100nF: Condensador cerámico de tamaño 0805.
6- Resistencias SMD:

1x / R1 = 330 Ohms: Tamaño 0805
1x / R2 = 1 Ohm: Tamaño 1206
1x / R3 = 1K Ohm: Tamaño 0805
1x / R4 = 100K Ohm: Tamaño 0805.
NOTA: En la lista de componentes BOM del autor por error especifica que R4 tiene un valor de 100MOhms cuando quería decir 100KOhms
1x / LED1 = Led SMD de cualquier color: tamaño 0805

7- Tira de pines: Tira de pines para CN1 y H1.

8- Programador ST-LINK v2: Necesario para programar el chip STM32G030C8T6.

10- Una lupa tradicional o una electrónica:

11- Punta de soldadura cóncava: Punta de soldadura en cilindro acabado con un corte en diagonal. El modelo es tipo 3C, que significa que es una punta de 3mm:

PASO2. Montaje de la placa.
Para empezar este montaje lo primero que que tenemos que soldar son los dos chips multi-pin. El motivo, es que si no somos capaces de soldar con éxito estos dos chips, mejor no continuar con los demás componentes. Igualmente os daremos unas pautas a seguir para comprobar que el chip se ha soldado correctamente. No es una tarea trivial, pero con las herramientas adecuadas y nuestra guía no debería ser misión imposible.
Lo primero a tener en cuenta que la PCB, tanto U1 como U2 tienen un punto blanco en la huella. Dicho punto blanco identifica el PIN1 del chip indicando así la posición que debe tener el chip una vez soldado. Evidentemente el propio chip también tiene una muesca redonda que debe coincidir con el punto blanco de la PCB

Por tanto, cuando soldemos los chip U1 y U2, deberemos posicionadlos tal y como se observa en la siguiente imagen:

Como podéis ver el chip CH9350L, parece tener 3 muescas, pero la muesca que señala el PIN1 es la más redonda y pequeña, y con el fondo cóncavo, mientras que las otras 2 son más grandes y su fondo es totalmente plano. Estas 2 muescas forman parte de la fabricación del propio chip.

Para soldar los chips multi-pin el procedimiento a seguir es el siguiente:
Inspeccionad el chip para ver si tiene pines doblados y comprobad que todos están equidistantes, si no es así corregidlo.
Añadir un cordón de flux en todos los pads de la huella en cuestión.
Posicionad el chip encima del flux y utilizando lupa alinead los pines con los pads de la huella.
Aunque el chip queda un poco sujeto por el flux, conviene apoyar las pinzas u otro objeto en el chip para evitar que se mueva ahora.
Poned un poco de estaño en la punta del soldador y a continuación acercadla a los pads de una de las esquinas.

Con esto soldaríamos los pines que quedan en dicha «esquina» permitiendo que quede fijo en la PCB.
Ahora revisad de nuevo que los pines siguen alineados correctamente y que el chip no se mueve (con cuidado).
Si el chip está mal alineado aun podéis corregirlo tocando con la punta del soldador en la soldadura y volviendo a posicionar.
Si la soldadura no ha agarrado bien en los pad, añadid nuevo flux, y volvedlo a intentar, insistiendo en calentar más el pad que el pin. De momento no es importante si la soldadura ha puenteado más de un pin.
Una vez una esquina esta soldada y la posición del chip está completamente alineada, repetid la operación en la esquina opuesta y así el chip no volverá a moverse.

Ya teniendo el chip fijado en la PCB procederemos a acabar de soldar los restantes pines. El método recomendado es añadir estaño en la punta cóncava (3C) he ir deslizando de arriba a bajo sobre los pines de un lateral, sin doblar los pines.
Aquí os ofrecemos un pequeño video-tutorial del procedimiento utilizado para soldar este tipo de chips.
Una vez soldados los dos chips hay que limpiar la placa bien con alcohol isopropílico y un pincel o cepillo de dientes antes de poder inspeccionarlo.
A continuación, ayudados con una aguja fina de coser y una lupa, empujaremos cada pin con movimiento lateral para confirmar que todos están bien soldados y no haya ninguno que se desplace, en cuyo caso sería síntoma de que no está bien soldado y habría que repasar la soldadura.
También hay que revisar visualmente que no hay 2 pines unidos por estaño, en tal caso retiraremos el estaño añadiendo flux y acercando la punta sin estaño, bien limpia.
Recordad que todo esto funcionará sin problemas utilizando flux en gel y la punta de tipo 3C.

Llegados a este punto, el resto de componentes a soldar no ofrecen prácticamente ninguna dificultad.
Como se puede observar en la imagen, tenemos todas las resistencias y condensadores soldados, menos R4, el regulador de tensión a 3.3v y el LED SMD. Hay que tener en cuenta que los condensadores de tántalo tienen polaridad: la franja marrón que tienen encima del encapsulado marca el signo positivo. Si os fijáis en la huella de la placa PCB también esta marcada con una franja blanca el lado positivo, por tanto hay que hacer coincidir franjas en la misma posición.

En la siguiente imagen soldamos el regulador de tensión de 3.3v y la resistencia de 100K Ohms.

Respecto al LED SMD, al parecer hay un error en la serigrafía y la huella está invertida pues si no estamos equivocados el negativo debería estar indicado por la franja blanca (que se corresponde con la franja verde que posee el LED). Por tanto, deberéis soldar el LED tal como se muestra en la imagen de arriba.
Una vez soldado el zócalo USB, y el conector de 16 pines daremos por concluida la construcción del hardware.

Nota:
En el conector H1 podéis insertar un conector de pines macho si vais a utilizar un cable plano, insertado por la parte superior de la placa (como se muestra en la imagen superior), o podéis insertar un conector hembra por la parte inferior de la placa para insertarlo directamente en el OMEGA (como se muestra en la imagen inferior).
En la siguiente imagen os mostramos la ubicación de la placa OMEGA USB KEYB CTRL, montado en un OMEGA

Paso 3. Instalación del software necesario para grabar el microcontrolador.
El software utilizado para grabar la firmware al microcontrolador STM32G030C8T6 es el STM32 CubeProgrammer. La versión probada es la 2.14.0 que también es la última hasta el momento.

El tipo de instalación, lo conforma la propia aplicación en si, como los drivers del dispositivo ST-link v2. La instalación básicamente se resume en pulsar «NEXT» hasta finalizar la instalación.

Pulsaremos «Instalar» el driver cuando nos lo solicite:


Y finalizaremos la instalación.

Una vez finalizada la instalación pincharemos el programador ST-Link a un puerto USB y comprobaremos que es detectado correctamente en el Administrador de dispositivos de windows.

Una vez comprobado que el driver se instala correctamente y se muestra tal como en la imagen superior, abriremos la aplicación STM32 CubeProgrammer y también comprobaremos que detecta el programador correctamente. Al parecer, da problemas de conexión si el programador no es el ORIGINAL. A continuación una muestra.

En este tutorial se ha empleado un clon chino del programador ST-link v2, y por tanto muestra el error que observáis en la imagen superior. Para resolver esta incidencia, hay que seguir los pasos siguientes:
1- Pulsaremos en el desplegable de SHARED y seleccionaremos ENABLE
2- Pulsaremos el icono de ACTUALIZAR y debería mostrar un número de serie largo.

3- Si no muestra un número de serie y sigue mostrando NO ST-Link deberemos es instalar la aplicación STM32 CubeIDE, que viene a ser como un IDE arduino e instala más tipos de drivers. Parece ser que el driver que instala la aplicación STM32 CubeProgrammer, no le acaba de sentar bien a los programadores falsos y esta es la única manera de solucionarlo.
A este segundo driver SI le sientan bien al ST-Link v2 «chinorris».
Para aquellos que lo necesitéis, mostramos como instalar la versión del STM32 CubeIDE v 1.13.2.

En procedimiento para la instalación, es como la mayoría de programas en Windows: Todo «NEXT» hasta completar la instalación.


Una vez finalizada la instalación, retiraremos el programador ST-Link v2 del puerto USB y lo volveremos a insertar.
Abriremos otra vez la aplicación STM32 CubeProgrammer y repetiremos otra vez el paso 2. Pulsaremos en el desplegable de SHARED y seleccionaremos ENABLE y al pulsar sobre el icono de actualizar, (ahora sí) conseguimos que nos muestre el numero un numero de serie largo, similar a la imagen siguiente.

Por fin, una vez detectado CORRECTAMENTE el programador en la aplicación, conectaremos la placa PCB, para cargar el firmware al chip.
Paso 4. Conexión del programador ST-Link v2 con la placa PCB OMEGA USB KEYB CTRL.
El conexionado entre el programador y la placa PCB es muy simple, tan solo debemos unir con cables dupont los pines SWCLK, GND, SWDIO, NRESET, de ambos extremos tomando como referencia la leyenda de cada lado:

Volveremos a la aplicación STM32 CubeProgrammer y ahora pulsaremos el botón de CONNECT.

Aparecerá una pantalla similar a la imagen siguiente, con un circulo verde y la palabra «CONNECTED». Entonces pulsaremos sobre la pestaña OPEN FILE y buscaremos dentro de proyecto la carpeta ELF (USB-keyboard-to-OMEGA-converter-main\elf) y dentro el firmware que queramos cargar.


Y en la siguiente pantalla solo faltara pulsar en el botón de DOWNLOAD para copiar el programa en el chip STM32G030C8T6.

El proceso de copiado es prácticamente instantáneo. Y si todo es correcto el programa dará como resultado FILE DOWNLOAD COMPLETED.

Con este paso ya debemos tener el dispositivo totalmente operativo.
Como adaptar el OMEGA USB KEYB CTRL a un MSX.
Como anteriormente hemos comentado, teniendo el esquema de la conexión de teclado de nuestro MSX podemos adaptar este dispositivo, y conectar así un teclado USB. Los conectores de teclado en los MSX contiene las mismas señales en casi todos modelos si no en todos. Como ejemplo hemos utilizado la placa EXPERT4 turbo para entender este proceso.
Para empezar explicaremos las señales del conector de 16 pines de la placa PCB OMEGA USB KEYB CTRL.
En el conector de la placa podemos distinguir los siguientes pines:
1- VCC y GND
2- Los LED del CAPS y del KANA
3- Columnas del 0 a 7
4- ROW (Filas) de A a D

ESQUEMA DE TECLADO OMEGA
Como podemos observar la MATRIZ del teclado del OMEGA se compone en FILAS Y COLUMNAS.
Las columnas 0 a 7 las tenemos en el propio conector de la placa OMEGA USB KEYB CTRL, pero las Filas (ROW) del 0 al 9 no las tenemos exactamente en el conector del PCB. En vez de ello tenemos ROWA (FILA_A), ROWB, (FILA_B), ROWC (FILA_C) y ROW_D (FILA_D) , tal y como se observa en la imagen de arriba
Esta es la matriz de filas y columnas en el teclado:

Y entonces … ¿Como obtenemos las FILAS (ROW) del 0 al 9 como se observa en la imagen de arriba?
Sencillo…… tenemos un circuito integrado 74LS145, que tiene 4 entradas que llamaremos ROW_A, ROW_B, ROW_C y ROW_D y 10 salidas que llamaremos FILA0, FILA1, FILA2, FILA3, FILA4, FILA5, FILA6, FILA7, FILA8 y FILA9. Este integrado se encarga de transformar esa señal «BINARIA» a «DECIMAL», haciendo que se active una fila u otra en función de su código en números binarios.
El circuito integrado 74LS145 es algo que lleva incorporado de serie la placa del teclado OMEGA, o a veces la placa base del ordenador MSX. Este es el esquema de como enlaza con el conector de teclado del OMEGA:

Esta parte del circuito enlaza con la matriz de FILAS y COLUMNAS (mostrada más arriba) y así podemos entender como se crean las FILAS que nos faltaban.
Pues como funciona el OMEGA_USB_KEYB_CTRL?
- La MATRIZ sería el teclado externo USB
- El código del chip STM32G030C8T6, que lee el puerto USB (MATRIZ del teclado externo) + en chip 74LS145 incluido
- Y la salida 16 PINS que va la placa MSX.

Por tanto, si tenemos el esquema de un MSX, solo tenemos que identificar las líneas de las COLUMNAS del 0 a 7, y la FILAS A,B,C,D antes de llegar al chip 74LS145, VCC (+5v) y GND. Con esto ya funcionaria. Como puede ser un poco confuso, intentaremos resolver las dudas con el ejemplo siguiente.
Ejemplo para adaptar la placa OMEGA USB KEY CTRL al MSX EXPERT.
Hemos utilizado como ejemplo la placa base EXPERT4 turbo, porque disponemos de la placa base, y porque disponemos de un conector de teclado accesible sin tener que tocar nada de la placa base, ya que el teclado en este ordenador es externo.
Empecemos mostrando el esquema del teclado del MSX EXPERT.

Como podemos ver, tenemos la MATRIZ del teclado con sus FILAS (RAW) y sus COLUMNAS, el chip 74LS145 y el conector que va la placa del MSX que en este caso es de 13 pines + GND (No es un pin propiamente dicho, si no la circunferencia metálica del conector DIN por lo tanto son 14 pines).
Ya os adelantamos que los dos pines que faltan para llegar a los 16 pines de la placa OMEGA USB KEY CTRL son los LED de CAPS y KANA, que no son relevantes.
Por tanto identificamos el chip 74LS145 que tiene FILAS (RAW)A,B,C,D que serían los pines 11, 12, 04, 08 y luego las COLUMNAS 0,1,2,3,4,5,6,7, que serian los pines 7, 3, 6, 2, 5, 1, 10 y 9 respectivamente. (imagen de arriba)
Identificados los pines de la FILAS y COLUMNAS del EXPERT4 turbo podemos sugerir la siguiente correspondencia:
CONECTOR 16 PINES DE LA PLACA OMEGA USB KEY CTRL

COLUMNAS
El pin 4 ROW_A de la placa OMEGA USB KEY CTRL corresponde al pin 11 del EXPERT
El pin 6 ROW_B de la placa OMEGA USB KEY CTRL corresponde al pin 12 del EXPERT
El pin 8 ROW_C de la placa OMEGA USB KEY CTRL corresponde al pin 04 del EXPERT
El pin 10 ROW_D de la placa OMEGA USB KEY CTRL corresponde al pin 08 del EXPERT
FILAS
El pin 1 COLUMN0 de la placa OMEGA USB KEY CTRL corresponde al pin 07 del EXPERT
El pin 3 COLUMN1 de la placa OMEGA USB KEY CTRL corresponde al pin 03 del EXPERT
El pin 5 COLUMN2 de la placa OMEGA USB KEY CTRL corresponde al pin 06 del EXPERT
El pin 7 COLUMN3 de la placa OMEGA USB KEY CTRL corresponde al pin 02 del EXPERT
El pin 9 COLUMN4 de la placa OMEGA USB KEY CTRL corresponde al pin 05 del EXPERT
El pin 11 COLUMN5 de la placa OMEGA USB KEY CTRL corresponde al pin 01 del EXPERT
El pin 13 COLUMN6 de la placa OMEGA USB KEY CTRL corresponde al pin 10 del EXPERT
El pin 15 COLUMN7 de la placa OMEGA USB KEY CTRL corresponde al pin 09 del EXPERT
ALIMENTACION
El pin 2 VCC de la placa OMEGA USB KEY CTRL corresponde al pin 13 del EXPERT
El pin 16 GND de la placa OMEGA USB KEY CTRL corresponde al pin 14 del EXPERT, es decir la malla que envuelve el cable (malha en el esquema).
Nota importante:
La alimentación de nuestros queridos MSX no siempre está preparada para el universo moderno por lo que recomendamos encarecidamente no conectar ni desconectar el teclado USB con el ordenador encendido.
Test de respuesta del teclado USB
Como hemos comentado al principio, una característica importante de este proyecto es la capacidad de respuesta que tiene esta placa a la hora de convertir las pulsación del teclado USB a las teclas correspondientes del MSX, aquí probaremos dos características importantes.
- La primera es el retardo desde que se pulsa una tecla hasta que se imprime en pantalla (aka LAG).
- Y la segunda es respuesta que tiene a la hora de pulsar una tecla repetidamente.
Para hacer una prueba de rendimiento utilizaremos el programa TEST que pone a pruebas estos dos ítems y que por es por antonomasia el gran destructor de teclados y palancas… no hay mejor prueba que someter el teclado al TRACK & FIELD! (recomendado por un buen amigo).

Haciendo esta prueba podremos comprobar si tenemos una respuesta tan rápida en el teclado USB como lo tendríamos en el propio MSX ya que es poco probable que superemos algunas pruebas si el teclado no ayuda. Nuestra sensación al jugar en ambos medios es idéntica por lo que consideramos esta placa un reemplazo adecuado para el teclado original.
Para realizar la prueba, utilizaremos un OMEGA/JFF y un teclado gaming RGB.

Como se puede observar en la imagen, la primera impresión es muy buena porque la sensación es de respuesta inmediata siempre. No se observan retrasos (LAG) y funciona todo el teclado tan rápido como el teclado de un MSX.
Por otra parte también podemos ver que si el teclado es RGB o iluminado la placa OMEGA USB KEYB CTRL tiene el suficiente amperaje como para alimentarlo sin problemas (en un OMEGA/JFF).

Si miramos con más detalle el OMEGA USB KEYB CTRL, podemos observar que tiene un LED.
Este LED permanecerá apagado mientras no tenga un teclado USB conectado y encendido cuando lo detecte. Tiene además otra función que consiste en apagar brevemente el LED cada vez que se pulsa una tecla y así podemos identificar que ha detectado dicha pulsación.
Volviendo al programa TEST (Track & Field) nos interesa la prueba del salto del longitud. En esta prueba tenemos una barra en color amarillo donde nos marca la velocidad de pulsación del teclado. Seguramente todo veterano del MSX ya sabe de que hablo y sabe que se necesita de máxima concentración pulsando las teclas de dirección lo más rápidamente posible (sin destruir el teclado) para que la barra de color amarillo llegue a su punto máximo situado a la izquierda, y de un reconocimiento sin LAG de la pulsación del espacio para reconocer el punto de inicio y fin del ángulo seleccionado.

Como vemos en la imagen damos por buena la respuesta del teclado USB, ya que la barra amarilla alcanza un nivel exactamente igual a la de cualquier teclado MSX. Por tanto la experiencia con el teclado USB no tiene nada que envidiar a la de un teclado tradicional de cualquier MSX.
BONUS!
Otra de las pruebas que se nos pasó por la cabeza era la de comprobar si la placa OMEGA USB KEYB CTRL era capaz funcionar con un teclado inalámbrico. De ser afirmativo nos permitiría conectar un teclado externo a nuestros MSX sin tener que modificar nuestras carcasas históricas. Para esta prueba utilizamos un teclado mini de los que venden en aliexpress.
Y el resultado fue el siguiente:

….. que funciona perfectamente!
Mi opinión es que este proyecto me ha sorprendido, por ser de aquellos que están bien diseñados y bien programados, obteniendo un resultado y experiencia excelentes. Además puede servir de mucha ayuda para aquellos ordenadores que con el paso del tiempo empiezan a fallar sus teclados originales y ya no existen recambios.
Redactado por Capsule5000.