Skip to content

Web Flasher

Flash the latest pre-built firmware directly from your browser — no local toolchain, Python, or esptool.py required.

Browser & Driver Requirements

Supported browsers: Google Chrome 89+ or Microsoft Edge 89+. The Web Serial API is not available in Firefox or Safari.

USB-to-UART driver: The ESP32-C3-DevKitM-1 uses a CH340/CH341 USB-UART bridge. If your operating system does not enumerate the board as a serial port:

  • Windows: Install the CH34x driver from WCH.
  • macOS / Linux: The CH340 kernel module is included by default since macOS 11 / Linux 3.x — no additional driver needed.

Flashing Instructions

  1. Connect the ESP32-C3-DevKitM-1 board to your computer via USB.
  2. Click Install below and select the correct COM / serial port when prompted.
  3. The tool will erase flash, then write bootloader, partition table, and application in sequence.
  4. After flashing completes, the board resets automatically and launches the SoftAP configuration portal.

First flash — full erase

Selecting Erase device in the installer dialog wipes any existing NVS configuration. After a fresh flash, the node will start in unconfigured mode (SoftAP portal launches automatically). If you are updating firmware only and want to keep your existing settings, uncheck the erase option.


Installer

⚠️ Your browser does not support Web Serial. Please use Chrome or Edge. ⚠️ Web Serial is not available on this page. Ensure the site is served over HTTPS. Firmware v2.0  |  ESP32-C3  |  ESP-IDF v5.5.0


What Gets Flashed

The manifest targets three binary regions on the ESP32-C3 flash:

Binary Offset Source
bootloader.bin 0x0000 PlatformIO build output
partitions.bin 0x8000 Custom 2 MB partition table
firmware.bin 0x10000 Application (ESP-IDF + sensors + portal)

Hosting your own binaries

The manifest.json on this site references files under firmware/. To publish a new release:

  1. Build with pio run --environment esp32_c3.
  2. Copy .pio/build/esp32_c3/bootloader.bin, partitions.bin, and firmware.bin into docs/firmware/.
  3. Commit and push — the GitHub Actions workflow redeploys the site automatically.

Manual Flashing (CLI)

If you prefer esptool.py:

esptool.py --chip esp32c3 --port /dev/ttyUSB0 --baud 460800 \
  write_flash \
  0x0000  .pio/build/esp32_c3/bootloader.bin \
  0x8000  .pio/build/esp32_c3/partitions.bin \
  0x10000 .pio/build/esp32_c3/firmware.bin

Or via PlatformIO:

pio run --environment esp32_c3 --target upload