Vad är WebUSB API?

WebUSB API är en webbläsarstandard som gör det möjligt för webbsidor att kommunicera direkt med USB-enheter — utan att installera interna drivrutiner eller skrivbordsprogram. Det introducerades i Chrome 61 och ger webbplatser kontrollerad, tillståndsbaserad åtkomst till hårdvara såsom mikrokontroller, utvecklingskort, MIDI-gränssnitt och andra USB-enheter.

Till skillnad från traditionell USB-åtkomst (som kräver drivrutiner på kärnelnivå) fungerar WebUSB helt inom webbläsarens sandbox. Användare måste uttryckligen ge tillstånd för varje enhet via webbläsarens inbyggda enhetväljare, vilket säkerställer att ingen webbplats kan tyst läsa från eller skriva till din hårdvara.

Verktygets beskrivning

Det här verktyget låter dig räkna upp USB-enheter som har tilldelats webbläsaren via WebUSB API. Vid inläsning visar det automatiskt alla tidigare tillåtna enheter. Du kan också öppna webbläsarens inbyggda USB-väljare för att ge åtkomst till en nyligen ansluten enhet, eller uppdatera listan när som helst.

För varje enhet visar verktyget produktnamn, tillverkare, leverantörs-ID, produkt-ID, serienummer och USB-protokollversion.

Funktioner

  • Läser automatiskt tidigare tillåtna USB-enheter när sidan öppnas
  • Öppnar webbläsarens inbyggda USB-enhetväljare för att ge åtkomst till nya enheter
  • Visar leverantörs-ID och produkt-ID i standard hexadecimal notation (t.ex. 0x1A2B)
  • Visar USB-protokollversion (t.ex. 2.0, 3.1) tillsammans med enhetens identifieringsfält
  • Sorterbar resultattabell med CSV- och JSON-export

Hur det fungerar

När du klickar på Lägg till enhet anropar webbläsaren navigator.usb.requestDevice() och visar en väljare på systemnivå som listar anslutna USB-enheter. Om du väljer en sparar webbläsaren tillståndet för det ursprunget. Vid senare besök (eller efter att ha klickat på Uppdatera) returnerar navigator.usb.getDevices() alla tidigare tillåtna enheter utan att fråga igen.

Leverantörs-ID och produkt-ID återges i 4-siffrig versal hex (t.ex. 0x04D8) — standardformatet som används i USB-register och datablad.

Användningsfall

  • Firmware-utvecklare kan snabbt bekräfta att en ansluten mikrokontroller eller utvecklingskort (Arduino, STM32, RP2040, osv.) är korrekt uppräknad av webbläsaren innan de skriver ett WebUSB-baserat flashningsverktyg.
  • Webapplikationsutvecklare kan verifiera att deras WebUSB-aktiverade applikation kommer att se de förväntade enhetens identifieringsfält under tidig prototypning.

Begränsningar

  • WebUSB stöds endast i Chromium-baserade webbläsare (Chrome, Edge, Opera). Firefox och Safari implementerar inte detta API.
  • Sidan måste serveras över HTTPS (eller localhost) — WebUSB är blockerat på vanliga HTTP-ursprung.
  • Vissa kombinationer av operativsystem och webbläsare begränsar åtkomsten till vissa enhetklasser (t.ex. HID, masslagring) även när tillstånd har givits.
  • Det här verktyget läser endast enhetens metadata; det öppnar ingen USB-gränssnitt eller överför data till/från enheten.