Crash beim Upload (D32 pro, Permission Denied)

Kurz vor Weihnachten ist – gerade rechtzeitig – meiner erste Espuino-Box fertig geworden :partying_face: (mit dem D32 pro LiFePo).

Klappt auch alles soweit und läuft ganz gut.

Nun wollte ich ein paar Tasten neu belegen und dafür die Software neu hochladen. Problem: Espuino crasht (das „LED-Lauflicht“ bleibt stehen, reagiert auf nichts mehr außer Reset) wiederholt und nachvollziehbar, beim Upload.

Terminal:

Processing lolin_d32_pro_sdmmc_pe (board: lolin_d32_pro; platform: espressif32@<=3.5.0; framework: arduino)
---------------------------------------------------------------------------------------------------------------------------------------------------------
Verbose mode can be enabled via `-v, --verbose` option
GENERATING GIT REVISION HEADER FILE
  "bc823de-dirty" -> C:\develop\ESPuino\.pio\build\lolin_d32_pro_sdmmc_pe\generated\gitrevision.h
GENERATING HTML HEADER FILES
  C:\develop\ESPuino\html\management.html -> C:\develop\ESPuino\.pio\build\lolin_d32_pro_sdmmc_pe\generated\HTMLmanagement.h
  C:\develop\ESPuino\html\accesspoint.html -> C:\develop\ESPuino\.pio\build\lolin_d32_pro_sdmmc_pe\generated\HTMLaccesspoint.h
  C:\develop\ESPuino\html\js\i18next.min.js -> C:\develop\ESPuino\.pio\build\lolin_d32_pro_sdmmc_pe\generated\HTMLbinary.h
  C:\develop\ESPuino\html\js\i18nextHttpBackend.min.js -> C:\develop\ESPuino\.pio\build\lolin_d32_pro_sdmmc_pe\generated\HTMLbinary.h
  C:\develop\ESPuino\html\js\loc_i18next.min.js -> C:\develop\ESPuino\.pio\build\lolin_d32_pro_sdmmc_pe\generated\HTMLbinary.h
  C:\develop\ESPuino\html\locales\de.json -> C:\develop\ESPuino\.pio\build\lolin_d32_pro_sdmmc_pe\generated\HTMLbinary.h
  C:\develop\ESPuino\html\locales\en.json -> C:\develop\ESPuino\.pio\build\lolin_d32_pro_sdmmc_pe\generated\HTMLbinary.h
CONFIGURATION: https://docs.platformio.org/page/boards/espressif32/lolin_d32_pro.html
PLATFORM: Espressif 32 (3.5.0) > WEMOS LOLIN D32 PRO
HARDWARE: ESP32 240MHz, 320KB RAM, 16MB Flash
DEBUG: Current (esp-prog) External (esp-prog, iot-bus-jtag, jlink, minimodule, olimex-arm-usb-ocd, olimex-arm-usb-ocd-h, olimex-arm-usb-tiny-h, olimex-jtag-tiny, tumpa)
PACKAGES:
 - framework-arduinoespressif32 @ 0.0.0+sha.46d5afb
 - tool-esptoolpy @ 1.30100.210531 (3.1.0)
 - tool-mkspiffs @ 2.230.0 (2.30)
 - toolchain-xtensa32 @ 2.50200.97 (5.2.0)
LDF: Library Dependency Finder -> https://bit.ly/configure-pio-ldf
LDF Modes: Finder ~ chain, Compatibility ~ soft
Found 45 compatible libraries
Scanning dependencies...
Dependency Graph
|-- ESP32-audioI2S-master @ 2.0.0+sha.c612a07
|-- ESP32Encoder @ 0.9.0+sha.22992b3
|-- PubSubClient @ 2.8.0+sha.2d228f2
|-- ESP32FTPServer @ 0.0.1+sha.38cd676
|-- FastLED @ 3.6.0+sha.4c5738c
|-- ESP Async WebServer @ 1.2.3+sha.1d46269
|-- AsyncTCP @ 1.1.1+sha.ca8ac5f
|-- ArduinoJson @ 6.19.3+sha.7abf8750
|-- ESP32-A2DP @ 1.7.1+sha.07550a3
|-- IRremote @ 3.4.0+sha.ed94895
|-- MFRC522_I2C @ 1.0.0+sha.121a27e
|-- MFRC522 @ 1.4.9+sha.ba72b92
|-- LogRingBuffer @ 0.0.0+20230809130404.sha.89d7d3e
|-- PN5180 Library @ 1.1.0+sha.01b3e48
|-- Arduino-MAX17055_Driver @ 1.0.1+sha.a0a5418
|-- Wire @ 1.0.1
|-- WiFi @ 1.0
|-- nvsdump
|-- Update @ 1.0
|-- ESPmDNS @ 1.0
|-- SD(esp32) @ 1.0.5
|-- SD_MMC @ 1.0
|-- Preferences @ 1.0
Building in release mode
Compiling .pio\build\lolin_d32_pro_sdmmc_pe\src\Web.cpp.o
Linking .pio\build\lolin_d32_pro_sdmmc_pe\firmware.elf
Retrieving maximum program size .pio\build\lolin_d32_pro_sdmmc_pe\firmware.elf
Checking size .pio\build\lolin_d32_pro_sdmmc_pe\firmware.elf
Advanced Memory Usage is available via "PlatformIO Home > Project Inspect"
RAM:   [==        ]  20.0% (used 65536 bytes from 327680 bytes)
Flash: [====      ]  35.0% (used 2296111 bytes from 6553600 bytes)
Building .pio\build\lolin_d32_pro_sdmmc_pe\firmware.bin
esptool.py v3.1
Merged 1 ELF section
Configuring upload protocol...
AVAILABLE: esp-prog, espota, esptool, iot-bus-jtag, jlink, minimodule, olimex-arm-usb-ocd, olimex-arm-usb-ocd-h, olimex-arm-usb-tiny-h, olimex-jtag-tiny, tumpa
CURRENT: upload_protocol = esptool
Looking for upload port...
Auto-detected: COM7
Uploading .pio\build\lolin_d32_pro_sdmmc_pe\firmware.bin
esptool.py v3.1
Serial port COM7
Connecting.....
Traceback (most recent call last):
  File "C:\Users\oxymo\.platformio\packages\tool-esptoolpy\esptool.py", line 435, in command
    p = self.read()
        ^^^^^^^^^^^
  File "C:\Users\oxymo\.platformio\packages\tool-esptoolpy\esptool.py", line 380, in read
    return next(self._slip_reader)
           ^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\oxymo\.platformio\packages\tool-esptoolpy\esptool.py", line 3017, in slip_reader
    read_bytes = port.read(1 if waiting == 0 else waiting)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\oxymo\.platformio\penv\Lib\site-packages\serial\serialwin32.py", line 295, in read
    raise SerialException("GetOverlappedResult failed ({!r})".format(ctypes.WinError()))
serial.serialutil.SerialException: GetOverlappedResult failed (PermissionError(13, 'Access is denied.', None, 5))

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\oxymo\.platformio\packages\tool-esptoolpy\esptool.py", line 4582, in <module>
    _main()
  File "C:\Users\oxymo\.platformio\packages\tool-esptoolpy\esptool.py", line 4575, in _main
    main()
  File "C:\Users\oxymo\.platformio\packages\tool-esptoolpy\esptool.py", line 4083, in main
    print("Chip is %s" % (esp.get_chip_description()))
                          ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\oxymo\.platformio\packages\tool-esptoolpy\esptool.py", line 1508, in get_chip_description
    chip_revision = self.get_chip_revision()
                    ^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\oxymo\.platformio\packages\tool-esptoolpy\esptool.py", line 1489, in get_chip_revision
    word3 = self.read_efuse(3)
            ^^^^^^^^^^^^^^^^^^
  File "C:\Users\oxymo\.platformio\packages\tool-esptoolpy\esptool.py", line 1581, in read_efuse
    return self.read_reg(self.EFUSE_RD_REG_BASE + (4 * n))
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\oxymo\.platformio\packages\tool-esptoolpy\esptool.py", line 672, in read_reg
    val, data = self.command(self.ESP_READ_REG, struct.pack('<I', addr), timeout=timeout)
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\oxymo\.platformio\packages\tool-esptoolpy\esptool.py", line 451, in command
    self._port.timeout = saved_timeout
    ^^^^^^^^^^^^^^^^^^
  File "C:\Users\oxymo\.platformio\penv\Lib\site-packages\serial\serialutil.py", line 372, in timeout
    self._reconfigure_port()
  File "C:\Users\oxymo\.platformio\penv\Lib\site-packages\serial\serialwin32.py", line 222, in _reconfigure_port
    raise SerialException(
serial.serialutil.SerialException: Cannot configure port, something went wrong. Original message: PermissionError(13, 'Access is denied.', None, 5)      
*** [upload] Error 1
============================================================== [FAILED] Took 30.05 seconds ==============================================================

Environment             Status    Duration
----------------------  --------  ------------
lolin_d32_pro_sdmmc_pe  FAILED    00:00:30.047
========================================================= 1 failed, 0 succeeded in 00:00:30.047 =========================================================

Habe jetzt schon den ESP mehrfach resettet, das Notebook neu gestartet, verschiedene Ports verwendet, verschiedene Kabel. Mir gehen die Ideen aus. Wie kann ich das debuggen?

Serial Monitor funktioniert:

[ 10006 ]  Aktuelle Batteriespannung: 3.39 V
[ 10007 ]  Aktuelle Batterieladung: 100.00 %
[ 23258 ]  Gehe jetzt in Deep Sleep!
[ 23258 ]  Lautsprecher ausgeschaltet
[ 23466 ]  deep-sleep, good night.......

Die seriellen Ausgaben werden ja unten angezeigt. Sind da vielleicht mehrere Fenster offen, die gleichzeitig auf den Com-Port zugreifen wollen?

1 „Gefällt mir“

Nein, den Serial Monitor habe ich nach dem fehlgeschlagenen Update gestartet. Wenn ich danach wieder einen Upload starte, wird der Monitor auch automatisch geschlossen.

wird der richtige COM Port genommen?

Problem beim flashen… - #2 von JHB

1 „Gefällt mir“

Dürfte das selbe Problem wie hier sein:

1 „Gefällt mir“

Ja, ist der richtige. Der COM-Port ändert sich auch, wenn ich eine andere USB-Buchse nehme…

Hast das Problem in den Griff bekommen?