ESP32 Web Flasher
Connect your board, select firmware, and install it in a few simple steps.
- Prepare
- Connect
- Select Firmware
- Flash Device
- Complete
Prepare your device
- ESP32 board
- USB data cable (some cables only charge — try another if the board isn't found)
- Desktop Chrome or Edge
- USB-serial driver, if your board needs one
- A compatible firmware file
Flashing may erase existing data and firmware.
Connect ESP32
Plug in the board, click Connect, then choose its port in the browser popup. Requires HTTPS or localhost.
Select firmware
Local file
Verified manifest
Flash device
Firmware Installed Successfully!
View Troubleshooting GuideFlashing history
Saved only in this browser.
Troubleshooting
ESP32 is not detected
What it means: The computer can't see your board.
Likely causes: Charge-only cable, loose plug, missing driver.
Try this:
- Use a different USB data cable.
- Plug directly into the computer, not a hub.
- Unplug, wait 5 seconds, replug.
No serial ports appear
What it means: The browser's port list is empty.
Likely causes: Unsupported browser, cable, or driver.
Try this:
- Use desktop Chrome or Edge.
- Check the cable and driver.
- Close other apps that use the port.
Permission denied
What it means: The browser or system blocked access to the port.
Likely causes: Port used by another app, or access was denied.
Try this:
- Close Arduino IDE and serial monitors.
- Click Connect again and choose the port.
- On Linux, add your user to the 'dialout' group.
USB cable is charge-only
What it means: The cable has power wires but no data wires.
Likely causes: Cheap or phone-charging cables.
Try this:
- Try a cable that came with a data device.
- Test the cable with another board.
Driver missing
What it means: The computer lacks the USB-serial driver.
Likely causes: Boards using CP210x or CH340 chips.
Try this:
- Install the CP210x or CH340 driver from the chip maker.
- Replug the board and retry.
Wrong chip or firmware selected
What it means: The firmware doesn't match your chip (e.g. ESP32-S3 vs ESP32).
Likely causes: Wrong download or wrong flash address.
Try this:
- Check the chip name shown after connecting.
- Download firmware built for that chip.
- Check the flash address in the firmware's docs.
Failed to enter bootloader mode
What it means: The board didn't switch to flashing mode.
Likely causes: Board needs manual boot mode, weak USB power.
Try this:
- Hold the BOOT button, click Connect, release after it starts.
- Try another USB port or cable.
- Tap EN/RESET once, then retry.
Flash operation interrupted
What it means: Writing stopped before it finished.
Likely causes: Cable unplugged, power dip, tab closed.
Try this:
- Do not unplug during flashing.
- Reconnect and flash again.
- Use a short, good-quality cable.
Firmware file is invalid
What it means: The file is empty, too big, or in the wrong form.
Likely causes: Wrong file picked, partial download.
Try this:
- Re-download the file.
- Check size and the flash address.
- Use a manifest with hashes if possible.
Flash completed but board does not boot
What it means: The write finished, but the firmware doesn't run.
Likely causes: Wrong firmware for the board, missing bootloader/partition files.
Try this:
- Flash all required files (bootloader, partitions, app).
- Press EN/RESET.
- Try again with firmware made for your exact board.
Settings
Higher speed is faster but may fail on poor cables. Only change if you know why.
Firmware sources: edit src/config.js and public/firmware/manifest.json. Docs: esptool-js, esptool.