Upload to ESP32-CAM fails for board versions 3.3.9-3.3.11

Author: DaveBoltCreated Sep 5, 2026Updated Sep 7, 2026
LabelsStatus: Awaiting triageIDE: Arduino IDE

Board

ESP32-CAM

Device Description

ESP32-CAM and ESP32-CAM MB, chip is ESP32S

Hardware Configuration

This is the basic out of the box configuration, no additions. There is a USB 2 cable connecting the PC to the motherboard.

Version

v3.3.11

Type

Bug

IDE Name

Arduino IDE version 2.3.10

Operating System

Windows 10

Flash frequency

80MHz

PSRAM enabled

no

Upload speed

460800? No way to choose, but this was reported in the successful upload.

Description

Problem occurs with espressif ESP32 board versions 3.3.9, 3.3.10, 3.3.11. Problem does NOT occur with 3.3.8. I have also tried a random selection of earlier versions with no problems. Using AI Thinker Examples -> ESP32 -> Camera -> CameraWebServer, I modified the SSID and Password for WiFi. Expected to be able to build and upload to the ESP32-CAM.

Error for 3.3.11

Sketch uses 1059561 bytes (33%) of program storage space. Maximum is 3145728 bytes. Global variables use 69528 bytes (21%) of dynamic memory, leaving 258152 bytes for local variables. Maximum is 327680 bytes. esptool v5.3.1 Serial port COM5: Connecting...... Connected to ESP32 on COM5: Chip type: ESP32-D0WDQ6 (revision v1.1) Features: Wi-Fi, BT, Dual Core + LP Core, 240MHz, Vref calibration in eFuse, Coding Scheme None Crystal frequency: 40MHz MAC: d4:8c:49:b9:3c:2c Uploading stub flasher... Running stub flasher... A fatal error occurred: Unable to verify flash chip connection (No more data to read from the serial port. This can have many causes, for troubleshooting steps visit: https://docs.espressif.com/projects/esptool/en/latest/troubleshooting.html). Stub flasher running. Changing baud rate to 460800... Changed. Hard resetting via RTS pin... Failed uploading: uploading error: exit status 2

Error for 3.3.10

Sketch uses 1072453 bytes (34%) of program storage space. Maximum is 3145728 bytes. Global variables use 69456 bytes (21%) of dynamic memory, leaving 258224 bytes for local variables. Maximum is 327680 bytes. esptool v5.3.0 Serial port COM5: Connecting..... Connected to ESP32 on COM5: Chip type: ESP32-D0WDQ6 (revision v1.1) Features: Wi-Fi, BT, Dual Core + LP Core, 240MHz, Vref calibration in eFuse, Coding Scheme None Crystal frequency: 40MHz MAC: d4:8c:49:b9:3c:2c Uploading stub flasher... Running stub flasher... Traceback (most recent call last): File "esptool_init.py", line 1362, in main File "esptool_init.py", line 1256, in main File "esptool\cli_util.py", line 346, in call File "rich_click\rich_command.py", line 402, in call File "click\core.py", line 1524, in call File "rich_click\rich_command.py", line 216, in main File "click\core.py", line 1912, in invoke File "click\core.py", line 1308, in invoke File "click\core.py", line 877, in invoke File "click\decorators.py", line 34, in new_func File "esptool_init.py", line 822, in write_flash_cli File "esptool\cmds.py", line 1776, in attach_flash File "esptool\cmds.py", line 1637, in _verify_flash_connection File "esptool\loader.py", line 1964, in read_spiflash_sfdp File "esptool\loader.py", line 1917, in run_spiflash_command File "esptool\loader.py", line 977, in read_reg File "esptool\loader.py", line 637, in check_command File "esptool\loader.py", line 567, in command File "esptool\loader.py", line 503, in read StopIteration A fatal error occurred: The chip stopped responding. Stub flasher running. Changing baud rate to 460800... Changed. Hard resetting via RTS pin... Failed uploading: uploading error: exit status 2

Error for 3.3.9

Sketch uses 1072453 bytes (34%) of program storage space. Maximum is 3145728 bytes. Global variables use 69456 bytes (21%) of dynamic memory, leaving 258224 bytes for local variables. Maximum is 327680 bytes. esptool v5.3.0 Serial port COM5: Connecting...... Connected to ESP32 on COM5: Chip type: ESP32-D0WDQ6 (revision v1.1) Features: Wi-Fi, BT, Dual Core + LP Core, 240MHz, Vref calibration in eFuse, Coding Scheme None Crystal frequency: 40MHz MAC: d4:8c:49:b9:3c:2c Uploading stub flasher... Running stub flasher... Traceback (most recent call last): File "esptool_init.py", line 1362, in main File "esptool_init.py", line 1256, in main File "esptool\cli_util.py", line 346, in call File "rich_click\rich_command.py", line 402, in call File "click\core.py", line 1524, in call File "rich_click\rich_command.py", line 216, in main File "click\core.py", line 1912, in invoke File "click\core.py", line 1308, in invoke File "click\core.py", line 877, in invoke File "click\decorators.py", line 34, in new_func File "esptool_init.py", line 822, in write_flash_cli File "esptool\cmds.py", line 1776, in attach_flash File "esptool\cmds.py", line 1637, in _verify_flash_connection File "esptool\loader.py", line 1964, in read_spiflash_sfdp File "esptool\loader.py", line 1917, in run_spiflash_command File "esptool\loader.py", line 977, in read_reg File "esptool\loader.py", line 637, in check_command File "esptool\loader.py", line 567, in command File "esptool\loader.py", line 503, in read StopIteration A fatal error occurred: The chip stopped responding. Stub flasher running. Changing baud rate to 460800... Changed. Hard resetting via RTS pin... Failed uploading: uploading error: exit status 2

Success with 3.3.8

Sketch uses 1072145 bytes (34%) of program storage space. Maximum is 3145728 bytes. Global variables use 69448 bytes (21%) of dynamic memory, leaving 258232 bytes for local variables. Maximum is 327680 bytes. esptool v5.2.0 Serial port COM5: Connecting..... Connected to ESP32 on COM5: Chip type: ESP32-D0WDQ6 (revision v1.1) Features: Wi-Fi, BT, Dual Core + LP Core, 240MHz, Vref calibration in eFuse, Coding Scheme None Crystal frequency: 40MHz MAC: d4:8c:49:b9:3c:2c

Uploading stub flasher... Running stub flasher... Stub flasher running. Changing baud rate to 460800... Changed.

Configuring flash size... Flash will be erased from 0x00001000 to 0x00007fff... Compressed 25024 bytes to 16018...

Writing at 0x00001000 [ ] 0.0% 0/16018 bytes...

Writing at 0x000071c0 [==============================] 100.0% 16018/16018 bytes... Wrote 25024 bytes (16018 compressed) at 0x00001000 in 0.8 seconds (264.1 kbit/s). Verifying written data... Hash of data verified. Flash will be erased from 0x00008000 to 0x00008fff... Compressed 3072 bytes to 134...

Writing at 0x00008000 [ ] 0.0% 0/134 bytes...

Writing at 0x00008c00 [==============================] 100.0% 134/134 bytes... Wrote 3072 bytes (134 compressed) at 0x00008000 in 0.0 seconds (507.8 kbit/s). Verifying written data... Hash of data verified. Flash will be erased from 0x0000e000 to 0x0000ffff... Compressed 8192 bytes to 47...

Writing at 0x0000e000 [ ] 0.0% 0/47 bytes...

Writing at 0x00010000 [==============================] 100.0% 47/47 bytes... Wrote 8192 bytes (47 compressed) at 0x0000e000 in 0.1 seconds (694.6 kbit/s). Verifying written data... Hash of data verified. Flash will be erased from 0x00010000 to 0x00115fff... Compressed 1072288 bytes to 690895...

Writing at 0x00010000 [ ] 0.0% 0/690895 bytes... (Progress lines omitted) Writing at 0x00114a63 [============================> ] 99.6% 688128/690895 bytes...

Writing at 0x00115ca0 [==============================] 100.0% 690895/690895 bytes... Wrote 1072288 bytes (690895 compressed) at 0x00010000 in 16.7 seconds (512.7 kbit/s). Verifying written data... Hash of data verified.

Hard resetting via RTS pin...

Sketch

cpp
This issue does not seem to be related to any part of the code, but instead to the uploader.
I tried both the CameraWebServer and the simple Blink example and saw the same issues.

Debug Message

plain
Since the code does not get uploaded to the ESP32 when using 3.3.9, 3.3.10 or 3.3.11, there is no Core Debug information output.

Other Steps to Reproduce

Unfortunately I only have the one sample of the ESP32-CAM device, and a Windows 10 PC to test on. I have shown the problem on my setup for espressif board versions from 3.3.9 to 3.3.11 (current latest). I have shown that earlier versions upload correctly.

I have checked existing issues, online documentation and the Troubleshooting Guide

  • I confirm I have checked existing issues, online documentation and Troubleshooting guide.