Answer
Can a PWA connect to USB devices?
Yes, through the WebUSB API, supported on Chrome, Edge and other Chromium desktop and Android browsers. navigator.usb.requestDevice() prompts the user to select a connected USB device, after which the page can send and receive raw USB data — used by tools like Arduino IDE’s web version and firmware flashers. Firefox and Safari do not support WebUSB.
How it works
requestDevice() with an optional vendor/product ID filter opens a native device chooser; once granted, the page communicates using low-level USB transfer methods.
Security model
Requires HTTPS and an explicit per-device user grant; the browser also blocks access to devices already claimed by the OS, like keyboards.
Typical use cases
Hardware configuration tools, firmware updaters, and educational coding boards that would otherwise require a native driver installer.