I’m running into issues with what appears to be internal (to platformio) serial port contention on executing an upload.
Using the PlatformIO extension in VSCode on Windows11.
Attempting to upload to m5stack-atom, fails unexpectedly with:
could not open port 'COM9': PermissionError(13, 'Access is denied.', None, 5)
Monitor works as expected however:
... --- Miniterm on COM9 115200,8,N,1 ---...
Running various esptool.py
commands outside of VSCode works as expected:
➜ python .\esptool.py -p COM9 chip_id
esptool.py v3.1
Serial port COM9
Connecting.....
Detecting chip type... ESP32
When there is an active Monitor running in VSCode, esptool.py command outside of VSCode fails as expected, because the port is still open elsewhere.
Invoking esptool.py in exactly the same way as it is invoked from the extension command: C:\Users\zzzz\.platformio\penv\Scripts\platformio.exe run --target upload --environment m5stack-atom
works correctly, e.g.:
C:\Users\zzzz\.platformio\penv\Scripts\python.exe .\esptool.py --chip esp32 --port COM9 --baud 1500000 --before default_reset --after hard_reset write_flash -z --flash_mode dio --flash_freq 40m --flash_size detect 0x1000 C:\Users\zzzz\.platformio\packages\framework-arduinoespressif32\tools\sdk\bin\bootloader_dio_40m.bin 0x8000 C:\Repos\PIO\zzzz\.pio\build\m5stack-atom\partitions.bin 0xe000 C:\Users\zzzz\.platformio\packages\framework-arduinoespressif32\tools\partitions\boot_app0.bin 0x10000 C:\repos\PIO\zzzz\.pio\build\m5stack-atom\firmware.bin
Hoping someone can shed some light on this.
I’m wondering if platformio.exe opens the port before it invokes the esptool.py script and forgets to close it.
Troubleshooting steps taken:
- Machine restarted
- Platform IO removed and reinstalled
- Checked that no other apps were running that could be using the com port
- Reinstalled the USB drivers