Skip to content
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

Firmware hangs #9

Closed
luetm opened this issue Feb 9, 2022 · 4 comments
Closed

Firmware hangs #9

luetm opened this issue Feb 9, 2022 · 4 comments

Comments

@luetm
Copy link

luetm commented Feb 9, 2022

Hi

We are trying to update the circuitpython version from 6.3.0-dirty to 6.3.0. So far, only this happens:

usbhub_firmware.py circuitpython D:\
CircuitPython Version : 6.3.0-dirty
    will be upgraded to version 6.3.0
... rebooting into CircuitPython Bootloader

After doing that, the device doesn't reset and waits forever for the USBHUBBOOT partition to show up. The files are being renamed correctly. The device is plugged in over the MCU port. I tried the procedure with a raspberry pi and windows, but both fail in the same way. How can we proceed?

Cheers
luetm

@luetm luetm changed the title Security question with control over host Firmware hangs Feb 9, 2022
@luetm
Copy link
Author

luetm commented Feb 9, 2022

We could now flash the circuitpython version 7.1.1 using the reset button. Is that recommended? The problem seems to be, that the 6.3.0-dirty version identifies as 6.3.0, so the software thinks it's already up to date and goes into the while True: sleep(0.1) phase and never goes into the bootloader.

@osterwood
Copy link
Contributor

Luetm, thanks for the additional information. The issue you were describing now makes more sense. The reset button will always work to put the device into boot loader mode. The code based method should work (aside from the bug you've identified).

You can always enter the Circuitpython REPL and enter the following lines to trigger boot loader mode:

import microcontroller
microcontroller.on_next_reset(microcontroller.RunMode.BOOTLOADER)
microcontroller.reset()

Also, what version of the Hub do you have? E.g. does the MPN on the bottom end with ".1", ".2", or it is just CRZRYC?

If you have a ".2" Hub -- there is a small hardware change which the firmware supports, but the firmware uses a pin definition in the CircuitPython RTOS to detect the hardware revision. That pin definition is not currently in the public CircuitPython releases (this is why the firmware repo here includes UF2 files which are "dirty" -- we compiled them in house after adding this pin definition).

I've just pushed these changes into a pull request on the main CircuitPython project. If you have a ".2" hub and want to update to a newer CircuitPython version, please make these changes and rebuild it (or wait for Adafruit to incorporate this PR into main and push out new UF2 versions.

adafruit/circuitpython#6002

Note, we've not done any testing yet with CircuitPython 7 or later, so there may unidentified issues running this firmware on that version.

@luetm
Copy link
Author

luetm commented Feb 15, 2022

Sorry, due to Covid I'm not at the office a lot recently. We indeed have the .2 version. So we'll wait until the PR reaches releases. Thank you!

@luetm
Copy link
Author

luetm commented Mar 9, 2022

@osterwood I sent you an email, we would be interested in a custom firmware. Have you received it?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants