Enbyted
Enbyted

Reputation: 68

WebUsb productName and manufacturerName are empty

I'm developing a USB device based on microchip microcontroller. I can open the device with webusb, talk to it and everything.

It's just that productName and manufacturerName fields are empty strings and choose device popup shows "Unknown device from Microchip Technology Inc." instead of what is actually returned by the device.

Windows properly enumerates the device, reads BOS descriptor which contains the USB 2.0 Extension descriptor (LPM), WebUSB platform descriptor and MS OS 2.0 entry.

I'm using USBlyzer software to capture USb communication and I can see that:

Windows properly installs WinUSB driver and the device works when openned from native app (using libusb). I can also read the product name and manufacturer name strings from device.

I've tested this under: latest chrome, latest chrome canary, latest chromium (from tree), latest opera and under all of those the device shows up as "unknown device from Microchip Technology Inc." (basically a name deducted from VID). I must be doing something wrong, but I don't even know where to begin tracing this issue.

In "chrome://device-log" I can see entries like: 'Failed to submit transfer: Entity not found' right before 'USB device added: vendor=1240 "", product=60944 "", serial="4326", guid=fcc527ca-5c19-45e0-9334-745475ae430d', that's not very helpful.

Upvotes: 1

Views: 455

Answers (1)

Reilly Grant
Reilly Grant

Reputation: 6093

The way the Chrome reads strings like productName and manufacturerName from the device during enumeration is known to be buggy on Windows because it races with other parts of the Windows driver stack. There is a new backend for USB on Windows currently being implemented which resolves this problem. That work is being tracked by issue 637404. For some device types it already works properly and you can test it out by setting chrome://flags#new-usb-backend to enabled.

Upvotes: 2

Related Questions