USB : USB Classes    USB Classes for Microcontrollers  

So, why do we bother to have USB classes at all? Why do we need protocols and rules, anyway?

Part of the reason is that it is just plain hard (and time consuming, and expensive, and risky) to create Windows device drivers.  Most of the commonly used device classes come with device drivers already built into Windows and other PC operating systems.

All except the "no class" solution: classless bulk devices.

With these devices, you have to get or create a custom device driver, and your end user must install it on his PC, before your device can be used. Once you have that device driver, you can send and receive whatever data that device driver will support, in whatever order or scheme (yes, "protocol") that you come up with.

As long as you have a device driver that works. 

On every PC operating system you want your device to talk to.

 
  

5 of 29
Copyright Notice and Author Information