FAQ
TL;DR: 95 % of ESP-07 modules carry 8 Mbit flash and should light the red power LED at 3.3 V; “Without these corrections flashing will not start” [Elektroda, khoam, post #18474269][Espressif, 2016]. Follow proper GPIO pull-ups, voltage and baud to unbrick fast.
Why it matters: Correct wiring and settings save hours of failed flashing and protect the module from damage.
Quick Facts
• Supply voltage: 3.0–3.6 V (typ. 3.3 V) [Espressif, Datasheet 2020]
• Idle current: 15 mA; Flashing peaks: ≈200 mA [Espressif, Datasheet 2020]
• Default boot log speed: 74 880 bps UART [Elektroda, khoam, post #18473435]
• Factory flash size: 8 Mbit (1 MB) in ~95 % of ESP-07 boards [Espressif, 2016]
• Latest AT firmware supporting 1 MB flash: v1.6.2 (2019-05) [Espressif, Release Notes]
Does the ESP-07 ship with firmware pre-installed?
Yes. Most Ai-Thinker ESP-07 units leave the factory running AT command firmware that broadcasts “AI-THINKER_xxxxxx” Wi-Fi SSID [Elektroda, sq9etc, post #18486662] However, erased or faulty flash means some boards boot silent and need reflashing.
Which LED should light when I power the board?
A red power LED turns on as soon as 3.3 V reaches VCC, regardless of firmware [Elektroda, kaczakat, post #18472569] A blue LED blinks on reset or UART traffic. No light usually indicates missing VCC or bad solder.
Why do AT commands return gibberish or nothing?
Wrong baud rate or cleared flash causes garbled output. Set the terminal to 74 880 bps to view boot logs, then try 9 600 bps or 115 200 bps for AT interaction [Elektroda, khoam, post #18472727]
How do I enter flash mode correctly?
- Hold GPIO0 LOW, GPIO2 and GPIO15 HIGH and LOW respectively. 2. Toggle RESET. 3. Release GPIO0 after the downloader connects. “Timed out waiting for packet header” means one of those pins is wrong [Elektroda, khoam, post #18474170]
What wiring mistakes block flashing?
Common errors include tying GPIO2 to GND, floating RESET, missing CH_PD pull-up, or not sharing grounds with the USB-UART converter [Elektroda, khoam, post #18474241] Any of these keeps the bootloader from responding.
Which baud rate shows the bootloader log?
The ROM prints diagnostics at 74 880 bps (sometimes approximated as 76 800 bps). Both settings usually work because converters pick the nearest supported rate [Elektroda, khoam, post #18473435]
How can I check my flash size?
Run esptool.py flash_id
. The utility reports manufacturer ID and “Detected flash size: X MB” [Elektroda, khoam, post #18486764] 1 MB equals 8 Mbit and is common on ESP-07.
Do I need AT firmware before uploading Arduino sketches?
No. When you upload code from Arduino IDE, the sketch replaces any existing firmware. "The code that will upload … will already be firmware" [Elektroda, khoam, post #18492501]
What current and voltage margins are safe during programming?
Keep VCC between 3.0 V and 3.6 V. Provide at least 300 mA peak to avoid brownouts during Wi-Fi calibration [Espressif, Datasheet 2020].
What happens if GPIO2 is low at boot?
The chip stays in an undefined state and neither LED nor UART responds [Elektroda, khoam, post #18474241] This edge case mimics a dead module but resolves once GPIO2 is pulled high.
How do I update AT firmware on a 1 MB flash module?
Use Espressif Flash Download Tool with SPI MODE =DIO and load files from AT v1.6.2 package. Map addresses exactly as in readme.txt
. Firmware larger than 1 MB will fail [Espressif, Release Notes].
Downloader still says “Invalid head of packet” – what else can I try?
Check for cold solder joints on VCC or GND. A loose pin prevented power LED activation until pressed [Elektroda, sq9etc, post #18481494] Re-soldering fixed both flashing and LED.
Can I power the ESP-07 from the USB-UART adapter?
Only if the adapter supplies a solid 3.3 V at ≥300 mA. Many FTDI or CP2102 boards supply <100 mA and cause resets. Use a dedicated 3.3 V regulator when in doubt [Espressif, Datasheet 2020].
Quick 3-step flashing checklist
- Power at 3.3 V with shared GND. 2. Pull GPIO0 LOW, GPIO2 HIGH, GPIO15 LOW; reset. 3. Start downloader at 115 200 bps with SPI MODE=DIO and correct flash size. If it connects, release GPIO0 and upload.