USB-VIDs und PIDs für Hobbyprojekte
Für USB-Hobbyprojekte mit Mikrocontrollern kursieren unterschiedliche
USB-IDs. Woher sie stammen, war mir nicht so recht klar, und die teils
skurrilen Geschichten, die sich um das Thema ranken, sind im Internet
etwas verstreut. Daher seien sie hier kurz zusammengefasst:
Ein (PC-)Betriebssystem muss für ein USB-Gerät den passenden
Treiber laden. Das USB-Gerät muss sich daher mit einer eindeutigen
Kennung zu erkennen geben. Sie setzt sich zusammen aus einer
USB-Vendor-ID und einer USB-Product-ID (ggf. werden auch noch Device
Name und Serial Number verwendet; wenn vorhanden, können auch sie durch
das Betriebssystem ausgewertet werden).
Die Eindeutigkeit wird durch einen privatwirtschaftlich organisierten Zusammenschluss organisiert:
www.usb.org .
In diesem exclusiven Clubs sind jedoch nur größere Firmen vertreten (es
wird gemunkelt, dass die Jahresgebühr ca. 3000 Dollar beträgt und ca.
2000 Dollar Gebühr für eine Vendor-ID anfallen).
Dies brachte mindestens zwei Firmen auf die Idee, eine
Vendor-ID zu erwerben und die 65535 möglichen Product-IDs einzeln bzw.
in Kleinmengen weiter zu verkaufen: Van Ooijen Technische Informatica
www.voti.nl und MCS Electronics
www.mcselec.com
(BASCOM-Erfinder). Voti.nl erwarb die Vendor-ID 16C0 und MCS Electronics die Vendor-ID 16D0.
Der Entwickler der VUSB-Software
www.obdev.at
erwarb zwei Product-ID-Blöcke bei voti.nl und gab einen Teil der
Product-IDs für die Verwendung in Hobbyprojekten frei (näheres steht in
den Readme-Dateien in den VUSB-Library-Ordnern).
Voti.nl und MCS Electronics bekamen jedoch nach einigen Jahren
Post vom Anwalt: USB.org war mit dem Weiterverkauf von Product-IDs
nicht mehr einverstanden. Die Unterlassungsaufforderungen konnten
jedoch nur mit dem Markenrecht begründet werden. Die Verwendung von
USB-Logos, Original-Schriftzügen und das Werben mit USB-Kompatibilität
kann untersagt werden, der Verkauf von 16bit-Zahlen jedoch nicht ;-) .
Voti.nl hatte trotzdem keine Lust auf juristische Scharmützel
und gab auf, veröffentlichte aber eine Liste der bereits belegten
Product-IDs:
Voti-Pids
MCS Electronics verkauft weiterhin 16-bit-Zahlen. Die Vendor-ID
16D0 wurde ihnen zwar entzogen, kann aber aus naheliegenden Gründen
nicht durch USB.org an einen Dritten neu vergeben werden, und MCS
Electronics verspricht dem Käufer die Eindeutigkeit seiner als
Product-ID verwendbaren 16bit-Zahlen.
Von MCS stammen Vendor-ID und Product-ID für den Bootloader micronucleus.
Digistump
erwarb sie und gab sie zur Verwendung durch Dritte frei, so dass auch
Mitbewerber den Bootloder micronucleus für ihre Produkte einsetzen
können.
Adafruit hat
ebenfalls Product-IDs bei einem Wiederverkäufer (mit der Vendor-ID
1781) erworben, untersagt aber die Verwendung durch Drittanbieter.
Vendor-ID 1781 und Product-ID 0C9F werden für den AVR-Programmer
USBtiny und den Bootloader Adafruit Gemma verwendet.
Für eigene Bastelprojekte könnte man sich einfach irgendwelche
IDs ausdenken. Auf diesem Wege wird z.B. der Autor der mittlerweile
verwaisten
SWUSB-Bascom-Library an
seine Vendor-ID "AAAA" gekommen sein. Zumindest für Standard-Geräte wie
virtuelle USB-Keyboards, Mäuse und -serielle-Schnittstellen ist es aber
sinnvoll, die von obdev.at freigegebenen IDs zu verwenden und sich an
das dort vorgeschlagene Schema zu halten. Das PC-Betriebssystem erkennt
dann nach kurzer "Lernphase" alle Standard-Gerätekonfigurationen ohne
nervige Treiberdialoge bzw. Nachpflege von Linux-udev-Regeln.