Two years ago I started playing with WebUSB, a web API to connect hardware to the Web. The idea was crazy, especially that there is already an implementation supported by Chrome, but… unfortunately only few experiments worked fine. The same experiments that I saw two years ago.
Due to the lack of documentation, I quickly hit the limitation of the API and reached a dead-end. I posted few questions in stackoverflow, such as the controlTransferOut() limitation, then I find out how to deal with it.
Then I posted more detailed code on how to use WebUSB to connect to a scanner directly ! I was able to connect to my scanner, it was a Canon DR-M160II, but low level transfer code got stack somewhere. The issue seems to be related to webusb chrome implementation itself.
Emscripten wasn’t a solution too, as I quickly hit the limitation of the compiler too ! Sane was working correctly from my Ubuntu, so WebUSB should be working fine too !
Last but not least, WebUSB API lack of documentation until today. Not lots of people are using the API, 27 issues open today on github, 90 closed.
WebUSB is available in Chrome 61 for Android, Chrome OS, Linux, macOS and Windows. If you are able to connect successfully to your USB device from Chrome feel free to drop a message !
Notice that the last WebUSB API unofficial draft have been published on December 3rd 2019, by a team from Google ! The only implementation remain in Chrome… But I still think that it’s dead, most probably because it was not able to leave Google.