mirror of
https://github.com/agessaman/MeshCore.git
synced 2026-08-29 01:09:02 +00:00
docs(radio): record on-device validation results for duty-cycle restore
Duty-cycle throttling, CAD-under-load, capture decoupling, remote admin under throttle, and radio-watchdog fire/recover all device-confirmed on a Heltec V4.2 (busy mesh + off-frequency bench). Notes the watchdog observability gotchas found during testing: silent on release builds (check stats-radio-diag err_flags bit 8) and armed only after first radio activity.
This commit is contained in:
@@ -36,11 +36,23 @@ mechanism that keeps EU 868 MHz nodes under the legally-mandated duty cycle.
|
||||
|
||||
### Must be validated on-device before merge
|
||||
|
||||
This touches core TX timing. Confirm on hardware:
|
||||
- Normal traffic still flows (repeater forwards, observer uplinks).
|
||||
- Sustained TX is throttled to the configured duty cycle (watch `get` airtime/queue stats;
|
||||
verify `next_tx_time` spacing under load).
|
||||
- The observer radio watchdog still recovers a stuck radio (`radio_watchdog_minutes`).
|
||||
This touches core TX timing. Confirm on hardware — **all device-confirmed 2026-07-09/10
|
||||
on a Heltec V4.2 (busy live mesh + off-frequency bench):**
|
||||
- ✅ Normal traffic still flows (repeater forwards, observer uplinks).
|
||||
- ✅ Sustained TX is throttled to the configured duty cycle: at `set dutycycle 1` on a
|
||||
busy mesh, TX pinned to ~1% while MQTT capture continued at full rate (after the
|
||||
`RxReservePacketManager` fixes below). Remote admin remains usable under throttle
|
||||
with the priority-shed + stale-expiry policy.
|
||||
- ✅ CAD enabled under load: TX, capture, and CLI all normal.
|
||||
- ✅ The observer radio watchdog fires and recovers non-destructively: with
|
||||
`radio.watchdog 1` on a silent frequency, `err_flags` bit 8 set, radio remained in
|
||||
RX state through repeated recovery cycles, and packets were still received after.
|
||||
Note: firings are invisible on release builds (no MESH_DEBUG) — check
|
||||
`stats-radio-diag` `err_flags`; the watchdog arms only after first radio activity
|
||||
(`last_active > 0`), so a radio wedged from boot is deliberately not covered.
|
||||
|
||||
Remaining before undraft: passive soak at fleet-default `airtime_factor` (duty
|
||||
convergence, flat heap, adverts still advertised).
|
||||
|
||||
### Known interaction: throttling starves MQTT capture (mitigated)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user