aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristian Starkjohann <cs+github@obdev.at>2009-08-03 17:24:45 +0000
committerChristian Starkjohann <cs+github@obdev.at>2009-08-03 17:24:45 +0000
commitd988c3906ece23375bee7cc56cc8633761577baf (patch)
tree7168e5441c4a5738af951994379ea714b4777bc9
parent32952d16b7f7681ca237b547b70df37ed825f01a (diff)
downloadv-usb-d988c3906ece23375bee7cc56cc8633761577baf.tar.gz
v-usb-d988c3906ece23375bee7cc56cc8633761577baf.tar.bz2
v-usb-d988c3906ece23375bee7cc56cc8633761577baf.zip
- formating...
-rw-r--r--usbdrv/CommercialLicense.txt5
-rw-r--r--usbdrv/USB-ID-FAQ.txt114
-rw-r--r--usbdrv/USB-IDs-for-free.txt87
3 files changed, 159 insertions, 47 deletions
diff --git a/usbdrv/CommercialLicense.txt b/usbdrv/CommercialLicense.txt
index f9cd011..01ed8e9 100644
--- a/usbdrv/CommercialLicense.txt
+++ b/usbdrv/CommercialLicense.txt
@@ -38,13 +38,14 @@ you. OBJECTIVE DEVELOPMENT has obtained USB Product ID ranges under the
Vendor ID 5824 from Wouter van Ooijen (Van Ooijen Technische Informatica)
and under the Vendor ID 8352 from Jason Kotzin (Clay Logic). Both owners of
the Vendor IDs have obtained these IDs from the USB Implementers Forum, Inc.
-(www.usb.org).
+(www.usb.org). OBJECTIVE DEVELOPMENT disclaims all liability which might
+arise from the assignment of USB IDs.
2.5 USB Certification. Although not part of this agreement, we want to make
it clear that you cannot become USB certified when you use V-USB or a USB
Product ID assigned by OBJECTIVE DEVELOPMENT. AVR microcontrollers don't
meet the electrical specifications required by the USB specification and
-the USB Implementers Forum certifies only members who own a Vendor ID of
+the USB Implementers Forum certifies only members who bought a Vendor ID of
their own.
diff --git a/usbdrv/USB-ID-FAQ.txt b/usbdrv/USB-ID-FAQ.txt
index dcfefd6..82e8b03 100644
--- a/usbdrv/USB-ID-FAQ.txt
+++ b/usbdrv/USB-ID-FAQ.txt
@@ -1,52 +1,102 @@
+Version 2009-08-03
+
==========================
WHY DO WE NEED THESE IDs?
==========================
-USB is more than a low level protocol for data transport. It also defines a common set of requests which must be understood by all devices. And as part of these common requests, the standard defines data structures, the Descriptors, which are used to describe the properties of the device.
+USB is more than a low level protocol for data transport. It also defines a
+common set of requests which must be understood by all devices. And as part
+of these common requests, the specification defines data structures, the
+USB Descriptors, which are used to describe the properties of the device.
-From the perspective of an operating system, it is therefore possible to find out basic properties of a device (such as e.g. the manufacturer and the name of the device) without a device-specific driver. This is essential because the operating system can choose a driver to load based on this information.
+From the perspective of an operating system, it is therefore possible to find
+out basic properties of a device (such as e.g. the manufacturer and the name
+of the device) without a device-specific driver. This is essential because
+the operating system can choose a driver to load based on this information
+(Plug-And-Play).
-Among the most important properties in the Device Descriptor are the USB Vendor- and Product-ID. Both are 16 bit integers. The most simple form of driver matching is based on these IDs. The driver announces the Vendor- and Product-IDs of the devices it can handle and the operating system loads the appropriate driver when the device is connected.
+Among the most important properties in the Device Descriptor are the USB
+Vendor- and Product-ID. Both are 16 bit integers. The most simple form of
+driver matching is based on these IDs. The driver announces the Vendor- and
+Product-IDs of the devices it can handle and the operating system loads the
+appropriate driver when the device is connected.
-It is obvious that this technique works only if the pair Vendor- plus Product-ID is unique: Two devices which may require separate drivers must not have the same pair of IDs.
+It is obvious that this technique only works if the pair Vendor- plus
+Product-ID is unique: Only devices which require the same driver can have the
+same pair of IDs.
=====================================================
HOW DOES THE USB STANDARD ENSURE THAT IDs ARE UNIQUE?
=====================================================
-Since it is so important that USB IDs are unique, the USB Implementers Forum, Inc. (usb.org) needs a way to enforce this legally. It is not forbidden by law to build a device and assign it any random numbers as IDs, only by an agreement set forth by usb.org. The agreement binds only parties who agreed to it, of course. Everybody else is free to use any numbers for their IDs.
-
-So how can usb.org ensure that every manufacturer of USB devices enters into an agreement with them? They do it via trademark licensing. Usb.org has registered the trademark "USB", all associated logos and related terms. If you want to put an USB logo on your product or claim that it is USB compliant, you must license these trademarks from usb.org. And this is where you enter into an agreement. See the "USB-IF Trademark License Agreement and Usage Guidelines for the USB-IF Logo" at http://www.usb.org/developers/logo_license/.
-
-Licensing the USB trademarks requires that you buy a USB Vendor-ID from usb.org (one-time fee of ca. 2,000 USD), that you become a member of usb.org (yearly fee of ca. 4,000 USD) and that you meet all the technical specifications from the USB spec.
-
-This means that most hobbyists and small companies will never be able to become USB compliant, just because membership is so expensive. And you can't be compliant with a driver based on V-USB anyway, because the AVR's port pins don't meet the electrical specifications for USB. So, in principle, all hobbyists and small companies are free to choose any random numbers for their IDs. They have nothing to lose...
-
-There is one exception worth noting, though: If you use a sub-component which implements USB, the vendor of the sub-components may guarantee USB compliance. This might apply to some or all of FTDI's solutions.
+Since it is so important that USB IDs are unique, the USB Implementers Forum,
+Inc. (usb.org) needs a way to enforce this legally. It is not forbidden by
+law to build a device and assign it any random numbers as IDs. Usb.org
+therefore needs an agreement to regulate the use of USB IDs. The agreement
+binds only parties who agreed to it, of course. Everybody else is free to use
+any numbers for their IDs.
+
+So how can usb.org ensure that every manufacturer of USB devices enters into
+an agreement with them? They do it via trademark licensing. Usb.org has
+registered the trademark "USB", all associated logos and related terms. If
+you want to put an USB logo on your product or claim that it is USB
+compliant, you must license these trademarks from usb.org. And this is where
+you enter into an agreement. See the "USB-IF Trademark License Agreement and
+Usage Guidelines for the USB-IF Logo" at
+http://www.usb.org/developers/logo_license/.
+
+Licensing the USB trademarks requires that you buy a USB Vendor-ID from
+usb.org (one-time fee of ca. 2,000 USD), that you become a member of usb.org
+(yearly fee of ca. 4,000 USD) and that you meet all the technical
+specifications from the USB spec.
+
+This means that most hobbyists and small companies will never be able to
+become USB compliant, just because membership is so expensive. And you can't
+be compliant with a driver based on V-USB anyway, because the AVR's port pins
+don't meet the electrical specifications for USB. So, in principle, all
+hobbyists and small companies are free to choose any random numbers for their
+IDs. They have nothing to lose...
+
+There is one exception worth noting, though: If you use a sub-component which
+implements USB, the vendor of the sub-components may guarantee USB
+compliance. This might apply to some or all of FTDI's solutions.
=======================================================================
WHY SHOULD YOU OBTAIN USB IDs EVEN IF YOU DON'T LICENSE USB TRADEMARKS?
=======================================================================
-You have learned in the previous section that you are free to choose any numbers for your IDs anyway. So why not do exactly this? There is still the technical issue. If you choose IDs which are already in use by somebody else, operating systems will load the wrong drivers and your device won't work. Even if you choose IDs which are not currently in use, they may be in use in the next version of the operating system or in an automatic update.
+You have learned in the previous section that you are free to choose any
+numbers for your IDs anyway. So why not do exactly this? There is still the
+technical issue. If you choose IDs which are already in use by somebody else,
+operating systems will load the wrong drivers and your device won't work.
+Even if you choose IDs which are not currently in use, they may be in use in
+the next version of the operating system or even after an automatic update.
-So what you need is a pair of Vendor- and Product-IDs for which you have the guarantee that no USB compliant product uses them. This implies that no operating system will ever ship with drivers responsible for these IDs.
+So what you need is a pair of Vendor- and Product-IDs for which you have the
+guarantee that no USB compliant product uses them. This implies that no
+operating system will ever ship with drivers responsible for these IDs.
==============================================
HOW DOES OBJECTIVE DEVELOPMENT HANDLE USB IDs?
==============================================
-Objective Development gives away pairs of USB-IDs with their V-USB licenses. In order to ensure that these IDs are unique, Objective Development has an agreement with the company/person who has bought the USB Vendor-ID from usb.org. This agreement ensures that a range of USB Product-IDs is reserved for assignment by Objective Development and that the owner of the Vendor-ID won't give it to anybody else.
+Objective Development gives away pairs of USB-IDs with their V-USB licenses.
+In order to ensure that these IDs are unique, Objective Development has an
+agreement with the company/person who has bought the USB Vendor-ID from
+usb.org. This agreement ensures that a range of USB Product-IDs is reserved
+for assignment by Objective Development and that the owner of the Vendor-ID
+won't give it to anybody else.
-This means that you have to trust three parties that they ensure uniqueness for your IDs:
+This means that you have to trust three parties to ensure uniqueness of
+your IDs:
- Objective Development, that they don't give the same PID to more than
one person.
- The owner of the Vendor-ID that they don't assign PIDs from the range
- assigned to Objective Development to anybody else
+ assigned to Objective Development to anybody else.
- Usb.org that they don't assign the same Vendor-ID a second time.
@@ -54,26 +104,46 @@ This means that you have to trust three parties that they ensure uniqueness for
WHO IS THE OWNER OF THE VENDOR-ID?
==================================
-Objective Development has obtained three ranges of USB Product-IDs. Two ranges under the Vendor-ID 5824 from Wouter van Ooijen (Van Ooijen Technische Informatica, www.voti.nl): 1500-1509 and 10200-10299 and one under the Vendor-ID 8352 from Jason Kotzin (Clay Logic): 16384-32767. Both VID owners have received their Vendor-ID directly from usb.org.
+Objective Development has obtained three ranges of USB Product-IDs. Two
+ranges under the Vendor-ID 5824 from Wouter van Ooijen (Van Ooijen Technische
+Informatica, www.voti.nl): 1500-1509 and 10200-10299 and one under the
+Vendor-ID 8352 from Jason Kotzin (Clay Logic): 16384-32767. Both VID owners
+have received their Vendor-ID directly from usb.org.
=========================================================================
CAN I USE USB-IDs FROM OBJECTIVE DEVELOPMENT WITH OTHER DRIVERS/HARDWARE?
=========================================================================
-The short answer is: Yes. All you get is a guarantee that the IDs are never assigned to anybody else. What more do you need?
+The short answer is: Yes. All you get is a guarantee that the IDs are never
+assigned to anybody else. What more do you need?
============================
WHAT ABOUT SHARED ID PAIRS?
============================
-Objective Development has reserved some PID/VID pairs for shared use. You have no guarantee of uniqueness for them, except that no USB compliant device uses them. In order to avoid technical problems, we must ensure that all devices with the same pair of IDs use the same driver on kernel level. For details, see the text which describes the shared IDs.
+Objective Development has reserved some PID/VID pairs for shared use. You
+have no guarantee of uniqueness for them, except that no USB compliant device
+uses them. In order to avoid technical problems, we must ensure that all
+devices with the same pair of IDs use the same driver on kernel level. For
+details, see the file USB-IDs-for-free.txt.
======================================================
I HAVE HEARD THAT SUB-LICENSING OF USB-IDs IS ILLEGAL?
======================================================
-A 16 bit integer number cannot be protected by copyright laws. It is not sufficiently complex. And since none of the parties involved entered into the USB-IF Trademark License Agreement, we are not bound to this agreement. So there is no reason why it should be illegal to sub-license USB-IDs.
+A 16 bit integer number cannot be protected by copyright laws. It is not
+sufficiently complex. And since none of the parties involved entered into the
+USB-IF Trademark License Agreement, we are not bound by this agreement. So
+there is no reason why it should be illegal to sub-license USB-IDs.
+
+
+=============================================
+WHO IS LIABLE IF THERE ARE INCOMPATIBILITIES?
+=============================================
+Objective Development disclaims all liabilities which might arise from the
+assignment of IDs. If you guarantee product features to your customers
+without proper disclaimer, YOU are liable for that.
diff --git a/usbdrv/USB-IDs-for-free.txt b/usbdrv/USB-IDs-for-free.txt
index e2586b2..fd064c6 100644
--- a/usbdrv/USB-IDs-for-free.txt
+++ b/usbdrv/USB-IDs-for-free.txt
@@ -4,41 +4,60 @@ Version 2009-08-03
FREE USB-IDs FOR SHARED USE
===========================
-Objective Development has reserved a set of USB Product-IDs for use according to the guidelines outlined below. For more information about the concept of USB IDs please see the file USB-ID-FAQ.txt. Objective Development guarantees that the IDs listed below are not used by any USB compliant devices.
+Objective Development has reserved a set of USB Product-IDs for use according
+to the guidelines outlined below. For more information about the concept of
+USB IDs please see the file USB-ID-FAQ.txt. Objective Development guarantees
+that the IDs listed below are not used by any USB compliant devices.
====================
MECHANISM OF SHARING
====================
-From a technical point of view, two different devices can share the same USB Vendor- and Product-ID if they require the same driver on operating system level. We make use of this fact by assigning separate IDs for various device classes. On application layer, devices must be distinguished by their textual name or serial number. We offer separate sets of IDs for discrimination by textual name and for serial number.
+From a technical point of view, two different devices can share the same USB
+Vendor- and Product-ID if they require the same driver on operating system
+level. We make use of this fact by assigning separate IDs for various device
+classes. On application layer, devices must be distinguished by their textual
+name or serial number. We offer separate sets of IDs for discrimination by
+textual name and for serial number.
-Examples for shared use of USB IDs are included with V-USB in the "examples" subdirectory.
+Examples for shared use of USB IDs are included with V-USB in the "examples"
+subdirectory.
======================================
IDs FOR DISCRIMINATION BY TEXTUAL NAME
======================================
-If you use one of the IDs listed below, your device and host-side software must conform to these rules:
+If you use one of the IDs listed below, your device and host-side software
+must conform to these rules:
-(1) The USB device MUST provide a textual representation of the
-manufacturer and product identification. The manufacturer identification
-MUST be available at least in USB language 0x0409 (English/US).
+(1) The USB device MUST provide a textual representation of the manufacturer
+and product identification. The manufacturer identification MUST be available
+at least in USB language 0x0409 (English/US).
(2) The textual manufacturer identification MUST contain either an Internet
-domain name (e.g. "mycompany.com") registered and owned by you, or an
-e-mail address under your control (e.g. "myname@gmx.net"). You can embed
-the domain name or e-mail address in any string you like, e.g. "Objective
-Development http://www.obdev.at/vusb/".
+domain name (e.g. "mycompany.com") registered and owned by you, or an e-mail
+address under your control (e.g. "myname@gmx.net"). You can embed the domain
+name or e-mail address in any string you like, e.g. "Objective Development
+http://www.obdev.at/vusb/".
-(3) You are responsible for retaining ownership of the domain or e-mail address for as long as any of your products are in use.
+(3) You are responsible for retaining ownership of the domain or e-mail
+address for as long as any of your products are in use.
-(4) You may choose any string for the textual product identification, as long as this string is unique within the scope of your textual manufacturer identification.
+(4) You may choose any string for the textual product identification, as long
+as this string is unique within the scope of your textual manufacturer
+identification.
-(5) Application side device look-up MUST be based on the textual manufacturer and product identification in addition to VID/PID matching. The driver matching MUST be a comparison of the entire strings, NOT a sub-string match.
+(5) Application side device look-up MUST be based on the textual manufacturer
+and product identification in addition to VID/PID matching. The driver
+matching MUST be a comparison of the entire strings, NOT a sub-string match.
-(6) For devices which implement a particular USB device class (e.g. HID), the operating system's default class driver MUST be used. If an operating system driver for Vendor Class devices is needed, this driver must be libusb or libusb-win32 (see http://libusb.org/ and http://libusb-win32.sourceforge.net/).
+(6) For devices which implement a particular USB device class (e.g. HID), the
+operating system's default class driver MUST be used. If an operating system
+driver for Vendor Class devices is needed, this driver must be libusb or
+libusb-win32 (see http://libusb.org/ and
+http://libusb-win32.sourceforge.net/).
Table if IDs for discrimination by textual name:
@@ -54,24 +73,40 @@ PID dec (hex) | VID dec (hex) | Description of use
1508 (0x05e4) | 5824 (0x16c0) | For MIDI class devices
--------------+---------------+--------------------------------------------
-Note that Windows caches the textual product- and vendor-description for mice, keyboards and joysticks. Name-bsed discrimination is therefore not recommended for these device classes.
+Note that Windows caches the textual product- and vendor-description for
+mice, keyboards and joysticks. Name-bsed discrimination is therefore not
+recommended for these device classes.
=======================================
IDs FOR DISCRIMINATION BY SERIAL NUMBER
=======================================
-If you use one of the IDs listed below, your device and host-side software must conform to these rules:
+If you use one of the IDs listed below, your device and host-side software
+must conform to these rules:
-(1) The USB device MUST provide a textual representation of the serial number. The serial number string MUST be available at least in USB language 0x0409 (English/US).
+(1) The USB device MUST provide a textual representation of the serial
+number. The serial number string MUST be available at least in USB language
+0x0409 (English/US).
-(2) The serial number MUST start with either an Internet domain name (e.g. "mycompany.com") registered and owned by you, or an e-mail address under your control (e.g. "myname@gmx.net"). You MAY append any string you like for further discrimination of your devices.
+(2) The serial number MUST start with either an Internet domain name (e.g.
+"mycompany.com") registered and owned by you, or an e-mail address under your
+control (e.g. "myname@gmx.net"). You MAY append any string you like for
+further discrimination of your devices.
-(3) You are responsible for retaining ownership of the domain or e-mail address for as long as any of your products are in use.
+(3) You are responsible for retaining ownership of the domain or e-mail
+address for as long as any of your products are in use.
-(5) Application side device look-up MUST be based on the serial number string in addition to VID/PID matching. The matching must start at the first character of the serial number string and MUST include your entire domain name or e-mail address. It MAY stop anywhere after that.
+(5) Application side device look-up MUST be based on the serial number string
+in addition to VID/PID matching. The matching must start at the first
+character of the serial number string and MUST include your entire domain
+name or e-mail address. It MAY stop anywhere after that.
-(6) For devices which implement a particular USB device class (e.g. HID), the operating system's default class driver MUST be used. If an operating system driver for Vendor Class devices is needed, this driver must be libusb or libusb-win32 (see http://libusb.org/ and http://libusb-win32.sourceforge.net/).
+(6) For devices which implement a particular USB device class (e.g. HID), the
+operating system's default class driver MUST be used. If an operating system
+driver for Vendor Class devices is needed, this driver must be libusb or
+libusb-win32 (see http://libusb.org/ and
+http://libusb-win32.sourceforge.net/).
Table if IDs for discrimination by serial number string:
@@ -98,10 +133,16 @@ PID dec (hex) | VID dec (hex) | Description of use
ORIGIN OF USB-IDs
=================
-OBJECTIVE DEVELOPMENT Software GmbH has obtained all VID/PID pairs listed here from Wouter van Ooijen (see www.voti.nl) for exclusive disposition. Wouter van Ooijen has obtained the VID from the USB Implementers Forum, Inc. (see www.usb.org). The VID is registered for the company name "Van Ooijen Technische Informatica".
+OBJECTIVE DEVELOPMENT Software GmbH has obtained all VID/PID pairs listed
+here from Wouter van Ooijen (see www.voti.nl) for exclusive disposition.
+Wouter van Ooijen has obtained the VID from the USB Implementers Forum, Inc.
+(see www.usb.org). The VID is registered for the company name "Van Ooijen
+Technische Informatica".
+
==========
DISCLAIMER
==========
+
OBJECTIVE DEVELOPMENT Software GmbH disclaims all liability for any
problems which are caused by the shared use of these VID/PID pairs.