You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

USBID-License.txt 7.5KB

  1. Royalty-Free Non-Exclusive Use of USB Product-IDs
  2. =================================================
  3. Version 2009-04-13
  4. Strictly speaking, this is not a license. You can't give a license to use
  5. a simple number (such as e.g. 1500) for any purpose. This is a set of rules
  6. which should make it possible to build USB devices without the requirement
  7. for individual USB IDs. If you break one of the rules, you will run into
  8. technical problems sooner or later, but you don't risk legal trouble.
  9. OBJECTIVE DEVELOPMENT Software GmbH hereby grants you the non-exclusive
  10. right to use four vendor-ID (VID) / product-ID (PID) pairs with
  11. products based on Objective Development's firmware-only USB driver for
  12. Atmel AVR microcontrollers:
  13. * VID = 5824 (=0x16c0) / PID = 1500 (=0x5dc) for devices implementing no
  14. USB device class (vendor-class devices with USB class = 0xff). Devices
  15. using this pair will be referred to as "VENDOR CLASS" devices.
  16. * VID = 5824 (=0x16c0) / PID = 1503 (=0x5df) for HID class devices
  17. (excluding mice and keyboards). Devices using this pair will be referred
  18. to as "HID CLASS" devices.
  19. * VID = 5824 (=0x16c0) / PID = 1505 (=0x5e1) for CDC class modem devices
  20. Devices using this pair will be referred to as "CDC-ACM CLASS" devices.
  21. * VID = 5824 (=0x16c0) / PID = 1508 (=0x5e4) for MIDI class devices
  22. Devices using this pair will be referred to as "MIDI CLASS" devices.
  23. Since the granted right is non-exclusive, the same VID/PID pairs may be
  24. used by many companies and individuals for different products. To avoid
  25. conflicts, your device and host driver software MUST adhere to the rules
  26. outlined below.
  27. OBJECTIVE DEVELOPMENT Software GmbH has obtained these VID/PID pairs from
  28. Wouter van Ooijen (see for exclusive disposition. Wouter van
  29. Ooijen has obtained the VID from the USB Implementers Forum, Inc.
  30. (see The VID is registered for the company name
  31. "Van Ooijen Technische Informatica".
  33. ======================
  34. (1) The USB device MUST provide a textual representation of the
  35. manufacturer and product identification. The manufacturer identification
  36. MUST be available at least in USB language 0x0409 (English/US).
  37. (2) The textual manufacturer identification MUST contain either an Internet
  38. domain name (e.g. "") registered and owned by you, or an
  39. e-mail address under your control (e.g. ""). You can embed
  40. the domain name or e-mail address in any string you like, e.g. "Objective
  41. Development".
  42. (3) You are responsible for retaining ownership of the domain or e-mail
  43. address for as long as any of your products are in use.
  44. (4) You may choose any string for the textual product identification, as
  45. long as this string is unique within the scope of your textual manufacturer
  46. identification.
  47. (5) Matching of device-specific drivers MUST be based on the textual
  48. manufacturer and product identification in addition to the usual VID/PID
  49. matching. This means that operating system features which are based on
  50. VID/PID matching only (e.g. Windows kernel level drivers, automatic actions
  51. when the device is plugged in etc) MUST NOT be used. The driver matching
  52. MUST be a comparison of the entire strings, NOT a sub-string match. For
  53. CDC-ACM CLASS and MIDI CLASS devices, a generic class driver should be used
  54. and the matching is based on the USB device class.
  55. (6) The extent to which VID/PID matching is allowed for non device-specific
  56. drivers or features depends on the operating system and particular VID/PID
  57. pair used:
  58. * Mac OS X, Linux, FreeBSD and other Unixes: No VID/PID matching is
  59. required and hence no VID/PID-only matching is allowed at all.
  60. * Windows: The operating system performs VID/PID matching for the kernel
  61. level driver. You are REQUIRED to use libusb-win32 (see
  62. as the kernel level driver for
  63. VENDOR CLASS devices. HID CLASS devices all use the generic HID class
  64. driver shipped with Windows, except mice and keyboards. You therefore
  65. MUST NOT use any of the shared VID/PID pairs for mice or keyboards.
  66. CDC-ACM CLASS devices require a ".inf" file which matches on the VID/PID
  67. pair. This ".inf" file MUST load the "usbser" driver to configure the
  68. device as modem (COM-port).
  69. (7) OBJECTIVE DEVELOPMENT Software GmbH disclaims all liability for any
  70. problems which are caused by the shared use of these VID/PID pairs. You
  71. have been warned that the sharing of VID/PID pairs may cause problems. If
  72. you want to avoid them, get your own VID/PID pair for exclusive use.
  74. ============================
  75. The following rules are for VENDOR CLASS and HID CLASS devices. CDC-ACM
  76. CLASS and MIDI CLASS devices use the operating system's class driver and
  77. don't need a custom driver.
  78. The host driver MUST iterate over all devices with the given VID/PID
  79. numbers in their device descriptors and query the string representation for
  80. the manufacturer name in USB language 0x0409 (English/US). It MUST compare
  81. the ENTIRE string with your textual manufacturer identification chosen in
  82. (2) above. A substring search for your domain or e-mail address is NOT
  83. acceptable. The driver MUST NOT touch the device (other than querying the
  84. descriptors) unless the strings match.
  85. For all USB devices with matching VID/PID and textual manufacturer
  86. identification, the host driver must query the textual product
  87. identification and string-compare it with the name of the product it can
  88. control. It may only initialize the device if the product matches exactly.
  89. Objective Development provides examples for these matching rules with the
  90. "PowerSwitch" project (using libusb) and with the "Automator" project
  91. (using Windows calls on Windows and libusb on Unix).
  92. Technical Notes:
  93. ================
  94. Sharing the same VID/PID pair among devices is possible as long as ALL
  95. drivers which match the VID/PID also perform matching on the textual
  96. identification strings. This is easy on all operating systems except
  97. Windows, since Windows establishes a static connection between the VID/PID
  98. pair and a kernel level driver. All devices with the same VID/PID pair must
  99. therefore use THE SAME kernel level driver.
  100. We therefore demand that you use libusb-win32 for VENDOR CLASS devices.
  101. This is a generic kernel level driver which allows all types of USB access
  102. for user space applications. This is only a partial solution of the
  103. problem, though, because different device drivers may come with different
  104. versions of libusb-win32 and they may not work with the libusb version of
  105. the respective other driver. You are therefore encouraged to test your
  106. driver against a broad range of libusb-win32 versions. Do not use new
  107. features in new versions, or check for their existence before you use them.
  108. When a new libusb-win32 becomes available, make sure that your driver is
  109. compatible with it.
  110. For HID CLASS devices it is necessary that all those devices bind to the
  111. same kernel driver: Microsoft's generic USB HID driver. This is true for
  112. all HID devices except those with a specialized driver. Currently, the only
  113. HIDs with specialized drivers are mice and keyboards. You therefore MUST
  114. NOT use a shared VID/PID with mouse and keyboard devices.
  115. Sharing the same VID/PID among different products is unusual and probably
  116. violates the USB specification. If you do it, you do it at your own risk.
  117. To avoid possible incompatibilities, we highly recommend that you get your
  118. own VID/PID pair if you intend to sell your product. Objective
  119. Development's commercial licenses for V-USB include a PID for
  120. unrestricted exclusive use.