ESP Flasher App

Browser-Based ESP32 & ESP8266 Flash Tool

0 flashes completed

Firmware Source
Choose firmware to flash onto your device
Drop .bin file here or click to browse
Single file (factory/merged image) or multiple partition files
Device Connection
Plug in your ESP board via USB before connecting
No device connected
Flash Controls
Write firmware to device flash memory
Preparing... 0%
Flash Log
Serial Monitor
Live device output — Chrome / Edge only
Closed
Quick Reference
Default baud rate115200
Arduino Serial.begin()115200
Line ending (Arduino)CRLF (\r\n)
ESP.restart()Sends RST
Boot log on openYes — set baud first
Serial.println()appends \r\n
Tips

The serial monitor uses a separate port from the flasher. You cannot use both simultaneously on the same COM port.

If the output looks garbled, the baud rate probably doesn't match your firmware's Serial.begin() value.

Boot messages appear immediately on port open. If you miss them, press the EN / RST button on your board.

How to Flash Your ESP Device

No drivers, no IDE, no installation needed. Plug in your board and flash firmware directly from this browser page in under two minutes.

01
Choose Firmware
Pick an official project from the list, or switch to Upload mode and drop your own compiled .bin file.
02
Connect Device
Plug your ESP board in via USB. Click "Connect Device" and select your COM port from the browser dialog.
03
Flash
Click "Flash Now". The progress bar shows each stage in real time — fetching, connecting, writing, verifying.
04
Monitor
After flashing, open the Serial Monitor tab to see live output from your device at the correct baud rate.
Supported Chips
Powered by Espressif esptool-js — fully browser-based
ESP32 ESP32-S2 ESP32-S3 ESP32-C3 ESP32-C6 ESP32-H2 ESP32-P4 ESP8266
Troubleshooting
Common problems and how to fix them
"Failed to open port" or port not listed
Another application (Arduino IDE, PlatformIO serial monitor, etc.) is holding the COM port open.
Close all other serial tools, then try again
"MD5 of file does not match data in flash"
MD5 mismatch means data written to flash differs from the file. Common causes: firmware larger than physical flash (e.g. a 9.6MB .bin on a 4MB/8MB board), wrong flash size setting, or USB transfer errors at high baud.
Connect first — flash size is auto-detected from your chip
Device not entering bootloader / no response
The chip is not entering ROM download mode. Some boards require manual intervention to enter bootloader mode.
Hold BOOT/FLASH button, press EN/RST, release BOOT
"invalid header: 0xffffffff" in Serial Monitor
The device is booting but flash is erased or firmware is at the wrong address. Factory/merged .bin must go to address 0x0.
Use merged factory binary at address 0x0
Flash succeeds but device doesn't run correctly
Firmware was flashed at the wrong address. For multi-file flashing: bootloader at 0x1000 (ESP32) or 0x0 (ESP32-C3/S3), partition table at 0x8000, app at 0x10000.
Verify each partition address matches your chip
Browser says "Web Serial not supported"
Web Serial API is not available in your browser.
Use Google Chrome or Microsoft Edge 89+ on desktop
Flash Address Reference
Default partition addresses for multi-file flashing
Chip FamilyBootloaderPartition TableApp
ESP32 (classic) 0x1000 0x8000 0x10000
ESP32-S2 / S3 0x0 0x8000 0x10000
ESP32-C3 / C6 / H2 0x0 0x8000 0x10000
ESP8266 0x0 N/A 0x0

For a single merged / factory .bin, always use address 0x0 regardless of chip.

Partition Table Viewer
Upload a partition table .bin to inspect its entries
Click to upload a partition table .bin file
Typical offset: 0x8000
Browser Requirement

This tool uses the Web Serial API — a secure browser API that allows web pages to communicate with USB serial devices without any drivers or installed software. It is supported in Google Chrome and Microsoft Edge version 89 and above on Windows, macOS, and Linux desktops. It is not available in Firefox, Safari, or any mobile browser.

How WebSerial Works
Secure, local browser-based flashing

The Web Serial API allows supported browsers to communicate directly with your computer's USB and serial ports. This happens entirely locally on your machine.

When you click "Connect Device", the browser asks you to grant permission to a specific port. We do not have access to any other devices on your computer.

Privacy Promise: Your firmware files are read locally by your browser and sent directly to the ESP chip. No firmware files, code, or analytics are ever uploaded to our servers.

ESP Flasher App

A professional browser-based firmware flashing tool for the ESP32 and ESP8266 family of microcontrollers.

What it does

ESP Flasher App lets you flash firmware onto any ESP32 or ESP8266 device directly from your web browser — without installing drivers, an IDE, or any software.

It uses the Web Serial API and Espressif's official esptool-js library to implement the full ROM bootloader protocol. All processing happens locally in your browser. No files are uploaded to any server.

Privacy & Security

Your firmware files never leave your device. The flasher communicates directly between your browser and your ESP board over the local USB serial connection.

No analytics, no trackers, no ads. We do not collect or store any user data through this tool.

About ESP Flasher App

ESP Flasher App is a professional browser-based firmware flashing tool for the ESP32 and ESP8266 family of microcontrollers. It lets you flash firmware onto any ESP device directly from your web browser — without installing drivers, an IDE, or any software.

This tool was built to make firmware deployment simpler for both beginners and professionals — no command line, no driver hunting, no IDE bloat. Using the Web Serial API and Espressif's official esptool-js library, all processing happens locally in your browser.

Technical Details
Flash engineEspressif esptool-js 0.4.6
MD5 verificationCryptoJS 4.1.1 (Uint8Array + flash detect)
Browser APIWeb Serial API (Chrome/Edge 89+)
Data handling100% local, no server upload
CompressionEnabled — faster flash write
Built byESP Flasher App

Keyboard Shortcuts

Upload firmwareCtrl+O
Connect deviceCtrl+Shift+C
Flash firmwareCtrl+Enter
Cancel flashEscape
Reset deviceCtrl+R
Toggle themeCtrl+T
Toggle shortcuts?