Author Topic: Bandwidth check fails : USB command verifier  (Read 17183 times)

Dinesh

  • Member
  • ***
  • Posts: 13
Bandwidth check fails : USB command verifier
« on: January 23, 2013, 08:51:58 am »
Hi,
I am trying to test my HID device with USB 2.0 Command verifier from USB.org. The device passes the Chapter 9 and HID tests, except interface descriptor test that is part of Chapter 9 test. Should I add another inter face descriptor to solve this issue or is there any other simple way of addressing it?

Please look at the attached log file that has results of Chapter 9 test.

Best regards,
Dineshkumar M.

[attachment deleted by admin]
« Last Edit: January 23, 2013, 08:58:03 am by Dinesh »

Barry Twycross

  • Frequent Contributor
  • ****
  • Posts: 263
Re: Bandwidth check fails : USB command verifier
« Reply #1 on: January 23, 2013, 02:05:59 pm »
You seem to have found the draw back of using HID.


Quote
Interface Number : 0, Alternate Setting : 0, Endpoint Number : 85, MaxPacketSize : 400

Alternate setting 0 has Interrupt endpoint with MaxPacketSize > 64

Interface Number : 0, Alternate Setting : 0, Endpoint Number : 5, MaxPacketSize : 400

Alternate setting 0 has Interrupt endpoint with MaxPacketSize > 64

The default interface can only have a maximum of 64 bytes for the endpoint. HID can only use the default interface, so putting in an alt interface isn't going to help you.

I'm not sure what we did when we got to this point, we may have stopped using HID altogether and used a custom protocol instead. That does mean we needed a custom driver.

Jan Axelson

  • Administrator
  • Frequent Contributor
  • *****
  • Posts: 3033
    • Lakeview Research
Re: Bandwidth check fails : USB command verifier
« Reply #2 on: January 23, 2013, 09:21:16 pm »
In theory, I think a HID driver could allow selecting an interface, but in reality, the major OSes don't.

Dinesh

  • Member
  • ***
  • Posts: 13
Re: Bandwidth check fails : USB command verifier
« Reply #3 on: January 24, 2013, 04:07:56 am »
Hi,
Thanks for your valuable information.

If the software on the host side can request for alternate setting (i.e end point size = 1024 bytes) before using the HID, is this approach correct ? By this way I do not depend on OS to select the alternate setting by itself.
Assume: Device is always shiped with  special software that will be installed on the HOST to access the device.

On the otherhand, HID device with default interface having endpoint size = 1024 bytes works with many HOST computers. So can I live with this error from USB command verifier and apply for USB logo on the device?

-Dinesh
« Last Edit: January 24, 2013, 06:11:52 am by Dinesh »

Jan Axelson

  • Administrator
  • Frequent Contributor
  • *****
  • Posts: 3033
    • Lakeview Research
Re: Bandwidth check fails : USB command verifier
« Reply #4 on: January 24, 2013, 11:16:40 am »
I believe you would need to provide a digitally signed HID-class filter driver to add the capability to select an alternate interface.

Whether the device can get a logo with a non-compliant endpoint size, I don't know.

However, any update to a host driver may decide to enforce the endpoint size limit and "break" your device, so you would need to be OK with that risk.

Dinesh

  • Member
  • ***
  • Posts: 13
Re: Bandwidth check fails : USB command verifier
« Reply #5 on: January 28, 2013, 10:19:10 am »
For time being, I will stick to 64 byte (default end point size) and clear the test. Thanks for the suggestions Jan Axelson.