Before you flash
- This flashes ESP32, ESP32-S2, ESP32-S3, ESP32-C3 and ESP8266 boards only. A Raspberry Pi Pico is not serial flashable: it mounts as a USB drive and takes a UF2 file by drag and drop, so it cannot be flashed here.
- Flashing the wrong file to the wrong offset can leave a board unable to boot. A bad flash can usually be recovered by erasing and flashing a known good build, sometimes with the manual BOOT and EN reset.
- Everything runs in this tab: your files and inputs never leave your device. Your firmware is never uploaded anywhere. It goes from here straight down the USB cable.
Drop .bin files here, or click to choose
Single file mode flashes one build at the chip's app offset. Switch to the offset table to flash a bootloader, partition table and app together.
The handshake always runs at 115200 baud, then the flash switches to the speed above. 921600 is fast but flaky on some USB serial bridges: if a flash times out, drop to 460800 or 115200. Erasing the whole flash also wipes stored settings and calibration, so leave it off unless you mean to start clean.
Related tools
- Serial TerminalTalk to ESP32, Pico and other serial devices straight from the browser.
- NFC Tag Reader and WriterEncode and decode NFC tag records, text, URLs, Wi-Fi credentials, vCards, and more, and write them from Android Chrome.
- UF2 InspectorDecode UF2 blocks, family IDs and memory ranges from a firmware file.
- BLE Sensor DashboardConnect Bluetooth sensors, chart their readings live, and export CSV.
- Mobile Sensors ExplorerLive compass, tilt, accelerometer, gyroscope and light readings from your device sensors.
- Light MeterTurn your camera into a light meter that estimates illuminance in lux or footcandles and color temperature in Kelvin.
What it does
Flashes ESP32, ESP32-S2, ESP32-S3, ESP32-C3 and ESP8266 boards over USB straight from the browser. It runs Espressif's own esptool-js to identify the chip, then writes one or more .bin files at the offsets you choose. Single file mode drops your build at the conventional application offset for the chip; advanced mode gives you a per file offset table for a full bootloader, partition table and app flash.
How to use it
Plug the board in, add your .bin files, and pick single file mode or the offset table. Click Connect and flash, choose the serial port in the browser prompt, and confirm the planned layout. A progress bar tracks each file and the whole write. If a board has no auto reset circuit, hold BOOT, tap EN, and release BOOT when prompted, then connect again.
Why this one
Flashing normally means installing Python and esptool or the whole ESP-IDF just to write one file. This runs Espressif's esptool-js in the browser with the flasher stubs bundled into the page, so nothing is downloaded at flash time and your firmware never leaves your device. There is no account, no upload, and no size cap.
FAQ
- Which chips does this flash?
- The ESP32 family, meaning the ESP32, ESP32-S2, ESP32-S3 and ESP32-C3, plus the ESP8266. The tool identifies the chip over the serial handshake and uses the right bootloader and partition offsets for that family.
- Why can I not flash my Raspberry Pi Pico here?
- The Pico and other RP2040 boards are not flashed over serial. They mount as a USB drive and take a UF2 file by drag and drop, so a serial flasher like this one cannot program them. This tool is for the ESP32 family and the ESP8266 only.
- Is my firmware uploaded anywhere?
- No. The flash runs entirely in this tab and talks to the board over the local USB serial port. Your files and inputs never leave your device, and the flasher stubs are bundled into the page so nothing is fetched while you flash.
Keyboard shortcuts: press ? anywhere on this page to see them.