Programming Adapter

You need a suitable programming adapter, see our programming hardware page.

Download the Espressif Windows software

Download and install "Flash Download Tools (ESP8266 & ESP32)" from:

Programming Instructions

Run the flash download tool "flash_download_tools_v3.6.5.exe"

Select "ESP32 Download Tool"

Select the "SPI Download" tab

Select the 3 files to program with, enter their start addresses and tick the checkboxes next to each

Crystal Freq: (40m for WROOM-32)

SPI Speed: (get from build information)

SPI Mode: (get from build information)

Flash size: (get from build information)

SpiAutoSet = Not set
DoNotChgBin = CHecked

Select the COM port your programming adapter is connected to.

Set the "BAUD" rate: (get from build information, 921600 typically fine)

Press "START".  The programming progress bar should complete.

When "FINISH" is displayed press "STOP"

Reset your board and it should run.

How to get the settings to use for your project

Build your project in eclipse and then look for the following sections in the output window:

Chip is ESP32D0WDQ6 (revision 1)

This is the espressif chip you're using 

Auto-detected Flash size: 4MB

This is the "Flash sise", x8 for Mbits so 4MB = 32Mbits

python /home/adam/esp/esp-idf/components/esptool_py/esptool/ –chip esp32 –port "COM63" –baud 921600  –before "default_reset" –after "hard_reset" write_flash -z –flash_mode "dio" –flash_freq "40m" –flash_size detect 0x1000 /home/adam/esp/MyProject/build/bootloader/bootloader.bin 0x10000  /home/adam/esp/MyProject/build/my_project.bin 0x8000 /home/adam/esp/MyProject/build/partitions_singleapp.bin

From this you get the following programming settings:
baud 921600

The "BAUD" you can program at

flash_freq "40m"

The "SPI SPEED" to use

flash_mode "dio"

The "SPI MODE" to use

0x1000 /home/adam/esp/RocketFibreReceiver/build/bootloader/bootloader.bin

The start address and file location of the bootloader file to use

0x10000  /home/adam/esp/RocketFibreReceiver/build/my_project.bin

The start address and file location of the main project file to use (will be named differently for your project)

0x8000 /home/adam/esp/RocketFibreReceiver/build/partitions_singleapp.bin

The start address and file location of the partitions file to use

Programming a WROOM-32 example



We benefit hugely from resources on the web so we decided we should try and give back some of our knowledge and resources to the community by opening up many of our company’s internal notes and libraries through mini sites like this. We hope you find the site helpful.
Please feel free to comment if you can add help to this page or point out issues and solutions you have found, but please note that we do not provide support on this site. If you need help with a problem please use one of the many online forums.


  1. David Rathbone

    12 months ago

    You can load SPIFS.bin from a folder within your project.
    With a forth line in the programmer.:- yourpath\spiffs,bin 0x110000

    partition for 4Mb ESP32

    # Name, Type, SubType, Offset, Size, Flags
    # Note: if you have increased the bootloader size, make sure to update the offsets to avoid overlap
    nvs, data, nvs, 0x9000, 0x6000,
    phy_init, data, phy, 0xf000, 0x1000,
    factory, app, factory, 0x10000, 1M,
    storage, data, spiffs, , 0xF0000,

    Using platformIO its easy to make the spiffs.bin


Your email address will not be published. Required fields are marked *