Plug the ESP32-C3 in over USB, then click Connect & install. The flasher writes 3 binaries (bootloader ยท partitions ยท firmware) to chip memory and reboots. Total time: ~30 seconds.

Unsupported browser. Web Serial only works in Chrome / Edge. Firefox + Safari don't have it yet. Page must be served over HTTPS or localhost. If you opened this from a network share, run ./launch.sh serve first.

// How it works

1

Connect

Click the button. Pick the USB JTAG/Serial port from the list.

2

Erase

Old firmware is wiped from flash memory.

3

Write

Bootloader, partition table, firmware โ†’ written at offsets 0x0, 0x8000, 0x10000.

4

Verify & reboot

Flash hash compared to source. Chip reboots into your code.

๐Ÿšจ Trouble connecting?
  • "Failed to connect" / timeout: hold BOOT, tap RESET, release BOOT, click again. (See Mission 09.)
  • Port already open: close PlatformIO/Arduino monitor โ€” only one app holds the port.
  • Windows: install the USB-serial driver (CP210x or CH340) if the board doesn't appear in the picker.
  • macOS: pick the /dev/cu.usbserial-* device, not /dev/tty.*.
  • Linux: add yourself to dialout: sudo usermod -aG dialout $USER & re-login.
๐Ÿ“ฆ No firmware? Build it first

The flasher needs a manifest.json + the 3 binaries next to it. Generate them with:

./launch.sh package-web

That compiles your firmware then copies bootloader.bin, partitions.bin, and firmware.bin into 02_web/firmware/ and writes the manifest.

Powered by esp-web-tools. Source: github.com/esphome/esp-web-tools.