ESP32 web flasher

Write firmware to an ESP32 from the browser, without esptool or an IDE. Choose the .bin files, and the flasher works out where each goes from what it is, checks it against the connected chip, and writes them. It also erases the flash and backs up the whole flash to a file.

Connect the board over USB. If it does not connect, hold BOOT while you press RESET.

A merged image goes to 0x0; or the bootloader, partition-table.bin and the app separately. Offsets are filled in from what each file is. Add ESP-IDF's build/flash_args (or flasher_args.json) with the .bin files and its offsets are used.

OffsetFileSize

    
        

    Where the files go

    FileOffset
    Merged image (merge_bin, Arduino's .merged.bin)0x0
    bootloader.bin0x1000 on the ESP32 and S2; 0x0 on the S3, C2, C3, C6 and H2; 0x2000 on the C5 and P4
    partition-table.bin0x8000
    The app, <project>.binThe offset of the factory or ota_0 partition, usually 0x10000
    ota_data_initial.binThe otadata partition, often 0xd000 or 0xe000
    NVS, SPIFFS, LittleFS or FAT imagesThe offset of their partition

    ESP-IDF prints the offsets after idf.py build, and writes them to build/flash_args. Check a file with the firmware inspector and a layout with the partition table editor.

    The flasher uses Espressif's esptool-js (Apache License 2.0), served from this site. Files are written straight from your computer to the board; nothing is uploaded.

    Updating boards that have shipped

    The flasher needs the board on a USB cable. For devices already installed, Pinscope sends the same app image over the internet, checks it fits the device, and rolls back if the new firmware does not come back online. OTA over the internet, with rollback.

    Try it

    Three devices are free, and no card is needed. Create an account, or read the five-minute guide first.

    More