For Internal Testing - Do NOT install in hard to reach repeaters
- Latest PowerSaving with latest RX PowerSaving on MeshCore 1.17.1
- Fixed T096 OLED to save 3.5mA and use old dark theme
Areas to focus testing:
- For T096 and v4 repeaters: set radio.fem.rxgain on/off => Check if this setting is persisted across reboot. Check the impact on noise floor.
- For T096 and v4 companions: Compare the impact on noise floor for femon vs. femoff
- For T096: Test the TX power
- Test RXPS
View or change RX power saving
Usage:
get radio.rxpsset radio.rxps offset radio.rxps onset radio.rxps conservativeset radio.rxps balancedset radio.rxps <level>set radio.rxps level <level>set radio.rxps level <level> preamble <symbols>set radio.rxps <rx_us> <sleep_us>
Parameters:
level:1-10; higher levels use shorter receive windows and longer sleep windows.symbols:16or32preamble symbols.rx_us: receive-window duration in microseconds,1000-30000000.sleep_us: radio sleep duration in microseconds,1000-30000000.
Repeater default: off
Profiles:
onandconservative: level 1 with a 16-symbol preamble.balanced: level 5 with a 16-symbol preamble.- A numeric level, or
level <level>, automatically uses 32 preamble symbols for SF5-SF8 and 16 for SF9-SF12. level <level> preamble <symbols>explicitly fixes the preamble used in the calculation.- Explicit
rx_us sleep_usvalues select manual timing (level=0).
Level-based settings are recalculated after SF or bandwidth changes. Manual timings are not recalculated. Settings are persisted in /prefs.json. Companion firmware does not expose this text command and applies its fixed level 5 / preamble 16 profile at startup and after radio-parameter changes.
get radio.rxps reports:
desired=<on|off>,effective=<armed|continuous>,supported=<yes|no>,
level=<0-10>,preamble=<0|16|32>,rx=<us>,sleep=<us>,
err=<RadioLib error>,fail=<count>[,erx=<us>,eslp=<us>]
desiredis the saved user setting.effective=armedmeans receive duty-cycle is active.effective=continuousmeans RXPS is disabled, unsupported, or the last arm attempt fell back to continuous RX.failcounts failed arm operations; each one falls back to continuous RX.clear statsresets both this total and the consecutive-failure backoff, granting three fresh arm attempts.erxandeslpappear only when the driver had to clamp the requested periods, and report the effective periods after driver clamping. On LR1110 the RX window is stretched when2*rx + sleepwould not cover the extended period Semtech requires, so the real duty cycle can be less economical thanrx/sleepsuggest.- RXPS is currently supported by the SX1262 and LR1110 wrappers. Other radios remain in continuous RX and reject attempts to enable RXPS.
- There is intentionally no RXPS watchdog, watchdog command, or periodic recovery. Recovery is limited to the immediate continuous-RX fallback after an arm error. After 3 consecutive arm failures the node stops retrying on every RX restart and stays in continuous RX until the RXPS configuration is set again or
clear statsgrants a fresh set of attempts. - On boards with a host-controlled RXEN pin, the RF switch is held in receive mode for the whole duty cycle (otherwise the node would be deaf). An external LNA on that pin therefore stays biased during the sleep windows, so the real power saving is smaller than the
rx/sleepratio implies.
Disable the host-controlled RF receive switch during RX power saving
Usage:
get radio.rxps.rfrx_disabledset radio.rxps.rfrx_disabled <state>
Parameters:
state:on|off
Default: off
Notes:
- This is a runtime-only diagnostic setting and resets to
offafter reboot. onreproduces the missing RF_RX assertion during SX1262 receive duty-cycle mode.- Supported only on SX1262 targets with a host-controlled RX enable pin.
- Enabling it can significantly reduce receive sensitivity and make remote commands harder to receive.