Skip to content

Nz region sf16 preset - #11009

Open
NomDeTom wants to merge 13 commits into
meshtastic:developfrom
NomDeTom:nz-region-sf16-preset
Open

Nz region sf16 preset#11009
NomDeTom wants to merge 13 commits into
meshtastic:developfrom
NomDeTom:nz-region-sf16-preset

Conversation

@NomDeTom

@NomDeTom NomDeTom commented Jul 14, 2026

Copy link
Copy Markdown
Collaborator

Adds a new region to allow the ShortFast preset to be the default in New Zealand from the start, rather than LongFast as is the default for the ANZ region.

Requires protobufs: meshtastic/protobufs#985

🤝 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)

Summary by CodeRabbit

  • New Features

    • Added support for the New Zealand 915 MHz LoRa regulatory region, covering the 915–928 MHz frequency band.
    • The LoRa region picker and system menu now include a selectable “NZ 915” option.
  • Improvements

    • Updated regional configuration with appropriate defaults for New Zealand 915 MHz operation, including the standard profile and short-fast preset.

claude and others added 8 commits July 14, 2026 02:41
New Zealand's mesh standard is ShortFast on frequency slot 16, which
lands on 918.875 MHz in the 915-928 MHz ANZ band. Set the region's
default preset to SHORT_FAST and pin the default frequency slot with an
explicit overrideSlot of 16 instead of the channel-name hash.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01ToW4ouBGLnJEo6wQDobdJc
Revert the ANZ region-table change: ANZ is shared with Australia (and
historically Brazil), so changing its default preset there would alter
defaults for everyone, not just New Zealand.

Instead, bake the NZ community defaults into firmware built from this
repo via userPrefs.jsonc: region ANZ and modem preset SHORT_FAST. No
frequency-slot override is needed - the default channel name
("ShortFast") hashes to slot 16, which is 918.875 MHz, the NZ mesh
standard.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01ToW4ouBGLnJEo6wQDobdJc
Co-authored-by: NomDeTom <116762865+NomDeTom@users.noreply.github.com>
.gitmodules now tracks NomDeTom/MeshtasticProtobufs @ nz-sf, rebased
onto upstream meshtastic/protobufs master (adds NZ_924 as a new
RegionCode value, additive/non-breaking). Regenerated the nanopb C
sources from that commit, which also incidentally picks up the
MEDIUM_TURBO modem preset added upstream in the same rebase window.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01ToW4ouBGLnJEo6wQDobdJc
Same 915-928 MHz band and PROFILE_STD as ANZ, but defaults to
SHORT_FAST instead of LONG_FAST. Frequency slot is left on the default
channel-name hash (overrideSlot 0), which for the "ShortFast" channel
name lands on slot 16 = 918.875 MHz, the New Zealand mesh standard.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01ToW4ouBGLnJEo6wQDobdJc
@NomDeTom NomDeTom added enhancement New feature or request requires-protos Requires changes to protobufs to work labels Jul 14, 2026
@github-actions

github-actions Bot commented Jul 14, 2026

Copy link
Copy Markdown
Contributor

⚡ Try this PR in the Web Flasher

Flash this PR in the Web Flasher

firmware commit boards expires

Warning

This is an automated, unreviewed CI test build. Back up your device configuration
before flashing, and only flash devices you are able to recover.

Supported boards built by this PR (27)
Device Board Platform
Crowpanel Adv 3.5 TFT elecrow-adv-35-tft esp32-s3
Heltec HT62 heltec-ht62-esp32c3-sx1262 esp32-c3
Heltec Mesh Node 096 heltec-mesh-node-t096 nrf52840
Heltec Mesh Node T1 heltec-mesh-node-t1 nrf52840
Heltec Mesh Node T114 heltec-mesh-node-t114 nrf52840
Heltec V3 heltec-v3 esp32-s3
Heltec V4 heltec-v4 esp32-s3
Meshnology W10 meshnology_w10 esp32-s3
Raspberry Pi Pico pico rp2040
Raspberry Pi Pico W picow rp2040
RAK WisMesh Tag rak_wismeshtag nrf52840
RAK WisBlock 11200 rak11200 esp32
RAK WisBlock 11310 rak11310 rp2040
RAK3312 rak3312 esp32-s3
RAK WisBlock 4631 rak4631 nrf52840
Seeed SenseCAP Mesh-Tracker-X1 seeed_mesh_tracker_X1 nrf52840
Seeed Wio Tracker L1 seeed_wio_tracker_L1 nrf52840
Seeed Xiao NRF52840 Kit seeed_xiao_nrf52840_kit nrf52840
Seeed Xiao ESP32-S3 seeed-xiao-s3 esp32-s3
Station G2 station-g2 esp32-s3
Station G3 station-g3 esp32-s3
LILYGO T-Deck t-deck-tft esp32-s3
LILYGO T-Echo t-echo nrf52840
LILYGO T-Echo Plus t-echo-plus nrf52840
LILYGO T-Impulse Plus t-impulse-plus nrf52840
LilyGo T3-C6 tlora-c6 esp32-c6
Seeed SenseCAP T1000-E tracker-t1000-e nrf52840

Build artifacts expire on 2026-08-13. Updated for feaff8c.

@coderabbitai

coderabbitai Bot commented Jul 14, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: bbdd4059-3041-4582-977b-9e65549e60fa

📥 Commits

Reviewing files that changed from the base of the PR and between 1dde97f and daf389e.

⛔ Files ignored due to path filters (1)
  • src/mesh/generated/meshtastic/config.pb.h is excluded by !**/generated/**, !src/mesh/generated/**
📒 Files selected for processing (6)
  • .gitmodules
  • protobufs
  • src/graphics/draw/MenuHandler.cpp
  • src/graphics/niche/InkHUD/Applets/System/Menu/MenuAction.h
  • src/graphics/niche/InkHUD/Applets/System/Menu/MenuApplet.cpp
  • src/mesh/RadioInterface.cpp
🚧 Files skipped from review as they are similar to previous changes (6)
  • src/graphics/draw/MenuHandler.cpp
  • protobufs
  • src/mesh/RadioInterface.cpp
  • src/graphics/niche/InkHUD/Applets/System/Menu/MenuAction.h
  • .gitmodules
  • src/graphics/niche/InkHUD/Applets/System/Menu/MenuApplet.cpp

📝 Walkthrough

Walkthrough

The protobufs source and pinned commit are updated. The radio region table adds NZ_915 for 915.0–928.0 MHz. The region picker and InkHUD menu support selection of the new region.

Changes

New Zealand regional support

Layer / File(s) Summary
Update protobufs source
.gitmodules, protobufs
The protobufs submodule URL, branch, and pinned commit are updated.
Add NZ_915 radio region
src/mesh/RadioInterface.cpp
The region table adds NZ_915 for 915.0–928.0 MHz with PROFILE_STD, PRESET(SHORT_FAST), and override slot 0.
Wire NZ_915 menu selection
src/graphics/draw/MenuHandler.cpp, src/graphics/niche/InkHUD/Applets/System/Menu/MenuAction.h, src/graphics/niche/InkHUD/Applets/System/Menu/MenuApplet.cpp
The region picker and InkHUD menu add NZ_915 entries. The corresponding action applies the NZ_915 configuration.

Estimated code review effort: 2 (Simple) | ~10 minutes

Sequence Diagram(s)

sequenceDiagram
  participant RegionPicker
  participant MenuApplet
  participant RadioInterface
  RegionPicker->>MenuApplet: select NZ_915 menu entry
  MenuApplet->>RadioInterface: applyLoRaRegion(NZ_915)
  RadioInterface-->>MenuApplet: apply NZ_915 configuration
Loading
🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly identifies the New Zealand region and ShortFast preset change.
Description check ✅ Passed The description explains the region change, default preset behavior, protobuf dependency, and includes the repository attestation sections.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot mentioned this pull request Jul 15, 2026
8 tasks
@coderabbitai coderabbitai Bot mentioned this pull request Jul 28, 2026
8 tasks
# Conflicts:
#	protobufs
#	src/mesh/generated/meshtastic/interdevice.pb.cpp
#	src/mesh/generated/meshtastic/interdevice.pb.h
@coderabbitai

coderabbitai Bot commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

Note

GitHub couldn't provide a complete incremental comparison for this pull request, so CodeRabbit is performing a full review instead. This review may take a little longer.

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

Labels

enhancement New feature or request requires-protos Requires changes to protobufs to work

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants