Teclados adecuados para ZX-UNO

Todo aquello que acompaña a la placa del ZX-Uno (carcasas, alimentadores, pegatinas para el teclado, etc) / Everything that goes with the ZX-Uno board (cases, AC adapters, stickers for keyboard, etc)
Avatar de Usuario
guido
Mensajes: 6
Registrado: 13 Oct 2016, 01:28
Ubicación: Mudanya - Turkey

Re: Teclados adecuados para ZX-UNO

Mensaje por guido » 15 Oct 2016, 15:14

Zup escribió:Como curiosidad, he visto por ahí que el IBM modelo F (menuda antigualla) tiene full no key rollover. El IBM modelo M, aunque más popular, solo es 2 key rollover por lo que no serviría para el Spectrum..
Wouldnt the IBM Model M not serve only a spectrum or also not the ZX-Uno?
My IBM Model M is the only PS2 Keyboard at this time in my home :( and my ZX-Uno is on the way from Spain to Turkey....

Zup
Mensajes: 112
Registrado: 16 Sep 2016, 20:22

Re: Teclados adecuados para ZX-UNO

Mensaje por Zup » 15 Oct 2016, 15:59

guido escribió:Wouldnt the IBM Model M not serve only a spectrum or also not the ZX-Uno?
My IBM Model M is the only PS2 Keyboard at this time in my home :( and my ZX-Uno is on the way from Spain to Turkey....
I guess that a model M will work on your ZX-Uno, but be aware that some key combinations won't. Somebody tested it with emulators (see that thread about Velesoft test).

The model F is a better option, I only wrote about model M because it's more common.

Zup
Mensajes: 112
Registrado: 16 Sep 2016, 20:22

Re: Teclados adecuados para ZX-UNO

Mensaje por Zup » 16 Oct 2016, 17:15

He abierto este hilo para que vayáis posteando fichas de teclados que hayáis probado con el ZX-Uno.

La idea es que, como el "famoso" BTC es raro de conseguir, mirando en este hilo podéis ver cómo de buenos son los teclados que se han probado en el ZX-Uno. De esta manera, personas que no hayan podido conseguir su BTC pueden ver alternativas que buscar o teclados de los que huir como de la peste.

Ese hilo debería ser dedicado únicamente a fichas, y las preguntas, respuestas y discusiones deberían estar en este hilo.

Zup
Mensajes: 112
Registrado: 16 Sep 2016, 20:22

Re: Teclados adecuados para ZX-UNO

Mensaje por Zup » 16 Oct 2016, 19:30

DarkEchelon escribió:...
Ahí hay varios problemas que hay que coger con pinzas.

Primero pensemos en el Spectrum. La matriz del teclado del Spectrum tiene 8 semifilas de 5 teclas cada una, y por eso sufre ataques de ghosting. Tal y como está hecho, si pulsas Q, W y A el Spectrum no tiene manera de saber si la S está pulsada o no. Este hecho supongo que está simulado en el ZX-Uno, pero lleva a falsear el test del rollover.

El resultado del test de rollover se puede intuir pulsando determinadas teclas, pero no se pueden dar resultados definitivos desde el ZX-Uno. Un test correcto necesitaría hacerse en un PC y con el teclado conectado a través del puerto PS/2 (nada de adaptadores USB ni mierdas de esas). El resultado de este test puede ser orientativo (aunque como he puesto en el hilo, es importante si vas a jugar a dos jugadores compartiendo teclado). Ese test lo puedes hacer en un PC usando el applet de esta página.

La siguiente broma es... ¿cómo está hecha la matriz de teclas de tu teclado? De la misma manera que en el ejemplo del Spectrum hay ghosting en los teclados de PC también aparece el ghosting... o no. Es algo de lo que se encarga el microcontrolador del teclado. Según he leído, en muchos microcontroladores si pulsas dos teclas y una tercera que provoque ghosting el microcontrolador ignora esta última pulsación (no hay ghosting, pero tampoco tienes las tres teclas que querías).

Ahí es donde viene el test más importante: el de Velesoft. Este test indica si la matriz de tu teclado soporta las pulsaciones más corrientes (diagonales + fuego) sin hacer el cabra. En un Spectrum real, este test debería pasarse sin fallos; si tu ZX-Uno lo pasa significa que tanto tu matriz como el mecanismo de conversión del ZX-Uno funcionan correctamente. En ese sentido, creo que podrías ignorar el resto de resultados de los tests: si tu teclado soporta todas las combinaciones es bueno para un solo jugador.

¿Y los tests VICTOR, EASY y QAZPLM? Bueno, estas combinaciones de teclas (sobre todo la última) no tienen ghosting en el Spectrum original, si tu teclado hace el QAZPLM es que tiene al menos 6 key rollover y debería funcionar para todo.

Si has hecho pruebas, no te cortes y rellena las fichas... habrá usuarios que te lo agradezcan tanto si son buenas noticias como si son malas.

CURIOSIDAD: Ya que hice este test, pasé también el test (mediante emuladores) a los teclados que tengo por casa, incluídos los USB. De una mezcla de teclados de entre 10 y 100€, el único que pasó absolutamente todos los tests... fue el teclado integrado de un Toshiba Satellite con un Pentium III.

Zup
Mensajes: 112
Registrado: 16 Sep 2016, 20:22

Re: Teclados adecuados para ZX-UNO

Mensaje por Zup » 16 Oct 2016, 20:36

Timos modernos... el key rollover:

Posteo esto aquí porque lo que he leído últimamente merece la pena compartirlo. Quizás aclare un poco el extraño comportamiento de algunos teclados que hay por ahí.

Lo primero es saber qué hay dentro de un teclado (sea PS/2, USB, bluetooth o lo que quiera). Lo más obvio y es lo que se ve desde fuera es un montón de teclas. Estas teclas suelen estar situadas en una matriz de conexiones, de manera que si tú metes tensión en la fila x de la matriz y detectas esa tensión en la columna y, entonces la tecla (x,y) está pulsada.

Lo siguiente que hay es un microcontrolador que lee e interpreta las teclas. Una vez que ha detectado que la tecla (x,y) está pulsada, la convierte a un código y la envía por el PS/2 o USB (en realidad cada tecla tiene dos códigos, uno que indica que ha sido pulsada y otro que indica que la han soltado). ¿Sencillo, no? Pues no tanto, porque hay dos reglas:
  • Regla 1: Key Rollover: Los microcontroladores (y los PCs) tienen recursos limitados. Para no atosigar a ninguno de los dos, cuando hay más de n teclas pulsadas se ignoran las que se pulsen a continuación. Este es el famoso key rollover, que es bastante falso. Si en un teclado que sea 2 key rollover están pulsadas la tecla Q y la W, al pulsar la E no se enviaría al ordenador. Por lo menos, no hasta que sueltes una de las anteriores. Las teclas modificadoras (Shift, Alt, Ctrl) no cuentan para esta regla y se envían siempre.
  • Regla 2: anti ghosting: Al estar las teclas organizadas en una matriz, hay casos en los que no se puede saber si una tecla está pulsada o no. En este caso, muchos microcontroladores no envían la tecla que produce ghosting.
Ejemplo práctico: Yo tengo un teclado 6KRO (6 key rollover) y paso el test de Velesoft, y me encuentro que la combinación de teclas X+V+B no funciona. En el test de key rollover que he puesto antes, tampoco puedo pulsarlas... ¿significa eso que mi teclado en realidad era 2KRO? NO. Significa que si pulso X+V+B, hay una cuarta tecla (¿F? ¿G? vete a saber...) que no puedes saber si se ha pulsado. En este caso, podrías mandar X+V+B+(cuarta tecla), pero casi todos los teclados eligen mandar X+V (las teclas que saben seguro que están pulsadas).

Moraleja: El teclado es "n" key rollover pero solo para las combinaciones de teclas que les da la gana. Por eso el resultado de este test, aunque interesante, es poco conclusivo por ser diplomáticos.

Bonus track - Puteando con USB: Todo lo anterior es bastante exacto si tienes un teclado PS/2. Los teclados USB tienen una limitación adicional: al parecer el estándar HID (el modo normal de conectar un teclado) solo permite 6KRO como máximo. Es decir, si has conseguido uno de esos raros (y caros) teclados NKRO (no key rollover) y lo conectas a un puerto USB de un PC (mediante el adaptador correspondiente)... acabas de cagarla macho. Tu teclado ahora es 6KRO.

Por lo que he leído hay teclados gamer que son NKRO en USB, pero tienen truco. Llevan un interruptor debajo que conmuta entre dos modos: el HID normalito (que funciona en cualquier PC) y uno propio que, después de instalar el driver correspondiente, permite detectar TODAS las teclas. Este bonus track no es relevante para el ZX-Uno (no permite teclados USB), pero puede servir de advertencia a los que jueguen MMO en PC.u

hikoki
Mensajes: 307
Registrado: 21 Feb 2016, 01:38

Re: Teclados adecuados para ZX-UNO

Mensaje por hikoki » 17 Oct 2016, 01:03

Hay alguna forma de identificar teclados compatibles sin necesidad de testearlos con el zxuno? No sé.. A partir de fotos de la membrana, modelo de microchip,etc.

Avatar de Usuario
antoniovillena
Mensajes: 2621
Registrado: 27 Sep 2015, 20:41

Re: Teclados adecuados para ZX-UNO

Mensaje por antoniovillena » 17 Oct 2016, 16:44

Todos los teclados de membrana tienen ghosting/jamming desde un mínimo de 3 teclas pulsadas. Todo depende del mapeado de la matriz. Por ejemplo para una matriz como la del spectrum, si tenemos pulsadas la Q y la W y pulsamos la A, automáticamente se pulsa la S. A esto se llama ghosting. En un teclado de PC (que tenga la misma matriz) lo normal es que el micro detecta que se ha pulsado a la vez la A y la S (cuando sólo se ha pulsado la A). Como el intervalo de tiempos entre la pulsación de la A y la S es de 0 y eso es imposible de hacer para un humano, el micro convertirá ese ghosting en jamming, y no enviará ningún comando al PC. Si el teclado es muy malo y no detecta este tipo de ghosting pues enviará la A y la S a la vez. Este es el caso peor. En un spectrum por ejemplo podemos detectar hasta 5 teclas (QWERT) sin ghosting. En teclados de PC el caso favorable será mayor de 5, ya que las teclas Alt, Ctrl, Mayús, etc... las sacan fuera de la matriz.

La única forma de evitar esto es poniendo un diodo por cada tecla. Como las membranas de acetato no permiten incrustar diodos en ellas, pues la única solución está en comprarse un teclado mecánico. Y son bastante caros.

Avatar de Usuario
spark2k06
Mensajes: 1188
Registrado: 12 Feb 2016, 13:58

Re: RE: Re: Teclados adecuados para ZX-UNO

Mensaje por spark2k06 » 17 Oct 2016, 17:33

antoniovillena escribió:Todos los teclados de membrana tienen ghosting/jamming desde un mínimo de 3 teclas pulsadas. Todo depende del mapeado de la matriz. Por ejemplo para una matriz como la del spectrum, si tenemos pulsadas la Q y la W y pulsamos la A, automáticamente se pulsa la S. A esto se llama ghosting. En un teclado de PC (que tenga la misma matriz) lo normal es que el micro detecta que se ha pulsado a la vez la A y la S (cuando sólo se ha pulsado la A). Como el intervalo de tiempos entre la pulsación de la A y la S es de 0 y eso es imposible de hacer para un humano, el micro convertirá ese ghosting en jamming, y no enviará ningún comando al PC. Si el teclado es muy malo y no detecta este tipo de ghosting pues enviará la A y la S a la vez. Este es el caso peor. En un spectrum por ejemplo podemos detectar hasta 5 teclas (QWERT) sin ghosting. En teclados de PC el caso favorable será mayor de 5, ya que las teclas Alt, Ctrl, Mayús, etc... las sacan fuera de la matriz.

La única forma de evitar esto es poniendo un diodo por cada tecla. Como las membranas de acetato no permiten incrustar diodos en ellas, pues la única solución está en comprarse un teclado mecánico. Y son bastante caros.
Muy interesante la explicación, algunas cosas que has explicado como el tema del jamming para evitar ghosting no sabía.

Enviado desde mi thor mediante Tapatalk

hikoki
Mensajes: 307
Registrado: 21 Feb 2016, 01:38

Re: Teclados adecuados para ZX-UNO

Mensaje por hikoki » 17 Oct 2016, 19:15

La pregunta del millón sería qué teclado de usb funciona bien en android smart tv y zxuno

Zup
Mensajes: 112
Registrado: 16 Sep 2016, 20:22

Re: Teclados adecuados para ZX-UNO

Mensaje por Zup » 17 Oct 2016, 19:39

Una cuestión relacionada...

Al final el microcontrolador es el que tiene la última palabra sobre lo que sucede en el teclado. Esto puede putear de dos maneras:

- Un teclado USB puede (y muchos tienen) estar solamente programado para tener únicamente protocolo USB. Esto los hace inconectables a través de PS/2, ni teniendo esos raros adaptadores moraditos.
- El key jamming (o anti ghosting o como se pueda definir) lo hace el microcontrolador. Si tienes un teclado mecánico y le pones uno a uno diodos en todas las teclas (dios, que paciencia) tendrás un teclado sin ghosting pero el microcontrolador seguirá haciendo jamming.

La pregunta es... ¿alguien ha reprogramado un microcontrolador de teclado para eliminar el jamming o añadir protocolo PS/2 a teclados que carezcan de él?

He mirado por internet (y he encontrado algunas webs de gente que hace modding a teclados) pero lo único que he encontrado es gente que pinta, sustituye los switches del teclado o incluso adapta el microcontrolador a otros teclados (p.ej.: una máquina de escribir).

Responder