Qu'est-ce que l'API WebUSB ?

L'API WebUSB est une norme de navigateur qui permet aux pages web de communiquer directement avec les appareils USB — sans installer de pilotes natifs ni d'applications de bureau. Elle a été introduite dans Chrome 61 et donne aux sites web un accès contrôlé et soumis à autorisation au matériel tel que les microcontrôleurs, les cartes de développement, les interfaces MIDI et autres périphériques USB.

Contrairement à l'accès USB traditionnel (qui nécessite des pilotes au niveau du noyau), WebUSB fonctionne entièrement dans le bac à sable du navigateur. Les utilisateurs doivent explicitement accorder une autorisation pour chaque appareil via le sélecteur d'appareils intégré du navigateur, ce qui garantit qu'aucun site web ne peut lire ou écrire silencieusement sur votre matériel.

Description de l'outil

Cet outil vous permet d'énumérer les appareils USB qui ont été accordés au navigateur via l'API WebUSB. Au chargement, il liste automatiquement tous les appareils précédemment autorisés. Vous pouvez également ouvrir le sélecteur USB natif du navigateur pour accorder l'accès à un nouvel appareil connecté, ou actualiser la liste à tout moment.

Pour chaque appareil, l'outil affiche le nom du produit, le fabricant, l'ID du fournisseur, l'ID du produit, le numéro de série et la version du protocole USB.

Fonctionnalités

  • Charge automatiquement les appareils USB précédemment autorisés à l'ouverture de la page
  • Ouvre le sélecteur d'appareils USB natif du navigateur pour accorder l'accès aux nouveaux appareils
  • Affiche l'ID du fournisseur et l'ID du produit en notation hexadécimale standard (par exemple 0x1A2B)
  • Affiche la version du protocole USB (par exemple 2.0, 3.1) aux côtés des champs d'identité de l'appareil
  • Tableau de résultats triable avec export CSV et JSON

Fonctionnement

Lorsque vous cliquez sur Ajouter un appareil, le navigateur appelle navigator.usb.requestDevice() et affiche un sélecteur au niveau du système listant les appareils USB connectés. Si vous en sélectionnez un, le navigateur stocke l'autorisation pour cette origine. Lors des visites ultérieures (ou après avoir cliqué sur Actualiser), navigator.usb.getDevices() retourne tous les appareils précédemment autorisés sans demander à nouveau.

L'ID du fournisseur et l'ID du produit sont rendus en hexadécimal majuscule à 4 chiffres (par exemple 0x04D8) — le format standard utilisé dans les registres USB et les fiches techniques.

Cas d'utilisation

  • Les développeurs de firmware peuvent rapidement confirmer qu'un microcontrôleur ou une carte de développement connectée (Arduino, STM32, RP2040, etc.) est correctement énumérée par le navigateur avant d'écrire un outil de programmation basé sur WebUSB.
  • Les développeurs d'applications web peuvent vérifier que leur application compatible WebUSB verra les champs d'identité d'appareil attendus lors du prototypage en phase précoce.

Limitations

  • WebUSB n'est pris en charge que dans les navigateurs basés sur Chromium (Chrome, Edge, Opera). Firefox et Safari n'implémentent pas cette API.
  • La page doit être servie via HTTPS (ou localhost) — WebUSB est bloqué sur les origines HTTP simples.
  • Certaines combinaisons de système d'exploitation et de navigateur restreignent l'accès à certaines classes d'appareils (par exemple HID, stockage de masse) même lorsque les autorisations sont accordées.
  • Cet outil lit uniquement les métadonnées de l'appareil ; il n'ouvre aucune interface USB ni ne transfère de données vers/depuis l'appareil.