Skip to content

BLE OTA via app-jump: 90 s hang after ACTIVATE_AND_RESET until the app's watchdog fires #35

Description

@jamesarich

On master (33e095d, OTAFIX 2.3 + #34), a BLE OTA started from the Meshtastic Android app (buttonless trigger → DFU_MAGIC_OTA_APPJUM, SoftDevice inherited from the app) transfers fine, but after ACTIVATE_AND_RESET the node goes dark - LEDs solid, no USB, no advertising - for ~90 s before it boots the new app. RAK4631, firmware 2.8.0.abd3348, two runs:

06:29:21 USB disconnect (activate)  →  06:30:51 app enumerates   90 s
07:16:31 USB disconnect (activate)  →  07:18:01 app enumerates   90 s

The 90 s is the application's watchdog: Meshtastic arms the nRF52 WDT, app-jump keeps it running, the bootloader feeds it from wait_for_events() - so after activation we are spinning somewhere outside that loop (post-bootloader_dfu_start: sd_softdevice_disable()usb_teardown()NVIC_SystemReset(), with the app's SoftDevice instance). A hard fault would reset immediately via app_error_fault_handler, so this is a hang, not a fault.

User-visible: the Android app's post-update reconnect times out and reports failure even though the update succeeded.

Context: the 0.11 rebase in #32 does not have this hang (reboots ~1 s after activate) but has a mirror-image one before START_DFU on the same path. Debug output is RTT-only, so pinning it down needs an SWD probe or a UART log backend.

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