Electronic – arduino – USB Vendor ID Confusion

arduinoavrusb

I'm looking to make a USB HID enabled device with an AVR that I would hopefully sell, but I know that the USB IF gets finicky about how exactly USB is implemented in commercial products. I want to keep it all Arduino IDE compatible, so right now I see that I've got two basic options:

  • Use something like the ATmega32u4 used in the Leonardo to get hardware based USB support
  • Use v-usb on something like the ATMega328p to get software based USB support

I like the idea of the 32u4 but would like to make the product a kit and surface mount is not very kit friendly. I would prefer through hole.

v-usb is definitely doable and would let me use a through hole chip (the 328p) but the USB implementation would eat up flash space.

Here's my main question though, with either do I have to get a USB vendor ID?
I was thinking maybe just going with the 32u4, assuming that it would already have an ID built in and I was OK with the device representing itself as an AVR, but some things I have read lead me to believe I would still need my own ID and pass that to the chip.
I would imagine I'd absolutely have to have one for v-usb but is a software implementation even technically valid and allowed to have an ID. v-usb seems to ship with an ID that's marked for educational use and they ask you to not distribute it… but is that only for commercial stuff or could I use it as long as it's just for a kit?

For the most part I would prefer to do what I can to avoid needing one at all since I can't exactly afford the several thousand dollars it would cost.

Best Answer

http://support.atmel.com/bin/customer.exe?=&action=viewKbEntry&id=220

It seems if you are willing to work around their limitations and restrictions, perhaps you could just use theirs per above link.

I personally used microchip and their sublicense program for a small project of mine. I couldn't find anything equivalent with Atmel, although it wouldn't hurt to ask.