View this page on MeshCore Docs.
LR1121 RX power saving, 2026-10-27
RXPS support is implemented for Waveshare ESP32-S3 LR1121 and Muzi Base Duo. Existing saved settings and commands apply to Repeater, Room Server and Companion roles. No board was flashed during this work; RF reception and current savings have not been physically measured.
set radio.rxps balanced
get radio.rxps.config
get radio.rxps.status
set radio.rxps off
Status distinguishes requested power saving from actual armed or continuous receive. Radio2 scanning suspends RXPS while retaining the requested setting; returning to the primary profile restores it. Fast tuples can require continuous receive. Experimental levels 9/10 retain their existing caveats.
Driver changes
The LR1121 uses the same 0x0214 duty-cycle command and 32768 Hz, 24-bit
periods as the existing LR11x0 implementation. Arming enters Standby RC,
configures the LF clock, stages packet/IRQ parameters, activates the RX RF
path and issues the native command. See Semtech's LR1121 user manual,
section 7.2.6.
The implementation uses 64-bit timer conversion, rejects zero/sub-tick RX periods, preserves the extended-preamble guard and restores LF-clock behavior when leaving duty cycle. Pinned RadioLib's public implementation uses 32-bit conversion, which overflows above about 131 ms; its staging also needs the explicit RF-path activation. RadioLib implementation.
BUSY-aware activity polling and cached LoRa airtime avoid ordinary SPI reads while asleep. Header errors remain visible until the receive owner clears the stale buffer and rearms. The shared receive path retains packet-metadata ownership, automatic fallback/retries and watchdog behavior. Waveshare now registers its full-radio recovery callback, restoring the board's TCXO and DIO RF-switch table after a reset.
LR1121 retains RadioLib's existing 5000 us TCXO startup setting, giving a 6000 us transition. It does not inherit the LR1110's shorter qualified oscillator timing. Both board recipes select the eight-symbol LR11x0 capture cost before CLI/default calculations. PA selection, regulator mode, band configuration and boosted gain keep their existing paths.
Checks
All 68 affected host tests pass across 13 suites. Three new tests execute the actual driver/wrapper methods in five ASan/UBSan binaries: timer bounds, command ordering and failures, clock restoration, sleeping BUSY, cached airtime, header recovery, profile suspension and reset callbacks. The extended activity-epoch tests retain success/failure and removed-reset negative controls.
| Packaged firmware | RAM admission | Capability checks |
|---|---|---|
| Waveshare Full Repeater | Pass | 15/15 |
| Waveshare Full Companion | Pass | 26/26 |
| Muzi Duo Full Companion | Pass | 16/16 |
| Muzi Duo LoRa-OTA Repeater, Full sensors | Pass | 7/7 |
| Muzi Duo LoRa-OTA Repeater, Reduced sensors | Pass | 5/5 |
All packages pass their size and update-path checks. PlatformIO ran one
process at a time. The machine-readable evidence
contains source hashes, exact commands, artifact hashes and memory reports.
After integrating the concurrent Companion trace-handling update at
eab29a12c, Muzi Full Companion was packaged again at b34a82acb and passed
all 16 capability checks, RAM admission and UF2 address checks. Its available
internal RAM remains 89,292 bytes against 59,200 required. The RXPS source
hashes still match the original five packages above.
These software checks do not establish LR1121 packet-delivery margins, measured power reduction or watchdog recovery on physical hardware.