USB-VIDs und PIDs für Hobbyprojekte       

von Ralf Beesner                 
Elektronik-Labor   Projekte   AVR 



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. 


Elektronik-Labor   Projekte   AVR