tmk / tmk_keyboard

Keyboard firmwares for Atmel AVR and Cortex-M
3.98k stars 1.7k forks source link

USB-USB: compatibility with ConnectPro KVM switch #707

Closed tmk closed 2 years ago

tmk commented 2 years ago
 --------       ---       ---------      --------
|Computer|---+-|KVM|--X--|Converter|----|keyboard|
 --------    |  ---       ---------      --------
 --------    |
|Computer|---'
 -------- 

X is point where this issue happens, between converter and KVM. LUFA USB stack configuration is related.

https://geekhack.org/index.php?topic=69169.msg3085929#msg3085929

Cause & Workaround

Debug console interface causes the problem. It sends debug prints every time receiving key stroke from keyboard and the KVM may not like that.

Workaround is disabling debug console.

https://geekhack.org/index.php?topic=69169.msg3086387#msg3086387

See post below.

Info

ConnectPro KVM UD-12+: https://connectpro.com/product/ud-12-plus/?v=7516fd43adaa Dynamic Device Mapping (DDM): https://connectpro.com/technology/usb-ddm/?v=7516fd43adaa

Other KVM issues: #703

tmk commented 2 years ago

I confirmed that the problem with UD-12+.

Cause

I found that the KVM switch fails when the device has more than three USB Endpoints. USB-USB conveter has four(five) Endpoints by default and Realforce also has four.

USB-USB converter Endpoint usage:

Mouse and Extra key share a endpoint after 5948ea0ac6 so the converter has four endpoints. Before that it had five.

Workaround

For ConnectPro KVM UD-12+ you have to limit number of endpoints upto three.

Fix

These commits reduce endpoint usage.

In the result USB-USB converter uses only three ep now. f9a2e202b97ebb43373f64a8c297cd83a9cc9bc1