5373
XL2; USB diagnostic screen.
XL200

Version 5 controllers now have a USB Devices screen in the Diagnostics menu, below System Info. It shows which USB devices the controller has found, listing the hub, keyboard, mouse, barcode scanner and Ethernet adapter, and for each one the manufacturer and product identification codes. Those codes are what let support confirm that a customer is using the device they believe they are using.

If a USB hub is connected, the screen shows how many ports it has and which of them have something plugged in. If a port is occupied but no device appears in the list, the controller found something it does not support, so "I plugged it in and nothing happened" now has a visible explanation.

The screen also shows whether the barcode scanner has ever sent any characters and how many, which separates a broken scanner from a working scanner with a problem elsewhere. It reports a count of USB errors, and while errors are actually occurring the USB Status field shows the specific error code in place of OK. Finally it shows how much USB memory is free, which is how a slow internal leak would reveal itself.

None of this was visible before. Diagnosing a USB problem meant connecting a laptop to a service port and reading technical output, which is not practical in the field. Just as importantly, the screen was previously capable of reporting everything as normal while USB was failing hundreds of times a second, because it only watched for one specific kind of failure. It now watches for errors of any kind and keeps the count after the problem clears, so an intermittent fault leaves a trace that someone can find later. The screen refreshes itself about once a second while it is open, and is written so that having it open does not slow the machine down.

One bug was fixed along the way. A barcode scanner plugged directly into the controller, with no USB hub in between, would be detected correctly and then have its power cut a few seconds later, over and over, which was the clicking noise heard from the scanner. A feature that recovers poorly seated USB devices had never been told that scanners exist, so it treated a perfectly working scanner as a failed one and kept trying to fix it. Scanners plugged into a hub were unaffected, which is why this went unnoticed for so long. Scanners now work in either arrangement.