Author Topic: Why does a non-USB compliant device work on some PCs but not others?  (Read 6823 times)

ericksonc

  • Member
  • ***
  • Posts: 2
I have a custom USB device that was not USB compliant (the firmware written had exceeded the maximum size for endpoint 0).  I have now modified it so it is compliant and will work on all PCs I have running XP and Windows 7.  My question is, when it was not USB compliant it would only communicate to a custom software program on some versions of XP but not others.  After weeks of researching this I have yet to find any correlation or good indicators as to why this is.  Is it Windows related? Driver related? Hardware related?  I am at a loss as to what area to look into.  I have a Beagle USB protocol analyzer and can see that it does not appear to be enumerating properly.  I can see Windows set the address, get string, device, and configuration descriptors, receive two control transfers, receive three IN transfers, then there are numerous orphaned packets, followed by a reset.  Any help would be greatly appreciated.

Jan Axelson

  • Administrator
  • Frequent Contributor
  • *****
  • Posts: 3033
    • Lakeview Research
Re: Why does a non-USB compliant device work on some PCs but not others?
« Reply #1 on: January 09, 2013, 06:16:13 pm »
A host can be forgiving regarding devices that violate the relevant standards. The best way to ensure that a device will work and will continue to work on all hosts is to comply with the standards.

Barry Twycross

  • Frequent Contributor
  • ****
  • Posts: 263
Re: Why does a non-USB compliant device work on some PCs but not others?
« Reply #2 on: January 09, 2013, 07:41:39 pm »
I wouldn't waste energy on working out why a non compliant device worked or not, just fix it and be happy.

There are a near infinite ways in which a non compliant device can fail on a system. The OS drivers may be written with the implicit assumption that a device is compliant with that part of the spec. While OS drivers can try to be forgiving of devices which don't follow spec, they can't accommodate every non compliant device, that's an unbounded set. The set of compliant devices is well bounded.

Some would argue that Window's forgiving nature is responsible for the number of non compliant devices out there.

ericksonc

  • Member
  • ***
  • Posts: 2
Re: Why does a non-USB compliant device work on some PCs but not others?
« Reply #3 on: January 10, 2013, 12:48:57 pm »
Thanks for the information.  I agree with your responses, however my boss would like a definitive answer.  Hopefully armed with this information I can sway them to just move forward.