diff --git a/pre_build.py b/pre_build.py index e87fadf..70783d7 100644 --- a/pre_build.py +++ b/pre_build.py @@ -185,13 +185,16 @@ def patch_nimble_device(): content = f.read() # v1.4.3 code has ESP_ERROR_CHECK(esp_bt_controller_init(&bt_cfg)); + # Arduino framework inits controller but does NOT enable it. + # We must enable even if init returns INVALID_STATE (already init'd). old_block = ( 'ESP_ERROR_CHECK(esp_bt_controller_init(&bt_cfg));\n' ' ESP_ERROR_CHECK(esp_bt_controller_enable(ESP_BT_MODE_BLE));\n' ' ESP_ERROR_CHECK(esp_nimble_hci_init());' ) new_block = ( - 'if (esp_bt_controller_init(&bt_cfg) == ESP_OK) {\n' + 'esp_err_t __bt_err = esp_bt_controller_init(&bt_cfg);\n' + ' if (__bt_err == ESP_OK || __bt_err == ESP_ERR_INVALID_STATE) {\n' ' ESP_ERROR_CHECK(esp_bt_controller_enable(ESP_BT_MODE_BLE));\n' ' }\n' ' ESP_ERROR_CHECK(esp_nimble_hci_init());'