I have seen so many people complain about this same error and they were given a multitude of answers to help with this error, but nothing so far has worked for me.

Everything was working fine until I upgraded to Win 11 and the latest version of VS Code. I also attempted uploading with the Arduino IDE and no success. I'm at the point of throwing the ESP32 boards into a box, and moving onto an alternative until someone comes up with a different solution.

This is my failed punch list gathered from the many postings about this error:

  1. Followed these instructions: https://docs.espressif.com/projects/esptool/en/latest/troubleshooting.html without success.
  2. Removed and Re-installed the CP210x & CH340 (ESP32-CAM Programming Board) Windows Drivers
  3. Tried both VS Code & Arduino IDE with Ubuntu on two different computers.
  4. For Ubuntu, I added "User" to dialout.
  5. Pressed IO0 & RST to force the ESP32 into Boot Mode.
  6. Verified USB cables were data cables.
  7. Tested 6 ESP32 Dev Kit boards to make sure I didn't have a bad one.
  8. Soldered a 10 uF capacitor across the EN pin and GND
  9. Added: monitor_dtr = 0 & monitor_rts = 0 to platformio.ini
  10. The two different Boards ESP32 DEV Kit & ESP32-CAM Boards, both appear in Device Manager.
  11. Attempted to upload the code in Win 10, and had the same results.

I'm a beginner with this technology, so please keep this in mind when you answer my question. Thanks,in advance, to anyone who can help me.

  • I would start over and bring up the simplest software development kit possible. That means to layoff VSCode and just start with a fresh install of the Arduino software development kit. I might even start with a real Uno (not a knock off, and not something as complex as an ESP processor). Just to make sure everything is functioning as expected. BTW, I recently updated many tools on one of my windows PCs and noticed that VSCode posted a note indicating a paradigm switch WRT it's Arduino software was taking place as part of the VSCode upgrade.
    – st2000
    Commented Mar 19, 2023 at 22:52
  • Thanks, I will try your suggestion. If it doesn't work, then I'll add it to the my list of attempts. I'm not familiar with "paradigm switch WRT". What does that mean?
    – Bajer
    Commented Mar 20, 2023 at 20:09
  • When I updated my copy of VSCode there was a message (a popup) that the Arduino feature was being changed. I don't recall the particulars. I use VSCode extensively for something other than Arduino development and popups usually never happen during an upgrade. That is what I meant by a "paradigm switch WRT ... (With Respect To)".
    – st2000
    Commented Mar 21, 2023 at 0:27

1 Answer 1


I purchased a NodeMCU clone ESP32 board and encountered this error.

A fatal error occurred: Failed to connect to ESP32: Wrong boot mode detected (0x13)! The chip needs to be in download mode. [upload] Error 2

There were 2 separate problems, and I was stumped by their combined effect:

  1. Normally such boards automatically go into program upload mode using the RTS/CTS pins on the USB serial. This self-resetting mechanism did not work on my board. I had to manually press the BOOT button on GPIO0 in order to upload code.

  2. I guessed the above problem correctly, but there was an additional quirk: ESPTool sends a RESET command just before uploading the code. So you have to press the BOOT button when you see the message 'Connecting..' on the Arduino IDE. Normally we will hold the BOOT button and press reset in order to put the board in boot mode. This did not work with this board. Pressing the button at the time of power up/ connecting the USB cable etc. all failed. You have to press the BOOT button at the right time!

In addition to the Arduino IDE, I observed the same behavior with other tools like Tasmotizer. In all cases, the solution was the same.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.