Two firmware-only additions surfacing capability already in the stack:
- Airtime / duty-cycle readout: the radio modal exposed airtime_factor only as a raw
'AF' number. Add a derived line — '≈ N% max duty cycle · ~M ms / 40-byte packet' —
computing duty% from MeshCore's af=(100/duty)-1 and the per-packet time-on-air from
the Semtech closed-form (new loraToaMs helper). Lets EU-868 users see compliance at
a glance with no measurement.
- Answer telemetry requests toggle: MeshCore already gates telemetry responses on
_prefs.telemetry_mode_base/env (0=DENY/2=ALLOW_ALL) but it wasn't in the touch UI.
Add a switch (new UITask::setTelemetryAllow) that sets battery+environment modes;
location telemetry keeps its own separate setting so a simple 'allow' can't leak
position.
(RX boosted gain was already a switch in Experimental settings; per-packet RSSI/SNR
is already in the Monitor; region presets already bundle SF/BW/CR — so those research
items were already shipped and not re-added.)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>