-
Notifications
You must be signed in to change notification settings - Fork 6
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
Unknown USB Device. UF2 Mass Storage device only shows up in bootloader mode #13
Comments
Hey @robrussell You can still push Arduino code while the board is in Bootloader mode. It sounds like you may have selected the wrong board in Arduino IDE and then pushed a bootloader that the board does not like. For Example: If you have Arduino Uno selected and then hit upload. The board could still take the file but then get confused when it tries to run code. I would recommend the following two actions:
|
Thanks @wallarug . Good to know it's possible to mess up by selecting the wrong board. I don't think that's what happened in this particular case though. I had pushed code several times a few minutes before this happened and can't imagine that I changed boards and changed back afterward. The COM port shows up in bootloader mode and I'm able to push code to the board from the Arduino IDE. But then the board resets and my code doesn't run. I grabbed adafruit-circuitpython-robohatmm1_m4-en_US-4.1.1.uf2 from the page you linked to, that looks like the latest stable release? Before putting the new uf2 file on it, my INFO_UF2.TXT file said:
I copied the file to the mass storage device and it reset. After it came up it seems to work again. It contains a file named boot_out.txt which says:
That matches up with the uf2 file I put on the MM1 but when I go back into bootloader mode, the INFO_UF2.TXT file still has the same contents as before. Not sure why that doesn't change - unless the v3.7.0 refers to the bootloader version, separate from the CircuitPython version. Anyway, this seems to have unwedged the device. I'm able to flash it from the Arduino IDE again and my code is running. Thanks again! |
Hey @robrussell . That's great! FYI: The bootloader and circuitpython are separate. |
I think I may have spoken too soon. It seems like it keeps getting in to this state again. I put the uf2 file on it, the board comes back up, I flash from Arduino IDE, and then when it resets Windows doesn't recognize the device. I've confirmed that the board selected is the Robohat MM1. I can keep tinkering with it. Does the name of the uf2 file matter at all? |
This seems to be repeatable:
After step 4 I can go back to step 1 and get the same results. I've tried the version 5 beta uf2 file as well but don't see a difference. I don't know how the board decides whether it's going to run the Arduino code or code.py. This is the first CircuitPython board I've really done anything with. |
I see this in Device Manager
when I get the device running Arduino code. But if the device is running Arduino code and I try to flash it again from the Arduino IDE, the device seems to go into bootloader mode but not actually accept the new code. Here's the elided output from Arduino IDE:
Based on that last error message I tried hitting the reset button after compilation but before it tries to flash. Results are different but not better yet. I think my problem is a lot like the one covered at https://learn.adafruit.com/adafruit-metro-m0-express-designed-for-circuitpython/metro-m0-help#faq-2835964 . I'll dig a little more as time allows. |
Hey @robrussell , How did this issue end up? Did it get resolved? |
When uploading code to the Robohat MM1 from the Arduino IDE, the COM port disappeared. I've flashed it successfully many times and saw output from the serial monitor. But the next time I tried to flash it Windows 10 reported that the device is not working. In Device Manager the Robohat MM1 shows up as "Unknown USB Device (Device Descriptor Request Failed).
When I connect it to my Linux machine, dmesg shows:
[ 4192.243690] usb 1-12: new full-speed USB device number 19 using xhci_hcd
[ 4192.363702] usb 1-12: device descriptor read/64, error -71
[ 4192.591716] usb 1-12: device descriptor read/64, error -71
[ 4192.819687] usb 1-12: new full-speed USB device number 20 using xhci_hcd
[ 4192.939701] usb 1-12: device descriptor read/64, error -71
[ 4193.167705] usb 1-12: device descriptor read/64, error -71
[ 4193.395687] usb 1-12: new full-speed USB device number 21 using xhci_hcd
[ 4193.395845] usb 1-12: Device not responding to setup address.
[ 4193.603847] usb 1-12: Device not responding to setup address.
[ 4193.811632] usb 1-12: device not accepting address 21, error -71
[ 4193.931697] usb 1-12: new full-speed USB device number 22 using xhci_hcd
[ 4193.931834] usb 1-12: Device not responding to setup address.
[ 4194.139842] usb 1-12: Device not responding to setup address.
[ 4194.347685] usb 1-12: device not accepting address 22, error -71
[ 4194.347736] usb usb1-port12: unable to enumerate USB device
I've tried multiple cables and computers and rebooted the Windows machine.
Tapping the reset button on the MM1 twice quickly does bring up the bootloader mass storage device. It shows the files "CURRENT.UF2", "INDEX.HTM", and "INFO_UF2.TXT".
Is there a way to recover the MM1?
The text was updated successfully, but these errors were encountered: