rasteri / HIDman

Adapting USB devices to work on old computers
217 stars 18 forks source link

Some USB Hubs don't work #19

Closed rasteri closed 3 months ago

rasteri commented 4 months ago

This does not affect all hubs. In fact it doesn't affect all USB devices on failing hubs.

Common thread with failing hubs seems to be that low-speed devices fail whereas high-speed devices work.

Note this fault doesn't seem to even be specific to particular hub controllers - I have two HS8836A-based hubs that appear to have identical components (though different board layouts) - one works and one doesn't.

Also interestingly certain STM32s have problems with low-speed devices on hubs, there is a silicon errata to that effect. I wonder if the problem is similar on the CH559

rasteri commented 4 months ago

So I did some more testing, the USB hubs that don't work ALSO don't work on other USB1.1 hosts (namely old PCs).

USB 1.1 full speed devices do not exhibit this problem, nor do USB2.0 hosts.

This is the chain of devices required to make them fail :

USB1.1 low speed device ---> USB 2.0 hub --->USB1.1 Host (i.e. hidman or PC)

I'm beginning to suspect that there is a general problem with many USB2.0 hubs where they don't work correctly with USB1.1 low speed devices on USB1.1 Hosts. This may not be fixable.

rasteri commented 3 months ago

Remaining hub problems have been solved by a combination of :

  1. Giving up (certain hubs just don't like low speed devices on USB1.1 hosts, nothing we can do about that)
  2. Adding a 12MHz crystal to the board (certain hubs are picky about timing)