Skip to content

Add Antenna Signal Quality Metrics UI to Experimental Menu#72

Open
clndwhr wants to merge 3 commits intodr-dolomite:developmentfrom
clndwhr:feature/antenna-signal-quality
Open

Add Antenna Signal Quality Metrics UI to Experimental Menu#72
clndwhr wants to merge 3 commits intodr-dolomite:developmentfrom
clndwhr:feature/antenna-signal-quality

Conversation

@clndwhr
Copy link
Copy Markdown
Contributor

@clndwhr clndwhr commented Mar 12, 2026

🔢 Add Antenna Signal Quality Metrics UI to Experimental Menu

Summary

Implemented a new Antenna Insights page in the experimental menu that provides detailed per-antenna signal quality metrics with real-time monitoring and visual feedback to help users optimize their cellular antenna positioning.

✨ Features Added

Individual Antenna Monitoring

  • Per-antenna signal metrics for up to 4 antennas:
    • Main Antenna
    • Diverse Antenna
    • MIMO 1
    • MIMO 2
  • Real-time data updates every 2 seconds from AT commands
  • Color-coded progress bars with quality indicators ranging from excellent (blue) to poor (red)

Signal Quality Metrics

  • RSRP (Reference Signal Received Power) - measures signal strength
  • RSRQ (Reference Signal Received Quality) - measures signal quality
  • SINR (Signal-to-Interference-plus-Noise Ratio) - measures interference levels
  • Band type detection with differentiated calculations for LTE vs 5G networks

Visual Enhancements

  • Responsive grid layout adapting from 1 column on mobile to 4 columns on desktop
  • Progress bars with percentage calculations based on industry-standard signal ranges
  • Band type indicators showing LTE/NR5G information
  • Clean card-based UI with proper dark mode support

User Guidance

  • Step-by-step antenna alignment strategy with numbered instructions:
    1. Start with RSRP optimization (-70 to -80 dBm target)
    2. Verify RSRQ stays above -15 dB
    3. Check SINR improvement (≥13 dB target)
    4. Fine-tune for optimal balance

🛠️ Technical Implementation

Backend Integration

  • Utilizes existing fetch_data?set=5 endpoint

Frontend Components

  • New app/dashboard/experimental/antenna-insights/page.tsx route
  • Reusable SignalQualityComponent with:
    • Real-time WebSocket-like polling
    • Signal percentage calculations
    • Responsive design patterns
  • Updated experimental layout navigation

Signal Processing

  • Enhanced utils/signalMetrics.ts utility with:
    • Band-type aware percentage calculations
    • Separate ranges for LTE vs 5G SINR values
    • Proper signal clamping and validation

📱 User Experience

  • Access via Dashboard → Experimental → Antenna Insights
  • Immediate visual feedback on antenna performance
  • Professional guidance for antenna optimization
  • No-signal state handling with graceful fallbacks

🎯 Use Cases

  • Antenna installation - optimize positioning during setup
  • Troubleshooting - identify which specific antennas have poor signal
  • Performance monitoring - track signal quality over time
  • Network optimization - understand MIMO performance characteristics

🧪 Testing Notes

  • Located in experimental menu as this is advanced functionality
  • Real-time updates require active cellular connection
  • Handles edge cases like missing AT command responses
  • Responsive across mobile, tablet, and desktop viewports

This feature provides QuecManager users with professional-grade antenna diagnostics previously only available through complex AT command interfaces, making cellular optimization accessible to all users.

Copilot AI review requested due to automatic review settings March 12, 2026 20:35
@clndwhr clndwhr marked this pull request as draft March 12, 2026 20:37
@clndwhr clndwhr changed the base branch from main to development March 12, 2026 20:38
@clndwhr clndwhr marked this pull request as ready for review March 12, 2026 20:38
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR adds an Antenna Insights page under the Experimental menu to display per-antenna cellular signal metrics (RSRP/RSRQ/SINR) with band-aware percentage calculations, but it also includes several additional system/UI features (auth verification, bandwidth monitoring toggle, TTL persistence, ethernet link limiting) and a toolchain/dependency update.

Changes:

  • Add Antenna Insights experimental route and a new signal-quality UI component that polls AT command data.
  • Extend signal metric percentage calculations to differentiate LTE vs 5G SINR.
  • Add/adjust multiple device services & settings scripts (QuecWatch events → Network Insights, bandwidth monitoring settings, TTL persistence, ethernet link speed limit, auth verification) and update dependencies/tooling.

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
utils/signalMetrics.ts Updates signal percentage ranges and adds band-type-aware SINR calculation.
tsconfig.json Switches JSX transform and expands Next type include paths.
scripts/cgi-bin/services/quecwatch.sh Adds centralized logging constants, CFUN-based recovery, and QuecWatch event logging for Network Insights.
scripts/cgi-bin/services/network_insights_interpreter.sh Adds processing of QuecWatch events into interpreted network insights.
scripts/cgi-bin/quecmanager/settings/bandwidth_settings.sh New CGI endpoint to enable/disable bandwidth monitoring via UCI and service management.
scripts/cgi-bin/quecmanager/experimental/quecwatch/fetch-quecwatch.sh Switches “last activity” source from legacy log file to status JSON.
scripts/cgi-bin/quecmanager/cell-settings/imei_manager.sh New helper CGI to store/retrieve previous IMEI in UCI.
scripts/cgi-bin/quecmanager/auth_verify.sh New backend token verification CGI used by ProtectedRoute.
scripts/cgi-bin/quecmanager/advance/ttl.sh Adds separate IPv6 HL support and boot persistence via init script.
scripts/cgi-bin/quecmanager/advance/eth_link_limit.sh New CGI endpoint to cap ethernet link negotiation via ethtool with persistence.
postcss.config.mjs Formatting-only change.
package.json Renames package, switches dev/build/start to Bun, upgrades dependencies, adjusts overrides.
components/ui/chart.tsx Broadens tooltip/legend prop typing for compatibility with updated recharts types.
components/theme-provider.tsx Fixes ThemeProviderProps import path for next-themes.
components/settings/ethernet-link-limit-card.tsx New UI card to configure ethernet link speed limit.
components/seasonal/christmas-greeting.tsx Adds a seasonal greeting dialog shown on Dec 25.
components/pages/signal-quality.tsx New antenna signal UI (polling + per-antenna bars + guidance).
components/pages/dns-card.tsx Tracks initial DNS mode and refines Save button disabled logic.
components/home/ethernet-card.tsx Adds short description text to ethernet info card.
components/home/bandwidth-monitor-card.tsx Adds enabled/disabled state (settings-driven) and a disabled UI state.
components/hoc/protected-route.tsx Adds backend auth token verification before rendering protected content.
bun.lock Adds Bun lockfile for dependency resolution.
app/dashboard/settings/personalization/page.tsx Adds UI controls to toggle live bandwidth monitoring.
app/dashboard/layout.tsx Mounts ChristmasGreeting globally in the dashboard layout.
app/dashboard/experimental/layout.tsx Adds navigation link to Antenna Insights.
app/dashboard/experimental/antenna-insights/page.tsx New Antenna Insights page that renders the signal-quality component.
app/dashboard/cell-settings/imei-settings/page.tsx Adds restore-previous-IMEI flow + dialog and stores previous IMEI before changes.
app/dashboard/advanced-settings/ttl-settings/page.tsx Adds HL value + “sync HL with TTL” UI and POSTs ttl+hl.
app/dashboard/advanced-settings/connectivity/page.tsx Adds EthernetLinkLimitCard to connectivity settings page.
README.md Updates dev prerequisites and adds Bun-based setup instructions.
CHANGELOG.md Updates changelog version and lists new features added.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants