-
-
Notifications
You must be signed in to change notification settings - Fork 2k
BaseUI: Favorite Screen Signal Quality improvement #9566
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
base: develop
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
Updates the Favorite Node Info screen UI to present signal quality as a qualitative grade with bar graphics (instead of a percent), replaces the hops label with an icon, and adjusts row layout/formatting to fit more node details.
Changes:
- Add a new hop icon bitmap for use in UI rendering.
- Revise Favorite Node Info rendering to show signal grade + bars and render hops as
[count + hop icon]. - Change uptime formatting behavior (prefix now controls punctuation/spacing) and tighten several on-screen strings to save space.
Reviewed changes
Copilot reviewed 4 out of 4 changed files in this pull request and generated 3 comments.
| File | Description |
|---|---|
src/graphics/images.h |
Adds a hop icon bitmap and dimensions for UI use. |
src/graphics/draw/UIRenderer.cpp |
Implements new signal-quality grading + bar rendering and hops icon drawing on Favorite Node screens; adjusts several compact UI strings and adds a battery line. |
src/graphics/draw/DebugRenderer.cpp |
Updates uptime prefix passed to getUptimeStr() to match new formatting expectations. |
src/graphics/TimeFormatters.cpp |
Changes getUptimeStr() to no longer auto-insert ": " after the prefix. |
Comments suppressed due to low confidence (1)
src/graphics/draw/UIRenderer.cpp:1197
- After changing
getUptimeStr()to no longer auto-insert": ", this call passes the prefix as"Last"(no colon/space). That will render asLast5m 10setc. Update the prefix to include the desired punctuation/spacing (e.g."Last:"or"Last: ") for consistency with the other branch and the fallback string"Last: ?".
#else
// Non E-Ink: include seconds where useful
getUptimeStr(delta, "Last", uptimeStr, sizeof(uptimeStr), true);
#endif
| // Helper to get SNR limit based on modem preset | ||
| auto getSnrLimit = [](meshtastic_Config_LoRaConfig_ModemPreset preset) -> float { | ||
| switch (preset) { | ||
| case meshtastic_Config_LoRaConfig_ModemPreset_LONG_SLOW: | ||
| case meshtastic_Config_LoRaConfig_ModemPreset_LONG_MODERATE: | ||
| case meshtastic_Config_LoRaConfig_ModemPreset_LONG_FAST: | ||
| return -6.0f; | ||
| case meshtastic_Config_LoRaConfig_ModemPreset_MEDIUM_SLOW: | ||
| case meshtastic_Config_LoRaConfig_ModemPreset_MEDIUM_FAST: | ||
| return -5.5f; | ||
| case meshtastic_Config_LoRaConfig_ModemPreset_SHORT_SLOW: | ||
| case meshtastic_Config_LoRaConfig_ModemPreset_SHORT_FAST: | ||
| case meshtastic_Config_LoRaConfig_ModemPreset_SHORT_TURBO: | ||
| return -4.5f; | ||
| default: | ||
| return -6.0f; | ||
| } | ||
| }; |
Copilot
AI
Feb 8, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
getSnrLimit() logic is duplicated here but already exists elsewhere in the codebase (e.g. src/modules/CannedMessageModule.cpp). Consider moving this preset→SNR-limit mapping (and possibly signal grading) into a shared helper so UI and other features stay consistent when presets/thresholds change.
This PR fixes the value shown on the Favorite Node Screens. Before the calculation did not take into account of the radio preset, so the max value considered good was 82%. This PR replaces it with a Bad, fair or Good along with a graphical signal bar to make it more intuitive. Since it took more space, i had to change [Hops] with a graphic as well.
Lastly I removed the constrains that made the Distance line when we had Uptime values from the node. Now all are visible.
Before

After
