Royalty-Free Non-Exclusive License for One USB VID/PID Pair
===========================================================

Version 2006-01-09

OBJECTIVE DEVELOPMENT Software GmbH hereby grants you the non-exclusive
right to use the USB.org vendor-ID (VID) 0x16C0 (5824 in decimal) and
product-ID (PID) 0x05DC (1500 in decimal) for products based on Objective
Development's firmware-only USB driver for Atmel AVR microcontrollers.
OBJECTIVE DEVELOPMENT Software GmbH has licensed this VID/PID pair from
Wouter van Ooijen (see www.voti.nl), who has licensed the VID from the USB
Implementers Forum, Inc. (see www.usb.org). The VID is registered for the
company name "Van Ooijen Technische Informatica".

Since this right is non-exclusive, the same VID/PID pair may be used by many
companies and individuals for different products. To avoid conflicts, your
device and host driver software MUST adhere to the following rules:

(1) The USB device MUST provide a textual representation of the vendor and
product identification. The vendor identification MUST be available at least
in USB language 0x0409 (English/US).

(2) The textual vendor 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/avrusb/".

(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 vendor
identification.

(5) You MUST use libusb-win32 (see libusb-win32.sourceforge.net) for the
host driver on Windows (see the Technical Notes for rationale). We highly
recommend that you use libusb (see libusb.sourceforge.net) on all other
platforms, too.

(6) Operating system features which are based on VID/PID matching only, e.g.
automatic actions such as starting a particular application when a device
with a certain VID/PID pair is found, MUST NOT be used.

(6) The host driver MUST iterate over all devices with the given VID/PID
numbers in their device descriptors and query the string representation for
the vendor name in USB language 0x0409 (English/US). It MUST compare the
ENTIRE string with your textual vendor identification chosen in (2) above. A
substring search for your domain or e-mail address is NOT acceptable. The
driver MUST NOT touch the device (other than querying the descriptors)
unless the strings match.

(7) For all USB devices with matching VID/PID and textual vendor
identification, the host driver must query the textual product
identification and string-compare it with the name of the product it can
control. It may only initialize the device if the product matches exactly.


OBJECTIVE DEVELOPMENT Software GmbH disclaims all liability for any problems
which are caused by the shared use of this VID/PID. You have been warned
that the mechanism described above may cause problems. If you want to avoid
them, get your own VID/PID pair for exclusive use.


Technical Notes:
================

Automatic actions which take place when the device is plugged in (e.g.
application autostart) can usually only be configured for the VID/PID. More
complex matching patterns involving other device properties are usually not
possible. You can therefore not use automatic actions for the shared
VID/PID; they would apply to all devices using the same VID/PID, including
those from other authors.

On Windows, one automatic action is mandatory: The low level device driver
DLL is loaded when the device is plugged in. To allow sharing of the
VID/PID, all devices must have THE SAME low level driver: libusb-win32. This
is only a partial solution of the problem because different device drivers
may come with different versions of libusb-win32 and they may not work with
the libusb version of the respective other driver. You are therefore
encouraged to test your driver against a broad range of libusb-win32
versions. Do not use new features in new versions, or check for their
existence before you use them. When a new libusb-win32 becomes available,
make sure that your driver is compatible with it.

Sharing the same VID/PID among different products is unusual and probably
violates the USB specification. If you do it, you do it at your own risk.

To avoid the problems outlined above, we highly recommend that you get your
own VID/PID pair for products you sell. Objective Development's commercial
licenses for AVR-USB include a PID for unrestricted exclusive use.
