Skip to content

Nano33 IoT #41

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

Closed
tikonen opened this issue Nov 19, 2020 · 9 comments
Closed

Nano33 IoT #41

tikonen opened this issue Nov 19, 2020 · 9 comments
Labels
conclusion: off topic Off topic for this repository topic: code Related to content of the project itself type: imperfection Perceived defect in any part of project

Comments

@tikonen
Copy link

tikonen commented Nov 19, 2020

Hi,

Should this library (and Mouse) work on Nano33 IoT? It compiles and links fine but the USB device does not work at least on Windows. What I get is weird broken composite device with two CDC (COM port) devices.

I bought this board based on few articles in the Webs that state native-USB HID support. Maybe this was false information?
Looking closer I believe Arduino never claimed anywhere to support USB HID core on this specific board but it states here https://www.arduino.cc/reference/en/language/functions/usb/keyboard/ that "The keyboard functions enable 32u4 or SAMD micro based boards to send keystrokes to an attached computer through their micro’s native USB port."

Thank you!

@facchinm
Copy link
Contributor

Hi @tikonen ,
on Windows the driver situation for composite devices is a mess. If your board has already been recognized as single CDC at least once the only thing you can do is uninstalling its driver and let Windows repeat the installation on its own (see arduino/ArduinoCore-samd#423 (comment)).
Let me know if it works

@tikonen
Copy link
Author

tikonen commented Nov 19, 2020

Thank you for prompt reply, I'll look into the linked issue.

@PaulStoffregen
Copy link

@facchinm - You should be able to solve this by just increasing the BCD version number in the device descriptor. Windows will automatically re-detect the device when it sees the same device with a new BCD version number.

@tikonen
Copy link
Author

tikonen commented Nov 20, 2020

Looks like there is no way to uninstall driver. The device is recognized as common composite device and uses built-in drivers. I've attached picture of device manager and USB device dump.txt of the device. You can see there is a broken CDC device with HID descriptor.

Device Manager

@facchinm
Copy link
Contributor

@facchinm - You should be able to solve this by just increasing the BCD version number in the device descriptor. Windows will automatically re-detect the device when it sees the same device with a new BCD version number.

That's definitely something I have to investigate, thanks for the hint!

@tikonen you shouldn't uninstall the composite device, only the serial "association" with Arduino CDC driver (the device showings as Nano33 IoT)

@tikonen
Copy link
Author

tikonen commented Nov 20, 2020

@tikonen you shouldn't uninstall the composite device, only the serial "association" with Arduino CDC driver (the device showings as Nano33 IoT)

I tried that just now, the only difference is that the COM /CDC device port order reversed in USB descriptor.

@facchinm
Copy link
Contributor

So HID part of the composite device is not recognized at all? Can you send a screenshot of the whole device manager?

@tikonen
Copy link
Author

tikonen commented Nov 20, 2020

Now it works! I had forgot to tick the checkbox "Delete the driver software for this device" when uinstalling the driver. Windows always silently reused the samd driver.

facchinm added a commit to facchinm/ArduinoCore-mbed that referenced this issue Dec 24, 2020
This should solve driver mismatch in Windows when a different USBDevice functionality is added/removed.
Based on this suggestion: arduino-libraries/Keyboard#41 (comment)

Fixes arduino#107 (comment)
sabas1080 added a commit to ElectronicCats/ArduinoCore-mbed-backup that referenced this issue Feb 7, 2021
This should solve driver mismatch in Windows when a different USBDevice functionality is added/removed.
Based on this suggestion: arduino-libraries/Keyboard#41 (comment)
sebromero pushed a commit to sebromero/ArduinoCore-mbed that referenced this issue Feb 2, 2022
This should solve driver mismatch in Windows when a different USBDevice functionality is added/removed.
Based on this suggestion: arduino-libraries/Keyboard#41 (comment)

Fixes arduino#107 (comment)
@per1234
Copy link
Contributor

per1234 commented Mar 6, 2022

Closing as duplicate of arduino/ArduinoCore-samd#423

@per1234 per1234 closed this as completed Mar 6, 2022
@per1234 per1234 added conclusion: off topic Off topic for this repository topic: code Related to content of the project itself type: imperfection Perceived defect in any part of project labels Mar 6, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
conclusion: off topic Off topic for this repository topic: code Related to content of the project itself type: imperfection Perceived defect in any part of project
Projects
None yet
Development

No branches or pull requests

4 participants