Can't upload with PIO, can upload with Arduino IDE

Hello Folks,

I try to upload a minimal code example, so just empty void setup() and void loop().

I can upload this with the Arduino IDE.
I can build it using PIO, but not upload it.

Correct COM Port and Board are specified.

main.cpp:

#include <Arduino.h>

void setup() {
  // put your setup code here, to run once:
}

void loop() {
  // put your main code here, to run repeatedly:
}

platformio.ini:

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


Upload error i am getting:

 *  Executing task: C:\Users\Florian\.platformio\penv\Scripts\platformio.exe run --target upload 

Processing wemos_d1_mini32 (platform: espressif32; board: wemos_d1_mini32; framework: arduino)
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------Verbose mode can be enabled via `-v, --verbose` option
CONFIGURATION: https://docs.platformio.org/page/boards/espressif32/wemos_d1_mini32.html
PLATFORM: Espressif 32 (1.12.1) > WeMos D1 MINI ESP32
HARDWARE: ESP32 240MHz, 320KB RAM, 4MB 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 @ 3.10004.200129 (1.0.4)
 - tool-esptoolpy @ 1.20600.0 (2.6.0)
 - tool-mkspiffs @ 2.230.0 (2.30)
 - toolchain-xtensa32 @ 2.50200.80 (5.2.0)
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
Retrieving maximum program size .pio\build\wemos_d1_mini32\firmware.elf
Checking size .pio\build\wemos_d1_mini32\firmware.elf
Advanced Memory Usage is available via "PlatformIO Home > Project Inspect"
RAM:   [          ]   4.5% (used 14700 bytes from 327680 bytes)
Flash: [==        ]  16.0% (used 209803 bytes from 1310720 bytes)
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: COM5
Uploading .pio\build\wemos_d1_mini32\firmware.bin
esptool.py v2.6
Serial port COM5
Connecting....

A fatal error occurred: Timed out waiting for packet header
*** [upload] Error 2
====================================================================================================== [FAILED] Took 5.66 seconds ======================================================================================================

 *  The terminal process "C:\Users\Florian\.platformio\penv\Scripts\platformio.exe 'run', '--target', 'upload'" terminated with exit code: 1. 
 *  Terminal will be reused by tasks, press any key to close it. 

 *  Executing task: C:\Users\Florian\.platformio\penv\Scripts\platformio.exe run --target upload 

Processing wemos_d1_mini32 (platform: espressif32; board: wemos_d1_mini32; framework: arduino)
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------Verbose mode can be enabled via `-v, --verbose` option
CONFIGURATION: https://docs.platformio.org/page/boards/espressif32/wemos_d1_mini32.html
PLATFORM: Espressif 32 (1.12.1) > WeMos D1 MINI ESP32
HARDWARE: ESP32 240MHz, 320KB RAM, 4MB 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 @ 3.10004.200129 (1.0.4)
 - tool-esptoolpy @ 1.20600.0 (2.6.0)
 - tool-mkspiffs @ 2.230.0 (2.30)
 - toolchain-xtensa32 @ 2.50200.80 (5.2.0)
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
Retrieving maximum program size .pio\build\wemos_d1_mini32\firmware.elf
Checking size .pio\build\wemos_d1_mini32\firmware.elf
Advanced Memory Usage is available via "PlatformIO Home > Project Inspect"
RAM:   [          ]   4.5% (used 14700 bytes from 327680 bytes)
Flash: [==        ]  16.0% (used 209803 bytes from 1310720 bytes)
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: COM5
Uploading .pio\build\wemos_d1_mini32\firmware.bin
esptool.py v2.6
Serial port COM5
Connecting....

A fatal error occurred: Timed out waiting for packet header
*** [upload] Error 2
====================================================================================================== [FAILED] Took 7.68 seconds ======================================================================================================

 *  The terminal process "C:\Users\Florian\.platformio\penv\Scripts\platformio.exe 'run', '--target', 'upload'" terminated with exit code: 1. 
 *  Terminal will be reused by tasks, press any key to close it. 

Any idea how to fix this?

Happened to me too when I had another COM-port active to something else.

Start Device Manager, devmgmt.msc and check Ports (COM & LPT).
From there, disable COM5 and retry upload
Or write the correct port in platformio.ini:
upload_port = COM…

THe correct COM Port IS recognized. COM 5 is the one I am using with the Arduino IDE as well.