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.