mirror of
https://github.com/qmk/qmk_firmware.git
synced 2024-12-21 00:53:23 +00:00
149 lines
6.6 KiB
Plaintext
149 lines
6.6 KiB
Plaintext
|
Version 2009-08-22
|
||
|
|
||
|
===========================
|
||
|
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.
|
||
|
|
||
|
|
||
|
====================
|
||
|
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.
|
||
|
|
||
|
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:
|
||
|
|
||
|
(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/".
|
||
|
|
||
|
(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.
|
||
|
|
||
|
(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/).
|
||
|
|
||
|
Table if IDs for discrimination by textual name:
|
||
|
|
||
|
PID dec (hex) | VID dec (hex) | Description of use
|
||
|
==============+===============+============================================
|
||
|
1500 (0x05dc) | 5824 (0x16c0) | For Vendor Class devices with libusb
|
||
|
--------------+---------------+--------------------------------------------
|
||
|
1503 (0x05df) | 5824 (0x16c0) | For generic HID class devices (which are
|
||
|
| | NOT mice, keyboards or joysticks)
|
||
|
--------------+---------------+--------------------------------------------
|
||
|
1505 (0x05e1) | 5824 (0x16c0) | For CDC-ACM class devices (modems)
|
||
|
--------------+---------------+--------------------------------------------
|
||
|
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.
|
||
|
|
||
|
|
||
|
=======================================
|
||
|
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:
|
||
|
|
||
|
(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"), both terminated with a colon (":") character.
|
||
|
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.
|
||
|
|
||
|
(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 include the colon character
|
||
|
terminating your domain 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/).
|
||
|
|
||
|
Table if IDs for discrimination by serial number string:
|
||
|
|
||
|
PID dec (hex) | VID dec (hex) | Description of use
|
||
|
===============+===============+===========================================
|
||
|
10200 (0x27d8) | 5824 (0x16c0) | For Vendor Class devices with libusb
|
||
|
---------------+---------------+-------------------------------------------
|
||
|
10201 (0x27d9) | 5824 (0x16c0) | For generic HID class devices (which are
|
||
|
| | NOT mice, keyboards or joysticks)
|
||
|
---------------+---------------+-------------------------------------------
|
||
|
10202 (0x27da) | 5824 (0x16c0) | For USB Mice
|
||
|
---------------+---------------+-------------------------------------------
|
||
|
10203 (0x27db) | 5824 (0x16c0) | For USB Keyboards
|
||
|
---------------+---------------+-------------------------------------------
|
||
|
10204 (0x27db) | 5824 (0x16c0) | For USB Joysticks
|
||
|
---------------+---------------+-------------------------------------------
|
||
|
10205 (0x27dc) | 5824 (0x16c0) | For CDC-ACM class devices (modems)
|
||
|
---------------+---------------+-------------------------------------------
|
||
|
10206 (0x27dd) | 5824 (0x16c0) | For MIDI class devices
|
||
|
---------------+---------------+-------------------------------------------
|
||
|
|
||
|
|
||
|
=================
|
||
|
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".
|
||
|
|
||
|
|
||
|
==========
|
||
|
DISCLAIMER
|
||
|
==========
|
||
|
|
||
|
OBJECTIVE DEVELOPMENT Software GmbH disclaims all liability for any
|
||
|
problems which are caused by the shared use of these VID/PID pairs.
|