Jonathan BennettandClaude Opus 5.5 e650149901 Radio: run the main loop's missed-IRQ poll as one radio sequence
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
2026-10-10 10:15:21 -05:00
2026-10-02 11:59:23 +00:00
2021-10-09 17:15:12 +11:00
2024-09-24 15:24:08 -05:00
2026-10-03 21:22:22 +02:00
2026-07-01 19:01:27 -05:00
2026-01-29 10:06:58 -06:00
2024-11-28 06:26:51 -06:00
2024-09-04 15:33:28 -07:00
2026-01-29 10:06:58 -06:00
2026-01-29 10:06:58 -06:00
2026-10-03 22:43:30 +00:00
2025-01-13 12:24:05 +08:00
2026-01-29 10:06:58 -06:00

Meshtastic Logo

Meshtastic Firmware

GitHub release downloads CI CLA assistant Fiscal Contributors Vercel MemBrowse

meshtastic%2Ffirmware | Trendshift

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

Join our community and help improve Meshtastic! 🚀

Stats

Alt

S
Description
No description provided
Readme GPL-3.0
314 MiB
0 Stars 1 Watchers 0 Forks
Languages
C++ 73.6%
C 21.7%
Python 2.6%
Shell 1.5%
Batchfile 0.2%
Other 0.2%