Skip to content

build(native-macos): enable UDP multicast mesh#10784

Draft
jamesarich wants to merge 1 commit into
meshtastic:developfrom
jamesarich:feat/native-macos-udp-multicast
Draft

build(native-macos): enable UDP multicast mesh#10784
jamesarich wants to merge 1 commit into
meshtastic:developfrom
jamesarich:feat/native-macos-udp-multicast

Conversation

@jamesarich

Copy link
Copy Markdown
Contributor

Summary

native-macos only pulls portduino_base.build_flags_common, which omits -DHAS_UDP_MULTICAST=1 (that flag lives in portduino_base.build_flags, inherited by Linux native via native_base). So macOS native builds shipped with no UDP multicast, and two local meshtasticd nodes couldn't mesh over 224.0.0.69:4403.

This adds -DHAS_UDP_MULTICAST=1 to the native-macos build flags (also inherited by native-macos-debug).

Dependency

Blocked on meshtastic/framework-portduino#75 and a subsequent platform-native bump that bundles it.

Without the Darwin multicast-bind fix in that PR, the socket binds the multicast group address and never loops back on macOS, so enabling the flag alone yields a non-functional listener on Darwin. Opening as a draft until the framework fix is in the resolved platform-native bundle.

Test plan

  • pio run -e native-macos builds with the flag (no manual PLATFORMIO_BUILD_FLAGS override).
  • With framework-portduino#75 applied, two native-macos nodes mesh over 224.0.0.69:4403 — both node DBs cross-populate and a text message is delivered.
  • Linux native (-e native) unaffected — it already had the flag.

native-macos only pulls portduino_base.build_flags_common, which omits
-DHAS_UDP_MULTICAST=1 (that flag lives in portduino_base.build_flags,
inherited by Linux native via native_base). As a result macOS native
builds had no UDP multicast, so two local meshtasticd nodes couldn't
mesh over 224.0.0.69:4403.

Add -DHAS_UDP_MULTICAST=1 to the native-macos build_flags (inherited by
native-macos-debug). Depends on the Darwin multicast-bind fix in
framework-portduino#75 to actually mesh between sibling processes on
macOS; without it the socket binds the group address and never loops
back on Darwin.

Verified: native-macos builds with the flag and two nodes mesh over UDP
once the framework fix is in the resolved platform-native bundle.

Signed-off-by: James Rich <2199651+jamesarich@users.noreply.github.com>
@github-actions github-actions Bot added needs-review Needs human review hardware-support Hardware related: new devices or modules, problems specific to hardware labels Jun 25, 2026
@github-actions

github-actions Bot commented Jun 25, 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 (25)
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
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 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-07-25. Updated for ea1bdd6.

@github-actions

Copy link
Copy Markdown
Contributor

Firmware Size Report

22 targets | vs develop: 18 increased, 4 decreased, net +1,172 (+1.1 KB)

Target Size vs develop
t-deck-tft 3,802,560 📉 -608
picow 1,237,296 📈 +296
pico2w 1,213,332 📈 +264
wio-e5 234,236 📉 -224
rak3312 2,264,080 📈 +176
Show 17 more target(s)
Target Size vs develop
heltec-ht62-esp32c3-sx1262 2,126,304 📈 +160
heltec-v3 2,255,360 📈 +144
heltec-v4 2,267,760 📈 +144
heltec-vision-master-e213-inkhud 2,216,272 📈 +144
tlora-c6 2,359,696 📈 +144
t-eth-elite 2,482,016 📈 +128
rak3172 181,984 📉 -124
rak11200 1,852,096 📈 +112
seeed-xiao-s3 2,267,856 📈 +112
elecrow-adv-35-tft 3,407,184 📈 +96
seeed_xiao_rp2040 773,560 📈 +96
rak11310 798,080 📉 -88
pico 775,344 📈 +80
seeed_xiao_rp2350 760,992 📈 +56
pico2 762,824 📈 +32
station-g2 2,258,208 📈 +16
station-g3 2,258,224 📈 +16

Updated for bb3a3ea

@jamesarich jamesarich added the bugfix Pull request that fixes bugs label Jun 25, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bugfix Pull request that fixes bugs hardware-support Hardware related: new devices or modules, problems specific to hardware needs-review Needs human review

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant