mirror of
https://github.com/meshtastic/firmware.git
synced 2026-09-29 01:36:26 -04:00
42e64cfa5917f2e7e278bbb64c5c56b6f9b2a407
perhapsCancelDupe was gated on TRANSPORT_LORA, so a node that overheard a neighbour relaying a packet over BLE advertised its own copy anyway. The gate is now per medium: a LoRa dupe cancels the LoRa queue as before, a BLE dupe cancels the BLE ring and nothing else. Cancelling across media would be wrong in the other direction - hearing a neighbour on BLE is no evidence at all about who heard us on LoRa, and standing the LoRa rebroadcast down on that would thin the flood wherever the two meshes overlap. MeshTransportBase gains cancelTransportsOn(), carrying the medium so each transport can ignore a cancel that is not for its own radio. AdvSlot carries from/id, and runOnce remembers the identity of the burst it started, so a cancel reaches a payload already repeating on air as well as the ones still queued. Separately, buildAdvPayload has always refused packets that do not fit one unfragmented advertisement, and the existing test only proved that at 256 bytes. The real ceiling is 219 bytes of ciphertext against the 239 a LoRa frame carries, and 198 for a relay, because the packet is encoded as it stands and so puts the rx_rssi, rx_snr and rx_time it was received with on the air - rx_rssi being a negative int32 at ten bytes, and the relayer's own link quality. Both numbers are now binary-searched and pinned, so a field added to MeshPacket shows up as a failing test rather than as quietly shorter reach, and the refusals are counted rather than only logged.
…
…
…
…
…
…
…
…
…
…
…
…
…
Overview
This repository contains the official device firmware for Meshtastic, an open-source LoRa mesh networking project designed for long-range, low-power communication without relying on internet or cellular infrastructure. The firmware supports various hardware platforms, including ESP32, nRF52, RP2040/RP2350, and Linux-based devices.
Meshtastic enables text messaging, location sharing, and telemetry over a decentralized mesh network, making it ideal for outdoor adventures, emergency preparedness, and remote operations.
Get Started
- 🔧 Building Instructions - Learn how to compile the firmware from source.
- ⚡ Flashing Instructions - Install or update the firmware on your device.
Join our community and help improve Meshtastic! 🚀
Stats
Languages
C++
72.9%
C
22.8%
Python
2.1%
Shell
1.6%
Batchfile
0.2%
Other
0.2%
