Skip to content

Latest commit

 

History

History
148 lines (107 loc) · 4.41 KB

File metadata and controls

148 lines (107 loc) · 4.41 KB

New Features Summary

WiFi Improv Protocol Support

ESP-Flasher now includes WiFi Improv protocol support for easy WiFi configuration over USB.

Key Features

1. Easy WiFi Setup

  • 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

2. Simple Workflow

  1. Click Improv WiFi button to launch the client
  2. Click Scan Networks to find available networks
  3. Double-click your network to select it
  4. Enter password and click Provision
  5. Device connects and displays IP address

3. Benefits

  • Faster initial setup compared to web interface
  • Works immediately after flashing
  • No need for temporary access points
  • Secure credential transfer

Usage

After flashing your device:

  1. Keep it connected via USB
  2. Click the Improv WiFi button in the GUI
  3. Follow the on-screen instructions to provision WiFi

For more details, visit Improv WiFi.


Interactive Serial Console with ANSI Color Support

ESP-Flasher now includes a fully-featured interactive serial console:

Key Features

1. Manual Connection Control

  • 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

2. ANSI Color Support

  • Full support for ANSI escape sequences
  • Text formatting: bold, italic, underline, strikethrough
  • 8 foreground and 8 background colors
  • Carriage return handling for progress indicators

3. Interactive Command Input

  • Type commands directly in the GUI
  • Press Enter or click Send to transmit
  • Commands are echoed in cyan color
  • Clear button to reset console

4. Enhanced Log Viewing

  • Automatic timestamps for each line [HH:MM:SS]
  • Thread-safe serial reading
  • Auto-scroll to new content
  • Error messages in red color

Usage

  1. Click "Connect" button (automatically loads ports and connects, turns green)
  2. Type commands in the input field (now enabled)
  3. Press Enter to send commands to your device
  4. Optional: Select firmware file and click "Flash ESP" to flash
  5. Click "Disconnect" when done (button turns gray)

Example Commands

help                    # Show available commands
status                  # Get device status
restart                 # Restart the device
wifi                    # Show WiFi information

Technical Highlights

  • 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

Files Added

  • esp_flasher/console_color.py - ANSI color parser
  • esp_flasher/serial_console.py - Interactive serial console widget
  • examples/serial_console_example.py - Standalone demo
  • SERIAL_CONSOLE.md - Complete documentation
  • ANSI_COLOR_SUPPORT.md - ANSI color documentation

Files Modified

  • esp_flasher/gui.py - Added tabbed interface and serial console integration
  • DOCUMENTATION.md - Updated with new features
  • README.md - Added feature highlights

Quick Start

For Users

Just download the latest release and run it. The new features are integrated into the main GUI.

For Developers

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.

Documentation

  • 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

Feedback

If you encounter any issues or have suggestions, please open an issue on GitHub.