mirror of
https://github.com/meshtastic/firmware.git
synced 2026-11-07 14:54:44 -05:00
e65014990193dd93f0243e043b9c67faeb12cf4f
pollMissedIrqs() runs from the main loop about once a second. Its checkRxDoneIrqFlag() and checkTxDoneIrqFlag() read the chip's IRQ flags without the radio-sequence lock, so the RX readout task could preempt one mid-read. On LR11x0 and LR20x0 that read is not self-contained. RadioLib's LRxxxx::getIrqStatus() sets the Module-wide spiConfig.widths[STATUS] to 0 for its transfer and restores it after. A readout that lands in between frames its own commands with that width, so its status bytes come back as data. On an LR2021, GET_RX_PKT_LENGTH then returns the two status bytes as the length (always 0x100 or more), and the frame is dropped as a bad length. On an LR1110 the status byte is read as the packet type instead. The bench caught one "RX readout task: ... 1 bad length" on an LR2021 running develop, with the ring not full. Only a value that isn't a length can exceed 256 there. Take the lock for the whole poll. It is recursive, and checkCadHandoffTimeout() and checkStaleRxFlags() already take it inside. Co-Authored-By: Jonathan Bennett <jbennett@incomsystems.biz> Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01REkPVFh6kvG4AZJ5A8AtM9
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++
73.6%
C
21.7%
Python
2.6%
Shell
1.5%
Batchfile
0.2%
Other
0.2%
