Skip to content

Project Statistics

Arunkumar Mourougappane edited this page Oct 25, 2025 · 2 revisions

Project Statistics

Development metrics and statistics for ESP32 WiFi Utility v4.2.0.

Code Metrics

Source Code

Total Lines of Code: 10,427 lines

File Breakdown:

  • Source Files (.cpp): 15 files
  • Header Files (.h): 15 files
  • Total Files: 30 files

Lines by Category:

Source Implementation: ~6,500 lines
Header Declarations:   ~2,000 lines
Documentation:         ~1,500 lines
Comments:             ~400 lines

Module Sizes

Module Files Lines Purpose
WiFi Manager 2 ~800 Core WiFi functionality
Web Server 2 ~2,100 HTTP server and pages
Configuration 4 ~900 AP/Station config persistence
Channel Analysis 2 ~650 Spectrum analysis
Latency Testing 2 ~550 Network latency measurement
iPerf Integration 2 ~700 Throughput testing
Command Interface 2 ~1,200 Serial command processor
Performance Monitor 2 ~450 Performance tracking
Error Handling 2 ~400 Result error system
Logging System 2 ~500 Structured logging
LED Controller 2 ~350 Status indication
Utilities 6 ~1,827 Base64, config, misc

Documentation

Project Documentation:

  • README.md: 1,683 lines
  • CHANGELOG.md: 500+ lines
  • Technical docs: 3,000+ lines
  • Code comments: 400+ lines

Wiki Pages:

  • Quick Start Guide: 200+ lines
  • Installation Guide: 500+ lines
  • Command Reference: 800+ lines
  • Configuration Guides: 700+ lines
  • WiFi Scanning & Analysis: 400+ lines
  • Channel Analysis: 500+ lines
  • Performance Testing: 650+ lines
  • API Reference: 800+ lines
  • Development Guide: 700+ lines
  • Migration Guide: 600+ lines
  • FAQ: 600+ lines
  • Troubleshooting: 700+ lines
  • Total Wiki: 7,150+ lines

Total Documentation: ~13,000 lines (more than the code!)


Build Statistics

Firmware Sizes

ESP32dev Environment:

RAM:   [===       ]  28.4% (used 93124 bytes from 327680 bytes)
Flash: [====      ]  43.2% (used 1412337 bytes from 3276800 bytes)

Feather ESP32-S3 TFT:

RAM:   [===       ]  27.8% (used 91124 bytes from 327680 bytes)
Flash: [====      ]  42.9% (used 1405841 bytes from 3276800 bytes)

Feather ESP32-S3 Reverse TFT:

RAM:   [===       ]  27.8% (used 91124 bytes from 327680 bytes)
Flash: [====      ]  42.9% (used 1405841 bytes from 3276800 bytes)

Library Dependencies

External Libraries:

  • QRCode v0.0.1 (ricmoo/QRCode)
  • Adafruit NeoPixel v1.12.0+
  • AsyncUDP (built-in ESP32)

Framework:

  • Arduino ESP32 Core v2.0.0+
  • ESP-IDF v4.4+

Total Dependency Size: ~500 KB


Runtime Performance

Memory Usage

Typical Operation:

  • Free Heap: 180-230 KB
  • Used Heap: 100-150 KB
  • Largest Block: 110-180 KB
  • Total Heap: ~330 KB

Memory by Feature:

Web Server:         ~40 KB
WiFi Stack:         ~30 KB
Scan Results:       ~15 KB
Configuration:      ~5 KB
Command Buffer:     ~2 KB
LED Controller:     ~1 KB
Other:             ~7-57 KB (varies)

Peak Usage Scenarios:

  • Web server + scan: ~150 KB
  • Channel analysis: ~130 KB
  • iPerf test: ~140 KB

Timing Performance

Operation Times:

Operation Average Min Max
WiFi Scan 1,235ms 1,104ms 1,458ms
Channel Analysis (quick) 1,400ms 1,250ms 1,650ms
Channel Analysis (detailed) 3,421ms 3,102ms 3,895ms
Web Page Load 250ms 180ms 450ms
Config Save (NVS) 85ms 65ms 120ms
Config Load (NVS) 45ms 35ms 70ms
Command Processing 8ms 2ms 25ms
LED Update 16ms 14ms 18ms

CPU Utilization:

  • Idle: 5-10%
  • Normal Operation: 15-25%
  • Scanning: 40-60%
  • Web Serving: 30-50%
  • iPerf Test: 70-85%

Feature Comparison

v4.2.0 vs v4.1.0

Feature v4.1.0 v4.2.0 Change
Architecture FreeRTOS Loop-based Simplified
Configuration Persistence ❌ None βœ… NVS Storage NEW
Web Configuration ❌ View-only βœ… Full CRUD Enhanced
Mode Switching Requires reboot βœ… Instant (2s) NEW
Password Security N/A βœ… Base64 encoding NEW
Responsive UI Basic βœ… Mobile-optimized Enhanced
Code Complexity High (RTOS) Low (direct) Reduced
Lines of Code ~11,500 ~10,400 -9.6%
Memory Usage Similar Similar Stable
Stability Good βœ… Excellent Improved

Feature Completeness

Core Features:

  • βœ… WiFi Mode Switching (Station, AP, Idle)
  • βœ… Network Scanning (On-demand, Continuous)
  • βœ… Network Connection Management
  • βœ… Access Point Hosting
  • βœ… Configuration Persistence (AP, Station)
  • βœ… Web Configuration Interface
  • βœ… Serial Command Interface

Analysis Tools:

  • βœ… Channel Spectrum Analysis
  • βœ… Network Congestion Detection
  • βœ… Interference Analysis
  • βœ… AI Channel Recommendations
  • βœ… Signal Strength Monitoring
  • βœ… Network Quality Assessment

Performance Testing:

  • βœ… Latency Testing (TCP-based)
  • βœ… Jitter Measurement
  • βœ… Packet Loss Detection
  • βœ… iPerf3 Integration (Server/Client)
  • βœ… Throughput Measurement (TCP/UDP)
  • βœ… Quality Grading System

System Features:

  • βœ… NeoPixel RGB LED Status
  • βœ… QR Code Generation
  • βœ… Performance Monitoring
  • βœ… Structured Logging
  • βœ… Error Handling (Result)
  • βœ… Memory Management
  • βœ… Multi-board Support

Total Features: 30+ complete features


Development Timeline

Version History

v4.2.0 (Current)

  • Configuration persistence system
  • Web configuration management
  • Instant mode switching
  • Responsive UI enhancements
  • Architecture simplification
  • Development Time: 3 weeks
  • Release: January 2024

v4.1.0

  • FreeRTOS architecture (now removed)
  • Task-based design
  • LED controller enhancements
  • Performance improvements
  • Development Time: 4 weeks
  • Release: December 2023

v4.0.0

  • Tri-board support
  • Web interface foundation
  • Channel analysis
  • Latency testing
  • Development Time: 6 weeks
  • Release: November 2023

v3.x and Earlier

  • Basic WiFi management
  • Serial commands
  • Network scanning
  • Total Development: Multiple months

Development Effort

Total Development Time: ~4 months

Effort Breakdown:

Core WiFi:              ~40 hours
Web Interface:          ~60 hours
Configuration System:   ~30 hours
Analysis Tools:         ~50 hours
Performance Testing:    ~40 hours
Documentation:          ~70 hours
Testing & Debugging:    ~90 hours
Refactoring (v4.2.0):   ~40 hours
─────────────────────────────────
Total:                 ~420 hours

Code Quality:

  • Unit testing framework: In development
  • Integration tests: Manual
  • Code reviews: Self-reviewed
  • Documentation coverage: 100%

Supported Platforms

Hardware

ESP32 Variants:

  • ESP32 (original)
  • ESP32-S3
  • ESP32-C3 (untested, may work)

Development Boards:

  • Generic ESP32dev
  • Adafruit Feather ESP32-S3 TFT
  • Adafruit Feather ESP32-S3 Reverse TFT
  • Compatible with most ESP32 boards

Software

Build Systems:

  • PlatformIO (primary)
  • Arduino IDE (supported)

Operating Systems:

  • Linux (primary development)
  • Windows (supported)
  • macOS (supported)

Frameworks:

  • Arduino Framework v2.0.0+
  • ESP-IDF v4.4+ (via Arduino)

Usage Statistics

Command Usage (Estimated)

Most Used Commands:

  1. scan - Network scanning
  2. status - System status check
  3. connect - WiFi connection
  4. mode - Mode switching
  5. help - Command reference

Configuration Commands:

  1. config ap save - Save AP settings
  2. config station save - Save WiFi credentials
  3. config show - View configuration

Analysis Commands:

  1. channel recommend - Channel analysis
  2. latency test - Latency testing
  3. channel scan - Quick channel scan

Web Interface Pages

Most Accessed Pages:

  1. / - Home/Status (entry point)
  2. /scan - Network scanning
  3. /config - Configuration (NEW in v4.2.0)
  4. /channel - Channel analysis
  5. /latency - Latency testing

Feature Usage:

  • Configuration management: High
  • Mode switching: High
  • Network scanning: Very High
  • Channel analysis: Medium
  • Performance testing: Medium

Project Health

Code Quality Metrics

Maintainability:

  • Modular architecture: βœ… Excellent
  • Code organization: βœ… Clear separation of concerns
  • Documentation: βœ… Comprehensive
  • Comments: βœ… Well-commented
  • Naming: βœ… Consistent and descriptive

Reliability:

  • Error handling: βœ… Result system
  • Memory management: βœ… No known leaks
  • Crash recovery: βœ… Graceful degradation
  • Configuration: βœ… Persistent storage

Performance:

  • Response time: βœ… <10ms command processing
  • Memory efficiency: βœ… ~70% free heap
  • CPU usage: βœ… <25% typical
  • Network: βœ… 10-20 Mbps throughput

Known Limitations

Hardware:

  • 2.4GHz WiFi only (ESP32 limitation)
  • ~4 concurrent web clients (memory constraint)
  • Limited to ESP32 platform

Features:

  • TFT display support not implemented
  • Unit test framework incomplete
  • No OTA (Over-The-Air) updates yet

Performance:

  • TCP throughput: 10-20 Mbps (ESP32 limitation)
  • Web page size limited by memory
  • Scan limited to 20 networks (configurable)

Future Roadmap

Planned Features

Near-term (v4.3.0):

  • TFT display support for Feather boards
  • OTA firmware updates
  • Enhanced QR code (on-screen display)
  • Extended iPerf statistics

Mid-term (v5.0.0):

  • BLE configuration support
  • MQTT integration
  • Cloud connectivity
  • Advanced network diagnostics

Long-term:

  • Multi-language support
  • Custom dashboard widgets
  • Plugin architecture
  • REST API expansion

Improvement Areas

Code:

  • Complete unit test coverage
  • Automated integration tests
  • CI/CD pipeline enhancement
  • Code coverage metrics

Documentation:

  • Video tutorials
  • Interactive demos
  • Example projects
  • Community contributions

Features:

  • More board support
  • Additional protocols
  • Enhanced visualizations
  • Data export capabilities

Community

Contributors

Project Lead: Arunkumar Mourougappane

Contributions Welcome:

  • Bug reports
  • Feature requests
  • Code contributions
  • Documentation improvements
  • Testing on different boards

License

MIT License

  • Free for personal and commercial use
  • Modification and distribution allowed
  • No warranty provided

Repository Statistics

GitHub:

  • Stars: Growing
  • Forks: Open to contributions
  • Issues: Actively maintained
  • Pull Requests: Welcome

Comparison with Similar Projects

ESP32 WiFi Tools

Feature This Project Typical ESP32 WiFi Example Advanced Alternative
Configuration Persistence βœ… NVS + Base64 ❌ Hardcoded βœ… Web-based
Web Interface βœ… Full-featured ⚠️ Basic βœ… Advanced
Channel Analysis βœ… AI recommendations ❌ None ⚠️ Basic
Performance Testing βœ… Latency + iPerf ❌ None ⚠️ Limited
Multi-board Support βœ… 3 boards ⚠️ Generic ⚠️ 1-2 boards
Documentation βœ… 13,000+ lines ⚠️ README only βœ… Good
Code Quality βœ… Modern C++ ⚠️ Basic βœ… Professional
Ease of Use βœ… Excellent ⚠️ Requires modification βœ… Good

Unique Advantages:

  • Comprehensive WiFi analysis toolkit
  • Professional-grade code organization
  • Extensive documentation
  • Instant mode switching
  • Configuration persistence
  • Base64 password security

Acknowledgments

Technologies Used

Frameworks:

  • Arduino Framework
  • ESP-IDF
  • PlatformIO

Libraries:

  • QRCode by ricmoo
  • Adafruit NeoPixel
  • ESP32 WebServer

Tools:

  • VS Code
  • PlatformIO IDE
  • Git

Inspiration

Built for embedded developers, network engineers, and IoT enthusiasts who need professional WiFi analysis and management capabilities on ESP32 platforms.


Version: 4.2.0
Last Updated: January 2024
Status: βœ… Active Development


← Back to Home | View on GitHub β†’

πŸ“‘ ESP32 WiFi Utility

🏠 Main

πŸ“¦ Setup

βš™οΈ Configuration

πŸ“Š Features

πŸ’» Development

πŸ†˜ Support

πŸ”— Links


Version: 4.2.0
License: MIT

Clone this wiki locally