Skip to content

MeshCore: radio liveness watchdog + reset/recovery in the driver #160

Description

@M0LTE

Parent: #137. During PoC testing a Companion radio became unresponsive to APP_START until a hard reset (esptool --after hard_reset, i.e. a CP2102 DTR/RTS toggle). The MeshCore driver must detect and recover from this autonomously — required for unattended operation.

  • Liveness watchdog: periodic heartbeat (APP_START/DEVICE_QUERY) or a serial-activity timeout to detect a mute/hung companion.
  • Recovery: hard-reset the ESP32 over CP2102 DTR/RTS (no buttons), re-open the port, re-APP_START, re-apply radio params + channel config, resume the bearer.
  • Escalation/backoff: bounded reset attempts with backoff; raise an alarm/metric if recovery keeps failing; surface link state (healthy / resetting / failed) for observability.
  • Harden the open path: a post-open settle + APP_START retry — opening the port can itself reset the board and race the first APP_START (seen in the PoC).

Related: device-control + firmware management API.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions