ESP32 (4MB, Huge APP) fails to boot after ESP Web Tools flash, works with Flash Download Tool

Hi everyone,

I’m having an issue using ESP Web Tools to update firmware on an ESP32 device (ESP32-2432S028R, standard ESP32-WROOM, 4MB flash).

Situation

  • Board: ESP32-2432S028R (4MB flash)
  • Partition scheme: Huge APP
  • Firmware size: ~1.5MB
  • Flash Download Tool works perfectly
  • ESP Web Tools reports successful flashing
  • But after flashing via Web Tools, the device does not boot

Serial Log After Web Tools Flash

rst:0x10 (RTCWDT_RTC_RESET),boot:0x17 (SPI_FAST_FLASH_BOOT)
invalid header: 0xffffffff
invalid header: 0xffffffff

This repeats indefinitely.


Important Details

If I flash using ESP Flash Download Tool:

PD_V5_1.ino.bin @ 0x10000

→ The device boots perfectly.

But using ESP Web Tools with the same .ino.bin and offset 65536 (0x10000):

→ Flashing completes successfully
→ Device enters boot loop with invalid header: 0xffffffff


What I Have Verified

  • Firmware .ino.bin is correct
  • File size is correct (~1.5MB)
  • Server is serving correct binary (verified download manually)
  • Board was fully functional before Web Tools flash
  • Flash size in Arduino is set to 4MB
  • Huge APP partition scheme
  • new_install_prompt_erase is set to false

My Current Manifest (Update Only)

{
“manifest_version”: 1,
“name”: “PD”,
“builds”: [
{
“chipFamily”: “ESP32”,
“parts”: [
{
“path”: “PD_V5_1.ino.bin”,
“offset”: 65536
}
]
}
]
}


Question

Is ESP Web Tools unable to properly patch flash parameters (mode/frequency/size) like esptool write_flash does?

Do I need to always include:

  • bootloader.bin @ 0x1000
  • partitions.bin @ 0x8000
  • boot_app0.bin @ 0xE000
  • app.bin @ 0x10000

even for simple update cases?

Or is there a known limitation when flashing only the app partition via Web Serial?


Goal

I want:

  • Web-based firmware update
  • Preserve NVS (WiFi credentials)
  • Avoid full chip erase
  • Behavior equivalent to Flash Download Tool

Any insights or similar experiences would be appreciated.

Thanks!

  • Another good place to ask ESPHome questions is ESPHome

From the docs (
ESP Web Tools)

Preparing your firmware
If you have ESP32 firmware and are using ESP-IDF framework v4 or later, you will need to create a merged version of your firmware before being able to use it with ESP Web Tools. If you use ESP8266 or ESP32 with ESP-IDF v3 or earlier, you can skip this section.

ESP32 firmware is split into 4 different files. When these files are installed using the command-line tool esptool, it will patch flash frequency, flash size and flash mode to match the target device. ESP Web Tools is not able to do this on the fly, so you will need to use esptool to create the single binary file and use that with ESP Web Tools.