mirror of
https://github.com/meshtastic/firmware.git
synced 2026-11-07 23:04:49 -05:00
Everything between a clear CAD verdict and SET_TX is time the channel goes unwatched. RadioLib's TX staging writes the whole payload in that window. The scan already puts the chip in standby, so write the payload there instead: a clear verdict then sends only the packet params, the IRQ setup and SET_TX. The packet params keep RX's maximum length until the verdict, so a detection's RX still takes a full frame. A detection's RX may overwrite the staged bytes, but a busy verdict drops the stage and no TX follows. The write happens after RX has been stopped, so it cannot land on a frame being received. Setting RadioLib's staged mode needs RADIOLIB_GODMODE, so the prestage is on wherever that is set (LR11X0_TX_PRESTAGE=0 opts out), and the T1000-E now sets it. Measured on a T1000-E (LR1110) against a CH341 host, SHORT_TURBO: total loss 9.40% -> 7.82% (p=0.029). 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 (cherry picked from commitcd55f137de) (cherry picked from commit8e02fd6084)