From 227d938635ee5961736928b8e07e2bd94b5e7715 Mon Sep 17 00:00:00 2001 From: Dan Halbert Date: Thu, 11 Jun 2026 20:41:14 -0400 Subject: [PATCH] espressif: don't do ble resets if adapter is not enabled; can cause crashes --- ports/espressif/common-hal/_bleio/Adapter.c | 3 +++ ports/espressif/common-hal/_bleio/__init__.c | 3 +++ 2 files changed, 6 insertions(+) diff --git a/ports/espressif/common-hal/_bleio/Adapter.c b/ports/espressif/common-hal/_bleio/Adapter.c index 0f53005d2bcd0..4feb6b2b96bac 100644 --- a/ports/espressif/common-hal/_bleio/Adapter.c +++ b/ports/espressif/common-hal/_bleio/Adapter.c @@ -819,6 +819,9 @@ void bleio_adapter_gc_collect(bleio_adapter_obj_t *adapter) { } void bleio_adapter_reset(bleio_adapter_obj_t *adapter) { + if (!common_hal_bleio_adapter_get_enabled(&common_hal_bleio_adapter_obj)) { + return; + } common_hal_bleio_adapter_stop_scan(adapter); common_hal_bleio_adapter_stop_advertising(adapter); diff --git a/ports/espressif/common-hal/_bleio/__init__.c b/ports/espressif/common-hal/_bleio/__init__.c index 49bc947c21dfa..552ba0575b37b 100644 --- a/ports/espressif/common-hal/_bleio/__init__.c +++ b/ports/espressif/common-hal/_bleio/__init__.c @@ -32,6 +32,9 @@ static uint64_t _timeout_start_time; background_callback_t bleio_background_callback; void bleio_user_reset(void) { + if (!common_hal_bleio_adapter_get_enabled(&common_hal_bleio_adapter_obj)) { + return; + } // Stop any user scanning or advertising, and stop all connections. // TODO: Don't stop BLE workflow connection. bleio_adapter_reset(&common_hal_bleio_adapter_obj);