ESP32-S3 bricked

tomtobback
Posts: 5
Joined: Tue Nov 29, 2022 8:32 am

ESP32-S3 bricked

Postby tomtobback » Wed Jan 28, 2026 3:27 am

Hi,
I have a custom PCB with a ESP32-S3-WROOM-1U module (N8R8), and i have dozens of devices in use for over a year without problem. A few are failing, with an unresponsive ESP32. I connect via native USB (also used to upload initial firmware, without problem).
On the serial port i get:
invalid header: 0xffffff7f
in a loop, and i when i reset with GPIO0 LOW, there is no output (not the usual 'waiting for download')

Code: Select all

$ esptool.py --port /dev/ttyACM0 read_flash_status
esptool.py v3.3.3
Serial port /dev/ttyACM0
Connecting...
Detecting chip type... ESP32-S3
Chip is ESP32-S3 (revision v0.2)
Features: WiFi, BLE
Crystal is 40MHz
MAC: 94:a9:90:0c:74:fc
Uploading stub...
Running stub...
Stub running...
Status value: 0x3f3f
Hard resetting via RTS pin...

$ esptool.py --port /dev/ttyACM0 erase_flash
esptool.py v3.3.3
Serial port /dev/ttyACM0
Connecting...
Detecting chip type... ESP32-S3
Chip is ESP32-S3 (revision v0.2)
Features: WiFi, BLE
Crystal is 40MHz
MAC: 94:a9:90:0c:74:fc
Uploading stub...
Running stub...
Stub running...
Erasing flash (this may take a while)...

A fatal error occurred: Packet content transfer stopped (received 8 bytes)

When i try uploading the blink example via the Arduino IDE i get (115200 baud):

Code: Select all

"/home/tom/.arduino15/packages/esp32/tools/esptool_py/5.1.0/esptool" --chip esp32s3 --port "/dev/ttyACM0" --baud 115200  --before default-reset --after hard-reset write-flash  -z --flash-mode keep --flash-freq keep --flash-size keep 0x0 "/home/tom/.cache/arduino/sketches/E3BB14F93F6F216769FCB480B2EBA599/Blink.ino.bootloader.bin" 0x8000 "/home/tom/.cache/arduino/sketches/E3BB14F93F6F216769FCB480B2EBA599/Blink.ino.partitions.bin" 0xe000 "/home/tom/.arduino15/packages/esp32/hardware/esp32/3.3.5/tools/partitions/boot_app0.bin" 0x10000 "/home/tom/.cache/arduino/sketches/E3BB14F93F6F216769FCB480B2EBA599/Blink.ino.bin" 
esptool v5.1.0
Serial port /dev/ttyACM0:
Connecting...Traceback (most recent call last):
  File "esptool/__init__.py", line 1173, in _main
  File "esptool/__init__.py", line 1032, in main
  File "esptool/cli_util.py", line 229, in __call__
  File "rich_click/rich_command.py", line 404, in __call__
  File "click/core.py", line 1442, in __call__
  File "rich_click/rich_command.py", line 187, in main
  File "click/core.py", line 1830, in invoke
  File "click/core.py", line 1226, in invoke
  File "click/core.py", line 794, in invoke
  File "click/decorators.py", line 34, in new_func
  File "esptool/__init__.py", line 688, in write_flash_cli
  File "esptool/cmds.py", line 1112, in attach_flash
  File "esptool/loader.py", line 1091, in flash_id
  File "esptool/loader.py", line 1653, in run_spiflash_command
  File "esptool/loader.py", line 901, in read_reg
  File "esptool/loader.py", line 565, in check_command
  File "esptool/loader.py", line 495, in command
  File "esptool/loader.py", line 431, in read
StopIteration

A fatal error occurred: The chip stopped responding.

Connected to ESP32-S3 on /dev/ttyACM0:
Chip type:          ESP32-S3 (QFN56) (revision v0.2)
Features:           Wi-Fi, BT 5 (LE), Dual Core + LP Core, 240MHz, Embedded PSRAM 8MB (AP_3v3)
Crystal frequency:  40MHz
USB mode:           USB-Serial/JTAG
MAC:                94:a9:90:0c:74:fc

Uploading stub flasher...
Running stub flasher...
Stub flasher running.


Hard resetting via RTS pin...
Failed uploading: uploading error: exit status 2
and with 921600 baud, which works on other identical boards:

Code: Select all

"/home/tom/.arduino15/packages/esp32/tools/esptool_py/5.1.0/esptool" --chip esp32s3 --port "/dev/ttyACM0" --baud 921600  --before default-reset --after hard-reset write-flash  -z --flash-mode keep --flash-freq keep --flash-size keep 0x0 "/home/tom/.cache/arduino/sketches/E3BB14F93F6F216769FCB480B2EBA599/Blink.ino.bootloader.bin" 0x8000 "/home/tom/.cache/arduino/sketches/E3BB14F93F6F216769FCB480B2EBA599/Blink.ino.partitions.bin" 0xe000 "/home/tom/.arduino15/packages/esp32/hardware/esp32/3.3.5/tools/partitions/boot_app0.bin" 0x10000 "/home/tom/.cache/arduino/sketches/E3BB14F93F6F216769FCB480B2EBA599/Blink.ino.bin" 
esptool v5.1.0
Serial port /dev/ttyACM0:
Connecting...
A fatal error occurred: No serial data received.

Connected to ESP32-S3 on /dev/ttyACM0:
Chip type:          ESP32-S3 (QFN56) (revision v0.2)
Features:           Wi-Fi, BT 5 (LE), Dual Core + LP Core, 240MHz, Embedded PSRAM 8MB (AP_3v3)
Crystal frequency:  40MHz
USB mode:           USB-Serial/JTAG
MAC:                94:a9:90:0c:74:fc

Uploading stub flasher...
Running stub flasher...
Stub flasher running.
Changing baud rate to 921600...
Failed uploading: uploading error: exit status 2
Is there any way i can fix this?
Thanks in advance - Tom

Sprite
Espressif staff
Espressif staff
Posts: 10599
Joined: Thu Nov 26, 2015 4:08 am

Re: ESP32-S3 bricked

Postby Sprite » Wed Jan 28, 2026 8:49 am

Did you try the combination of booting with GPIO0 low and then uploading a new program?

tomtobback
Posts: 5
Joined: Tue Nov 29, 2022 8:32 am

Re: ESP32-S3 bricked

Postby tomtobback » Wed Jan 28, 2026 9:20 am

hi, yes i tried with GPIO0 LOW and then upload, same problem:
from Arduino IDE

Code: Select all

esptool v5.1.0
Serial port /dev/ttyACM0:
Connecting...
A fatal error occurred: No serial data received.

Connected to ESP32-S3 on /dev/ttyACM0:
Chip type:          ESP32-S3 (QFN56) (revision v0.2)
Features:           Wi-Fi, BT 5 (LE), Dual Core + LP Core, 240MHz, Embedded PSRAM 8MB (AP_3v3)
Crystal frequency:  40MHz
USB mode:           USB-Serial/JTAG
MAC:                94:a9:90:0c:81:6c

Uploading stub flasher...
Running stub flasher...
Stub flasher running.
Changing baud rate to 921600...
Failed uploading: uploading error: exit status 2
from cli

Code: Select all

esptool.py v3.3.3
Serial port /dev/ttyACM0
Connecting...
Chip is ESP32-S3 (revision v0.2)
Features: WiFi, BLE
Crystal is 40MHz
MAC: 94:a9:90:0c:81:6c
Uploading stub...
Running stub...
Stub running...
Changing baud rate to 921600
Changed.
Configuring flash size...
Flash will be erased from 0x00000000 to 0x007fffff...
Compressed 8388608 bytes to 933066...

A fatal error occurred: Packet content transfer stopped (received 8 bytes)


Sprite
Espressif staff
Espressif staff
Posts: 10599
Joined: Thu Nov 26, 2015 4:08 am

Re: ESP32-S3 bricked

Postby Sprite » Thu Jan 29, 2026 12:19 am

Hm, you tend to get that when the flash chip has a physical issue... do you happen to do lots of flash writes in your firmware (e.g. NVS writes, filesystem things, ...)?

tomtobback
Posts: 5
Joined: Tue Nov 29, 2022 8:32 am

Re: ESP32-S3 bricked

Postby tomtobback » Thu Jan 29, 2026 12:52 am

thanks for the feedback. i use FFat.h to store PNG files and Preferences.h for some config parameters but not continuously, only based on user interaction.
it might have to do with overheating then, the ambient temperature inside my enclosure can sometimes go over the 65degC (due to other components and sunlight). i've also been logging the internal esp32 silicon temperature with temperature_sensor_get_celsius() and that typically is only 5degC higher than the ambient temperature. but i assume a silicon temperature of 70-80degC is not a problem.

Sprite
Espressif staff
Espressif staff
Posts: 10599
Joined: Thu Nov 26, 2015 4:08 am

Re: ESP32-S3 bricked

Postby Sprite » Fri Jan 30, 2026 3:17 am

thanks for the feedback. i use FFat.h to store PNG files and Preferences.h for some config parameters but not continuously, only based on user interaction.
it might have to do with overheating then, the ambient temperature inside my enclosure can sometimes go over the 65degC (due to other components and sunlight). i've also been logging the internal esp32 silicon temperature with temperature_sensor_get_celsius() and that typically is only 5degC higher than the ambient temperature. but i assume a silicon temperature of 70-80degC is not a problem.
It depends on the module you're using, honestly. The non-H modules are only specified up to 85 degrees, and this is mostly because of the flash (the raw ESP32-S3 chip always is specified up to 105C, I think). I'm wondering if you somehow managed to go over the max temperature (because of heating in the flash chip?) and accelerated the aging of the flash.

For reference, we also sell modules (with H in the model number instead of N) that can go up to 105C.

tomtobback
Posts: 5
Joined: Tue Nov 29, 2022 8:32 am

Re: ESP32-S3 bricked

Postby tomtobback » Sat Jan 31, 2026 7:30 am

we're working on heat management so hopefully it won't happen again. thanks for your time.

Who is online

Users browsing this forum: Barkrowler, Bytespider, Semrush [Bot] and 1 guest