Trifecta bridge — beta 10
Pre-release
Pre-release
·
0 commits
to main
since this release
What's new since beta9
- ESP-NOW zero-hop adverts now actually broadcast. They have no path and
no specific destination -- "whoever's nearby," same as their inherently
broadcast behavior on LoRa. The ESP-NOW bridge was unicasting them like
any other direct-route packet once a peer's MAC was known, silencing them
to every other peer on the same segment. Fixed on both the repeater and
peer side, scoped precisely to advert + direct-route + empty-path packets
-- every other packet type keeps its existing unicast-with-retry behavior. - ESP-NOW peer limit raised 6 → 19 (the real safe max: ESP-NOW's hard
20-peer limit, minus one slot for the broadcast address). The old value
had no documented rationale and looks like it was modeled on ESP-NOW's
encrypted-peer limit, which doesn't apply here since peers are always
registered unencrypted. - New: WiFi-companion envs for both the C3 SuperMini and S3-Zero, as an
alternative to BLE pairing. - Fixed a real ESP32-C3 companion crash — BLE controller init reliably
failed at contact/channel/queue capacity values copied unmodified from
the S3-Zero variant, since the C3 has less total SRAM. Bisected safe
values on real hardware for both BLE-only and USB+BLE dual envs. - MQTT bridge is now built into every standard Trifecta repeater build
(Heltec V3/V4) — no separate binary needed.Off by default. Broker must be on your own LAN/VPN — TLS is notset mqtt.enabled on|off set mqtt.server <url> # mqtt://, mqtts://, ws://, or wss:// set mqtt.username/password # optional, if your broker needs auth set mqtt.iata <code> # optional, short site code included in the topic
certificate-verified. Single-threaded, polled from the main loop — no
separate task, no cross-core state to get wrong. - Room servers now persist their post history to flash. Previously the
post backlog clients sync against lived in RAM only — a reboot wiped it
and any client syncing afterward got nothing for that gap. It's now
mirrored to flash on every new post and restored on boot. - Fixed: a contact explicitly set to the Read-Only ACL role could still
post. The posting check only excluded the Guest role; Read-Only fell
through to the same path as Read-Write. Also reported upstream as
meshcore-dev/MeshCore#3340. - Room server config note: if
allow.read.onlyis enabled with a
blank guest password, a blank-password login currently gets read/write
access instead of read-only — a known upstream issue
(meshcore-dev/MeshCore#940,
fix pending in PR #2995).
Until that lands, set a real (non-blank) guest password that you never
hand out — any anonymous/wrong-password login then correctly falls
through to read-only.
Flashing
- Blank/fresh board: flash the
-merged.binfile at address0x0. - Upgrading an already-configured board: flash the plain
.binfile at
address0x10000— this preserves identity, radio config, WiFi/BLE
bonds, and all CLI settings; it does not erase the board.
esptool.py --chip esp32s3|esp32c3 write_flash 0x0 <file>-merged.bin # blank board
esptool.py --chip esp32s3|esp32c3 write_flash 0x10000 <file>.bin # upgrade in place