ESP32 SPI_FAST_FLASH_BOOT loop

ow_birds
Posts: 13
Joined: Sun Jan 26, 2025 7:11 pm

ESP32 SPI_FAST_FLASH_BOOT loop

Postby ow_birds » Sun Jan 26, 2025 7:36 pm

I transferred a working application from breadboard to strip board, but a dodgy switch caused a repeated on-off which interrupted the boot and looks to have corrupted the chip. I've used esptool to erase flash but it continues to fail to boot properly.

rst:0x7 (TG0WDT_SYS_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
invalid header: 0xffffffff
invalid header: 0xffffffff
invalid header: 0xffffffff
ets Jul 29 2019 12:21:46

rst:0x10 (RTCWDT_RTC_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:1
load:0x3fff0030,len:4604
ho 0 tail 12 room 4
load:0x40078000,len:15488
load:0x40080400,len:4
load:0x40080404,len:3180
entry 0x400805b8
E (354) esp_image: Checksum failed. Calculated 0x15 read 0xf
E (354) boot: OTA app partition slot 0 is not bootable
E (354) esp_image: image at 0x150000 has invalid magic byte (nothing flashed here?)
E (360) boot: OTA app partition slot 1 is not bootable
E (365) boot: No bootable app partitions in the partition table
ets Jul 29 2019 12:21:46

rst:0x3 (SW_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:1
load:0x3fff0030,len:4604
ho 0 tail 12 room 4
load:0xd0012000,len:3328
load:0xc0bfbe61,len:541102093
1150 mmu set 00010000, pos 00010000
1150 mmu set 00020000, pos 00020000
1150 mmu set 00030000, pos 00030000
etc..

I've replaced the ESP32 on the strip board circuit with another I have and it's working fine, but the failing ESP32 continues to do so even when disconnected. Is there a way to fix it?

hossein_aghaie
Posts: 1
Joined: Thu Feb 20, 2025 3:09 pm

Re: ESP32 SPI_FAST_FLASH_BOOT loop

Postby hossein_aghaie » Thu Feb 20, 2025 4:38 pm

Hi everyone,

I have a custom ESP32-S3 board that usually boots fine, but sometimes it gets stuck in the following boot loop:


ESP-ROM:esp32s3-20210327
Build:Mar 27 2021
rst:0x3 (RTC_SW_SYS_RST),boot:0x3f (SPI_FAST_FLASH_BOOT)
Saved PC:0x403ccf09
SPIWP:0xee
mode:DIO, clock div:1
load:0x3fce2820,len:0x1188
load:0x403c8700,len:0x4
load:0x403c8704,len:0xbf0
load:0x403cb700,len:0x30e4
entry 0x403c88ac
E (27) boot_comm: Image requires efuse blk rev <= v1.99, but chip is v3.3
E (27) boot: OTA app partition slot 0 is not bootable
E (27) esp_image: image at 0x490000 has invalid magic byte (nothing flashed here?)
E (34) boot: OTA app partition slot 1 is not bootable
E (39) boot: No bootable app partitions in the partition table
A simple reset usually fixes the issue, but I am concerned because this board is intended for mass production.

I have already ensured that the relevant eFuse settings are correct (set to 3.3V), and I don’t think this issue is related to sdkconfig. However, despite changing the eFuse setting to 3.3V, this issue still occurs, leading me to suspect that there might be a problem with the bootstrapping pins.

Has anyone encountered a similar problem? Any insights would be greatly appreciated.

Thanks!

toothlesspanda
Posts: 3
Joined: Tue Feb 17, 2026 5:17 pm

Re: ESP32 SPI_FAST_FLASH_BOOT loop

Postby toothlesspanda » Tue Feb 17, 2026 5:21 pm

I am having the same issue, but it only happens when using Platform IO + VSCODE, with Arduino IDE it gets more stable... I am using a mac
Are you also using these tools?

I will probably move on to use arduino-cli and see if that improves

toothlesspanda
Posts: 3
Joined: Tue Feb 17, 2026 5:17 pm

Re: ESP32 SPI_FAST_FLASH_BOOT loop

Postby toothlesspanda » Tue Feb 17, 2026 6:24 pm

Hi!
I am not sure if this will help you, but I had issues initially with Arduino IDE and I got it stabilised by using the ESP32S3 Dev Module (mine is version S3), from the library esp32.

When I moved to platform.io, I was choosing the wrong board and then I found one compatible with the dev module of Arduino IDE and it cleaned it all!

Then you need to make sure the UART CDC is on, for any of the platforms. In Arduino IDE you need to be in programer modewith esptool, and then Upload Mode -> UART0...

In platformio you need to make sure you have the DARDUINO_USB_CDC_ON_BOOT flag on

Code: Select all

board = esp32-s3-devkitc-1
upload_protocol = esptool
build_flags =
  -DARDUINO_USB_CDC_ON_BOOT=1
which is the matching config of the Arduino IDE environement.
I hope this helps a bit in your investigation, might be just a matter of wrong board settings.

Who is online

Users browsing this forum: No registered users and 3 guests