Preview build — page text is a draft awaiting human review. Code badges come from real compiles. The flasher is real but not yet hardware-tested; the Playground is still a preview.
Flash error · esptool

Fix “Failed to communicate with the flash chip, read/write operations will fail”

esptool read flash ID 0xffffff or 0 — the ESP32 cannot see its own flash chip. Free GPIO6–11, check GPIO12 and the supply, or the flash is damaged.

ESP32ESP32-WROVERESP32-CAMESP8266ESP-01Updated 3 Nov 2026

Community draft — report a mistake

What you see

OutputOutput
esptool.py v4.8.1
Serial port COM5
Connecting....
Chip is ESP32-D0WD-V3 (revision v3.1)
Stub running...
Configuring flash size...
WARNING: Failed to communicate with the flash chip, read/write operations will fail. Try checking the chip connections or removing any other hardware connected to IOs.
Warning: Could not auto-detect Flash size (FlashID=0xffffff, SizeID=0xff), defaulting to 4MB
Flash will be erased from 0x00001000 to 0x00007fff...
...
A fatal error occurred: MD5 of file does not match data in flash!

The ESP32 stores your program on a separate SPI flash chip inside the module’s metal can. esptool asks that chip for its ID before writing. A reply of all ones (0xffffff) or all zeros means the ESP32 could not reach its own flash.

The cause is usually wiring: something on the flash pins GPIO6–11, or GPIO12 strapping the flash voltage to 1.8 V. If the module still fails with nothing attached, the flash chip has probably been damaged by over-voltage.

Quick fix — try in order

  1. 1

    Remove everything from GPIO6–GPIO11

    These header pins (CLK, SD0–SD3, CMD) are the internal flash bus on WROOM/WROVER modules. A wire there corrupts every flash access.

  2. 2

    Disconnect GPIO12 (MTDI)

    If GPIO12 is high at reset, the chip powers the flash at 1.8 V and cannot talk to a 3.3 V flash chip — the ID reads as 0xffffff.

  3. 3

    Check the 3.3 V rail

    Measure 3V3 to GND while connected. Below about 3.0 V the flash chip will not respond reliably. Swap the cable or power from a bench supply.

  4. 4

    Erase and retry at 115200

    Erase All Flash Before Sketch Upload → Enabled, Upload Speed → 115200. If the ID still reads 0xffffff or 0x000000 with nothing connected, the flash chip is damaged.

Why it happens

What does FlashID 0xffffff mean?

esptool asked the flash chip for its ID and the data line stayed high — nothing answered. 0x000000 means it stayed low. Both mean no working flash on the bus.

Can 5 V on a pin cause this?

Yes. Feeding 5 V into a GPIO or the 3V3 pin of a cheap board often kills the regulator or the flash chip. The ESP32 itself may still answer esptool, so this warning is the first sign.

ESP-01 with a 1 MB or 512 KB chip

Old blue ESP-01 boards with a PUYA flash chip can misreport size. If the ID is valid but the size is odd, set Flash Size to 1MB manually.

Board-specific notes

ESP32-CAM: GPIO12 is wired to the SD card slot. Remove the card while flashing.

ESP32 DevKit V1: The six pins at the bottom-left of a 30-pin DevKit (next to the USB) are the flash pins. Never use them in a project.

↑↓ to move · Enter to open