Was ist die WebUSB API?

Die WebUSB API ist ein Browser-Standard, der es Webseiten ermöglicht, direkt mit USB-Geräten zu kommunizieren – ohne native Treiber oder Desktop-Anwendungen zu installieren. Sie wurde in Chrome 61 eingeführt und gibt Websites kontrollierten, genehmigungspflichtigen Zugriff auf Hardware wie Mikrocontroller, Entwicklungsboards, MIDI-Schnittstellen und andere USB-Peripheriegeräte.

Im Gegensatz zum traditionellen USB-Zugriff (der Kernel-Treiber erfordert) funktioniert WebUSB vollständig in der Browser-Sandbox. Benutzer müssen jeder Anwendung explizit die Berechtigung für jedes Gerät über die integrierte Geräteauswahl des Browsers erteilen, was sicherstellt, dass keine Website stillschweigend von Ihrer Hardware lesen oder schreiben kann.

Werkzeugbeschreibung

Dieses Werkzeug ermöglicht es Ihnen, USB-Geräte aufzuzählen, die dem Browser über die WebUSB API gewährt wurden. Beim Laden werden automatisch alle zuvor genehmigten Geräte aufgelistet. Sie können auch die native USB-Auswahl des Browsers öffnen, um Zugriff auf ein neu verbundenes Gerät zu gewähren, oder die Liste jederzeit aktualisieren.

Für jedes Gerät zeigt das Werkzeug den Produktnamen, Hersteller, Vendor ID, Produkt-ID, Seriennummer und USB-Protokollversion an.

Funktionen

  • Lädt automatisch zuvor gewährte USB-Geräte beim Öffnen der Seite
  • Öffnet die native USB-Geräteauswahl des Browsers, um Zugriff auf neue Geräte zu gewähren
  • Zeigt Vendor ID und Produkt-ID in standardmäßiger Hexadezimalschreibweise an (z. B. 0x1A2B)
  • Zeigt USB-Protokollversion (z. B. 2.0, 3.1) neben Geräteidentitätsfeldern
  • Sortierbare Ergebnistabelle mit CSV- und JSON-Export

Funktionsweise

Wenn Sie auf Gerät hinzufügen klicken, ruft der Browser navigator.usb.requestDevice() auf und zeigt eine Systemauswahl mit verbundenen USB-Geräten an. Wenn Sie eines auswählen, speichert der Browser die Berechtigung für diesen Ursprung. Bei nachfolgenden Besuchen (oder nach Klick auf Aktualisieren) gibt navigator.usb.getDevices() alle zuvor genehmigten Geräte zurück, ohne erneut zu fragen.

Vendor ID und Produkt-ID werden in 4-stelliger Großbuchstaben-Hex dargestellt (z. B. 0x04D8) – das Standardformat, das in USB-Registern und Datenblättern verwendet wird.

Anwendungsfälle

  • Firmware-Entwickler können schnell bestätigen, dass ein verbundener Mikrocontroller oder ein Entwicklungsboard (Arduino, STM32, RP2040 usw.) vom Browser korrekt erkannt wird, bevor sie ein WebUSB-basiertes Flashing-Tool schreiben.
  • Web-App-Entwickler können überprüfen, dass ihre WebUSB-fähige Anwendung die erwarteten Geräteidentitätsfelder während der frühen Prototyping-Phase sieht.

Einschränkungen

  • WebUSB wird nur in Chromium-basierten Browsern unterstützt (Chrome, Edge, Opera). Firefox und Safari implementieren diese API nicht.
  • Die Seite muss über HTTPS (oder localhost) bereitgestellt werden – WebUSB ist auf einfachen HTTP-Ursprüngen blockiert.
  • Einige Betriebssystem- und Browser-Kombinationen beschränken den Zugriff auf bestimmte Geräteklassen (z. B. HID, Massenspeicher), auch wenn Berechtigungen gewährt wurden.
  • Dieses Werkzeug liest nur Gerätemetadaten; es öffnet keine USB-Schnittstelle und überträgt keine Daten zum/vom Gerät.