Por qué tu teclado VIA no funciona en un KVM y cómo arreglarlo
Si tu teclado mecánico personalizado con firmware VIA deja de responder al pasarlo por un KVM switch, tranquilo: no es un caso aislado. Es uno de los dolores de cabeza más repetidos entre quienes arman sus propios teclados, y en la inmensa mayoría de los casos el culpable es el KVM y su forma de gestionar la enumeración USB y los descriptores HID, no tu teclado. Vamos a ver por qué pasa esto y, sobre todo, cómo arreglarlo de una vez.
El problema: tu teclado VIA desaparece al cambiar de KVM
El patrón se repite una y otra vez en foros y grupos de Discord: el teclado va perfecto conectado directo al PC, pero en cuanto lo pasas por un KVM físico (de esos que te dejan compartir teclado, mouse y monitor entre dos máquinas) deja de responder, se desconecta cada dos por tres, o directamente Windows o macOS actúan como si no existiera.
Síntomas típicos
- El teclado enciende (los LEDs funcionan) pero ni una tecla llega al sistema.
- VIA o VIAL no lo detectan, aunque esté enchufado directo al host.
- Responde en una de las dos PCs del KVM, pero en la otra nada.
- Se desconecta y reconecta solo, con el típico aviso de “USB device not recognized”.
- Las macros o las capas personalizadas simplemente dejan de funcionar, solo cuando pasa por el KVM.
Por qué sucede esto realmente
1. Descriptores HID no estándar
Los teclados con firmware QMK o VIA normalmente exponen varias interfaces HID a la vez: una para el teclado estándar, otra extendida que usa VIA, y en ocasiones un endpoint más para RGB o macros complejas. El problema es que muchos KVM de gama baja o media (y hasta algunos de gama media-alta) están pensados para dispositivos HID “simples”, así que cuando se encuentran con un compuesto de tres o cuatro interfaces, simplemente no saben qué hacer con él.
2. Problemas de energía (power negotiation)
Los KVM económicos suelen limitar bastante la corriente que entregan por puerto USB, a veces por debajo de los 500mA que pide un dispositivo estándar. Un teclado con LEDs RGB encendidos, un chip adicional o un PCB que consume más de la cuenta puede superar ese límite sin problema, y ahí aparecen las desconexiones aleatorias o los fallos al enumerar.
3. Emulación de teclado/mouse del KVM
Algunos KVM, sobre todo los pensados para entornos de servidor o uso corporativo, “emulan” el teclado hacia el host para que al cambiar de PC no haya que reconectar nada. Suena bien en teoría, pero esa emulación suele apoyarse en perfiles HID genéricos (el llamado Boot Protocol) y de paso descarta los reportes HID personalizados que usa VIA. Resultado: tus capas avanzadas o funciones custom quedan fuera de juego.
4. Firmware VIA con VID/PID conflictivo
¿Compilaste tu firmware con un VID/PID genérico o reciclado de otro proyecto? Es bastante común en teclados DIY o handwired, y puede hacer que el KVM confunda tu teclado con otro dispositivo que ya tiene registrado en su tabla interna de compatibilidad.
Cómo solucionarlo
Paso 1: Prueba la conexión directa primero
Antes de tocar nada más, desconecta el KVM y enchufa el teclado directo al PC. Si ahí funciona sin problemas, ya tienes la confirmación: el fallo está en el KVM, no en tu firmware ni en el hardware del teclado.
Paso 2: Revisa el modo de enumeración del KVM
Métete en el manual (sí, el PDF que nadie lee) y busca si tu KVM ofrece un modo “Boot Protocol” frente a “Report Protocol”. Si existe la opción, cambia a Report Protocol: es el que permite trabajar con descriptores HID personalizados, como los que usa VIA.
Paso 3: Simplifica el descriptor HID en tu firmware
Desde tu keyboard.json o config.h en QMK puedes probar varias cosas:
- Desactivar las interfaces HID que no uses, si no necesitas RGB avanzado gestionado desde VIA.
- Recortar el tamaño del reporte HID si lo tienes más grande de lo necesario.
- Desactivar
RAW_ENABLEde forma temporal, solo para descartar que ahí esté el conflicto.
Paso 4: Usa un hub USB con alimentación propia
Si la sospecha apunta a un tema de energía, mete un hub USB alimentado entre el teclado y el KVM. Con esto se resuelven la mayoría de los casos de desconexión intermitente, es casi la primera cosa que recomiendan en los foros de teclados mecánicos y funciona más veces de las que uno esperaría.
Paso 5: Actualiza el firmware del KVM
Fabricantes como IOGEAR, TESmart o StarTech sacan de vez en cuando actualizaciones de firmware que mejoran justo esto: la compatibilidad con dispositivos HID compuestos. Vale la pena darse una vuelta por la web del fabricante y revisar si hay algo más reciente que lo que trae tu unidad de fábrica.
Paso 6: Cambia el VID/PID si es necesario
Si tu teclado es DIY y lleva un VID/PID genérico, recompílalo con un identificador único (puedes conseguirlo gratis en pid.codes) para que deje de pelearse con otros dispositivos en la tabla del KVM.
Paso 7: Considera un KVM de gama alta certificado
Marcas como CKLau, modelos recomendados por Level1Techs o KVM USB 3.0 certificados para “mechanical keyboard passthrough” suelen manejar mucho mejor los dispositivos HID complejos que las opciones genéricas de 20 o 30 dólares que se encuentran en cualquier marketplace.
Conclusión
La incompatibilidad entre teclados VIA y los KVM switches casi siempre nace de cómo el KVM lee (o malinterpreta) los descriptores HID avanzados, no de un defecto del teclado. Empieza por descartar el hardware con una conexión directa, ajusta el protocolo del KVM, prueba con un hub alimentado y, si sigue sin funcionar, actualiza el firmware del KVM o pásate a un modelo con mejor soporte para dispositivos HID personalizados. Siguiendo estos pasos deberías recuperar el control completo de tu teclado sin tener que renunciar a la comodidad de compartirlo entre dos máquinas.