USB-enabled products all have a Vendor ID (VID) and Product ID (PID) that are used as a unique identifier for that device. When writing USB device drivers, the PID/VID combination is used to determine which driver to load to communicate with the device.
In order to get a VID for your organization or product, you need to register with the USB-IF and pay a corresponding $5000 fee. If you are an individual or small team this registration fee can be a deal breaker.
Luckily, pid.codes exists to assist these individuals and teams. The pid.codes team inherited a Vendor ID from another company. Luckily the specific VID was registered prior to the change in USB-IF licensing terms which prohibits subassignments! Using this loophole, you are able to get a subassigned ID for your project.
If you have an open-source hardware project, you can apply to pid.codes for IDs. Here are some of the basic requirements listed on the pid.codes howto page:
- Publicly available source code repository containing schematics or source code for a device with a USB interface.
- Licensed under a recognized open source or open source hardware license. Your source code repository must contain a LICENSE file attesting to this fact.
- If your project involves both hardware and software, both need to be licensed under recognised OSS and OSHW licenses. If your project involves only one or the other, we may ask for further justification as to why you need a PID associated with your software project / development board instead of allowing end-users to request their own.
I will definitely be looking to pid.codes for my future projects. Happy hacking!