SecureBoot and Encryption Issues - Unable to set efuses

  • I can successfully build new firmware images and upload them onto a connected Pycom using either the expansion board V3 or a Pysense (unencrypted). And I'm able to build encrypted firmware. However, I'm unable to set the efuses to upload pre-generated keys and enable the secureboot and flash encryption.

    When I run the following command,

    python $IDF_PATH/components/esptool_py/esptool/ --port /dev/ttyUSB0 burn_key flash_encryption flash_encryption_key.bin

    I get stuck with the following,


    A fatal error occurred: Failed to connect to ESP32: Timed out waiting for packet header

    I'm using a FyPi with Pycom MicroPython 1.20.2.r4

    I note the FiPy resets with each attempted connection (I've also tried a LoPy and LoPy4)

    I don't know what I'm missing here, hopefully something really obvious :-)

    Any help very much appreciated.

  • @peterp many thanks, this has solved the problem with both options working. Would it be possible to update the docs ( with this update?

  • esp32 must be in download mode for this, so

    • either ./tools/fw_updater/ -p /dev/ttyACM0 --enter
    • or connect P2 to GND and press reset

    after (removing the jumper and) pressing reset you come out of download mode again

  • I've also tried this on a different system under Windows 10 WSL, Debian, with no luck either...

  • @neil-jepsen Thanks. I've just tried this, along with other baud rates and no luck. I've also tried combinations of the --before option

    I've tried doing a simple fuse dump with

    python $IDF_PATH/components/esptool_py/esptool/ --port /dev/ttyACM0 -- baud <tried all options> dump

    And face the same connection issues.

    I should have mentioned, I'm running this on an Ubuntu VM, but I guess this isn't a factor as everything else is working.

  • I solved this using 115200 speed.

Log in to reply

Pycom on Twitter