Skip to main content

ESP32 Flasher

These commands are available three ways — in the FREE-WILi GUI app, in a serial terminal, and on the device itself. See Connecting it to a computer for how to reach them.

Connect To Bootloader

Drives the ESP32's BOOT and EN pins to put the target into ROM bootloader (download) mode and establishes a serial-loader sync over the UART. Once synced, this command is a prerequisite for all other flash/memory/register operations in this menu.

Typical Workflow

b <baud> # Connect To Bootloader
i # Read Chip ID / security info
k # Read flash size
f ... # Start flash operations
o ... # Write flash data
p 1 # Finish flash, reboot

Troubleshooting

  • Timeout — check wiring of EN, BOOT, TX, RX, GND.
  • Invalid target — chip or revision not supported by the loader build.
  • Invalid response at high baud — retry with 0 (stay at 115200) or shorter / better-quality wires.

How to use it — press b. At the prompt, enter: Baudrate to updgrade to upon successful connection.

What you enterupgrade_transmission_rate.

Reset

Instruct the ESP32 to enter into application

How to use it — press r.

Read Chip ID And Security Info

Toggle ESP32's Enable Pin

How to use it — press i.

Read Flash Size

Toggle ESP32's Enable Pin

How to use it — press k.

Read MAC

Returns MAC of esp32

How to use it — press m.

Erase All Flash

Toggle ESP32's Enable Pin

How to use it — press e.

Start Writing Flash Operations

Prepares ESP32 to write flash at offset and expected size. Block size can be up to 128 bytes

How to use it — press f. At the prompt, enter: offset (hex), followed by image size (int) and expected block size (int).

What you enteroffset, size, block_size.

Finish Flash Writing Operations

Ends ESP32 Flashing Operations.

How to use it — press p. At the prompt, enter: Reboot esp32 after stopping flash operations (1 - yes, 0 - no:).

What you enterreboot.

Write Flash

Writes Binary Blob into flash

How to use it — press o. At the prompt, enter: Byte separated by spaces, up to 128 bytes:

What you enterflash_data.

Read Flash

Reads binary blob from flash with given address and size.

How to use it — press j. At the prompt, enter: offset (hex) followed by size to read.

What you enteroffset, size.

Start Memory Write Operations

Perpares memeory write operations on the esp32. Max Block Size size is 128

How to use it — press y. At the prompt, enter: offset (hex), followed by image size (int) and expected block size (int).

What you enteroffset, memory_block, block_size.

Write Memory

Perpares memeory write operations on the esp32. Max Block Size size is 128

How to use it — press 0. At the prompt, enter: offset (hex), followed by image size (int) and expected block size (int).

What you enteroffset, memory_block, block_size.

Stop Memory Write Operations

Disables memory write operations on esp32 and sets entry point in ram

How to use it — press t. At the prompt, enter: entry offset (hex) that the esp32 will boot to in RAM:

What you enterentry_address.

Write Register

Writes a 4 byte value onto a register in the esp32

How to use it — press g. At the prompt, enter: Regiser Address (hex) followed by value (hex):

What you enteroffset, value.

Read Register

Reads a 4 byte value from a register in the esp32

How to use it — press c. At the prompt, enter: Regiser Address (hex) to read from:

What you enteroffset.

Flash Default App

Flash default application onto ESP32

How to use it — press n.

Flash From Folder

Starts flashing the ESP32 from a folder on the SD card. The folder must contain a flasher_args.json manifest as produced by an idf.py build (copy the whole build output folder - the manifest plus the .bin files it references - onto the SD card).

Typical Workflow

w # wireless menu
a # ESP32 Flasher Functions
w 1:/bottlenose/ # start flashing
s # poll: flashing progress partition_index partition_count

Troubleshooting

  • Timeout events - ESP32 not entering the bootloader; check power and the BOOT/EN lines.
  • Manifest parse errors - flasher_args.json larger than 4 KB or more than 6 partitions is rejected.

How to use it — press w. At the prompt, enter: SD card folder containing flasher_args.json (e.g. 1:/bottlenose/).

What you enterfolder.

Flash Status

Reports ESP32 flashing state and progress percentage

How to use it — press s.