The USB Devices diagnostics screen now reports hubs correctly. Many hubs sold as "7 port" contain two 4-port controllers wired together inside one shell, and the controller reports itself to the software one half at a time. The screen was describing only the first half: on a 7-port hub with four devices connected it showed 4 ports with 2 occupied, and one of those two was the hub's own internal wiring rather than anything a customer had plugged in. It now counts the whole hub and reports 7 sockets with 4 occupied.
The screen shows how many sockets are occupied rather than which ones. Identifying individual sockets turned out not to be possible in a way we can trust. USB tells the controller which internal chip and which internal port a device is on, but nothing tells it how the sockets are numbered on the outside of the case, and different hubs are built differently. A numbering was worked out that matched the hub on the bench exactly, but it would have been guesswork on any other hub, and sending a technician to the wrong socket is worse than giving no socket at all. The count is correct on any hub, and read against the port total it still answers the question that matters: if more sockets are occupied than devices are listed, something is plugged in that the controller did not recognise.
The error count on the screen now shows the error code as well as the total. The code was previously visible only while errors were actively occurring, so after a problem cleared, the screen could report that hundreds of errors had happened without saying what they were.
A USB Ethernet adapter failure was found and fixed. With a hub, keyboard, mouse, barcode scanner and Ethernet adapter all connected, the Ethernet adapter would not work and the network connection never came up. The cause was an internal limit on how many simultaneous USB connections the software could track. The limit was one short of what that combination needs, and the shortfall happened to land on the Ethernet adapter because it was the last device to be set up. The limit has been raised with room to spare, and the software now measures and reports how close it comes to that limit so the margin is a known number rather than an assumption.
All five USB devices now work together, along with the machine's EtherCAT motion network, and devices can be unplugged and moved between sockets without the controller losing track of memory or needing a restart.