ELX-ESP Programmer
An ESP32 flashing tool for Windows with its own bootloader protocol
Drop firmware, a bootloader, a partition table or a LittleFS image onto the window — the type and the address are worked out from the contents and the file name. The program identifies the connected chip and its flash, draws the flash map and shows the LittleFS files and NVS keys stored on the device, all without esptool or Python.
Flashing by drag and drop
Drop single .bin files or a whole PlatformIO build folder. The partition table, merged images, LittleFS, the bootloader and the application are recognised by their contents; boot_app0, SPIFFS and FAT images by the file name. Each goes to the right address.
Knows what is connected
Chip model and revision, features, crystal frequency, MAC address, flash vendor and size — read from the device the moment it connects, the same data esptool prints, plus the firmware already on it: project, version, ESP-IDF and build date.
The flash map
Every partition drawn to scale with how much of it is really used: the application image size, NVS entries, LittleFS blocks, whether a core dump is present and which OTA slot boots.
LittleFS and NVS inside
Browse the file system on the device with file sizes and download any file. NVS keys are listed with namespaces, types and values; passwords stay hidden until you ask.
Checked, not hoped
Compressed writes with MD5 verification (on by default), and warnings before writing when a file does not fit its partition, overlaps another file or was built for a different chip.
No esptool, no Python
The ESP bootloader protocol and the serial driver are part of the program. One installer, a backup of the whole flash or a single partition to a file, nine interface languages and update checks on this site.
Screenshots
What can be dropped
| File | Where it goes |
|---|---|
| bootloader.bin | 0x1000 on ESP32 and ESP32-S2, 0x2000 on ESP32-C5 and ESP32-P4, 0x0 on the other newer chips |
| partitions.bin | 0x8000; the addresses of the other files are then taken from this table |
| firmware.bin | The first application partition |
| littlefs.bin, spiffs.bin | The file system partition from the table |
| boot_app0.bin | The OTA data partition |
| Merged image | 0x0 — bootloader, table and application in one file |
.pio\build\esp32 onto the window: the bootloader, partition table, firmware and file system image are picked out of it together.Supported chips
ESP32, ESP32-S2, ESP32-S3, ESP32-C2, ESP32-C3, ESP32-C5, ESP32-C6, ESP32-C61, ESP32-H2 and ESP32-P4, connected through a USB-UART bridge (CP210x, CH34x, FTDI).
At a glance
- Operating system
- Windows 10 and 11, 64-bit
- Chips
- ESP32, S2, S3, C2, C3, C5, C6, C61, H2, P4
- Serial speed
- 115 200 to 2 000 000 baud
- File systems
- LittleFS (browse and download), NVS (read)
- Interface languages
- English, Russian, German, French, Italian, Spanish, Portuguese, Chinese, Japanese
- Updates
- Checks elxsoftware.com for a new version
- Built with
- Flutter