← Back to ESP Flasher App

ESP32 Flash Address Reference

ReferenceESP Flasher AppUpdated: July 25, 2026

When flashing firmware to an ESP32 or related chip, the flash address determines where each binary is written in the chip's flash memory. Using the wrong address will cause the device to fail to boot. This page documents the correct flash addresses for all supported Espressif chips.

Quick Reference Table

Chip FamilyBootloaderPartition TableApplication (App)NVSOTA Data
ESP32 (classic)0x10000x80000x100000x90000xD000
ESP32-S20x00x80000x100000x90000xD000
ESP32-S30x00x80000x100000x90000xD000
ESP32-C20x00x80000x100000x90000xD000
ESP32-C30x00x80000x100000x90000xD000
ESP32-C60x00x80000x100000x90000xD000
ESP32-H20x00x80000x100000x90000xD000
ESP82660x0N/A0x0N/AN/A
Key rule: For any single merged/factory .bin file, always use address 0x0 regardless of chip family. The merge_bin tool packs all partitions at their correct offsets within the file.

Why These Addresses Matter

ESP32 flash is divided into partitions defined by a partition table stored at offset 0x8000. The ROM bootloader reads this table to find the application to boot. If you write firmware to the wrong address:

Flash Address Rules by File Type

File TypeCommon Name PatternAddress
Single merged / factoryfactory.bin, merged.bin, firmware.bin0x0
Bootloader (ESP32)bootloader.bin0x1000
Bootloader (C3/S3/C6/H2)bootloader.bin0x0
Partition tablepartitions.bin0x8000
Application / Appapp.bin, firmware.bin, BlinkTest.ino.bin0x10000
NVS (WiFi credentials)nvs.bin0x9000
OTA dataotadata.bin0xD000
SPIFFS / LittleFSspiffs.bin, littlefs.bin0x290000

How ESP Flasher App Auto-Detects Addresses

When you upload a .bin file to ESP Flasher App, it analyzes the filename and auto-selects the flash address:

Warning: You can override the auto-detected address before flashing. If your device fails to boot after flashing, the most likely cause is an incorrect flash address. Double-check against the table above.

Partition Table Structure

The ESP32 partition table (at 0x8000) is a 1024-byte binary structure containing up to 95 partition entries. Each entry is 32 bytes and specifies:

ESP Flasher App includes a built-in Partition Table Viewer in the Guide tab — upload any partition table .bin to see its entries decoded.

Related Resources

ESP Flasher App — Browser-based ESP32 & ESP8266 firmware flashing tool