ESP-Flasher now includes WiFi Improv protocol support for easy WiFi configuration over USB.
- No Access Point Required — Configure WiFi directly over USB
- Network Scanning — Scan and select from available WiFi networks
- Secure Provisioning — Credentials transferred securely over USB
- Instant Feedback — See assigned IP address immediately
- Click
Improv WiFibutton to launch the client - Click
Scan Networksto find available networks - Double-click your network to select it
- Enter password and click
Provision - Device connects and displays IP address
- Faster initial setup compared to web interface
- Works immediately after flashing
- No need for temporary access points
- Secure credential transfer
After flashing your device:
- Keep it connected via USB
- Click the
Improv WiFibutton in the GUI - Follow the on-screen instructions to provision WiFi
For more details, visit Improv WiFi.
ESP-Flasher now includes a fully-featured interactive serial console:
- Connect Button — User controls when to connect/disconnect
- Visual Feedback — Button turns green when connected, gray when disconnected
- Toggle Functionality — Click to connect, click again to disconnect
- Full support for ANSI escape sequences
- Text formatting: bold, italic, underline, strikethrough
- 8 foreground and 8 background colors
- Carriage return handling for progress indicators
- Type commands directly in the GUI
- Press Enter or click Send to transmit
- Commands are echoed in cyan color
- Clear button to reset console
- Automatic timestamps for each line
[HH:MM:SS] - Thread-safe serial reading
- Auto-scroll to new content
- Error messages in red color
- Click "Connect" button (automatically loads ports and connects, turns green)
- Type commands in the input field (now enabled)
- Press Enter to send commands to your device
- Optional: Select firmware file and click "Flash ESP" to flash
- Click "Disconnect" when done (button turns gray)
help # Show available commands
status # Get device status
restart # Restart the device
wifi # Show WiFi information- Thread-safe: Serial reading in background thread, GUI updates in main thread
- Robust error handling: Gracefully handles disconnections and errors
- Clean shutdown: Properly closes serial port on exit
- Cross-platform: Works on Windows, macOS, and Linux
esp_flasher/console_color.py- ANSI color parseresp_flasher/serial_console.py- Interactive serial console widgetexamples/serial_console_example.py- Standalone demoSERIAL_CONSOLE.md- Complete documentationANSI_COLOR_SUPPORT.md- ANSI color documentation
esp_flasher/gui.py- Added tabbed interface and serial console integrationDOCUMENTATION.md- Updated with new featuresREADME.md- Added feature highlights
Just download the latest release and run it. The new features are integrated into the main GUI.
from PyQt5.QtWidgets import QTextEdit
from esp_flasher.console_color import ColoredConsole
from esp_flasher.serial_console import SerialReader
import serial
# Create console
console = QTextEdit()
colored_console = ColoredConsole(console)
# Open serial port
serial_port = serial.Serial('/dev/ttyUSB0', baudrate=115200)
# Start reader
reader = SerialReader(serial_port)
reader.line_received.connect(lambda line: colored_console.write(line + "\n"))
reader.start()
# Clean up when done
reader.stop()
serial_port.close()See esp_flasher/gui.py for the complete implementation.
- SERIAL_CONSOLE.md - Complete guide to the serial console
- ANSI_COLOR_SUPPORT.md - ANSI color code reference
- CHANGELOG_FEATURES.md - Detailed changelog
- DOCUMENTATION.md - Full project documentation
If you encounter any issues or have suggestions, please open an issue on GitHub.