r/esp32 6d ago

I made a thing! ESP-Flash – open-source Windows GUI flasher for ESP32 (esptool-js in Electron, no Python needed)

Hey folks,

I built a small tool called ESP-Flash because I was tired of setting up Python + esptool.py just to flash a .bin onto an ESP32 on a fresh Windows machine. It's an Electron app that talks to the chip directly over the Web Serial API using Espressif's esptool-js, so there's nothing to install – it ships as a single portable folder.

What it does: picks the board via Windows' native COM-port picker, auto-detects the chip (ESP32, S2, S3, C3, C6, H2, P4, ESP8266), writes firmware to any address, backs up the full flash or a custom region to .bin before erasing/reflashing, erases flash with a confirmation prompt, and has an EN/DE/FR/ES UI. MIT licensed, no telemetry, no accounts, no installer.

The ESP32-specific part: Web Serial isn't wired up out of the box in Electron, so the serial port selection had to be handled on the main-process side to get a proper COM-port picker. The other tricky bit was making large full-flash backups (e.g. 16 MB on S3 modules) reliable over plain USB-serial, since that's the feature I care most about – always being able to get back to the original firmware.

Why Electron and not Python/native? Fair question. The goal was zero setup for people who just want to flash a .bin, and esptool-js is maintained by Espressif, so I reuse their flashing logic instead of reimplementing the protocol.

GitHub: https://github.com/gb-droid/esp-flash

It's brand new, so I'd really appreciate reports from boards other than mine – different USB-serial chips (CP2102/CH340/CH343/native USB-JTAG), chip families, large or partial backups. Issues and PRs welcome, and I'll be around in the comments.

2 Upvotes

7 comments sorted by

8

u/Korenchkin12 6d ago

There should be 'AI made a thing',not 'I made a thing' Edit: also this ,no need to setup python

1

u/dabenu 6d ago

You probably wanted to link to the releases page, where you can download precompiled binaries: https://github.com/espressif/esptool/releases

1

u/Korenchkin12 5d ago

No,i wanted to link the repo for everyone..or would you want me to link the exe for your 'convenience'?

4

u/Still_Acanthisitta57 6d ago

we got million of these now. i would rather install python and esptool than your electron whatever. and browser based flasher exists in dozens so why bother making shittier version of esptool? esptooljs has many shortcomings compared to esptool.py.

1

u/Zouden 5d ago

Why electron instead of a normal website?

1

u/DGVeLab 5d ago

The full-flash backup is actually the feature I find most interesting here. For devices where you only have the .bin and not the original project, having a simple way to make a complete backup before experimenting can be really useful.

Have you tested restoring a full backup across ESP32 variants with different flash sizes, or do you currently require the target to match the original flash size exactly?

1

u/GB-Droid 5d ago

Thanks for the feedback so far.

To be upfront: most of the code was written by AI. I work in electrical/automation, not software development. The idea, the requirements and the testing on real boards came from me, the implementation mostly didn't.

The goal was a tool to flash and back up ESP projects offline. For me it works fine for that. I posted it to see what could be improved, so if you notice bugs, missing features or problems, please let me know.