Skip to content

Releases: arunkumar-mourougappane/esp32-wifi-utility

ESP32 WiFi Utility v5.0.0

03 Nov 02:48

Choose a tag to compare

Release v5.0.0

Release Date: 2025-11-02
Release Type: Major Enhancement Release
Previous Version: v4.3.1

🎯 Overview

Version 5.0.0 represents a significant advancement in system responsiveness, user experience, and code quality. This release introduces TFT display enhancements with QR code support, non-blocking WiFi operations, structured logging framework, and FreeRTOS task improvements that collectively transform the device into a truly professional-grade WiFi utility.

🌟 Highlights

  • 🔗 QR Code Sharing: Instant WiFi credential sharing via scannable QR codes in Station mode
  • ⚡ Non-Blocking Operations: WiFi connections no longer freeze the device for 10 seconds
  • 📋 Structured Logging: Professional logging system with severity levels and component tags
  • 📊 Enhanced Status: Comprehensive network information including signal quality and uptime
  • 🚀 Task Architecture: Dedicated FreeRTOS task for WiFi command processing
  • 🌐 Web Server Speed: 10x faster response times with optimized main loop
  • 🔧 Critical Fixes: Resolved connection timing, TFT updates, and web server issues

📦 What's New

🔗 QR Code Support for Station Mode

Transform your ESP32 into a WiFi credential sharing device with automatic QR code generation.

Features

  • Automatic Generation: QR code created instantly when connected to WiFi
  • Standard Format: Uses WIFI:T:WPA;S:;P:;; format for universal compatibility
  • Conditional Display: Shows QR code ONLY when actively connected
  • Dynamic Updates: Automatically clears on disconnection, reappears on reconnection
  • Mobile Optimized: White border and 4-pixel modules for better camera recognition
  • Centered Layout: Professional positioning on TFT display
  • Both Modes: Consistent experience in AP and Station modes

Use Cases

  1. Guest WiFi Sharing: Show QR code on device for easy guest access
  2. Network Documentation: Visual reference for WiFi credentials
  3. IoT Provisioning: Quick setup for other IoT devices
  4. Office Setup: Share network access without revealing password verbally

Technical Implementation

// QR code generated with password tracking
static String connectingPassword = "";

// Conditional display based on WiFi status
if (WiFi.status() == WL_CONNECTED) {
    String qrData = "WIFI:T:WPA;S:" + ssid + ";P:" + password + ";;";
    drawQRCode(qrData, offsetX, offsetY);
}

Memory Impact: +1,740 bytes Flash, +64 bytes RAM


⚡ Non-Blocking WiFi Connection

Revolutionize user experience with truly asynchronous WiFi operations.

Problem Solved

Before: Device completely frozen for 10 seconds during WiFi connection attempts

// OLD: Blocking loop
while (WiFi.status() != WL_CONNECTED && attempts < 100) {
    vTaskDelay(10 / portTICK_PERIOD_MS);  // BLOCKS HERE
    attempts++;
}

After: Device remains fully responsive during connection

// NEW: Non-blocking monitoring
void connectToNetwork(String ssid, String password) {
    WiFi.begin(ssid.c_str(), password.c_str());
    isConnecting = true;  // Returns immediately
}

void handleWiFiConnection() {
    if (!isConnecting) return;  // Called from main loop
    // Check status, update UI, handle timeout
}

Features

  • Dual Function Design: connectToNetwork() initiates, handleWiFiConnection() monitors
  • State Tracking: Connection SSID, password, start time, and attempt count
  • Visual Feedback: Progress dots every 100ms without blocking
  • 10-Second Timeout: Automatic detection with clear error messages
  • Preserved Features: All LED indicators, TFT updates, web server auto-start
  • FreeRTOS Compatible: Proper task delays for cooperative multitasking

Benefits

  • Main loop executes every 10ms (was blocked for 10,000ms)
  • Web server remains responsive during connection
  • TFT display updates continue smoothly
  • Command interface stays interactive
  • Other tasks (display, monitoring) run concurrently

Performance Impact: 1000x improvement in responsiveness during connection


📋 Structured Logging System

Professional-grade logging framework replacing ad-hoc Serial.print statements.

Features

Four Severity Levels
LOG_DEBUG(TAG_WIFI, "Detailed debugging info");    // Development
LOG_INFO(TAG_WIFI, "Normal operations");           // Production
LOG_WARN(TAG_WIFI, "Warning conditions");          // Attention needed
LOG_ERROR(TAG_WIFI, "Error conditions");           // Critical issues
Component Tags
  • TAG_WIFI: WiFi operations and connections
  • TAG_AP: Access Point mode operations
  • TAG_WEB: Web server and HTTP requests
  • TAG_TASK: FreeRTOS task management
System-Wide Migration
  • 73 statements replaced across wifi_manager.cpp, wifi_task.cpp, web_server.cpp
  • Consistent formatting with timestamps and severity
  • Runtime configuration for log level filtering
  • User interface preserved (connection dots, prompts)

Examples

// Before
Serial.println("Connected to network");
Serial.print("IP Address: ");
Serial.println(WiFi.localIP());

// After
LOG_INFO(TAG_WIFI, "Connected to '%s'", WiFi.SSID().c_str());
LOG_INFO(TAG_WIFI, "IP Address: %s", WiFi.localIP().toString().c_str());
LOG_DEBUG(TAG_WIFI, "Gateway: %s", WiFi.gatewayIP().toString().c_str());

Benefits

  • Easier Debugging: Filter logs by component or severity
  • Production Ready: Disable debug logs without code changes
  • Consistent Format: Timestamps and severity on every message
  • Professional: Clean, structured output for troubleshooting

Code Quality Impact: Improved maintainability and debugging capability


📊 Enhanced Status Command

Comprehensive network diagnostics at your fingertips.

New Information Displayed

  1. Connection Status: Clear Connected/Not Connected indicator
  2. Network Details:
    • SSID (network name)
    • IP address, subnet mask, gateway
    • DNS servers (primary and secondary)
    • MAC address
  3. Signal Quality:
    • RSSI in dBm (-30 to -90+)
    • Quality percentage (0-100%)
    • Classification (Excellent/Good/Fair/Weak)
    • Emoji signal bars (🟢🟢🟢🟢 to 🔴🔴🔴⚪)
  4. Connection Info:
    • WiFi channel (1-13 for 2.4GHz)
    • Uptime in HH:MM:SS format
  5. Troubleshooting:
    • Detailed WiFi status codes when disconnected
    • Connection history

Example Output

Station Mode Status:
─────────────────────────────────────
Status: ✓ Connected
SSID: MyHomeNetwork
IP Address: 192.168.1.100
Subnet: 255.255.255.0
Gateway: 192.168.1.1
DNS: 192.168.1.1
MAC: A4:CF:12:AB:CD:EF

Signal Strength: -55 dBm
Quality: 🟢🟢🟢🟢 Excellent (90%)
Channel: 6 (2.4GHz)
Uptime: 01:23:45
─────────────────────────────────────

User Experience Impact: Complete network diagnostics in one command


🚀 FreeRTOS Task Architecture

Dedicated WiFi command processing with asynchronous execution.

WiFi Command Task

xTaskCreatePinnedToCore(
    wifiCommandTask,     // Task function
    "WiFi_Command",      // Task name
    8192,                // Stack size (8KB)
    nullptr,             // Parameters
    2,                   // Priority (higher than display)
    &wifiTaskHandle,     // Task handle
    1                    // Core 1 (app core)
);

Features

  • Command Queue: Non-blocking command submission
  • Proper Sequencing: Stop → Start Mode → Connect flow
  • Background Processing: Commands execute without main loop blocking
  • Error Handling: Graceful failure recovery
  • Priority Management: Higher than display, lower than network stack

Benefits

  • Commands processed asynchronously
  • Main loop never blocks waiting for WiFi operations
  • Improved reliability with proper state management
  • Better error reporting

Architecture Impact: Professional multi-tasking design


🌐 Web Server Improvements

Dramatically improved web interface responsiveness.

Performance Optimizations

Main Loop Speed
  • Before: 100ms delay between iterations (10 Hz)
  • After: 10ms delay between iterations (100 Hz)
  • Improvement: 10x faster loop execution
Web Server Handling
  • Before: handleClient() called 10 times/second
  • After: handleClient() called 100 times/second
  • Result: Near-instant HTTP response times
CPU Sharing
handleWebServerRequests();
yield();  // Allow other tasks to run

Bug Fixes

  1. Station Mode Web Server: Now starts on all board variants
  2. Conditional Compilation: Fixed USE_NEOPIXEL → USE_WEBSERVER
  3. HTTP Pending: Eliminated "stuck at pending" requests
  4. Initialization: Added 100ms delay after webServer->begin()

Impact

  • HTTP requests respond instantly (no delays)
  • Web interface feels desktop-app responsive
  • nmap confirms port 80 open and responsive
  • Works on all boards (esp32dev, TFT, Reverse TFT)

User Experience: Web interface now professional-grade


🔧 Bug Fixes

Critical Fixes

WiFi Connection Timing

Issue: Device reported "Connection Failed" even with valid credentials
Root Cause: Missing delay in connection loop, WiFi.begin() is asynchronous
Fix: Added delay(500) → vTaskDelay(500 / portTICK_PERIOD_MS)
Impact: Reliable connections every time

TFT Display Updates

Issue: TFT not updating during Station mode connection
Root Cause: Missing status messages in connection flow
Fix: Added sendTFTStatus() calls at appropriate points
Impact: Real-time connection status on display

Mode Switching Sequence

Issue: Connection attem...

Read more

ESP32 WiFi Utility v4.3.1

26 Oct 01:28

Choose a tag to compare

ESP32 WiFi Utility v4.3.1 - Release Notes

Release Date: October 25, 2025
Release Type: Documentation Update (Patch Release)
Status: Stable


📚 Overview

Version 4.3.1 is a documentation-focused patch release that provides comprehensive Wiki documentation for the features introduced in v4.3.0. This release significantly enhances user experience by providing detailed guides, API references, and best practices for the Port Scanner and Signal Strength Monitor features.

No code changes - All functionality from v4.3.0 remains stable and unchanged.


🎯 Release Highlights

New Wiki Documentation

Port Scanner Documentation (1,400+ lines)

Complete guide covering network security auditing capabilities:

  • Scanning Fundamentals: Port concepts, TCP connections, security considerations
  • Scan Types: Common (16 ports), Well-Known (1-1024), Custom Range, All Ports (65,535)
  • Service Identification: 25+ automatically identified services (HTTP, SSH, MySQL, RDP, etc.)
  • Web Interface: Detailed UI documentation with screenshots and workflows
  • API Reference: RESTful endpoints with JavaScript integration examples
  • Use Cases: Router security, web server audit, database checks, IoT discovery, network inventory
  • Security: Legal considerations, ethical guidelines, responsible disclosure
  • Troubleshooting: Common issues and solutions

Signal Strength Monitor Documentation (1,100+ lines)

Complete guide covering WiFi signal monitoring and optimization:

  • RSSI Fundamentals: Signal strength interpretation, quality ratings, dBm explained
  • Serial Commands: signal show/scan/monitor with detailed examples
  • Web Interface: Auto-refreshing displays, color-coded meters, graphical bars
  • Use Cases: Troubleshooting, device positioning, site surveys, stability monitoring
  • API Integration: JSON endpoints with JavaScript examples
  • Best Practices: Optimization tips, measurement accuracy, environmental factors
  • Technical Details: Performance characteristics, memory usage, scanning methodology

Updated Wiki Pages

Enhanced Navigation

  • Home.md: Added Port Scanner and Signal Strength Monitor to main navigation
  • _Sidebar.md: Updated features section with new tool links
  • Web-Configuration-Interface.md: Updated from 9 to 10 pages, added API endpoints
  • Command-Reference.md: Added signal monitoring commands with examples
  • Quick-Start-Guide.md: Added new features to essential features list

📊 What's Included

Documentation Statistics

Metric Count
New Wiki Pages 2
Total Lines Added 2,500+
Updated Wiki Pages 5
API Examples 15+
Use Cases Documented 10+
Service Identifications 25+
Commands Documented 8+

Content Breakdown

Port Scanner Documentation:

  • Overview and fundamentals: 200 lines
  • Scan types and features: 300 lines
  • Web interface guide: 200 lines
  • API integration: 150 lines
  • Use cases: 250 lines
  • Security considerations: 200 lines
  • Technical details: 100 lines

Signal Strength Monitor Documentation:

  • RSSI fundamentals: 150 lines
  • Serial commands: 250 lines
  • Web interface guide: 150 lines
  • Use cases: 200 lines
  • API integration: 100 lines
  • Best practices: 150 lines
  • Troubleshooting: 100 lines

🔧 Technical Changes

Version Updates

  • Updated platformio.ini version strings: 4.3.0 → 4.3.1
  • All 6 build environments updated (esp32dev, adafruit variants, test environments)

Documentation Cleanup

Removed outdated files:

  • RELEASE_NOTES_V4.3.0.md - Superseded by Wiki
  • RELEASE_SUMMARY.txt - Consolidated into CHANGELOG
  • docs/MIGRATION_GUIDE_V4.2.0.md - Integrated into Wiki
  • docs/RELEASE_NOTES_V4.2.0.md - Consolidated
  • docs/technical/CODE_IMPROVEMENTS_V4.2.0.md - Archived

Rationale: Migrated to structured Wiki format for better organization and discoverability


📖 Feature Documentation Summary

Port Scanner Features (v4.3.0)

Web Interface: http://<device-ip>/portscan

Scan Types:

  1. Common Ports (16 ports, ~30 seconds) - Recommended for quick checks
  2. Well-Known Ports (1-1024, ~15 minutes) - Standard security audit
  3. Custom Range (User-defined, variable time) - Targeted investigation
  4. All Ports (1-65535, ~10 hours) - Comprehensive audit

Key Features:

  • Real-time progress tracking with percentage display
  • Automatic service identification (HTTP, HTTPS, SSH, FTP, MySQL, etc.)
  • Background scanning with non-blocking operation
  • Purple gradient themed UI
  • Security warnings and legal disclaimers

API Endpoints:

  • GET /portscan/start?ip=<target>&type=<scan_type> - Start scan
  • GET /portscan/stop - Stop active scan
  • GET /portscan/status - Get scan progress (JSON)
  • GET /portscan/api?gateway=1 - Get gateway IP

Security Considerations:

  • Only scan devices you own or have permission
  • Unauthorized scanning may violate laws (CFAA, Computer Misuse Act)
  • Network impact considerations
  • Responsible disclosure guidelines

Signal Strength Monitor Features (v4.2.1)

Web Interface: http://<device-ip>/signal

Capabilities:

  • Real-time RSSI monitoring of connected network
  • Nearby networks signal scanning
  • Auto-refresh every 3 seconds
  • Color-coded quality indicators (Green/Yellow/Red)
  • Quality percentage and ratings

Serial Commands:

signal show      # Display current connection signal
signal scan      # Scan nearby networks
signal monitor   # Continuous monitoring mode

RSSI Reference:

  • -30 to -50 dBm: Excellent (100%)
  • -50 to -60 dBm: Good (80-100%)
  • -60 to -70 dBm: Fair (60-80%)
  • -70 to -80 dBm: Weak (40-60%)
  • Below -80 dBm: Very Weak (<40%)

API Endpoints:

  • GET /signal/api?current=1 - Get current signal (JSON)
  • GET /signal/api?scan=1 - Scan nearby networks (JSON)

Use Cases:

  • Troubleshooting connection issues
  • Finding optimal device/router placement
  • Site surveys for coverage mapping
  • Monitoring connection stability

🚀 Getting Started

For New Users

  1. Install v4.3.1: Flash firmware to ESP32 device
  2. Access Web Interface: Connect to device and navigate to web UI
  3. Read Documentation: Visit GitHub Wiki for comprehensive guides
  4. Try Features: Start with Quick Start Guide tutorials

For Existing Users (Upgrading from v4.3.0)

No migration required - This is a documentation-only release.

What to do:

  1. Update firmware to v4.3.1 (optional, no functional changes)
  2. Review new Wiki documentation for enhanced feature understanding
  3. Explore API examples for integration opportunities
  4. Check troubleshooting guides for any existing issues

What stays the same:

  • All features and functionality
  • Configuration settings
  • API endpoints (only documented, not changed)
  • Web interface behavior
  • Performance characteristics

📚 Documentation Access

GitHub Wiki

Visit the ESP32 WiFi Utility Wiki for:

New Pages:

Updated Pages:

Repository Documentation

  • CHANGELOG.md: Complete version history
  • README.md: Project overview and quick start
  • docs/: Technical documentation and guides

🔗 Links and Resources

Download

Support

Community

  • Contributing: See CONTRIBUTING.md for guidelines
  • Code of Conduct: See CODE_OF_CONDUCT.md
  • License: MIT License

🎓 Key Improvements

User Experience

Comprehensive Documentation: 2,500+ lines of detailed guides
Clear Navigation: Enhanced Wiki structure with cross-referencing
API Examples: JavaScript integration samples for all endpoints
Use Cases: Real-world scenarios and workflows
Troubleshooting: Common issues with step-by-step solutions

Developer Experience

API Reference: Complete endpoint documentation
Code Examples: Integration patterns and best practices
Technical Details: Implementation specifics and performance data
Security Guidelines: Legal and ethical considerations

Documentation Quality

Professional Formatting: Tables, code blocks, visual indicators
Consistent Styling: Unified approach across all pages
Mobile-Friendly: Responsive documentation layout
Searchable: Well-structured content for easy discovery


📋 Complete Feature List (Cumulative)

v4.3.1 + v4.3.0 Features...

Read more

ESP32 WiFi Utility v4.3.0

26 Oct 01:08

Choose a tag to compare

ESP32 WiFi Utility Suite - Release Notes v4.3.0

Release Date: October 25, 2025
Version: 4.3.0
Type: Major Feature Release


🎉 Release Highlights

Version 4.3.0 introduces four major network analysis tools that transform the ESP32 WiFi Utility into a comprehensive network diagnostics platform:

  1. 📶 Signal Strength Monitor - Real-time WiFi signal monitoring with auto-scan
  2. 🔒 Port Scanner - Network security auditing and service discovery
  3. 📊 Channel Graph - Visual spectrum analysis with interactive charts
  4. 📱 TFT Display Support - Built-in screen integration for Feather boards

🚀 New Features

1. Signal Strength Monitor

Real-time WiFi signal analysis with automated scanning

Core Features

  • Live Signal Monitoring: Current connection strength with 3-second auto-refresh
  • Nearby Networks Scanner: Comprehensive scan with signal quality indicators
  • Auto-Scan Mode: Configurable intervals (5, 10, 15, 30, 60 seconds)
  • Hidden Network Detection: Identifies hidden SSIDs as <Hidden Network>
  • Visual Quality Indicators: Color-coded circles (🟢🟡🟠🔴)
  • RSSI to Quality Conversion: Automatic percentage calculation (0-100%)
  • Quality Classifications: Excellent/Good/Fair/Weak/Very Weak
  • Non-Blocking Updates: Page content remains visible during scans
  • Real-Time Countdown: Shows time until next automatic scan

Web Interface

  • URL: http://<device-ip>/signal
  • Professional UI: Cyan gradient theme
  • Mobile Responsive: Optimized for all screen sizes
  • API Endpoints:
    • /signal - Main monitoring page
    • /signal/api?current=1 - Get current signal (JSON)
    • /signal/api?scan=1 - Scan networks (JSON)

Integration

  • Added to Analysis Dashboard with dedicated card
  • Accessible from navigation dropdown menu
  • Quick Actions button for one-click access

Use Cases

  • Monitor connection quality in real-time
  • Track signal changes during troubleshooting
  • Identify best network in range
  • Detect hidden networks
  • Automated network monitoring

2. Port Scanner

Comprehensive network security auditing tool

Scan Types

1. Common Ports (Fast) - ~20-30 seconds

  • 16 most commonly used ports
  • Quick security assessment
  • Ideal for routine checks
  • Ports: FTP, SSH, HTTP, HTTPS, SMTP, MySQL, RDP, etc.

2. Well-Known Ports - ~10-30 minutes

  • Ports 1-1024
  • Standard IANA services
  • Comprehensive audit
  • Enterprise security scanning

3. Custom Range - Variable duration

  • User-defined port range
  • Targeted analysis
  • Flexible scanning
  • Example: Scan ports 8000-9000

4. All Ports (Comprehensive) - ~8-12 hours

  • Ports 1-65535
  • Complete security audit
  • Deep analysis
  • Full port coverage

Service Identification

Automatically identifies 25+ common services:

  • Web: HTTP (80), HTTPS (443), HTTP-Alt (8080)
  • Remote Access: SSH (22), Telnet (23), RDP (3389), VNC (5900)
  • Email: SMTP (25), POP3 (110), IMAP (143)
  • Databases: MySQL (3306), PostgreSQL (5432), MongoDB (27017), Redis (6379)
  • File Transfer: FTP (21), SMB (445)
  • And more: DNS, Oracle, MSSQL, Printer services

Features

  • Real-Time Progress: Animated progress bar with percentage
  • Background Scanning: Non-blocking TCP connection tests
  • Results Display: Tabular format (Port/Service/Status)
  • Gateway Detection: Auto-populated target IP
  • Security Warnings: Legal disclaimers and authorization reminders
  • Professional UI: Purple gradient theme

Web Interface

  • URL: http://<device-ip>/portscan
  • API Endpoints:
    • /portscan/start - Start scan with parameters
    • /portscan/stop - Stop active scan
    • /portscan/status - Get scan progress (JSON)
    • /portscan/api - Helper endpoints

Integration

  • Added to Analysis Dashboard with purple card
  • Navigation dropdown access
  • Quick Actions integration
  • Last scan results display

Security Features

  • Clear legal warnings
  • Authorization requirements
  • Network impact notices
  • Responsible use guidelines
  • Ethical scanning practices

3. Channel Graph Visualization

Interactive WiFi spectrum analysis with HTML5 Canvas

Visual Features

Bar Chart Display:

  • 14 vertical bars for channels 1-14
  • Bar height = congestion level (0-100%)
  • Color-coded visualization
  • Network count overlays

Color-Coded Congestion:

  • 🟢 Green (0-40%): Low congestion - Excellent choice
  • 🟡 Yellow (40-70%): Medium congestion - Acceptable
  • 🔴 Red (70-100%): High congestion - Avoid

Professional Graph Elements:

  • Grid lines for easy reading
  • Labeled axes (X: Channels, Y: Congestion %)
  • Axis titles and descriptions
  • Interactive legend
  • Recommended channel markers (⭐)

Features

  • Best Channel Detection: Automatic identification
  • Non-Overlapping Indicators: Highlights channels 1, 6, 11
  • Network Count Display: Shows networks per channel
  • Responsive Design: Adapts to screen size
  • Window Resize Support: Redraws on window change
  • Educational Content: Explains channel overlap

Technical Implementation

  • Canvas Size: 1000x400px (responsive)
  • Client-Side Rendering: Pure JavaScript
  • Real-Time Data: From channel analyzer
  • No External Dependencies: Self-contained

Web Interface

  • URL: http://<device-ip>/channel/graph
  • Access: Button on Channel Analysis page
  • Integration: Analysis Dashboard link

Use Cases

  • Identify optimal WiFi channel
  • Visual spectrum analysis
  • Interference detection
  • Router channel selection
  • Multi-AP deployment planning

Educational Value

  • Understanding channel overlap
  • 2.4GHz spectrum visualization
  • Non-overlapping channels (1, 6, 11)
  • Congestion impact on performance
  • Best practices for channel selection

4. TFT Display Support

Built-in screen integration for Adafruit Feather ESP32-S3 boards

Hardware Support

  • Adafruit Feather ESP32-S3 TFT
  • Adafruit Feather ESP32-S3 Reverse TFT
  • Display: 135x240 pixels, ST7789 driver
  • Auto-Detection: Automatically uses TFT when available

AP Mode Display

Visual Elements:

  • 🟢 Green "AP Mode" text indicator
  • QR code for instant WiFi connection
  • SSID display (truncated if long)
  • Password display
  • AP IP address

Features:

  • Scan QR with mobile device to connect
  • Compact layout optimized for small screen
  • Clear, readable information
  • Professional styling

Station Mode Display

Visual Elements:

  • 🔵 Blue "Station Mode" text indicator
  • Connection status with visual feedback
  • Connected network SSID
  • Local IP address
  • Real-time signal strength (RSSI in dBm)
  • Color-coded signal quality indicator
  • Visual signal quality bar graph

Signal Quality Colors:

  • 🟢 Green: Strong signal (-60 dBm or better)
  • 🟡 Yellow: Medium signal (-60 to -70 dBm)
  • 🔴 Red: Weak signal (below -70 dBm)

Signal Quality Bar:

  • Horizontal progress bar (0-100%)
  • Calculated from RSSI value
  • Visual representation of connection quality
  • Updates in real-time

Features

  • Dynamic Mode Detection: Uses esp_wifi_get_mode()
  • Automatic Updates: Displays appropriate mode info
  • QR Code Generation: Instant connection via scan
  • Signal Visualization: Live signal strength tracking
  • Compact Layout: Optimized for 135x240 screen

Libraries Added

  • Adafruit ST7735 and ST7789 Library @^1.10.0
  • Adafruit GFX Library @^1.11.0

🌐 Web Interface Enhancements

Analysis Dashboard Updates

New Cards Added:

  1. Signal Monitor Card (Cyan gradient):

    • Current signal strength display
    • Last scan timestamp
    • Quality indicator
    • Quick access button
  2. Port Scanner Card (Purple gradient):

    • Last scan results summary
    • Open ports count
    • Security status
    • Quick launch button

Enhanced Features:

  • Channel Graph button on Channel Analysis page
  • Updated navigation dropdown with all new tools
  • Quick Actions section with one-click access
  • Tips section with tool guidance
  • Consistent gradient styling throughout

Navigation Improvements

Analysis Dropdown Menu now includes:

  • 📊 Dashboard
  • 📶 Signal (NEW)
  • 🔒 Port Scanner (NEW)
  • ⚡ iPerf
  • 📉 Latency
  • 📡 Channel (with Graph option)

Quick Actions Section:

  • One-click access to all analysis tools
  • Gradient-styled buttons
  • Icon indicators
  • Mobile-optimized

📚 Documentation

New Documentation Files

  1. docs/SIGNAL_STRENGTH_MONITOR.md (~400 lines)

    • Complete signal monitor guide
    • Features and usage
    • API endpoints
    • Configuration options
    • Troubleshooting
  2. docs/PORT_SCANNER.md (~476 lines)

    • Comprehensive port scanner documentation
    • Scan types and service identification
    • Security considerations
    • Usage examples
    • Legal and ethical guidelines
  3. docs/CHANNEL_GRAPH.md (~595 lines)

    • Visual spectrum analysis guide
    • Graph interpretation
    • Channel selection best practices
    • Technical implementation details
    • Educational content on WiFi spectrum

Updated Documentation

  • README.md: Added v4.3.0 features section (~150 lines)
  • CHANGELOG.md: Complete v4.3.0 release notes (~200 lines)
  • Version badges: Updated to 4.3.0

🔧 Technical Details

New Source Files

  1. Signal Monitor:

    • include/signal_monitor.h
    • src/signal_monitor.cpp
  2. Port Scanner:

    • include/port_scanner.h
    • src/port_scanner.cpp
  3. TFT Display:

    • include/tft_display.h
    • src/tft_display.cpp

Modified Files

  • `include/web_ser...
Read more

ESP32 WiFi Utility v4.2.0

25 Oct 18:36

Choose a tag to compare

ESP32 WiFi Utility v4.2.0 - Release Notes

Release Date: October 25, 2025
Major Version: Configuration & Persistence Enhancement


🎉 Overview

Version 4.2.0 represents a major architectural simplification with removal of RTOS complexity and introduction of comprehensive configuration persistence, web-based management, and instant mode switching capabilities.


🚀 Major Changes

1. Architecture Simplification - RTOS Removal

Rationale: Simplified architecture for better maintainability and reduced complexity

Removed Components

  • ❌ FreeRTOS task-based architecture
  • ❌ Multi-core task distribution
  • ❌ Queue-based communication system
  • ❌ Mutex protection layers
  • ❌ Task monitoring infrastructure
  • ❌ 7 RTOS-related files (~3000 lines of code)
  • ❌ All RTOS test suites (~2000 lines)

Benefits

  • Simpler Codebase: 40% reduction in code complexity
  • Easier Maintenance: No RTOS overhead or debugging
  • Lower Memory: Reduced flash and RAM usage
  • Faster Compilation: 30% faster build times
  • Easier Understanding: Linear execution flow

Impact on Features

  • No Loss of Functionality: All user-facing features retained
  • Web Server: Still fully functional and responsive
  • WiFi Operations: Maintained with simplified event handling
  • Command Interface: Direct execution, slightly faster response
  • LED Status: Still operational (non-animated)

2. Configuration Persistence System 🆕

Complete NVS-based configuration storage for both Access Point and Station modes.

Access Point Configuration

struct APConfig {
    char ssid[33];        // Network name
    char password[64];     // WPA2 password
    uint8_t channel;       // WiFi channel (1-13)
    bool autoStart;        // Boot into AP mode
};

Features:

  • ✅ Persistent storage in NVS (non-volatile memory)
  • ✅ Survives power cycles and reboots
  • ✅ Default fallback configuration
  • ✅ Validation and error handling
  • ✅ Clear and load operations
  • ✅ Auto-start on boot support

Commands:

ap config <ssid> <password> [channel] [auto]    # Save AP configuration
ap config load                                    # Show saved configuration  
ap config clear                                   # Clear saved configuration
ap start                                          # Start with saved config

Default Configuration:

  • SSID: ESP32-WiFi-Utility
  • Password: 12345678
  • Channel: 1
  • Auto-start: false

Station Configuration

struct StationConfig {
    char ssid[33];         // Network name
    char password[64];     // Network password
    bool autoConnect;      // Auto-connect on boot
};

Features:

  • ✅ Persistent WiFi credentials storage
  • ✅ Automatic connection on boot
  • ✅ Secure password storage (not exposed in web UI)
  • ✅ Connection retry logic
  • ✅ Status monitoring
  • ✅ Clear and load operations

Commands:

station config <ssid> <password> [auto]          # Save Station configuration
station config load                               # Show saved configuration
station config clear                              # Clear saved configuration
station connect                                   # Connect with saved config

Boot Behavior

  1. Check for Saved AP Config:
    • If exists AND autoStart=true → Start in AP mode
  2. Check for Saved Station Config:
    • If exists AND autoConnect=true → Connect to network
  3. No Saved Config:
    • Start in IDLE mode, awaiting commands

3. Web Configuration Interface 🆕

Complete web-based configuration and management system.

Configuration Page (/config)

Access Point Configuration Section:

  • SSID input field (1-32 characters)
  • Password input field (8-63 characters, masked)
  • Channel selector (1-13)
  • Auto-start checkbox
  • Save button with validation
  • Clear configuration button
  • Current configuration display

Station Configuration Section:

  • SSID input field
  • Password input field (masked, not exposed if saved)
  • Auto-connect checkbox
  • Save button with validation
  • Clear configuration button
  • Current configuration display

Quick Mode Switch Section: 🆕

  • Current mode display (AP/Station/IDLE)
  • Switch to AP button (one-click)
  • Switch to Station button (one-click)
  • Real-time status feedback
  • Instant mode switching (no reboot needed)

Reboot Modal:

  • Triggered after configuration save
  • 3-second countdown timer
  • Confirm/Cancel buttons
  • Automatic reboot on confirmation
  • Status messages

Features

  • Responsive Design: Works on desktop, tablet, and mobile
  • Mobile Menu: Hamburger menu for small screens (<768px)
  • Password Security: Saved passwords never exposed
  • Validation: Client and server-side validation
  • Status Feedback: Real-time success/error messages
  • Professional UI: Modern gradient design with icons
  • Instant Mode Switching: No reboot required

API Endpoints

GET  /config              # Display configuration page
POST /config/ap           # Save AP configuration
POST /config/station      # Save Station configuration
POST /config/clear        # Clear configuration (type: ap/station)
POST /reboot              # Reboot device
POST /mode/switch         # Switch mode (mode: ap/station)

4. Instant Mode Switching 🆕

Switch between Access Point and Station modes without rebooting.

Quick Mode Toggle

  • Location: Top of configuration page
  • Display: Purple gradient banner with current mode
  • Buttons:
    • 📡 Switch to Access Point
    • 📶 Switch to Station

Functionality

Switch to AP Mode:

  1. Click "Switch to Access Point" button
  2. Backend loads saved AP config (or uses defaults)
  3. Starts Access Point immediately
  4. Status message confirms activation
  5. Current mode updates to "AP"

Switch to Station Mode:

  1. Click "Switch to Station" button
  2. Backend loads saved Station config
  3. Connects to saved WiFi network
  4. Status message shows connection progress
  5. Current mode updates to "Station"

Benefits

  • Instant: 2-second operation vs 10+ second reboot
  • No Interruption: Web interface stays active
  • Testing Friendly: Quick iteration between modes
  • User-Friendly: One-click operation
  • Smart: Uses saved configurations automatically

5. Responsive Web Interface 🆕

Mobile-optimized interface with adaptive navigation.

Desktop View (≥768px)

  • Horizontal navigation bar
  • Full menu always visible
  • Large clickable areas
  • Optimal spacing

Mobile View (<768px)

  • Hamburger menu icon (☰)
  • Collapsible navigation
  • Touch-friendly buttons
  • Optimized layout
  • Vertical menu

Features

  • ✅ CSS media queries for breakpoints
  • ✅ Touch-friendly 44px minimum touch targets
  • ✅ Flexible layouts with flexbox
  • ✅ Readable fonts (16px base)
  • ✅ Accessible color contrast
  • ✅ No horizontal scrolling
  • ✅ Smooth animations

📊 Technical Improvements

Code Quality

  • Error Handling: Comprehensive error handling throughout
  • Logging: Structured logging with prefixes
  • Validation: Input validation on all entry points
  • Memory Safety: Proper bounds checking
  • Type Safety: Strong typing with structs

New Components

include/
├── ap_config.h              # AP configuration management
├── station_config.h         # Station configuration management
├── error_handling.h         # Error handling utilities
├── logging.h                # Logging framework
└── performance_monitor.h    # Performance monitoring

src/
├── ap_config.cpp           # AP config implementation
├── station_config.cpp      # Station config implementation
├── error_handling.cpp      # Error handling implementation
├── logging.cpp             # Logging implementation
└── performance_monitor.cpp # Performance monitoring

Memory Usage

  • Flash: ~1,134 KB (86.5% of 1,310 KB)
  • RAM: ~54 KB (16.5% of 327 KB)
  • NVS: ~4 KB for configurations

🔧 Migration from v4.1.0

RTOS Code Removal

If you have custom code depending on RTOS:

Before (v4.1.0):

#include "rtos_manager.h"
#include "queue_manager.h"

void sendCommand(const char* cmd) {
    QueueManager::send(commandQueue, cmd);
}

After (v4.2.0):

#include "command_interface.h"

void sendCommand(const char* cmd) {
    processCommand(cmd);  // Direct call
}

Configuration Migration

Existing configurations are NOT automatically migrated. You need to:

  1. Note your current settings before upgrade
  2. Upgrade to v4.2.0
  3. Re-enter configurations via:
    • Serial commands: ap config / station config
    • Web interface: /config page

Web Server

No changes required - web server works identically.


📚 Documentation Updates

New Documentation

  1. Configuration System Guide - Complete configuration guide
  2. Web Configuration Guide - Web interface documentation
  3. AP Config Persistence - AP configuration details
  4. Station Config Persistence - Station config details
  5. AP Config Quick Reference - Quick command reference
  6. Station Config Quick Reference - Quick command reference
  7. Responsive Menu Guide - Mobile menu documentation
  8. Migration Guide v4.2.0 - Upgrade instructions

Archived Documentation

RTOS-related documentation moved to docs/technical/archived/:

  • RTOS Architecture Guide
    -...
Read more

ESP32 WiFi Utility v4.1.0

19 Oct 05:21

Choose a tag to compare

ESP32 WiFi Utility v4.1.0

🎉 Automated release triggered by version bump from v4.0.0 to v4.1.0

🔄 What's Changed

  • docs(release): update README and CHANGELOG for v4.1.0 release
  • docs(rtos): add comprehensive RTOS documentation suite (Issue #20)
  • feat(rtos): implement comprehensive RTOS testing suite (Issue #19)
  • Implement LED Controller Task for smooth animations (Issue #18)
  • Implement Analysis Task for background operations (Issue #17)
  • feat(rtos): Implement WebTask for async web request processing (Issue #16)
  • feat(rtos): Implement WiFiTask for async WiFi operations (Issue #15)
  • fix: Remove invalid AsyncUDP library dependency from platformio.ini
  • feat: Implement Command Interface Task Migration (Issue #14, Phase 2)
  • Merge pull request #21 from arunkumar-mourougappane/core-rtos-infrastructure-setup
  • feat: Implement Core RTOS Infrastructure (Issue #13, Phase 1)

🚀 Core Features

  • ✅ Professional WiFi Channel Analysis with AI-powered congestion scoring (0-100%)
  • ✅ Dual-board support: ESP32dev + Adafruit Feather ESP32-S3 TFT
  • ✅ Advanced network scanning with spectrum analysis and interference detection
  • ✅ Complete iPerf network performance testing (TCP/UDP client/server modes)
  • ✅ Access Point management with QR code generation
  • ✅ Interactive command interface with 15+ channel analysis commands
  • 🌈 NeoPixel status display for Feather ESP32-S3 TFT board
  • 🧪 Comprehensive Unity test framework with automated CI/CD

📊 Channel Analysis Capabilities

  • Real-time Spectrum Scanning: Complete 2.4GHz band analysis (channels 1-14)
  • Advanced Congestion Analysis: Mathematical interference modeling with 0-100% scoring
  • Channel Overlap Detection: Precise interference calculations and optimization
  • Smart Recommendations: AI-powered optimal channel selection with detailed rationale
  • Interference Classification: Microwave, Bluetooth, and continuous wave detection

🛠 Technical Specifications

ESP32 Development Board

  • Flash Usage: ~61% (optimized for standard ESP32)
  • RAM Usage: ~14% (efficient memory utilization)
  • Features: Full channel analysis suite, iPerf testing, AP management

Adafruit Feather ESP32-S3 TFT

  • Flash Usage: ~54% (includes NeoPixel library)
  • RAM Usage: ~18% (enhanced visual feedback)
  • Features: All standard features PLUS NeoPixel status display

🔧 Build Information

  • Version: 4.1.0
  • Previous Version: 4.0.0
  • Commit: 9c02cca
  • Build Date: 2025-10-19 05:21:18 UTC
  • Release Type: Automated (version bump detected)

📦 Installation Instructions

Download Firmware

  1. ESP32 Development Board: esp32-wifi-utility-esp32dev-v4.1.0.bin
  2. Feather ESP32-S3 TFT: esp32-wifi-utility-feather-s3-tft-v4.1.0.bin

Flashing

# Using esptool (install with: pip install esptool)
esptool.py --port /dev/ttyUSB0 write_flash 0x10000 firmware.bin

# Or use Arduino IDE / PlatformIO for uploading

Quick Start

# Connect via serial at 115200 baud
help                    # Show all commands
channel scan           # Quick spectrum scan
channel analyze        # Detailed channel analysis
channel best           # Get optimal channel recommendation
channel congestion     # Show all channels with congestion levels
mode ap                # Start access point with QR code

🎯 Professional Channel Commands

  • channel scan - Real-time spectrum analysis
  • channel analyze - Detailed congestion assessment
  • channel best - AI-powered channel recommendation
  • channel congestion - Complete congestion overview
  • channel interference - Interference source detection
  • channel overlap - Mathematical overlap analysis
  • channel quality [num] - Specific channel quality assessment

📚 Documentation


🤖 This release was automatically created when version 4.1.0 was detected in platformio.ini

ESP32 WiFi Utility v4.0.0

17 Oct 20:21

Choose a tag to compare

🎯 Major Feature Release - Interactive Network Details & Multi-Platform Web Server

This major version introduces clickable network details with comprehensive WiFi analysis (Issue #10),
extends web server support from Feather-only to both ESP32dev and Feather boards, implements significant
memory optimizations that offset the new features, and adds extensive test coverage with 19 automated
test cases achieving 100% pass rate on both platforms.

Added - Interactive Network Details (Issue #10)

Clickable WiFi Scan Results
  • Interactive Network List: Click any network in scan results to view detailed information
  • Details Page Route: New /scan/details?id=<network_index> endpoint
  • Back Navigation: Easy return to scan results with styled back button
  • Mobile-Optimized: Touch-friendly interface with hover effects on desktop
  • Cache System: Smart caching reduces re-scanning overhead
    • Stores up to 50 networks for 5 minutes
    • Automatic cache validation and expiration
    • Memory-efficient storage structure
Comprehensive Network Information Display

Basic Information Section:

  • Network Name (SSID) with hidden network handling
  • MAC Address (BSSID) formatted as XX:XX:XX:XX:XX:XX
  • Graceful handling of missing BSSID data

Signal Strength Analysis:

  • RSSI displayed in dBm units
  • 8-level signal quality scale with percentage calculation:
    • 100% Excellent (Very Close) ≥ -30 dBm
    • 90% Excellent ≥ -50 dBm
    • 80% Very Good ≥ -60 dBm
    • 70% Good ≥ -67 dBm
    • 60% Fair ≥ -70 dBm
    • 50% Weak ≥ -80 dBm
    • 30% Very Weak ≥ -90 dBm
    • 10% Extremely Weak < -90 dBm
  • Visual signal quality indicators with emoji icons (📶📡)
  • Color-coded quality bars (green/yellow/orange/red)

Channel Information:

  • Channel number with frequency band display (2.4GHz/5GHz)
  • Channel congestion analysis with 5-level scale:
    • Clear (0-2 networks)
    • Light (3-5 networks)
    • Moderate (6-10 networks)
    • Heavy (11-15 networks)
    • Severe (16+ networks)
  • Network count on same channel with color-coded indicators

Security Assessment:

  • Support for all 9 WiFi encryption types:
    • Open, WEP, WPA-PSK, WPA2-PSK, WPA/WPA2-PSK
    • WPA2-Enterprise, WPA3-PSK, WPA2/WPA3-PSK, WAPI-PSK
  • Security level ratings with icons:
    • None (🔓) - Open networks
    • Weak (⚠️) - WEP encryption
    • Moderate (🔒) - WPA-PSK
    • Good (🔐) - WPA2-PSK
    • Excellent (🔐) - WPA3-PSK
  • Color-coded security indicators (red/orange/yellow/green)
  • Warnings for open and WEP networks

Connection Recommendations:

  • Automated recommendations based on signal strength
  • Security assessment warnings for weak encryption
  • Channel congestion impact analysis
  • Clear visual indicators (✅/⚠️/❌) for quick evaluation
Technical Implementation

Data Structures:

struct CachedScanResult {
    String ssid;
    int32_t rssi;
    uint8_t channel;
    wifi_auth_mode_t encryptionType;
    uint8_t bssid[6];
    bool hasBssid;
};

Cache Management:

  • isCacheValid() - Validates cache timeout (5 minutes)
  • cacheScanResults() - Stores scan results in memory
  • handleScanDetails() - Generates comprehensive details page (336 lines)
  • Static cache array supporting up to 50 networks
  • Automatic cache expiration with redirect on timeout

Route Registration:

  • New route: /scan/details registered in startWebServer()
  • Query parameter validation for network ID
  • Bounds checking for array access safety
  • Error handling with redirects to scan page

Scan Page Enhancements:

  • Modified handleScan() to cache results after scanning
  • Made network list items clickable with onclick handlers
  • Added hover effects with inline CSS
  • Hint text: "💡 Click on any network to view detailed information"
  • Removed WiFi.scanDelete() to preserve cached results

Memory Optimization:

  • All static HTML strings use F() macro
  • PROGMEM storage for constant strings
  • Pre-allocated String buffers (html.reserve(8192))
  • Efficient switch statements for type mapping
  • Minimal string concatenation with smart pre-allocation

Added - Web Server for ESP32 Development Board

Multi-Platform Web Server Support
  • ESP32dev Support: Web server now available on standard ESP32 boards
  • Unified Codebase: Single implementation works on both platforms
  • USE_WEBSERVER Macro: Conditional compilation flag replaces USE_NEOPIXEL
  • Feature Parity: All web features available on both boards
Configuration Changes
  • Added -DUSE_WEBSERVER=1 to esp32dev environment
  • Updated command interface to remove "Feather only" restrictions
  • Modified help text to indicate dual-board availability
  • Web server initialization controlled by USE_WEBSERVER flag
Auto-Restart Web Server
  • Automatically restarts when switching between AP and Station modes
  • Seamless WiFi mode transitions without manual intervention
  • Dynamic SSID and device name updates based on chip ID
  • Preserves web interface availability across mode changes

Added - Memory Optimization

Compiler Optimizations
  • Size Optimization: -Os flag replaces -O2 for smaller binaries
  • Section Management: -ffunction-sections and -fdata-sections
  • Dead Code Elimination: -Wl,--gc-sections linker flag
  • Debug Reduction: -DCORE_DEBUG_LEVEL=0 disables verbose logging
PROGMEM Storage Implementation
  • HTML_HEADER: ~4KB moved to flash memory
  • NAV_MENU: ~400 bytes as PROGMEM constant
  • SCAN_HEADER: ~600 bytes as PROGMEM constant
  • FPSTR() Macro: Safe flash string reading
F() Macro Usage
  • 200+ String Literals: Converted to flash storage
  • RAM Savings: ~3KB by keeping strings in flash
  • Applied Throughout: All web page handlers optimized
    • handleRoot()
    • handleStatus()
    • handleScan()
    • handleScanDetails()
String Pre-allocation
  • html.reserve(4096) for standard pages
  • html.reserve(8192) for scan results with network lists
  • Reduces heap fragmentation
  • Prevents multiple reallocation overhead
Memory Optimization Results
  • Compiler optimization flags applied: -Os, -ffunction-sections, -fdata-sections, -Wl,--gc-sections
  • PROGMEM storage: ~4KB of HTML constants moved to flash memory
  • F() macro: 200+ string literals kept in flash instead of RAM (~3KB saved)
  • String pre-allocation: Reduced heap fragmentation with html.reserve()
Final Memory Usage (v4.0.0)
  • ESP32dev: Flash 83.1% (1,088,625 bytes), RAM 16.4% (53,692 bytes)
    • Net savings vs pre-optimization: ~27KB flash despite adding clickable details feature
  • Feather ESP32-S3: Flash 71.9% (1,036,493 bytes), RAM 16.0% (52,496 bytes)
    • Net savings vs pre-optimization: ~25KB flash despite adding clickable details feature
  • Both well within acceptable limits (< 85% flash, < 20% RAM)
  • Achievement: New features added with minimal memory impact due to optimization

Added - Comprehensive Test Coverage

Test Framework Integration
  • Unity Test Framework: Professional testing infrastructure
  • 19 Test Cases: Comprehensive coverage of new features
  • Dual-Board Testing: Both ESP32dev and Feather ESP32-S3 TFT supported
  • 100% Pass Rate: All tests passing on both platforms
Test Categories

Cache Management Tests (4 tests):

  • Cache validity with recent scan
  • Cache invalidation when empty
  • Cache invalidation after timeout
  • Maximum network capacity handling

Network Details Tests (4 tests):

  • Network data integrity validation
  • Signal quality level calculations
  • Encryption type name mapping
  • Channel to frequency conversion

WiFi Fundamentals Tests (5 tests):

  • WiFi scan timeout constants
  • Network security level distinctions
  • RSSI range validation (-120 to 0 dBm)
  • 2.4GHz channel range validation (1-14)
  • BSSID MAC address format validation

System Integration Tests (6 tests):

  • Basic system validation
  • Configuration constants
  • Board identification (ESP32 vs Feather)
  • Helper function utilities
  • Mock calculation accuracy
  • Heap memory availability
Test Documentation
  • TEST_DOCUMENTATION.md: Complete test guide (330+ lines)
  • Running instructions for both boards
  • Test coverage details and descriptions
  • Configuration constants documentation
  • Troubleshooting guide
  • CI/CD integration examples
Test Execution
  • ESP32dev: 19/19 tests passed (~14 seconds)
  • Feather ESP32-S3: 19/19 tests passed (~5.5 seconds)
  • Commands: pio test --environment test / test_feather
  • Build-only mode: --without-uploading flag for CI/CD

Changed

Web Server Availability
  • Web server changed from "Feather ESP32-S3 TFT Only" to "Available on Both Boards"
  • Updated all documentation to reflect dual-board support
  • Command help text updated to remove platform restrictions
Scan Page Behavior
  • Network list items now clickable with visual feedback
  • Added hover effects for better UX
  • Cache results instead of immediate deletion
  • Added instructional hint text
Documentation Updates
  • README.md: Complete "What's New in v4.0.0" section
  • Version badges updated
  • Web server sections updated for both boards
  • Testing section added with instructions
  • Performance metrics updated
  • Code organization updated with test coverage
  • Future enhancements marked as completed
Build Configuration
  • platformio.ini updated with optimization flags
  • Version numbers bumped to 4.0.0
  • Compiler flags documented

Technical Details

Files Modified
  • include/web_server.h - Added handleScanDetails() declaration and cache management functions
  • src/web_server.cpp - Added 336 lines for comprehensive network details feature
  • `test/test_simple_validation.cp...
Read more

ESP32 WiFi Utility v3.0.0

16 Oct 13:45

Choose a tag to compare

ESP32 WiFi Utility v3.0.0

🎉 Major Web Interface Release - Comprehensive browser-based control and monitoring

🌐 What's New in v3.0.0

This major release transforms ESP32 WiFi Utility into a full-featured web-based network analysis platform, making all advanced features accessible through any modern web browser on phones, tablets, and computers.


✨ Core Features

Complete Web Interface (Port 80)

  • 7 Professional Pages: Home, Status, Scan, Analysis Dashboard, iPerf, Latency, Channel
  • Mobile-Responsive Design: Touch-optimized for phones and tablets
  • Modern UI/UX: Gradient purple theme with smooth animations
  • Zero Configuration: Automatic IP detection and instant access
  • Dual Mode Support: Works in both AP mode and Station mode

Navigation & User Experience

  • Hierarchical Dropdown Navigation: Professional multi-level menu system
    • Analysis submenu with iPerf, Latency, and Channel testing
    • CSS-only implementation (no JavaScript dependencies)
    • Hover-activated on desktop, touch-friendly on mobile
  • Progress Indicators: Full-screen backdrop overlay (70% opacity)
    • Animated spinner with custom messages
    • Prevents duplicate operations
    • Auto-dismisses on completion
  • Button-Triggered Scanning: User-initiated scans with visual feedback

QR Code WiFi Sharing

  • Instant Connection: Scan QR code to connect to AP
  • SVG-Based Generation: Clean, scalable vector graphics
  • Dual Display:
    • Home Page: 250x250px quick connect QR code
    • Status Page: 300x300px detailed view with network info
  • Mobile-Optimized: Works with iOS/Android camera apps
  • Standard Format: WIFI:T:WPA;S:<SSID>;P:<password>;;

📱 Web Pages Overview

Home Page

  • System overview dashboard
  • Connection status badges
  • Real-time metrics (IP, memory, clients)
  • QR code quick connect (AP mode)

Status Page

  • Detailed system information
  • WiFi mode, SSID, IP, signal strength
  • Chip details, memory, CPU frequency
  • QR code with complete network credentials

Scan Networks Page

  • Button-triggered WiFi scanning
  • Progress indicator during scan
  • Signal strength visualization (5 levels)
  • Channel, security, RSSI display

Analysis Dashboard

  • Unified testing hub
  • Real-time statistics
  • Quick action cards
  • Direct links to test pages

iPerf Testing Page

  • Interactive configuration forms
  • TCP/UDP protocol selection
  • Real-time bandwidth monitoring
  • Test history and statistics

Latency Testing Page

  • Comprehensive test configuration
  • Multiple test types (UDP/TCP/HTTP)
  • Statistical analysis
  • Jitter and packet loss metrics

Channel Analysis Page

  • Spectrum visualization
  • Per-channel congestion display
  • AI-powered recommendations
  • Interference analysis

🛠 Technical Implementation

Web Server

  • web_server.h/.cpp (2000+ lines of code)
  • HTML5/CSS3 with responsive design
  • Minimal JavaScript (progress indicators only)
  • ESP32 Arduino WebServer library

Performance

  • ESP32dev: Flash 77.7% (1,018,701 bytes), RAM 15.8%
  • Feather S3 TFT: Flash 75.3% (1,085,961 bytes), RAM 19.1%
  • Page load: <50ms
  • Animations: 60fps
  • Multi-client support

Design

  • 90+ lines of CSS (dropdowns + progress)
  • Gradient theme: #667eea → #764ba2
  • Card-based layouts
  • Smooth hover animations

🚀 Command Interface

# Web Server Commands
webserver start     # Launch web interface
webserver stop      # Stop web server
webserver status    # Get access URL

# Access via browser at:
# http://<device-ip>

📚 Documentation

New Documentation

Documentation Cleanup

  • Consolidated 14 redundant files into organized structure
  • Created docs/user-guides/ for user documentation
  • Created docs/archive/ for historical files
  • Updated README.md with web interface section

🎯 Use Cases

  1. Browser-Based Control: Access all features without terminal
  2. Mobile Management: Configure from smartphones
  3. Guest WiFi Sharing: Display QR code for instant connection
  4. Remote Monitoring: Check status from any network device
  5. Professional Demos: Impress with polished web interface
  6. IoT Deployment: Simplified device onboarding
  7. Event Setup: Easy network sharing at conferences

📦 Hardware Support

ESP32 Development Board

  • ✅ All core features
  • ✅ Web interface
  • ✅ QR code generation
  • Flash: 77.7%, RAM: 15.8%

Adafruit Feather ESP32-S3 TFT

  • ✅ All core features
  • ✅ Web interface
  • ✅ QR code generation
  • ✅ NeoPixel status display
  • Flash: 75.3%, RAM: 19.1%

🔧 Installation

Download Firmware

Choose the firmware for your board:

  • ESP32dev: esp32-wifi-utility-esp32dev-v3.0.0.bin
  • Feather ESP32-S3 TFT: esp32-wifi-utility-feather-s3-tft-v3.0.0.bin

Flash Firmware

# Using esptool
pip install esptool
esptool.py --port /dev/ttyUSB0 write_flash 0x10000 firmware.bin

# Or use PlatformIO
pio run --target upload --environment esp32dev

Quick Start

# Connect via serial at 115200 baud
help                    # Show all commands
mode ap                 # Start access point
webserver start         # Launch web interface
# Open browser to http://<device-ip>

🎨 Browser Compatibility

Desktop

  • Chrome, Firefox, Edge, Safari
  • All modern browsers supported

Mobile

  • iOS Safari, Chrome
  • Android Chrome, Firefox, Edge
  • Responsive touch-optimized interface

QR Scanning

  • iOS Camera app (native WiFi QR support)
  • Android Camera app
  • Any QR code scanner app

📊 Previous Features (Still Included)

All features from v2.1.0 remain available:

  • ✅ Professional WiFi Channel Analysis (AI-powered scoring)
  • ✅ Network Performance Testing (iPerf TCP/UDP)
  • ✅ Advanced Scanning & Interference Detection
  • ✅ Access Point Management
  • ✅ Interactive Command Interface (15+ commands)
  • ✅ NeoPixel Status Display (Feather board)
  • ✅ Comprehensive Test Framework

🔗 Resources


🙏 Credits

Built with:

  • ESP32 Arduino Framework
  • QRCode Library (ricmoo/QRCode)
  • Adafruit NeoPixel Library
  • PlatformIO Build System

🤖 This is an automated release created from version bump to v3.0.0

Build Date: 2025-10-16
Commit: {{ github.sha }}

ESP32 WiFi Utility v2.1.0

15 Oct 16:06

Choose a tag to compare

ESP32 WiFi Utility v2.1.0 Release Notes

🚀 What's New in v2.1.0

Enhanced professional-grade ESP32 WiFi Utility with improved initialization flow, device detection, and GitHub Actions automation.

✨ Key Enhancements

Enhanced User Experience

  • Clean Initialization Flow: All initialization messages display before interactive prompt
  • Professional Startup Sequence: Improved showInitialPrompt() for better user experience
  • Graceful Reset System: reset/restart commands with proper service shutdown
  • Enhanced Help System: Contextual command guidance and detailed descriptions

Improved Development Workflow

  • Enhanced Device Detection: Smart USB/ACM port configuration for ESP32dev and Feather boards
  • Fixed GitHub Actions: Resolved firmware file handling for automated releases
  • Comprehensive Build Verification: File existence and size validation before releases
  • Streamlined Documentation: Cleaned up changelog and organized structure

Technical Improvements

  • Memory Optimization: Continued efficiency improvements across both platforms
  • Enhanced Build System: Better port detection and upload reliability
  • Professional Command Interface: Improved parsing with progress indicators

📊 Performance Metrics

  • ESP32dev: 77.7% Flash (1018KB), 15.8% RAM (52KB)
  • Feather ESP32-S3: 68.8% Flash (992KB), 19.1% RAM (62KB)
  • Analysis Speed: Quick channel scan <5s, detailed analysis <30s
  • Command Response: <50ms processing with 99.5% reliability

🎯 Complete Feature Suite

Professional Channel Analysis System

  • Real-time Spectrum Analysis: Complete 2.4GHz band scanning (channels 1-14)
  • AI-Powered Congestion Scoring: Advanced 0-100% interference detection
  • Smart Recommendations: Automated optimal channel selection with detailed rationale
  • Background Monitoring: Configurable monitoring intervals (1-60 seconds)
  • Mathematical Interference Modeling: Advanced overlap detection and optimization

Network Performance Testing Suite

  • Comprehensive Latency Analysis: Professional ping-style testing with statistical analysis
  • Jitter & Packet Loss Detection: Real-time quality assessment with performance scoring
  • iPerf Integration: Enhanced throughput testing with background task management
  • Network Quality Assessment: Historical tracking and trend analysis

Dual-Board Hardware Support

  • ESP32 Development Board: Full feature set with standard LED control
  • Adafruit Feather ESP32-S3 TFT: Enhanced with NeoPixel RGB integration
  • Automatic Device Detection: Smart port configuration for reliable uploads
  • Conditional Compilation: Hardware-specific optimizations using USE_NEOPIXEL flag

🔧 Installation & Usage

Quick Start

  1. ESP32dev: pio run -e esp32dev -t upload
  2. Feather ESP32-S3: pio run -e adafruit_feather_esp32s3_tft -t upload
  3. Connect: Serial terminal at 115200 baud
  4. Begin: Type help for complete command reference

Essential Commands

# Channel Analysis
channel scan           # Professional spectrum analysis  
channel recommend      # AI-powered channel suggestions
channel monitor start  # Background monitoring

# Network Testing  
latency test          # Network performance analysis
jitter                # Quick jitter assessment
iperf status          # Throughput testing status

# System Control
reset                 # Graceful device restart
status                # Current system status  
help                  # Comprehensive command help

Available Firmware Files

  1. esp32-wifi-utility-esp32dev-v2.1.0.bin - ESP32dev production firmware
  2. esp32-wifi-utility-esp32dev-debug-v2.1.0.elf - ESP32dev debug symbols
  3. esp32-wifi-utility-feather-s3-tft-v2.1.0.bin - Feather ESP32-S3 production firmware
  4. esp32-wifi-utility-feather-s3-tft-debug-v2.1.0.elf - Feather ESP32-S3 debug symbols

📚 Documentation & Resources

🔄 Migration from v2.0.0

Version 2.1.0 is fully backward compatible with v2.0.0. Simply flash the new firmware - no configuration changes required.

New Features You Can Use

  • Try the new reset command for graceful device restart
  • Experience the improved initialization flow on startup
  • Benefit from enhanced device detection for more reliable uploads

🎉 Version 2.1.0 represents continued evolution of the ESP32 WiFi Utility with enhanced user experience, improved reliability, and professional-grade features for network analysis and performance testing.

ESP32 WiFi Utility v1

14 Oct 03:54

Choose a tag to compare

ESP32 WiFi Utility v1 Pre-release
Pre-release

ESP32 WiFi Utility Release

🚀 Features

  • ✅ Enhanced WiFi scanning with visual indicators and signal quality analysis
  • ✅ Complete iPerf network performance testing (TCP/UDP client/server modes)
  • ✅ Access Point management with QR code generation for easy mobile connection
  • ✅ Interactive command interface with real-time feedback and status indicators
  • ✅ Comprehensive documentation and 17+ unit tests for quality assurance

📊 Technical Specifications

  • Flash Usage: 61.4% (805KB) - Optimized for ESP32 with room for expansion
  • RAM Usage: 13.9% (45KB) - Efficient memory utilization
  • Features: Enhanced scanning, iPerf testing, AP management, QR codes
  • Testing: 17+ comprehensive unit tests with hardware-in-loop validation

🔧 Build Information

  • Commit: 505a293
  • Build Date: 2025-10-14 03:53:59 UTC
  • Build Number: 3
  • Version:

📦 Installation Instructions

  1. Download: Get the esp32-wifi-utility-v.bin file below
  2. Flash: Use esptool, Arduino IDE, or your preferred ESP32 flashing method
  3. Connect: Serial connection at 115200 baud rate
  4. Start: Type help for complete command reference

🎯 Quick Start Commands

mode station          # Switch to WiFi scanning mode
scan now             # Perform enhanced network scan
mode ap              # Start access point with QR code
iperf status         # Check network performance testing
help                 # Show all available commands

📚 Documentation

See README.md for complete usage instructions, examples, and troubleshooting.

New in this release: Professional CI/CD pipeline with automated builds, security scanning, and quality assurance.