]> git.zerfleddert.de Git - fnordlicht-mini/blame - firmware/fnordlicht-controller/usbdrv/USB-ID-FAQ.txt
reference eeprom contents
[fnordlicht-mini] / firmware / fnordlicht-controller / usbdrv / USB-ID-FAQ.txt
CommitLineData
ec1bef8e 1Version 2009-08-22
2
3==========================
4WHY DO WE NEED THESE IDs?
5==========================
6
7USB is more than a low level protocol for data transport. It also defines a
8common set of requests which must be understood by all devices. And as part
9of these common requests, the specification defines data structures, the
10USB Descriptors, which are used to describe the properties of the device.
11
12From the perspective of an operating system, it is therefore possible to find
13out basic properties of a device (such as e.g. the manufacturer and the name
14of the device) without a device-specific driver. This is essential because
15the operating system can choose a driver to load based on this information
16(Plug-And-Play).
17
18Among the most important properties in the Device Descriptor are the USB
19Vendor- and Product-ID. Both are 16 bit integers. The most simple form of
20driver matching is based on these IDs. The driver announces the Vendor- and
21Product-IDs of the devices it can handle and the operating system loads the
22appropriate driver when the device is connected.
23
24It is obvious that this technique only works if the pair Vendor- plus
25Product-ID is unique: Only devices which require the same driver can have the
26same pair of IDs.
27
28
29=====================================================
30HOW DOES THE USB STANDARD ENSURE THAT IDs ARE UNIQUE?
31=====================================================
32
33Since it is so important that USB IDs are unique, the USB Implementers Forum,
34Inc. (usb.org) needs a way to enforce this legally. It is not forbidden by
35law to build a device and assign it any random numbers as IDs. Usb.org
36therefore needs an agreement to regulate the use of USB IDs. The agreement
37binds only parties who agreed to it, of course. Everybody else is free to use
38any numbers for their IDs.
39
40So how can usb.org ensure that every manufacturer of USB devices enters into
41an agreement with them? They do it via trademark licensing. Usb.org has
42registered the trademark "USB", all associated logos and related terms. If
43you want to put an USB logo on your product or claim that it is USB
44compliant, you must license these trademarks from usb.org. And this is where
45you enter into an agreement. See the "USB-IF Trademark License Agreement and
46Usage Guidelines for the USB-IF Logo" at
47http://www.usb.org/developers/logo_license/.
48
49Licensing the USB trademarks requires that you buy a USB Vendor-ID from
50usb.org (one-time fee of ca. 2,000 USD), that you become a member of usb.org
51(yearly fee of ca. 4,000 USD) and that you meet all the technical
52specifications from the USB spec.
53
54This means that most hobbyists and small companies will never be able to
55become USB compliant, just because membership is so expensive. And you can't
56be compliant with a driver based on V-USB anyway, because the AVR's port pins
57don't meet the electrical specifications for USB. So, in principle, all
58hobbyists and small companies are free to choose any random numbers for their
59IDs. They have nothing to lose...
60
61There is one exception worth noting, though: If you use a sub-component which
62implements USB, the vendor of the sub-components may guarantee USB
63compliance. This might apply to some or all of FTDI's solutions.
64
65
66=======================================================================
67WHY SHOULD YOU OBTAIN USB IDs EVEN IF YOU DON'T LICENSE USB TRADEMARKS?
68=======================================================================
69
70You have learned in the previous section that you are free to choose any
71numbers for your IDs anyway. So why not do exactly this? There is still the
72technical issue. If you choose IDs which are already in use by somebody else,
73operating systems will load the wrong drivers and your device won't work.
74Even if you choose IDs which are not currently in use, they may be in use in
75the next version of the operating system or even after an automatic update.
76
77So what you need is a pair of Vendor- and Product-IDs for which you have the
78guarantee that no USB compliant product uses them. This implies that no
79operating system will ever ship with drivers responsible for these IDs.
80
81
82==============================================
83HOW DOES OBJECTIVE DEVELOPMENT HANDLE USB IDs?
84==============================================
85
86Objective Development gives away pairs of USB-IDs with their V-USB licenses.
87In order to ensure that these IDs are unique, Objective Development has an
88agreement with the company/person who has bought the USB Vendor-ID from
89usb.org. This agreement ensures that a range of USB Product-IDs is reserved
90for assignment by Objective Development and that the owner of the Vendor-ID
91won't give it to anybody else.
92
93This means that you have to trust three parties to ensure uniqueness of
94your IDs:
95
96 - Objective Development, that they don't give the same PID to more than
97 one person.
98 - The owner of the Vendor-ID that they don't assign PIDs from the range
99 assigned to Objective Development to anybody else.
100 - Usb.org that they don't assign the same Vendor-ID a second time.
101
102
103==================================
104WHO IS THE OWNER OF THE VENDOR-ID?
105==================================
106
107Objective Development has obtained ranges of USB Product-IDs under two
108Vendor-IDs: Under Vendor-ID 5824 from Wouter van Ooijen (Van Ooijen
109Technische Informatica, www.voti.nl) and under Vendor-ID 8352 from Jason
110Kotzin (Clay Logic, www.claylogic.com). Both VID owners have received their
111Vendor-ID directly from usb.org.
112
113
114=========================================================================
115CAN I USE USB-IDs FROM OBJECTIVE DEVELOPMENT WITH OTHER DRIVERS/HARDWARE?
116=========================================================================
117
118The short answer is: Yes. All you get is a guarantee that the IDs are never
119assigned to anybody else. What more do you need?
120
121
122============================
123WHAT ABOUT SHARED ID PAIRS?
124============================
125
126Objective Development has reserved some PID/VID pairs for shared use. You
127have no guarantee of uniqueness for them, except that no USB compliant device
128uses them. In order to avoid technical problems, we must ensure that all
129devices with the same pair of IDs use the same driver on kernel level. For
130details, see the file USB-IDs-for-free.txt.
131
132
133======================================================
134I HAVE HEARD THAT SUB-LICENSING OF USB-IDs IS ILLEGAL?
135======================================================
136
137A 16 bit integer number cannot be protected by copyright laws. It is not
138sufficiently complex. And since none of the parties involved entered into the
139USB-IF Trademark License Agreement, we are not bound by this agreement. So
140there is no reason why it should be illegal to sub-license USB-IDs.
141
142
143=============================================
144WHO IS LIABLE IF THERE ARE INCOMPATIBILITIES?
145=============================================
146
147Objective Development disclaims all liabilities which might arise from the
148assignment of IDs. If you guarantee product features to your customers
149without proper disclaimer, YOU are liable for that.
Impressum, Datenschutz