dvmarinoff / WebANT

bringing ANT+ to the browser
web-ant.vercel.app
GNU Affero General Public License v3.0
29 stars 5 forks source link

Windows 10 support #2

Open dvmarinoff opened 2 years ago

dvmarinoff commented 2 years ago

On Windows 10 WebUSB and WebSerial are available, but with the default driver WebSerial does not recognize the device and WebUSB can't open it. WebUSB throws the error: 'Uncaught DOMException: Access denied' WebUSB issue.

This means that the default driver needs to be replaced with another one. The Zadig utillity tool (download, docs) can do that.

Did some experiments with the available drivers:

libusb-win32 (default) driver:

WinUSB driver:

USB Serial (CDC) driver:

dvmarinoff commented 2 years ago

How to use zadig to switch drivers.

Download and install Zadig.

  1. Select List all devices from Options Select All devices from Options

  2. Select the ANT+ usb stick Select the ANT+ usb stick

  3. Select driver and click reinstall (WinUSB.sys) Select driver and click reinstall

  4. Expected result in web-ant.vercel.app Result

NOTE: to restore compatibility with Zwift do the same, but select the libusb-win32 driver

UPDATE: adding Wahoo instructions on installing an ANT+ USB driver for Windows.

GCuser99 commented 2 years ago

I tried to connect to your app with a Windows 11 computer, Chrome browser. I can confirm your experience above. I was able to connect Wahoo Kickr 2016 and Garmin HRM to your app using WinUSB driver, but then could not connect to Zwift. I tried the other drivers with same result as you.

dvmarinoff commented 2 years ago

Thanks for verifying that on Win 11. I will need to take some time and study the whole Windows USB driver situation, but until then will try to put the code into Electron or something similar that will produce a desktop app. Maybe this will work with the default driver.

GCuser99 commented 2 years ago

Ok. In the meantime, I don't mind helping to test as you develop this further. I can use a Windows PC with the WinUSB driver installed that I am not using to run Zwift so that I don't have to keep switching drivers back and forth.