From da2cd98d988ce2f441b9f4c0bf805acde760d7e7 Mon Sep 17 00:00:00 2001 From: Manuel <71137295+mverch67@users.noreply.github.com> Date: Tue, 14 Apr 2026 23:52:33 +0200 Subject: [PATCH] update esp_hosted parameters for BT --- .../crowpanel-advanced-p4/platformio.ini | 71 +++++++++++++++++++ variants/esp32p4/esp32p4.ini | 38 ++++++++-- 2 files changed, 102 insertions(+), 7 deletions(-) diff --git a/variants/esp32p4/crowpanel-advanced-p4/platformio.ini b/variants/esp32p4/crowpanel-advanced-p4/platformio.ini index 4ba5da306..fc445a6ad 100644 --- a/variants/esp32p4/crowpanel-advanced-p4/platformio.ini +++ b/variants/esp32p4/crowpanel-advanced-p4/platformio.ini @@ -66,7 +66,54 @@ lib_deps = custom_sdkconfig = ${esp32p4_base.custom_sdkconfig} + CONFIG_BT_BLUEDROID_ENABLED=y + ;CONFIG_BT_NIMBLE_ENABLED=y + ;CONFIG_BT_NIMBLE_EXT_ADV=n + # CONFIG_BT_BLE_50_FEATURES_SUPPORTED is not set + CONFIG_BT_BLE_42_FEATURES_SUPPORTED=y + CONFIG_ESP_HOSTED_ENABLE_BT_BLUEDROID=y + + # Force hosted transport/target selection for this env. + CONFIG_ESP_HOSTED_CP_TARGET_ESP32C6=y + CONFIG_ESP_HOSTED_CP_TARGET_ESP32H2=n + CONFIG_ESP_HOSTED_IDF_SLAVE_TARGET="esp32c6" + CONFIG_ESP_HOSTED_SPI_HOST_INTERFACE=n + CONFIG_ESP_HOSTED_SDIO_HOST_INTERFACE=y + + CONFIG_ESP_HOSTED_SDIO_4_BIT_BUS=y + CONFIG_ESP_HOSTED_SDIO_CLOCK_FREQ_KHZ=40000 + # CrowPanel SDIO pins (happen to match P4 Slot 1 defaults) + CONFIG_ESP_HOSTED_PRIV_SDIO_PIN_CMD_SLOT_1=54 + CONFIG_ESP_HOSTED_PRIV_SDIO_PIN_CLK_SLOT_1=53 + CONFIG_ESP_HOSTED_PRIV_SDIO_PIN_D0_SLOT_1=52 + CONFIG_ESP_HOSTED_PRIV_SDIO_PIN_D1_4BIT_BUS_SLOT_1=51 + CONFIG_ESP_HOSTED_PRIV_SDIO_PIN_D2_4BIT_BUS_SLOT_1=50 + CONFIG_ESP_HOSTED_PRIV_SDIO_PIN_D3_4BIT_BUS_SLOT_1=49 + + # Also set resolved SDIO pins explicitly so generated sdkconfig does not + # retain stale template values from framework sdkconfig. + CONFIG_ESP_HOSTED_SDIO_PIN_CMD=54 + CONFIG_ESP_HOSTED_SDIO_PIN_CLK=53 + CONFIG_ESP_HOSTED_SDIO_PIN_D0=52 + CONFIG_ESP_HOSTED_SDIO_PIN_D1=51 + CONFIG_ESP_HOSTED_SDIO_PIN_D2=50 + CONFIG_ESP_HOSTED_SDIO_PIN_D3=49 + CONFIG_ESP_HOSTED_SDIO_PRIV_PIN_D1_4BIT_BUS=51 + + # SDIO Slot 1 via GPIO matrix + CONFIG_ESP_HOSTED_SDIO_SLOT_1=y + + # 1-bit bus (proven stable on CrowPanel) + ;CONFIG_ESP_HOSTED_SDIO_1_BIT_BUS=y + ;CONFIG_ESP_HOSTED_SDIO_BUS_WIDTH=1 + + # Conservative 10 MHz clock for OTA reliability + CONFIG_ESP_HOSTED_SDIO_CLOCK_FREQ_KHZ=10000 + + # Reset pin: GPIO32, active high (R77 pullup on CrowPanel) + CONFIG_ESP_HOSTED_SDIO_RESET_ACTIVE_HIGH=y CONFIG_ESP_HOSTED_SDIO_GPIO_RESET_SLAVE=20 + CONFIG_ESP_HOSTED_GPIO_SLAVE_RESET_SLAVE=20 [env:crowpanel-advanced-p4-70-90-101] extends = esp32p4_base @@ -138,4 +185,28 @@ lib_deps = custom_sdkconfig = ${esp32p4_base.custom_sdkconfig} + ;CONFIG_BT_BLUEDROID_ENABLED=y + CONFIG_BT_NIMBLE_ENABLED=y + CONFIG_BT_NIMBLE_EXT_ADV=n + # CONFIG_BT_BLE_50_FEATURES_SUPPORTED is not set + CONFIG_BT_BLE_42_FEATURES_SUPPORTED=y + # SDIO Slot 1 via GPIO matrix + CONFIG_ESP_HOSTED_SDIO_SLOT_1=y + + # 1-bit bus (proven stable on CrowPanel) + CONFIG_ESP_HOSTED_SDIO_1_BIT_BUS=y + CONFIG_ESP_HOSTED_SDIO_BUS_WIDTH=1 + + # Conservative 10 MHz clock for OTA reliability + CONFIG_ESP_HOSTED_SDIO_CLOCK_FREQ_KHZ=10000 + + # CrowPanel SDIO pins (happen to match P4 Slot 1 defaults) + CONFIG_ESP_HOSTED_PRIV_SDIO_PIN_CLK_SLOT_1=18 + CONFIG_ESP_HOSTED_PRIV_SDIO_PIN_CMD_SLOT_1=19 + CONFIG_ESP_HOSTED_PRIV_SDIO_PIN_D0_SLOT_1=14 + CONFIG_ESP_HOSTED_PRIV_SDIO_PIN_D1_1BIT_BUS_SLOT_1=15 + + # Reset pin: GPIO32, active high (R77 pullup on CrowPanel) + CONFIG_ESP_HOSTED_SDIO_RESET_ACTIVE_HIGH=y CONFIG_ESP_HOSTED_SDIO_GPIO_RESET_SLAVE=32 + CONFIG_ESP_HOSTED_GPIO_SLAVE_RESET_SLAVE=32 diff --git a/variants/esp32p4/esp32p4.ini b/variants/esp32p4/esp32p4.ini index d71cf6d94..44fc52017 100644 --- a/variants/esp32p4/esp32p4.ini +++ b/variants/esp32p4/esp32p4.ini @@ -44,26 +44,50 @@ custom_sdkconfig = ${esp32_common.custom_sdkconfig} CONFIG_ARDUINO_SELECTIVE_SD_MMC=y CONFIG_BT_ENABLED=y - CONFIG_BT_NIMBLE_ENABLED=y - CONFIG_BT_NIMBLE_EXT_ADV=n - CONFIG_ESP_WIFI_REMOTE_ENABLED=n + # esp_hosted core CONFIG_ESP_HOSTED_ENABLED=y + CONFIG_ESP_WIFI_REMOTE_ENABLED=n + # Board: custom (not Espressif EV board) + CONFIG_ESP_HOSTED_P4_DEV_BOARD_NONE=y + # Delay after C6 reset to allow boot (e.g. old v2.3.0 may be slow) + CONFIG_ESP_HOSTED_SDIO_RESET_DELAY_MS=1500 + + # RX streaming mode + CONFIG_ESP_HOSTED_SDIO_OPTIMIZATION_RX_STREAMING_MODE=y + + CONFIG_ESP_HOSTED_IDF_SLAVE_TARGET="esp32c6" + CONFIG_ESP_HOSTED_CP_TARGET_ESP32C6=y + CONFIG_ESP_HOSTED_CP_TARGET_ESP32H2=n + CONFIG_ESP_HOSTED_PRIV_SDIO_OPTION=y + CONFIG_ESP_HOSTED_SPI_HOST_INTERFACE=n CONFIG_ESP_HOSTED_SDIO_HOST_INTERFACE=y CONFIG_ESP_HOSTED_IDF_SLAVE_TARGET="esp32c6" CONFIG_ESP_HOSTED_ENABLE_BT_NIMBLE=y CONFIG_ESP_HOSTED_NIMBLE_HCI_VHCI=y CONFIG_ESP_HOSTED_ENABLE_PEER_DATA_TRANSFER=y CONFIG_ESP_HOSTED_MAX_CUSTOM_MSG_HANDLERS=3 - ; Prefer conservative reset behavior across P4 hosts - CONFIG_ESP_HOSTED_SLAVE_RESET_ON_EVERY_HOST_BOOTUP=n - CONFIG_ESP_HOSTED_SLAVE_RESET_ONLY_IF_NECESSARY=y - ; SOC_LCD (MUI / lovyanGFX) + # OTA method: LittleFS + CONFIG_OTA_METHOD_LITTLEFS=y + + # Skip version check — we force OTA regardless + # CONFIG_OTA_VERSION_CHECK_HOST_SLAVE is not set + # CONFIG_OTA_VERSION_CHECK_SLAVEFW_SLAVE is not set + + # RX streaming mode + CONFIG_ESP_HOSTED_SLAVE_RESET_ON_EVERY_HOST_BOOTUP=y + ;CONFIG_ESP_HOSTED_SLAVE_RESET_ONLY_IF_NECESSARY=y + # SOC_LCD (MUI / lovyanGFX) CONFIG_SOC_LCD_I80_SUPPORTED=y CONFIG_SOC_LCD_RGB_SUPPORTED=y CONFIG_SOC_MIPI_DSI_SUPPORTED=y + # stack dump CONFIG_ESP_SYSTEM_PANIC_PRINT_HALT=y ; remove for production version ;CONFIG_ESP_SYSTEM_PANIC_PRINT_REBOOT=y; for production version ;CONFIG_ESP_SYSTEM_PANIC_GDBSTUB=y ; for target debugging + # Logger: verbose for experiment + CONFIG_LOG_DEFAULT_LEVEL_INFO=y + CONFIG_LOG_MAXIMUM_LEVEL_DEBUG=y + lib_ignore = ${esp32_common.lib_ignore}