Uploading to ESP32 S3 ends with unclear *** [upload] Error 1

I switched to Platformio after years of developing with Arduino IDE 1.*. I switched because Arduino IDE is very slow with ESP32 development and I just didn’t get my new Banana-Pi BPi-leaf-s3 to upload.
Platformio seems to do it partially(?). It always ends in an unclear error (to me).

Beneath is the terminal output of uploading “blink” to the BPi-leaf-s3, which ends in a stack-trace from esptoolpy without a clear reason. Below the terminal output I have put the platformio.ini and the code.

I run Visual Studio Code 1.67.2 on a Windows 10 laptop.

Can anyone please explain what is going wrong?

UPDATE 1
I changed the MEM_END_ROM_TIMEOUT from 0.05 to 0.2 in loader.py as described here esptool timed out after "Running stub..." - ESP32 Forum, but without any success…

UPDATE 2
I added “upload_flags = --no-stub” to platformio.ini and that fixes the issue (for now), but it seems not to be ideal, as described in the same article: esptool timed out after "Running stub..." - ESP32 Forum

So initial question remains: how to prevent the “StopIteration” in the esptool.

Thanks a lot!

terminal output:

> Executing task in folder 230118-154406-bpi_leaf_s3: C:\Users\mvrm\.platformio\penv\Scripts\platformio.exe run --target upload --target monitor --environment bpi_leaf_s3 <

Processing bpi_leaf_s3 (platform: espressif32; board: bpi_leaf_s3; framework: arduino)
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------Verbose mode can be enabled via `-v, --verbose` option
CONFIGURATION: https://docs.platformio.org/page/boards/espressif32/bpi_leaf_s3.html
PLATFORM: Espressif 32 (6.0.0) > BPI-Leaf-S3
HARDWARE: ESP32S3 240MHz, 320KB RAM, 8MB Flash
DEBUG: Current (cmsis-dap) External (cmsis-dap, esp-bridge, esp-builtin, 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 @ 3.20006.221224 (2.0.6)
 - tool-esptoolpy @ 1.40400.0 (4.4.0)
 - tool-mkfatfs @ 2.0.1
 - tool-mklittlefs @ 1.203.210628 (2.3)
 - tool-mkspiffs @ 2.230.0 (2.30)
 - toolchain-riscv32-esp @ 8.4.0+2021r2-patch5
 - toolchain-xtensa-esp32s3 @ 8.4.0+2021r2-patch5
LDF: Library Dependency Finder -> https://bit.ly/configure-pio-ldf
LDF Modes: Finder ~ chain, Compatibility ~ soft
Found 33 compatible libraries
Scanning dependencies...
No dependencies
Building in release mode
Compiling .pio\build\bpi_leaf_s3\src\blink.cpp.o
Building .pio\build\bpi_leaf_s3\bootloader.bin
Generating partitions .pio\build\bpi_leaf_s3\partitions.bin
esptool.py v4.4
Creating esp32s3 image...
Merged 1 ELF section
Successfully created esp32s3 image.
Compiling .pio\build\bpi_leaf_s3\FrameworkArduino\Esp.cpp.o
Compiling .pio\build\bpi_leaf_s3\FrameworkArduino\FirmwareMSC.cpp.o
Compiling .pio\build\bpi_leaf_s3\FrameworkArduino\FunctionalInterrupt.cpp.o
Compiling .pio\build\bpi_leaf_s3\FrameworkArduino\HWCDC.cpp.o
Compiling .pio\build\bpi_leaf_s3\FrameworkArduino\HardwareSerial.cpp.o
Compiling .pio\build\bpi_leaf_s3\FrameworkArduino\IPAddress.cpp.o
Compiling .pio\build\bpi_leaf_s3\FrameworkArduino\IPv6Address.cpp.o
Compiling .pio\build\bpi_leaf_s3\FrameworkArduino\MD5Builder.cpp.o
Compiling .pio\build\bpi_leaf_s3\FrameworkArduino\Print.cpp.o
Compiling .pio\build\bpi_leaf_s3\FrameworkArduino\Stream.cpp.o
Compiling .pio\build\bpi_leaf_s3\FrameworkArduino\StreamString.cpp.o
Compiling .pio\build\bpi_leaf_s3\FrameworkArduino\Tone.cpp.o
Compiling .pio\build\bpi_leaf_s3\FrameworkArduino\USB.cpp.o
Compiling .pio\build\bpi_leaf_s3\FrameworkArduino\USBCDC.cpp.o
Compiling .pio\build\bpi_leaf_s3\FrameworkArduino\USBMSC.cpp.o
Compiling .pio\build\bpi_leaf_s3\FrameworkArduino\WMath.cpp.o
Compiling .pio\build\bpi_leaf_s3\FrameworkArduino\WString.cpp.o
Compiling .pio\build\bpi_leaf_s3\FrameworkArduino\base64.cpp.o
Compiling .pio\build\bpi_leaf_s3\FrameworkArduino\cbuf.cpp.o
Compiling .pio\build\bpi_leaf_s3\FrameworkArduino\esp32-hal-adc.c.o
Compiling .pio\build\bpi_leaf_s3\FrameworkArduino\esp32-hal-bt.c.o
Compiling .pio\build\bpi_leaf_s3\FrameworkArduino\esp32-hal-cpu.c.o
Compiling .pio\build\bpi_leaf_s3\FrameworkArduino\esp32-hal-dac.c.o
Compiling .pio\build\bpi_leaf_s3\FrameworkArduino\esp32-hal-gpio.c.o
Compiling .pio\build\bpi_leaf_s3\FrameworkArduino\esp32-hal-i2c-slave.c.o
Compiling .pio\build\bpi_leaf_s3\FrameworkArduino\esp32-hal-i2c.c.o
Compiling .pio\build\bpi_leaf_s3\FrameworkArduino\esp32-hal-ledc.c.o
Compiling .pio\build\bpi_leaf_s3\FrameworkArduino\esp32-hal-matrix.c.o
Compiling .pio\build\bpi_leaf_s3\FrameworkArduino\esp32-hal-misc.c.o
Compiling .pio\build\bpi_leaf_s3\FrameworkArduino\esp32-hal-psram.c.o
Compiling .pio\build\bpi_leaf_s3\FrameworkArduino\esp32-hal-rgb-led.c.o
Compiling .pio\build\bpi_leaf_s3\FrameworkArduino\esp32-hal-rmt.c.o
In file included from C:/Users/mvrm/.platformio/packages/framework-arduinoespressif32/cores/esp32/esp32-hal-gpio.h:29,
                 from C:/Users/mvrm/.platformio/packages/framework-arduinoespressif32/cores/esp32/esp32-hal-gpio.c:15:
C:/Users/mvrm/.platformio/packages/framework-arduinoespressif32/variants/bpi_leaf_s3/pins_arduino.h:24: warning: "RGB_BRIGHTNESS" redefined
 #define RGB_BRIGHTNESS 25

In file included from C:/Users/mvrm/.platformio/packages/framework-arduinoespressif32/cores/esp32/esp32-hal.h:91,
                 from C:/Users/mvrm/.platformio/packages/framework-arduinoespressif32/cores/esp32/esp32-hal-gpio.h:27,
                 from C:/Users/mvrm/.platformio/packages/framework-arduinoespressif32/cores/esp32/esp32-hal-gpio.c:15:
C:/Users/mvrm/.platformio/packages/framework-arduinoespressif32/cores/esp32/esp32-hal-rgb-led.h:11: note: this is the location of the previous definition
   #define RGB_BRIGHTNESS 64

Compiling .pio\build\bpi_leaf_s3\FrameworkArduino\esp32-hal-sigmadelta.c.o
Compiling .pio\build\bpi_leaf_s3\FrameworkArduino\esp32-hal-spi.c.o
Compiling .pio\build\bpi_leaf_s3\FrameworkArduino\esp32-hal-time.c.o
Compiling .pio\build\bpi_leaf_s3\FrameworkArduino\esp32-hal-timer.c.o
Compiling .pio\build\bpi_leaf_s3\FrameworkArduino\esp32-hal-tinyusb.c.o
Compiling .pio\build\bpi_leaf_s3\FrameworkArduino\esp32-hal-touch.c.o
Compiling .pio\build\bpi_leaf_s3\FrameworkArduino\esp32-hal-uart.c.o
Compiling .pio\build\bpi_leaf_s3\FrameworkArduino\firmware_msc_fat.c.o
Compiling .pio\build\bpi_leaf_s3\FrameworkArduino\libb64\cdecode.c.o
Compiling .pio\build\bpi_leaf_s3\FrameworkArduino\libb64\cencode.c.o
Compiling .pio\build\bpi_leaf_s3\FrameworkArduino\main.cpp.o
Compiling .pio\build\bpi_leaf_s3\FrameworkArduino\stdlib_noniso.c.o
Compiling .pio\build\bpi_leaf_s3\FrameworkArduino\wiring_pulse.c.o
Compiling .pio\build\bpi_leaf_s3\FrameworkArduino\wiring_shift.c.o
Archiving .pio\build\bpi_leaf_s3\libFrameworkArduino.a
Linking .pio\build\bpi_leaf_s3\firmware.elf
Retrieving maximum program size .pio\build\bpi_leaf_s3\firmware.elf
Checking size .pio\build\bpi_leaf_s3\firmware.elf
Advanced Memory Usage is available via "PlatformIO Home > Project Inspect"
RAM:   [=         ]   8.4% (used 27376 bytes from 327680 bytes)
Flash: [=         ]   8.6% (used 286665 bytes from 3342336 bytes)
Building .pio\build\bpi_leaf_s3\firmware.bin
esptool.py v4.4
Creating esp32s3 image...
Merged 2 ELF sections
Successfully created esp32s3 image.
Configuring upload protocol...
AVAILABLE: cmsis-dap, esp-bridge, esp-builtin, 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: COM17
Forcing reset using 1200bps open/close on port COM17
Waiting for the new upload port...
Uploading .pio\build\bpi_leaf_s3\firmware.bin
esptool.py v4.4
Serial port COM17
Connecting....
Chip is ESP32-S3 (revision v0.1)
Features: WiFi, BLE
Crystal is 40MHz
MAC: f4:12:fa:c1:96:a8
Uploading stub...
Running stub...
Stub running...
Changing baud rate to 460800
Changed.
Configuring flash size...
Flash will be erased from 0x00000000 to 0x00003fff...
Flash will be erased from 0x00008000 to 0x00008fff...
Flash will be erased from 0x0000e000 to 0x0000ffff...
Flash will be erased from 0x00010000 to 0x00056fff...
Compressed 14768 bytes to 10149...
Writing at 0x00000000... (100 %)
Wrote 14768 bytes (10149 compressed) at 0x00000000 in 0.3 seconds (effective 410.1 kbit/s)...
Hash of data verified.
Compressed 3072 bytes to 146...
Writing at 0x00008000... (100 %)
Wrote 3072 bytes (146 compressed) at 0x00008000 in 0.1 seconds (effective 362.2 kbit/s)...
Hash of data verified.
Compressed 8192 bytes to 47...
Writing at 0x0000e000... (100 %)
Wrote 8192 bytes (47 compressed) at 0x0000e000 in 0.1 seconds (effective 476.2 kbit/s)...
Hash of data verified.
Compressed 287056 bytes to 163791...
Writing at 0x00010000... (10 %)
Writing at 0x0001c4d0... (20 %)
Traceback (most recent call last):
  File "C:\Users\mvrm\.platformio\packages\tool-esptoolpy\esptool.py", line 34, in <module>
    esptool._main()
  File "C:\Users\mvrm\.platformio\packages\tool-esptoolpy\esptool\__init__.py", line 1026, in _main
    main()
  File "C:\Users\mvrm\.platformio\packages\tool-esptoolpy\esptool\__init__.py", line 826, in main
    operation_func(esp, args)
  File "C:\Users\mvrm\.platformio\packages\tool-esptoolpy\esptool\cmds.py", line 556, in write_flash
    esp.flash_defl_block(block, seq, timeout=timeout)
  File "C:\Users\mvrm\.platformio\packages\tool-esptoolpy\esptool\loader.py", line 109, in inner
    return func(*args, **kwargs)
  File "C:\Users\mvrm\.platformio\packages\tool-esptoolpy\esptool\loader.py", line 991, in flash_defl_block
    self.check_command(
  File "C:\Users\mvrm\.platformio\packages\tool-esptoolpy\esptool\loader.py", line 407, in check_command
    val, data = self.command(op, data, chk, timeout=timeout)
  File "C:\Users\mvrm\.platformio\packages\tool-esptoolpy\esptool\loader.py", line 376, in command
    p = self.read()
  File "C:\Users\mvrm\.platformio\packages\tool-esptoolpy\esptool\loader.py", line 308, in read
    return next(self._slip_reader)
StopIteration
*** [upload] Error 1
=============================================================================== [FAILED] Took 48.79 seconds ===============================================================================The terminal process "C:\Users\mvrm\.platformio\penv\Scripts\platformio.exe 'run', '--target', 'upload', '--target', 'monitor', '--environment', 'bpi_leaf_s3'" terminated with exit code: 1.

platformio.ini:

[env:bpi_leaf_s3]
platform = espressif32
board = bpi_leaf_s3
framework = arduino

blink.cpp:

#include <Arduino.h>
// the setup function runs once when you press reset or power the board
void setup() {
  Serial.begin(115200);
  // initialize digital pin LED_BUILTIN as an output.
  pinMode(LED_BUILTIN, OUTPUT);
}

// the loop function runs over and over again forever
void loop() {
  digitalWrite(LED_BUILTIN, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(1500);                       // wait for a second
  digitalWrite(LED_BUILTIN, LOW);    // turn the LED off by making the voltage LOW
  delay(500);                       // wait for a second
  Serial.print(".");
}