gitmyhub

esp-flasher-java

Java ★ 18 updated 14d ago

Flash ESP32 firmware without command line. Auto-installs esptool, factory mode for batch flashing.

A graphical desktop app for Windows and macOS that flashes firmware onto ESP32 and ESP8266 microcontrollers by clicking buttons instead of using a terminal, with a Factory Mode for flashing many boards in sequence.

JavaJDK 17MavenesptoolPythonsetup: moderatecomplexity 2/5

ESP Flasher is a desktop application for loading firmware onto ESP32 and ESP8266 microcontrollers without using the command line. These are small, inexpensive chips commonly found in DIY electronics, home automation gadgets, and IoT projects. Normally, installing firmware onto them requires running a Python tool called esptool from a terminal. This app wraps that tool in a graphical window so you can do the same thing by clicking buttons.

It supports a wide range of popular firmware types including Tasmota (a smart home firmware for devices like Sonoff switches), ESPHome, WLED (an LED controller), MicroPython, and custom Arduino or ESP-IDF projects. You pick your firmware file, select the chip type and USB port, set the baud rate (the communication speed), choose the right flash offset for your binary, and click Flash Once. The app shows a progress bar and the live output from the underlying esptool process.

One notable feature is Factory Mode, which is aimed at people who need to flash the same firmware onto many boards in sequence. In this mode, the app waits for a board to be plugged in, flashes it automatically, and then waits for the next one. It keeps a running count of how many boards have been flashed, which is useful for production runs, classroom kits, or repair shops.

The app runs on macOS (both Apple Silicon and Intel) and Windows. Installers are provided as a .dmg file for Mac and an .msi file for Windows. Both are currently unsigned, so both platforms will initially block the app from opening; the README includes the specific commands to override that. The only prerequisite is Python 3, which esptool depends on. If esptool is not already installed, the app detects this and offers to install it via pip on first launch.

Building from source requires JDK 17 or later and Maven. The project is MIT licensed.

Where it fits