How to flash firmware from your browser with WebSerial
How browser-based ESP32 installers work over WebSerial, why they fail, and the exact esptool commands to fall back to when they do.
Beginner · about 5 min · Windows, Linux, macOS
Browser installers use the WebSerial API to talk to a board's bootloader straight from a page — no toolchain, no Python. They are the fastest path when they work, and they fail in a small number of predictable ways. Knowing both the browser route and the command-line fallback means you are never stuck.
What this guide covers
- Use a supported browser on desktop
- Serve or open the page over HTTPS
- Close anything holding the port
- Connect, then install
- Fall back to esptool when the browser stalls
- Verify what actually got written
- Read the boot log
Common pitfalls covered
- Browser flashing over plain http:// silently offers no ports — the API is disabled outside secure contexts.
- Linux users still need … group membership for the browser to see the port.
- Boards that need BOOT held during power-up cannot be put in download mode by the page alone.
- A successful flash does not mean a working device — separate SD-card or filesystem images are often required.
Questions answered
- Which browsers support WebSerial flashing?
- Is browser flashing safe?
- Why does the connect dialog show no ports?
- What do I do when the browser installer does not support my chip?
This is a limited preview. The full walkthrough, command syntax and copy-ready examples are available to signed-in users.