Skip to content

Enable Narrow and Lite regions for EU#10120

Merged
thebentern merged 26 commits into
meshtastic:developfrom
NomDeTom:newer-presets
May 21, 2026
Merged

Enable Narrow and Lite regions for EU#10120
thebentern merged 26 commits into
meshtastic:developfrom
NomDeTom:newer-presets

Conversation

@NomDeTom

@NomDeTom NomDeTom commented Apr 10, 2026

Copy link
Copy Markdown
Collaborator

Some new presets for a wider range of operations in the EU, based on #9038 but with improvements to the position and telemetry scaling implementation.

Relies on meshtastic/protobufs#824 for protobufs (as before)

What has changed?

  • 2 new region presets
    • EU_866,
    • NARROW_868,
  • 4 new modem presets
    • LITE_FAST/SLOW,
    • NARROW_FAST/SLOW
  • new region parameters that make use of default slots, etc.

What is needed to integrate these changes more widely

  • BaseUI / InkHud
    • The new regions and presets have been added to the menu lists, but the list logic has not been updated to exclude invalid combinations
  • MUI
    • The new regions and presets need to be added to the menu lists, and the list logic included.
  • Client Apps
    • These will need updating to take account of the valid region/preset combinations, ideally hiding invalid combinations within the menus
    • Their display logic will need updating to include the new overrideSlots information, which will affect both the lora config menu and the behaviour when new primary channels are generated

Acknowledgements

This change has been supported extensively by @Stary2001, @phaseloop, and @caveman99. Their input cannot be understated.

🤝 Attestations

  • I have tested that my proposed changes behave as described.
  • I have tested that my proposed changes do not cause any obvious regressions on the following devices:
    • Heltec (Lora32) V3
    • LilyGo T-Deck
    • LilyGo T-Beam
    • RAK WisBlock 4631
    • Seeed Studio T-1000E tracker card
    • Other (please specify below)

@github-actions github-actions Bot added needs-review Needs human review enhancement New feature or request labels Apr 10, 2026
@vidplace7 vidplace7 requested a review from caveman99 April 10, 2026 18:18
@NomDeTom NomDeTom changed the title Enable Narrow and Lite regions and enhance TrafficType handling in telemetry Enable Narrow and Lite regions for EU Apr 11, 2026
@NomDeTom

Copy link
Copy Markdown
Collaborator Author

oops - forgot to put the modem settings in!

@NomDeTom NomDeTom mentioned this pull request May 12, 2026
58 tasks

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Adds new EU-focused LoRa region + modem presets and wires them through radio configuration, UI pickers, and traffic scaling so position/telemetry intervals can be region-throttled.

Changes:

  • Introduces new region profiles/presets (EU_866 + narrow EU 868) and adds defaultPreset + overrideSlot semantics for region configs.
  • Adds region-aware traffic throttling via a new Default::getConfiguredOrDefaultMsScaled(..., TrafficType) overload and updates position/telemetry modules to use it.
  • Updates InkHUD + classic UI menus to list/select the new regions/presets, and adds tests for the new “preset-hash” slot-selection mode.

Reviewed changes

Copilot reviewed 20 out of 20 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
test/test_admin_radio/test_main.cpp Extends radio/admin unit tests for new override-slot semantics and slot-hash formula.
src/modules/Telemetry/PowerTelemetry.cpp Uses region-aware telemetry scaling.
src/modules/Telemetry/HealthTelemetry.cpp Uses region-aware telemetry scaling.
src/modules/Telemetry/EnvironmentTelemetry.cpp Uses region-aware telemetry scaling.
src/modules/Telemetry/DeviceTelemetry.cpp Uses region-aware telemetry scaling.
src/modules/Telemetry/AirQualityTelemetry.cpp Uses region-aware telemetry scaling (incl. sensor wake/sleep timing).
src/modules/PositionModule.cpp Uses region-aware position scaling.
src/modules/CannedMessageModule.cpp Updates preset switch handling to use new preset macro names.
src/modules/AdminModule.cpp Uses effective duty-cycle logic when deciding MQTT defaults.
src/mesh/Router.cpp Uses effective duty-cycle logic when enforcing duty-cycle send limits.
src/mesh/RadioInterface.cpp Adds new regions/profiles/presets, override-slot selection logic, and effective duty-cycle helper.
src/mesh/MeshRadio.h Adds preset macro/override-slot constants, new presets, and RegionInfo::defaultPreset.
src/mesh/Default.h Introduces TrafficType and new scaled-interval overload signature.
src/mesh/Default.cpp Implements region throttle multiplier for position vs telemetry.
src/graphics/niche/InkHUD/Applets/System/Menu/MenuApplet.cpp Adds new regions and dynamically builds preset list from the active region.
src/graphics/niche/InkHUD/Applets/System/Menu/MenuAction.h Adds actions for new regions/preset selection mode.
src/graphics/draw/UIRenderer.cpp Updates preset switch cases to new preset macro names.
src/graphics/draw/MenuHandler.cpp Adds new regions and dynamically builds preset picker from the active region.
src/DisplayFormatters.cpp Adds display names for new modem presets.
src/airtime.cpp Uses effective duty-cycle logic for TX air-util gating.

Comment thread src/mesh/RadioInterface.cpp Outdated
Comment thread src/mesh/Default.cpp Outdated
@thebentern thebentern merged commit 5e69bc6 into meshtastic:develop May 21, 2026
68 checks passed
@NomDeTom NomDeTom deleted the newer-presets branch May 25, 2026 01:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

2.8 enhancement New feature or request needs-review Needs human review

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants