Цитата Сообщение от ender
кстати, о стандартах. а у тебя в устройстве, наверное, и Physical descriptor имплементирован?
Я собирался, но не смог описать все части тела, которыми управляются 8 осей и 32 кнопки

А если серьезно, то его даже стандарт рекомендует использовать только в инженерных целях (не помню точную формулировку.) А вот есть вещи, которые стандарт точно оговаривает, например мой любимый 9.4.5
The Halt feature is required to be implemented for all interrupt and bulk endpoint types
...
For endpoints using data toggle, regardless of whether an endpoint has the Halt feature set, a ClearFeature(ENDPOINT_HALT) request always results in the data toggle being reinitialized to DATA0.
...
The Halt feature is reset to zero after either a SetConfiguration() or SetInterface() request even if the requested configuration or interface is the same as the current configuration or interface.
Все это обязано быть в коде.

Я честно скажу, что мое устройство все же не прошло бы сертификацию по железу (если бы я нашел на это дело $5000) - по стандарту, при прекращении траффика на шине, устройство по прошествии 10мс должно перейти в режим потребления тока от шины не более 500мкА. Мой процессор-то в такой режим переходит, да вот переменные резисторы остаются подключенными между +5В шины и землей. В принципе, надо ставить КМОП ключ на всю остальную часть схемы кроме самого процессора. Это относится к светодиодам, pull-up резисторам и прочему.
Но я пока на это откровенно задвинул.