summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ports/esp32/boards/sdkconfig.ble9
-rw-r--r--ports/esp32/mphalport.h7
2 files changed, 11 insertions, 5 deletions
diff --git a/ports/esp32/boards/sdkconfig.ble b/ports/esp32/boards/sdkconfig.ble
index cdbb621a6..f714ce462 100644
--- a/ports/esp32/boards/sdkconfig.ble
+++ b/ports/esp32/boards/sdkconfig.ble
@@ -9,9 +9,12 @@ CONFIG_BT_NIMBLE_ENABLED=y
CONFIG_BT_NIMBLE_MAX_CONNECTIONS=4
# Pin to the same core as MP.
-CONFIG_BT_NIMBLE_PINNED_TO_CORE_0=n
-CONFIG_BT_NIMBLE_PINNED_TO_CORE_1=y
-CONFIG_BT_NIMBLE_PINNED_TO_CORE=1
+# Until we move to IDF 4.2+, we need NimBLE on core 0, and for synchronisation
+# with the ringbuffer and scheduler MP needs to be on the same core.
+# See https://github.com/micropython/micropython/issues/5489
+CONFIG_BT_NIMBLE_PINNED_TO_CORE_0=y
+CONFIG_BT_NIMBLE_PINNED_TO_CORE_1=n
+CONFIG_BT_NIMBLE_PINNED_TO_CORE=0
# v3.3-only (renamed in 4.0)
CONFIG_BTDM_CONTROLLER_MODE_BLE_ONLY=y
diff --git a/ports/esp32/mphalport.h b/ports/esp32/mphalport.h
index 1f78d820a..60cc308d6 100644
--- a/ports/esp32/mphalport.h
+++ b/ports/esp32/mphalport.h
@@ -35,8 +35,11 @@
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
-// The core that the MicroPython task(s) are pinned to
-#define MP_TASK_COREID (1)
+// The core that the MicroPython task(s) are pinned to.
+// Until we move to IDF 4.2+, we need NimBLE on core 0, and for synchronisation
+// with the ringbuffer and scheduler MP needs to be on the same core.
+// See https://github.com/micropython/micropython/issues/5489
+#define MP_TASK_COREID (0)
extern TaskHandle_t mp_main_task_handle;