-
Notifications
You must be signed in to change notification settings - Fork 154
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Not finding devices #4
Comments
Works fine with Linux |
The Microsoft OS Descriptors the device exposes are only honored by Windows 8.1 and above. If you're on Windows 7 it won't work unless you have an INF file instructing Windows to load winusb.sys. Sorry, I've been meaning to document exactly how the descriptors this code adds to the device work and thus this requirement. |
I am on Windows 8.1 actually |
Can you verify in Device Manager that driver installation was successful and winusb.sys was successfully loaded? If that's all in place then this is likely a Chrome bug. Device enumeration on Windows is known to be flaky. |
I tried to use the demo rgb with two normal usb flash drive 2.0 and 3.0 to try usb device detect. |
The demo site expects you to have an Arduino with the correct firmware loaded. If you don't follow the instructions in the README.md it will not work. |
Im using a Flora board from Adafruit, built on top of the Atmega32u4 chipset but can't seem to get the demo to work. Tried newest normal chrome and canary chrome, with WebUSB and Experimental flags enabled, uploads to board fine but never triggers browser to popup or when i manually visit site, says no devices connected. On OSX with latest Arduino sdk (.11 so i shouldnt need to manually edit the USB header file anymore, right? i followed that issue chain on arduino's github) - any thoughts? Do i just need to edit the board file or am i missing something else? |
You will need to add a board configuration for the Flora similar to that included here for the Leonardo and Micro. It also looks like the new bootloader files are not included with the IDE so for the time being editing the header still looks like it is required. |
@tongtongdlut did you manage to sort out your issues? I seem to be having the same problem with Windows 10 & Arduino Micro |
Issue reported by @kenchris is reproducible for me too. I tried with Arduino Leonardo on Windows 8.1 and 10, but no notification from Chrome. I can see the events 'Device configured (winusb.inf)' and 'Device started(WINUSB)' in the Device Manager. |
I'm having the same issue on macOS Sierra with a Leonardo board. When I go to the demo page, I get this error:
I tried with Chrome 54 and the latest Canary. The Experimental Web Platform Features flag was enabled in both (I carefully followed the instructions!). |
Has anybody made progress on this? I tried with Arduino 1.8 and it still does not work. Is it working for anyone on Mac ? |
This could be a driver problem. I've spent some time with Zadig playing with different combinations for both Interfaces. They're listed as interface 0 and 2, which AFAIK maps to a serial port (for programming, mainly) and WebUSB Console, respectively. Forcing interface 2 to libusb made the Leonardo appear in the devices list (in Chrome's connect dialog) but it couldn't connect - Under no circumstances could I get a WinUSB device to appear in the list, nor could I get the popup to appear to direct me to the demo page. I'm not amazingly confident with descriptors, so take this with a grain of salt, but my own implementation's Control request handler for the my EDIT: Running in an Ubuntu VM with the correct udev rules is working excellently. |
@kenchris @mon |
@oostap1 All I needed was udev, nothing else. Good luck on solving that one in your issue - everything looks fine at a quick glance. |
@kenchris @mon Anyone, any luck with Windows? I cannot make it. Sometimes Device Manager even reports Failure to Get Descriptor for device. @cotejp I have "Leonardo ETH" from some weird vendor "dog hunter AG" and vendor ID is different than specified in demo serial.js. Mine 0x2a03 (not 0x2341, seems I have clone) and as you can see it is not in a filter list. Check your vendor ID and product ID to make sure that they match demo. Or just get source, add own vendorID and productID and run local server "python -m SimpleHTTPServer" in demo folder (it did work on Mac). |
@oostap1 I just tested it and it now works. I did not change anything. My unit is (and was) 0x2341/0x0836. The only obvious difference is that the test I just performed was with Chrome 57 (instead of 54 last time I tried). Anyway, thanks for your help. |
Have just read WCID spec and it seems they require some kind of "special" string descriptor, called Microsoft OS String Descriptor. Is that descriptor still actual for Windows? Hmm, I see that linux, as good boy, is requesting BOS descriptor after getting device descriptor. On Windows there is NO request for BOS and there NO request for mentioned 0xEE OS string descriptor. Not surprised that WebUSB does not work there. Not sure how Windows decided to load winusb driver after all... |
@oostap1 that's the MS OS 1.0 descriptor and is deprecated in favour of MS OS 2.0. Are you certain your device is presenting itself as USB 2.1 and not 2.0? |
@mon, Thank you for clarification. Yes it is exposed 2.1. lsusb on linux shows:
I tried even set to be 3.0 in USB_VERSION. No luck. Do you have it working on Windows? If yes, could you share Win version? |
From the MSDN documentation:
"Uninstall" the device from the Device Manager and clear that registry key to make Windows try again. |
@reillyeon I did all what you sugested already and even tried to fool MS by creation such registry. Nothing. As @mon mentioned it is MS OS 1.0 descriptor and replaced by MS OS 2.0, which is already implemented in WebUSB.cpp. Finnaly got external USB sniffer and discovered that wireshark just does not show everything :( on windows (some requests are missing). Maybe I need the same version as on linux or Win does not allow to read them. Anyway I have two USB dumps now form MS and linux. They are "adequately similar", some difference in order of requests,t I do not believe it is a case. |
Chrome logs how to enable shows weird failures:
|
@reillyeon @mon |
Hi, I tried win7 computer with my inf file. But Chrome don't recognize the hardware. Thanksedit: http://zadig.akeo.ie/ will work. |
Still no luck on Windows 10 using Arduino Micro with example @oostap1 Tried to follow your instructions and added WinUSB driver (6.1) via Zadig. Chrome sees the device now, but when trying to connect the webpage reports "Unable to claim interface". |
I was also able to make it show up in the pop up for Windows 10 using zadig. But unable to claim the interface. Has anyone been able to get the RGB demo to work on Windows 10? Works perfectly on mac. linux have to allow permission to see the usb device but fairly easy. windows 10? |
I managed to get the demo working on OSX using a board from Adafruit, the Feather 32u4. Hopefully, this is useful for others trying to work with a different board. Here's what I did:
After uploading, the notification pops up and I'm able to pair the device. |
Just got my first Arduino board, I got it specifically to experiment with WebUSB. After one day of fiddling around, here are my "Out Of The Box" observations:
Conclusion: WebUSB is still not working for me. My objective is to use a https: webpage to communicate to a (I2C or SPI) peripheral. for example: I would like a use an temperature and humidity sensors displaying real-time data on a webpage. Maybe the quickest moving forward is to use a Arduino board that seems to work as described. Please feel free to make suggestions. |
@basevars, can you create separate issues for these problems? A number of these may be specific to using the WebUSB library on the SAMD architecture which I unfortunately don't have the hardware on hand to test. |
Thanks for the fast response, ill split them up |
old post but surely useful for other using https://zadig.akeo.ie/ you can force windows to use winsub driver for a given device. Amazingly handy instead of own inf file and all these cumbersome steps. |
So I got a Leonardo and tried the console examples (adding the include and the #define Serial WebSerial)
Upload works fine and serial connection works fine without the WebSerial define.
I followed the description carefully here https://github.com/webusb/arduino and am on Dev on Windows but I never get any notification from chrome and when going to https://webusb.github.io/arduino/demos/console/ manually it says "No devices found"
The text was updated successfully, but these errors were encountered: