esphome / esphome/esp-web-tools

SPIFFS not flashed when using merged binary with ESP Web Tools

Open
#624 5 comments 0 reactions 0 assignees View on GitHub
Dominant language
TypeScript
Stars
686
Forks
192
Avg merge
1h 1m
Merged PRs (30d)
1

Description

When creating a merged_firmware.bin from bootloader.bin, partitions.bin, boot_app0.bin, app.bin, and spiffs.bin and flashing it through ESP Web Tools, the SPIFFS partition is not correctly flashed or mounted.

Steps to reproduce:

Build firmware in Arduino IDE with "No OTA (2MB APP / 2MB SPIFFS)" partition scheme.

Generate spiffs.bin with mkspiffs.

Merge binaries:
`esptool --chip esp32 merge-bin -o merged_firmware.bin \
--flash-mode dio --flash-freq 80m --flash-size 4MB \
0x1000 app.bootloader.bin \
0x8000 app.partitions.bin \
0xe000 boot_app0.bin \
0x10000 app.bin \
0x210000 spiffs.bin
`
Flash merged_firmware.bin via ESP Web Tools.
SPIFFS mount fails with:
`E (1455) SPIFFS: mount failed, -10025
`

Expected behavior:
SPIFFS should be flashed correctly and mount without errors.

Actual behavior:

SPIFFS partition remains empty or corrupted.
Merging works for app.bin but not for spiffs.bin.
Flashing via esptool.py with separate offsets works as expected.

Additional info:

Board: ESP-WROVER-B (4MB flash)
ESP32 Arduino Core: 2.0.11
ESP Web Tools: latest
spiffs.bin size matches partition table.
Issue occurs regardless of partition scheme.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by reproducing the merge with esptool's merge-bin command and flashing merged_firmware.bin through ESP Web Tools, then compare it with separate esptool.py flashes at the listed offsets. Investigate the ESP Web Tools flashing entry point and how the merged binary is written; done means the SPIFFS partition mounts successfully on the ESP-WROVER-B using the reported partition schemes.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
tooling
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.