Does exist an official documentation detailing the maximum length of the string descriptor that represents Manufacturer (or Product Name, Model Name, Device Name, Label, or Serial Number) of a USB device?
Every USB device exposes a device descriptor that indicates the device's class information, vendor and product identifiers, and number of configurations. Each configuration exposes it's configuration descriptor that indicates number of interfaces and power characteristics.
Unlike the configuration descriptor, there is no limitation as to having only one interface enabled at a time. A device could have 1 or many interface descriptors enabled at once.
The Endpoint Descriptor (USB_ENDPOINT_DESCRIPTOR) specifies the transfer type, direction, polling interval, and maximum packet size for each endpoint. Endpoint 0 (zero), the default endpoint, is always assumed to be a control endpoint and never has a descriptor.
Any USB descriptor is limited to 255 bytes since the leading bLength field is one byte wide. The second byte is taken by the bDescriptorType. Because everybody* uses UTF-16-LE string encoding, that leaves a maximum of 126 characters.
*) Mandated by the USB 2.0 Unicode ECN in 2005 http://en.wikipedia.org/wiki/USB
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With