-
Notifications
You must be signed in to change notification settings - Fork 0
feat: Add conditional compilation and NeoPixel status display for Fea… #2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
arunkumar-mourougappane
merged 1 commit into
main
from
add-adafruit-esp32-s3-tft-feather-support
Oct 15, 2025
Merged
feat: Add conditional compilation and NeoPixel status display for Fea… #2
arunkumar-mourougappane
merged 1 commit into
main
from
add-adafruit-esp32-s3-tft-feather-support
Oct 15, 2025
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
…ther ESP32-S3 TFT ✨ New Features: - Conditional compilation support with USE_NEOPIXEL flag - NeoPixel LED status display for Adafruit Feather ESP32-S3 TFT board - Rich color-coded status indication for WiFi operations - Smooth breathing and blinking animations - Real-time connection progress feedback 🔧 Technical Implementation: - Pin 33 NeoPixel configuration for Feather board - Non-blocking animations with smooth transitions - Interactive command feedback (scan on/off, mode changes) - Connection status visualization (connecting, success, failure) 📝 Updated Components: - platformio.ini: Added NeoPixel environment and library dependency - config.h: Added NeoPixel pin configuration with conditional compilation - led_controller: Complete NeoPixel implementation with fallback to standard LED - wifi_manager: Added connection status feedback for NeoPixel display - command_interface: Added scan command visual feedback - manual-release.yml: Updated workflow for dual-board releases 📊 Memory Usage: - ESP32 Dev: 45,496 bytes RAM (13.9%), 805,077 bytes Flash (61.4%) - Feather S3 TFT: 57,200 bytes RAM (17.5%), 783,093 bytes Flash (54.3%) 📚 Documentation: - Added NEOPIXEL_GUIDE.md with comprehensive usage instructions - Updated release workflow to support both board variants - Enhanced release notes with hardware-specific information 🎯 Compatibility: - Standard ESP32 boards: Unchanged functionality (no code bloat) - Feather ESP32-S3 TFT: Enhanced with NeoPixel visual feedback - Conditional compilation ensures clean separation of features
📊 Build Size Analysis
Analysis
This analysis helps maintain optimal memory usage across code changes. |
arunkumar-mourougappane
added a commit
that referenced
this pull request
Oct 17, 2025
Added comprehensive network details page accessible by clicking on scan results. Features Implemented: ✅ Clickable Network List Items (Acceptance Criteria #1): - Each network item in scan results is now clickable - Clicking navigates to /scan/details?id=<network_index> - Added visual feedback on hover (background color change) - Mobile-friendly touch targets with inline onclick handlers ✅ Network Details Page (Acceptance Criteria #2): - New route handler handleScanDetails() at /scan/details - Back navigation button to return to scan results - Graceful error handling for invalid/missing network IDs - Scan results cached in memory to avoid re-scanning ✅ Information Display (Acceptance Criteria #3): Basic Network Information: - Network Name (SSID) with special handling for hidden networks - MAC Address (BSSID) formatted as XX:XX:XX:XX:XX:XX - Handles missing BSSID gracefully Signal Information: - RSSI displayed in dBm - Signal Quality calculated as percentage with 8-level descriptive scale: * 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 indicators with emoji icons - Color-coded quality bar (green/yellow/orange/red) Channel Information: - Channel number with frequency band (2.4GHz or 5GHz) - Channel congestion analysis: Clear/Light/Moderate/Heavy/Severe - Counts networks on same channel with color-coded indicators Security Information: - Encryption type with icons for all 9 WiFi auth modes: * Open, WEP, WPA, WPA2, WPA/WPA2, WPA2 Enterprise, WPA3, WPA2/WPA3, WAPI - Security level assessment (None/Weak/Moderate/Good/Excellent) - Color-coded security ratings - Security warnings for open and WEP networks Connection Analysis/Recommendations: - Automated recommendations based on signal strength - Security assessment warnings - Channel congestion impact analysis - Clear ✅/⚠️ /❌ indicators for quick evaluation ✅ UI/UX Requirements (Acceptance Criteria #4): - Consistent purple gradient theme matching existing interface - Responsive design with proper spacing - Card-based layout with background colors for sections - Emoji icons throughout for visual recognition - Clean section-based information hierarchy ✅ Performance & Memory (Acceptance Criteria #5): - Scan result caching structure (CachedScanResult) - Supports up to 50 cached networks - 5-minute cache timeout (300000ms) - Uses PROGMEM and F() macro for static strings - Pre-allocated String buffers (html.reserve(8192)) - Cache validation before displaying details - Memory-efficient: Flash 83.1% (was 82.4%), RAM 16.4% (was 15.8%) ✅ Navigation & Accessibility (Acceptance Criteria #6): - Back to Scan Results button with absolute positioning - Breadcrumb-style navigation structure - Clickable entire network row (not just text) - Inline hover effects for visual feedback ✅ Edge Cases & Error Handling (Acceptance Criteria #7): - Cache expiration check with redirect to /scan - Invalid network ID validation with redirect - Out of bounds index checking - Missing BSSID handling with "Not Available" message - Hidden network SSID display as "<Hidden Network>" Technical Implementation: Data Structures: - CachedScanResult struct stores SSID, RSSI, channel, encryption, BSSID - Static array cachedNetworks[50] for result storage - lastScanTime timestamp for cache invalidation - isCacheValid() function checks timeout Route Registration: - Added /scan/details route in startWebServer() - handleScanDetails() function declaration in web_server.h Scan Page Modifications: - Modified handleScan() to cache results after scan - Made network list items clickable with onclick handlers - Added hover effects with inline onmouseover/onmouseout - Removed WiFi.scanDelete() to preserve results - Added hint text: "💡 Click on any network to view detailed information" - Hidden network handling in scan list Memory Optimization: - All static HTML strings use F() macro - Color values and descriptions stored efficiently - Switch statement for encryption type mapping - Minimal string concatenation with pre-allocation Build Results: ✅ ESP32dev: Flash 83.1% (1,088,625 bytes), RAM 16.4% (53,692 bytes) ✅ Feather ESP32-S3: Flash 71.9% (1,036,493 bytes), RAM 16.0% (52,496 bytes) Testing Checklist Progress: ✅ Builds successfully on both ESP32dev and Feather boards ✅ All encryption types handled with proper icons and descriptions ✅ Signal quality calculation matches acceptance criteria ranges ✅ Channel congestion correctly counts networks ✅ Back navigation implemented ✅ Invalid network ID redirects to scan page ✅ Memory usage within acceptable limits (< 85% flash, < 20% RAM) This implementation fully addresses Issue #10 acceptance criteria with a professional, user-friendly interface for viewing detailed WiFi network information.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
…ther ESP32-S3 TFT
✨ New Features:
🔧 Technical Implementation:
📝 Updated Components:
📊 Memory Usage:
📚 Documentation:
🎯 Compatibility: