Menu options to update firmware on ESP board lock up/very slow IDE 1.2.87

Issue #539 open
Simon Walters created an issue

While testing out the new drag and drop firmware option I was happily using Web Pilot IDE to erase flash and update firmware menu option - all fine

But when I tried the same on local installed version - IDE just locks up - actually as typing this, just retried it and turns out its just so slow it exceeds my attention span :) - well over 1 minute!

Removed 1.2.87 - installed previous version I was using (1.2.83) and time to offer to flash back to < 1 second

Re-install 1.2.87 and back to >1 minute before time to offer to flash appears

Comments (14)

  1. John Maloney repo owner

    I've also encountered this when installing firmware on a board that does not currently have MicroBlocks firmware, such as a brand new micro:bit or one that was previously running Makecode.

    I think the issue is that the stand-alone MicroBlocks is tries to auto-connect to the board and that process is starving the UI. The web app does do auto-connect (because it can't open serial ports without user intervention) so avoids the issue.

    Will investigate.

  2. Simon Walters reporter

    I'm still getting the same behaviour in 1.2.88

    To be clear, the board has already got a working VM on it.

  3. Simon Walters reporter

    FYI The ESP32Freenove board I’m using uses CH340C USB interface and appears as /dev/ttyUSB0 in case that makes a difference

    DOnt have a plain ESP32 board to test - all my others are ESPCs or Ss

  4. John Maloney repo owner

    Thanks for the quick testing! Sorry it is still misbehaving for you.

    What operating system are you using?

    Does it help to disconnect the board before dropping the .bin file onto the IDE?

    I'll see if I can reproduce the issue on MacOS. I did fix an issue with updating the micro:bit firmware which I thought was the same as this issue but apparently not.

  5. Simon Walters reporter

    Yes - I still have the >1min before if offers to flash to the ESP32
    I’m on Linux Mint

    I’m not dropping the .bin - that works fine :)

    This is when selecting the option from the menu

  6. Simon Walters reporter

    FYI Even if I disconnect before selecting menu option - it still takes > 1min before offer to flash

  7. John Maloney repo owner

    Thanks for clarifying.

    To reiterate: the issue occurs with the stand-alone app when it is already connected to a board that has a working VM on it and you are updating the firmware. Are you doing "erase flash and and update firmware on ESP board" as shown in the screenshot or "update firmware on board"? (The install ESP firmware from URL" command does not work in the stand-alone version unless the URL points to a file on a server that supports plain HTTP, which is not common these days.)

  8. John Maloney repo owner

    So far, I haven't been able to reproduce on my Mac.

    When does the long delay occur? Is it between clicking the gear icon and seeing the menu appear? Or is it after selecting "erase flash and and update firmware on ESP board" ?

  9. Simon Walters reporter

    Yes to 1st question

    I’m doing erase flash and update firmware on esp board

    The delay is between clicking on erase and update menu option and waiting for the use board type ESP32 dialog to come up

    Does your ESP32 at your end use the CH340 USB or a CP2102?

  10. John Maloney repo owner

    I have a theory about why this is happening. I recently made a change to firmware install code that looks for a MICROBIT or other USB drive. Although that code isn't actually needed for an ESP board, it is getting called before the "Use board type" prompt. That code runs super fast on MacOS and on Bernat's Linux computer it is taking over a minute to run on your computer. Why? Well, if you have a large external drive connected (USB or otherwise) and that drive appears in the /media folder then the new code would be searching the entire file system of that drive looking for a "MICROBIT" drive. Do you think that's what it is doing on your system?

    Obviously it should not be doing that!

    I'm glad you tested and noticed this issue. Will fix in the next pilot.

  11. Log in to comment