manueller import aus nem CVS checkout (ist eh nur zum testen)
[ds1820tousb.git] / usbdrv / USBID-License.txt
CommitLineData
93ac315e
MPM
1Royalty-Free Non-Exclusive License USB Product-ID
2=================================================
3
4Version 2008-04-07
5
6OBJECTIVE DEVELOPMENT Software GmbH hereby grants you the non-exclusive
7right to use three USB.org vendor-ID (VID) / product-ID (PID) pairs with
8products based on Objective Development's firmware-only USB driver for
9Atmel AVR microcontrollers:
10
11 * VID = 5824 (=0x16c0) / PID = 1500 (=0x5dc) for devices implementing no
12 USB device class (vendor-class devices with USB class = 0xff). Devices
13 using this pair will be referred to as "VENDOR CLASS" devices.
14
15 * VID = 5824 (=0x16c0) / PID = 1503 (=0x5df) for HID class devices
16 (excluding mice and keyboards). Devices using this pair will be referred
17 to as "HID CLASS" devices.
18
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
22 * VID = 5824 (=0x16c0) / PID = 1508 (=0x5e4) for MIDI class devices
23 Devices using this pair will be referred to as "MIDI CLASS" devices.
24
25Since the granted right is non-exclusive, the same VID/PID pairs may be
26used by many companies and individuals for different products. To avoid
27conflicts, your device and host driver software MUST adhere to the rules
28outlined below.
29
30OBJECTIVE DEVELOPMENT Software GmbH has licensed these VID/PID pairs from
31Wouter van Ooijen (see www.voti.nl), who has licensed the VID from the USB
32Implementers Forum, Inc. (see www.usb.org). The VID is registered for the
33company name "Van Ooijen Technische Informatica".
34
35
36RULES AND RESTRICTIONS
37======================
38
39(1) The USB device MUST provide a textual representation of the
40manufacturer and product identification. The manufacturer identification
41MUST be available at least in USB language 0x0409 (English/US).
42
43(2) The textual manufacturer identification MUST contain either an Internet
44domain name (e.g. "mycompany.com") registered and owned by you, or an
45e-mail address under your control (e.g. "myname@gmx.net"). You can embed
46the domain name or e-mail address in any string you like, e.g. "Objective
47Development http://www.obdev.at/avrusb/".
48
49(3) You are responsible for retaining ownership of the domain or e-mail
50address for as long as any of your products are in use.
51
52(4) You may choose any string for the textual product identification, as
53long as this string is unique within the scope of your textual manufacturer
54identification.
55
56(5) Matching of device-specific drivers MUST be based on the textual
57manufacturer and product identification in addition to the usual VID/PID
58matching. This means that operating system features which are based on
59VID/PID matching only (e.g. Windows kernel level drivers, automatic actions
60when the device is plugged in etc) MUST NOT be used. The driver matching
61MUST be a comparison of the entire strings, NOT a sub-string match. For
62CDC-ACM CLASS and MIDI CLASS devices, a generic class driver should be used
63and the matching is based on the USB device class.
64
65(6) The extent to which VID/PID matching is allowed for non device-specific
66drivers or features depends on the operating system and particular VID/PID
67pair used:
68
69 * Mac OS X, Linux, FreeBSD and other Unixes: No VID/PID matching is
70 required and hence no VID/PID-only matching is allowed at all.
71
72 * Windows: The operating system performs VID/PID matching for the kernel
73 level driver. You are REQUIRED to use libusb-win32 (see
74 http://libusb-win32.sourceforge.net/) as the kernel level driver for
75 VENDOR CLASS devices. HID CLASS devices all use the generic HID class
76 driver shipped with Windows, except mice and keyboards. You therefore
77 MUST NOT use any of the shared VID/PID pairs for mice or keyboards.
78 CDC-ACM CLASS devices require a ".inf" file which matches on the VID/PID
79 pair. This ".inf" file MUST load the "usbser" driver to configure the
80 device as modem (COM-port).
81
82(7) OBJECTIVE DEVELOPMENT Software GmbH disclaims all liability for any
83problems which are caused by the shared use of these VID/PID pairs. You
84have been warned that the sharing of VID/PID pairs may cause problems. If
85you want to avoid them, get your own VID/PID pair for exclusive use.
86
87
88HOW TO IMPLEMENT THESE RULES
89============================
90
91The following rules are for VENDOR CLASS and HID CLASS devices. CDC-ACM
92CLASS and MIDI CLASS devices use the operating system's class driver and
93don't need a custom driver.
94
95The host driver MUST iterate over all devices with the given VID/PID
96numbers in their device descriptors and query the string representation for
97the manufacturer name in USB language 0x0409 (English/US). It MUST compare
98the ENTIRE string with your textual manufacturer identification chosen in
99(2) above. A substring search for your domain or e-mail address is NOT
100acceptable. The driver MUST NOT touch the device (other than querying the
101descriptors) unless the strings match.
102
103For all USB devices with matching VID/PID and textual manufacturer
104identification, the host driver must query the textual product
105identification and string-compare it with the name of the product it can
106control. It may only initialize the device if the product matches exactly.
107
108Objective Development provides examples for these matching rules with the
109"PowerSwitch" project (using libusb) and with the "Automator" project
110(using Windows calls on Windows and libusb on Unix).
111
112
113Technical Notes:
114================
115
116Sharing the same VID/PID pair among devices is possible as long as ALL
117drivers which match the VID/PID also perform matching on the textual
118identification strings. This is easy on all operating systems except
119Windows, since Windows establishes a static connection between the VID/PID
120pair and a kernel level driver. All devices with the same VID/PID pair must
121therefore use THE SAME kernel level driver.
122
123We therefore demand that you use libusb-win32 for VENDOR CLASS devices.
124This is a generic kernel level driver which allows all types of USB access
125for user space applications. This is only a partial solution of the
126problem, though, because different device drivers may come with different
127versions of libusb-win32 and they may not work with the libusb version of
128the respective other driver. You are therefore encouraged to test your
129driver against a broad range of libusb-win32 versions. Do not use new
130features in new versions, or check for their existence before you use them.
131When a new libusb-win32 becomes available, make sure that your driver is
132compatible with it.
133
134For HID CLASS devices it is necessary that all those devices bind to the
135same kernel driver: Microsoft's generic USB HID driver. This is true for
136all HID devices except those with a specialized driver. Currently, the only
137HIDs with specialized drivers are mice and keyboards. You therefore MUST
138NOT use a shared VID/PID with mouse and keyboard devices.
139
140Sharing the same VID/PID among different products is unusual and probably
141violates the USB specification. If you do it, you do it at your own risk.
142
143To avoid possible incompatibilities, we highly recommend that you get your
144own VID/PID pair if you intend to sell your product. Objective
145Development's commercial licenses for AVR-USB include a PID for
146unrestricted exclusive use.
This page took 0.16028 seconds and 4 git commands to generate.