feat(ble): support ble on esp32s31

This commit is contained in:
cjin
2026-04-12 18:45:14 +08:00
committed by Wang Mengyang
parent 11268d8bfb
commit 6f7eec029b
110 changed files with 287 additions and 1901 deletions
@@ -1,5 +1,5 @@
/* /*
* SPDX-FileCopyrightText: 2025 Espressif Systems (Shanghai) CO LTD * SPDX-FileCopyrightText: 2025-2026 Espressif Systems (Shanghai) CO LTD
* *
* SPDX-License-Identifier: Apache-2.0 * SPDX-License-Identifier: Apache-2.0
*/ */
@@ -98,7 +98,13 @@ static_assert(false, "BLE Log SPI Out: Unsupported target architecture");
SPI_OUT_MESH_QUEUE_SIZE) SPI_OUT_MESH_QUEUE_SIZE)
#if SPI_OUT_LL_ENABLED && CONFIG_SOC_ESP_NIMBLE_CONTROLLER #if SPI_OUT_LL_ENABLED && CONFIG_SOC_ESP_NIMBLE_CONTROLLER
#if CONFIG_BT_DUAL_MODE_ARCH
#include "ble_mbuf.h"
#define BLE_MBUF_COPY ble_mbuf_copydata
#else
#include "os/os_mbuf.h" #include "os/os_mbuf.h"
#define BLE_MBUF_COPY os_mbuf_copydata
#endif // CONFIG_BT_DUAL_MODE_ARCH
#endif /* SPI_OUT_LL_ENABLED && CONFIG_SOC_ESP_NIMBLE_CONTROLLER */ #endif /* SPI_OUT_LL_ENABLED && CONFIG_SOC_ESP_NIMBLE_CONTROLLER */
// Private typedefs // Private typedefs
@@ -613,8 +619,8 @@ IRAM_ATTR static bool spi_out_log_cb_write(spi_out_log_cb_t *log_cb, const uint8
if (len_append && addr_append) { if (len_append && addr_append) {
#if SPI_OUT_LL_ENABLED && CONFIG_SOC_ESP_NIMBLE_CONTROLLER #if SPI_OUT_LL_ENABLED && CONFIG_SOC_ESP_NIMBLE_CONTROLLER
if (omdata) { if (omdata) {
os_mbuf_copydata((struct os_mbuf *)addr_append, 0, BLE_MBUF_COPY((struct ble_mbuf *)addr_append, 0,
len_append, buf + SPI_OUT_FRAME_HEAD_LEN + len); len_append, buf + SPI_OUT_FRAME_HEAD_LEN + len);
} }
else else
#endif /* SPI_OUT_LL_ENABLED && CONFIG_SOC_ESP_NIMBLE_CONTROLLER */ #endif /* SPI_OUT_LL_ENABLED && CONFIG_SOC_ESP_NIMBLE_CONTROLLER */
@@ -13,7 +13,13 @@
#include "ble_log_rt.h" #include "ble_log_rt.h"
#if CONFIG_SOC_ESP_NIMBLE_CONTROLLER #if CONFIG_SOC_ESP_NIMBLE_CONTROLLER
#if CONFIG_BT_DUAL_MODE_ARCH
#include "ble_mbuf.h"
#define BLE_MBUF_COPY ble_mbuf_copydata
#else
#include "os/os_mbuf.h" #include "os/os_mbuf.h"
#define BLE_MBUF_COPY os_mbuf_copydata
#endif // CONFIG_BT_DUAL_MODE_ARCH
#endif /* CONFIG_SOC_ESP_NIMBLE_CONTROLLER */ #endif /* CONFIG_SOC_ESP_NIMBLE_CONTROLLER */
/* VARIABLE */ /* VARIABLE */
@@ -133,8 +139,8 @@ void ble_log_lbm_write_trans(ble_log_prph_trans_t **trans, ble_log_src_t src_cod
if (len_append) { if (len_append) {
#if CONFIG_SOC_ESP_NIMBLE_CONTROLLER #if CONFIG_SOC_ESP_NIMBLE_CONTROLLER
if (omdata) { if (omdata) {
os_mbuf_copydata((struct os_mbuf *)addr_append, 0, BLE_MBUF_COPY((struct ble_mbuf *)addr_append, 0,
len_append, buf + BLE_LOG_FRAME_HEAD_LEN + len); len_append, buf + SPI_OUT_FRAME_HEAD_LEN + len);
} }
else else
#endif /* CONFIG_SOC_ESP_NIMBLE_CONTROLLER */ #endif /* CONFIG_SOC_ESP_NIMBLE_CONTROLLER */
@@ -3,4 +3,3 @@ source "$IDF_PATH/components/bt/porting_btdm/Kconfig.in"
config BT_CTRL_MULTI_LINK_ENABLED config BT_CTRL_MULTI_LINK_ENABLED
bool bool
default y default y
File diff suppressed because it is too large Load Diff
+2
View File
@@ -36,6 +36,8 @@
#if UC_BT_CTRL_UART_HCI_DMA_MODE #if UC_BT_CTRL_UART_HCI_DMA_MODE
#define BT_HCI_TRANSPORT_MODE HCI_TRANSPORT_UART_UHCI #define BT_HCI_TRANSPORT_MODE HCI_TRANSPORT_UART_UHCI
#endif // UC_BT_CTRL_UART_HCI_DMA_MODE #endif // UC_BT_CTRL_UART_HCI_DMA_MODE
#else
#error "Unknown HCI transport mode!!"
#endif // UC_BT_CTRL_HCI_INTERFACE_USE_RAM #endif // UC_BT_CTRL_HCI_INTERFACE_USE_RAM
/* /*
-5
View File
@@ -27,11 +27,6 @@ config BT_CTRL_TASK_STACK_SIZE
help help
This configures stack size of NimBLE controller task This configures stack size of NimBLE controller task
config BT_CTRL_MULTI_LINK_ENABLED
depends on SOC_BT_MULTI_LINK_SUPPORTED
bool "Enable multi-link mode"
default y
config BT_CTRL_SLEEP_ENABLE config BT_CTRL_SLEEP_ENABLE
bool "Enable Bluetooth Controller sleep" bool "Enable Bluetooth Controller sleep"
default n default n
@@ -1502,21 +1502,11 @@ int ble_stack_init(esp_bt_controller_config_t *cfg)
} }
#endif // CONFIG_BT_LE_ISO_SUPPORT #endif // CONFIG_BT_LE_ISO_SUPPORT
#if CONFIG_SW_COEXIST_ENABLE
// Should be invoked in ble ?
extern int r_bt_rf_coex_env_init(void);
r_bt_rf_coex_env_init();
#endif /* CONFIG_SW_COEXIST_ENABLE */
return 0; return 0;
} }
void ble_stack_deinit(void) void ble_stack_deinit(void)
{ {
#if CONFIG_SW_COEXIST_ENABLE
extern void r_bt_rf_coex_env_deinit(void);
r_bt_rf_coex_env_deinit();
#endif /* CONFIG_SW_COEXIST_ENABLE */
#if CONFIG_BT_LE_ISO_SUPPORT #if CONFIG_BT_LE_ISO_SUPPORT
iso_stack_deinitEnv(); iso_stack_deinitEnv();
#endif // CONFIG_BT_LE_ISO_SUPPORT #endif // CONFIG_BT_LE_ISO_SUPPORT
@@ -1578,10 +1568,6 @@ int ble_stack_enable(void)
#endif // BT_LE_ISO_SUPPORT #endif // BT_LE_ISO_SUPPORT
#if CONFIG_SW_COEXIST_ENABLE
extern int r_bt_rf_coex_env_enable(void);
r_bt_rf_coex_env_enable();
#endif /* CONFIG_SW_COEXIST_ENABLE */
return 0; return 0;
} }
@@ -5,6 +5,7 @@
*/ */
#ifndef _BTDM_LP_H_ #ifndef _BTDM_LP_H_
#define _BTDM_LP_H_ #define _BTDM_LP_H_
#include "esp_private/esp_modem_clock.h"
void btdm_lp_enable_clock(esp_btdm_controller_config_t *cfg); void btdm_lp_enable_clock(esp_btdm_controller_config_t *cfg);
@@ -18,4 +19,13 @@ void btdm_lp_reset(bool enable_stage);
void btdm_lp_shutdown(void); void btdm_lp_shutdown(void);
modem_clock_lpclk_src_t btdm_lp_get_lpclk_src(void);
void btdm_lp_set_lpclk_src(modem_clock_lpclk_src_t clk_src);
uint32_t btdm_lp_get_lpclk_freq(void);
void btdm_lp_set_lpclk_freq(uint32_t clk_freq);
#endif #endif
@@ -142,11 +142,11 @@ int wr_btdm_osal_intr_free(btdm_osal_intr_handle_t intr_handle);
void *wr_btdm_osal_malloc(uint32_t size, btdm_osal_malloc_flag_t flags); void *wr_btdm_osal_malloc(uint32_t size, btdm_osal_malloc_flag_t flags);
void wr_btdm_osal_free(void *ptr); void wr_btdm_osal_free(void *ptr);
#if !CONFIG_BTDM_CTRL_MULTI_LINK_ENABLED #if !CONFIG_BT_CTRL_MULTI_LINK_ENABLED
void *wr_btdm_osal_mmgmt_block_malloc(uint32_t size); void *wr_btdm_osal_mmgmt_block_malloc(uint32_t size);
void wr_btdm_osal_mmgmt_block_free(void *ptr); void wr_btdm_osal_mmgmt_block_free(void *ptr);
void wr_btdm_osal_mmgmt_block_copy(void *dst, const void *src, uint16_t size); void wr_btdm_osal_mmgmt_block_copy(void *dst, const void *src, uint16_t size);
#endif /* !CONFIG_BTDM_CTRL_MULTI_LINK_ENABLED */ #endif /* !CONFIG_BT_CTRL_MULTI_LINK_ENABLED */
// void * wr_btdm_osal_ets_delay_us(uint32_t us); // void * wr_btdm_osal_ets_delay_us(uint32_t us);
int wr_btdm_osal_read_efuse_mac(uint8_t *mac); int wr_btdm_osal_read_efuse_mac(uint8_t *mac);
@@ -24,6 +24,7 @@
#include "esp_private/sleep_modem.h" #include "esp_private/sleep_modem.h"
#include "esp_private/sleep_retention.h" #include "esp_private/sleep_retention.h"
#endif #endif
#include "soc/rtc.h"
#if CONFIG_IDF_TARGET_ESP32S31 #if CONFIG_IDF_TARGET_ESP32S31
// TODO: remove this include after use of HP_SYS_CLKRST_MODEM_CONF_REG is removed // TODO: remove this include after use of HP_SYS_CLKRST_MODEM_CONF_REG is removed
@@ -55,7 +56,7 @@ extern esp_err_t sleep_modem_bredr_mac_modem_state_init(void);
extern esp_err_t sleep_modem_ble_mac_modem_state_init(void); extern esp_err_t sleep_modem_ble_mac_modem_state_init(void);
#endif // UC_BT_CTRL_BLE_IS_ENABLEs #endif // UC_BT_CTRL_BLE_IS_ENABLEs
#endif /* CONFIG_FREERTOS_USE_TICKLESS_IDLE */ #endif /* CONFIG_FREERTOS_USE_TICKLESS_IDLE */
extern int r_btdm_hal_rtc_freq_set(uint64_t rtc_freq);
extern void r_btdm_sleep_set_sleep_cb(void *s_cb, void *w_cb, void *s_arg, void *w_arg, extern void r_btdm_sleep_set_sleep_cb(void *s_cb, void *w_cb, void *s_arg, void *w_arg,
uint32_t us_to_enabled); uint32_t us_to_enabled);
@@ -70,8 +71,8 @@ static DRAM_ATTR modem_clock_lpclk_src_t s_bt_lpclk_src = MODEM_CLOCK_LPCLK_SRC_
#ifdef CONFIG_PM_ENABLE #ifdef CONFIG_PM_ENABLE
static DRAM_ATTR esp_pm_lock_handle_t s_pm_lock = NULL; static DRAM_ATTR esp_pm_lock_handle_t s_pm_lock = NULL;
#endif // CONFIG_PM_ENABLE #endif // CONFIG_PM_ENABLE
// static modem_clock_lpclk_src_t s_bt_lpclk_src = MODEM_CLOCK_LPCLK_SRC_INVALID; static uint32_t s_bt_xtal_lpclk_freq = 100000;
static uint32_t s_bt_lpclk_freq = 100000; static uint32_t s_bt_lpclk_freq = 0;
/* /*
*************************************************************************************************** ***************************************************************************************************
@@ -85,7 +86,7 @@ btdm_lp_rtc_slow_clk_select(uint8_t slow_clk_src)
switch (slow_clk_src) { switch (slow_clk_src) {
case MODEM_CLOCK_LPCLK_SRC_MAIN_XTAL: case MODEM_CLOCK_LPCLK_SRC_MAIN_XTAL:
ESP_LOGI(BTDM_LOG_TAG, "Using main XTAL as clock source"); ESP_LOGI(BTDM_LOG_TAG, "Using main XTAL as clock source");
modem_clock_select_lp_clock_source(PERIPH_BT_MODULE, slow_clk_src, (CONFIG_XTAL_FREQ * 1000000 / s_bt_lpclk_freq - 1)); modem_clock_select_lp_clock_source(PERIPH_BT_MODULE, slow_clk_src, (CONFIG_XTAL_FREQ * 1000000 / s_bt_xtal_lpclk_freq - 1));
break; break;
case MODEM_CLOCK_LPCLK_SRC_RC_SLOW: case MODEM_CLOCK_LPCLK_SRC_RC_SLOW:
ESP_LOGW(BTDM_LOG_TAG, "Using 136 kHz RC as clock source, use with caution as it may not maintain ACL or Sync process due to low clock accuracy!"); ESP_LOGW(BTDM_LOG_TAG, "Using 136 kHz RC as clock source, use with caution as it may not maintain ACL or Sync process due to low clock accuracy!");
@@ -113,9 +114,11 @@ btdm_lp_timer_clk_init(esp_btdm_controller_config_t *cfg)
if (s_bt_lpclk_src == MODEM_CLOCK_LPCLK_SRC_INVALID) { if (s_bt_lpclk_src == MODEM_CLOCK_LPCLK_SRC_INVALID) {
#if CONFIG_BT_LE_LP_CLK_SRC_MAIN_XTAL #if CONFIG_BT_LE_LP_CLK_SRC_MAIN_XTAL
s_bt_lpclk_src = MODEM_CLOCK_LPCLK_SRC_MAIN_XTAL; s_bt_lpclk_src = MODEM_CLOCK_LPCLK_SRC_MAIN_XTAL;
s_bt_lpclk_freq = s_bt_xtal_lpclk_freq;
#else #else
#if CONFIG_RTC_CLK_SRC_INT_RC #if CONFIG_RTC_CLK_SRC_INT_RC
s_bt_lpclk_src = MODEM_CLOCK_LPCLK_SRC_RC_SLOW; s_bt_lpclk_src = MODEM_CLOCK_LPCLK_SRC_RC_SLOW;
s_bt_lpclk_freq = esp_clk_tree_lp_slow_get_freq_hz(ESP_CLK_TREE_SRC_FREQ_PRECISION_CACHED) / 5;
#elif CONFIG_RTC_CLK_SRC_EXT_CRYS #elif CONFIG_RTC_CLK_SRC_EXT_CRYS
uint32_t clk_freq = 0; uint32_t clk_freq = 0;
if ((rtc_clk_slow_src_get() == SOC_RTC_SLOW_CLK_SRC_XTAL32K) && if ((rtc_clk_slow_src_get() == SOC_RTC_SLOW_CLK_SRC_XTAL32K) &&
@@ -124,13 +127,16 @@ btdm_lp_timer_clk_init(esp_btdm_controller_config_t *cfg)
s_bt_lpclk_src = MODEM_CLOCK_LPCLK_SRC_XTAL32K; s_bt_lpclk_src = MODEM_CLOCK_LPCLK_SRC_XTAL32K;
s_bt_lpclk_freq = 32768; s_bt_lpclk_freq = 32768;
} else { } else {
ESP_LOGW(BTDM_LOG_TAG, "32.768kHz XTAL not detected, fall back to main XTAL as Bluetooth sleep clock"); ESP_LOGW(BTDM_LOG_TAG, "32.768kHz XTAL detection error, switch to main XTAL as Bluetooth sleep clock");
s_bt_lpclk_src = MODEM_CLOCK_LPCLK_SRC_MAIN_XTAL; s_bt_lpclk_src = MODEM_CLOCK_LPCLK_SRC_MAIN_XTAL;
s_bt_lpclk_freq = s_bt_xtal_lpclk_freq;
} }
#elif CONFIG_RTC_CLK_SRC_INT_RC32K #elif CONFIG_RTC_CLK_SRC_INT_RC32K
s_bt_lpclk_src = MODEM_CLOCK_LPCLK_SRC_RC32K; s_bt_lpclk_src = MODEM_CLOCK_LPCLK_SRC_RC32K;
s_bt_lpclk_freq = 32000;
#elif CONFIG_RTC_CLK_SRC_EXT_OSC #elif CONFIG_RTC_CLK_SRC_EXT_OSC
s_bt_lpclk_src = MODEM_CLOCK_LPCLK_SRC_EXT32K; s_bt_lpclk_src = MODEM_CLOCK_LPCLK_SRC_EXT32K;
s_bt_lpclk_freq = 32000;
#else #else
ESP_LOGE(BTDM_LOG_TAG, "Unsupported clock source"); ESP_LOGE(BTDM_LOG_TAG, "Unsupported clock source");
assert(0); assert(0);
@@ -138,19 +144,6 @@ btdm_lp_timer_clk_init(esp_btdm_controller_config_t *cfg)
#endif /* CONFIG_BT_LE_LP_CLK_SRC_MAIN_XTAL */ #endif /* CONFIG_BT_LE_LP_CLK_SRC_MAIN_XTAL */
} }
// if (s_bt_lpclk_src == MODEM_CLOCK_LPCLK_SRC_MAIN_XTAL) {
// cfg->rtc_freq = s_bt_lpclk_freq;
// } else if (s_bt_lpclk_src == MODEM_CLOCK_LPCLK_SRC_XTAL32K) {
// cfg->rtc_freq = 32768;
// } else if (s_bt_lpclk_src == MODEM_CLOCK_LPCLK_SRC_RC_SLOW) {
// cfg->rtc_freq = esp_clk_tree_lp_slow_get_freq_hz(ESP_CLK_TREE_SRC_FREQ_PRECISION_CACHED) / 5;
// //TODO
// // cfg->ble_ll_sca = 3000;
// } else if (s_bt_lpclk_src == MODEM_CLOCK_LPCLK_SRC_RC32K) {
// cfg->rtc_freq = 32000;
// } else if (s_bt_lpclk_src == MODEM_CLOCK_LPCLK_SRC_EXT32K) {
// cfg->rtc_freq = 32000;
// }
btdm_lp_rtc_slow_clk_select(s_bt_lpclk_src); btdm_lp_rtc_slow_clk_select(s_bt_lpclk_src);
} }
@@ -198,7 +191,6 @@ void btdm_lp_set_lpclk_freq(uint32_t clk_freq)
s_bt_xtal_lpclk_freq = clk_freq; s_bt_xtal_lpclk_freq = clk_freq;
} }
>>>>>>> d8bcda6a345 (change(bt): Fix build issues and do code clean up)
static void static void
btdm_lp_timer_clk_deinit(void) btdm_lp_timer_clk_deinit(void)
{ {
@@ -292,13 +284,9 @@ btdm_lp_enable_clock(esp_btdm_controller_config_t *cfg)
modem_clock_module_enable(PERIPH_BT_MODULE); modem_clock_module_enable(PERIPH_BT_MODULE);
modem_clock_module_mac_reset(PERIPH_BT_MODULE); modem_clock_module_mac_reset(PERIPH_BT_MODULE);
#if CONFIG_IDF_TARGET_ESP32S31 #if CONFIG_IDF_TARGET_ESP32S31
// TODO: Remote this setting after WIFI is supported // TODO: PM-704
REG_WRITE(MODEM_SYSCON_CLK_CONF1_REG, 0xffffffff);
// TODO: remove this include after low pwer clock init is performed in clk.c
REG_WRITE(HP_SYS_CLKRST_MODEM_CONF_REG, 0x3d); REG_WRITE(HP_SYS_CLKRST_MODEM_CONF_REG, 0x3d);
#endif #endif
// TODO: set the clock ion modem_clock_module_enable
REG_WRITE(MODEM_SYSCON_CLK_CONF_POWER_ST_REG, 0XFFFFFFFF);
btdm_lp_timer_clk_init(cfg); btdm_lp_timer_clk_init(cfg);
} }
@@ -347,6 +335,7 @@ btdm_lp_init(void)
} }
#endif /* UC_BT_CTRL_SLEEP_ENABLE && CONFIG_FREERTOS_USE_TICKLESS_IDLE */ #endif /* UC_BT_CTRL_SLEEP_ENABLE && CONFIG_FREERTOS_USE_TICKLESS_IDLE */
#endif /* CONFIG_PM_ENABLE */ #endif /* CONFIG_PM_ENABLE */
r_btdm_hal_rtc_freq_set(s_bt_lpclk_freq);
return 0; return 0;
} }
@@ -9,6 +9,7 @@
#include <stdint.h> #include <stdint.h>
#include <string.h> #include <string.h>
#include "btdm_osal_freertos.h" #include "btdm_osal_freertos.h"
#include "btdm_user_cfg.h"
#include "btdm_mempool.h" #include "btdm_mempool.h"
#include "esp_mac.h" #include "esp_mac.h"
@@ -1147,8 +1148,7 @@ wr_btdm_osal_free(void *ptr)
heap_caps_free(ptr); heap_caps_free(ptr);
} }
#if !CONFIG_BTDM_CTRL_MULTI_LINK_ENABLED #if !CONFIG_BT_CTRL_MULTI_LINK_ENABLED
#if UC_BT_CTRL_BLE_IS_ENABLE
void * void *
wr_btdm_osal_mmgmt_block_malloc(uint32_t size) wr_btdm_osal_mmgmt_block_malloc(uint32_t size)
{ {
@@ -1181,27 +1181,7 @@ wr_btdm_osal_mmgmt_block_copy(void *dst, const void *src, uint16_t size)
extern void r_ble_lll_mmgmt_block_copy(void *addr0, void *addr1, uint16_t size); extern void r_ble_lll_mmgmt_block_copy(void *addr0, void *addr1, uint16_t size);
r_ble_lll_mmgmt_block_copy((void *)dst, (void *)src, size); r_ble_lll_mmgmt_block_copy((void *)dst, (void *)src, size);
} }
#else #endif /* !CONFIG_BT_CTRL_MULTI_LINK_ENABLED */
void *
wr_btdm_osal_mmgmt_block_malloc(uint32_t size)
{
return NULL;
}
void
wr_btdm_osal_mmgmt_block_free(void *ptr)
{
(void)ptr;
}
void
wr_btdm_osal_mmgmt_block_copy(void *dst, const void *src, uint16_t size)
{
(void)dst;
(void)src;
(void)size;
}
#endif /* if UC_BT_CTRL_BR_EDR_IS_ENABLE */
#endif /* !CONFIG_BTDM_CTRL_MULTI_LINK_ENABLED */
/* /*
*************************************************************************************************** ***************************************************************************************************
@@ -115,7 +115,7 @@ hci_driver_vhci_controller_tx(hci_driver_data_type_t data_type, uint8_t *data, u
} else if (data_type == HCI_DRIVER_TYPE_EVT) { } else if (data_type == HCI_DRIVER_TYPE_EVT) {
/* TODO: If there is no memory, should handle it in the controller. */ /* TODO: If there is no memory, should handle it in the controller. */
if (dir == HCI_DRIVER_DIR_LEC2H) { if (dir == HCI_DRIVER_DIR_LEC2H) {
#if UC_BTDM_CTRL_BLE_IS_ENABLE #if UC_BT_CTRL_BLE_IS_ENABLE
buf = malloc(buf_len); buf = malloc(buf_len);
assert(buf != NULL); assert(buf != NULL);
buf[0] = HCI_DRIVER_TYPE_EVT; buf[0] = HCI_DRIVER_TYPE_EVT;
@@ -11,8 +11,7 @@ extern "C" {
#endif #endif
// btbb sleep retention reg // btbb sleep retention reg
#define BB_PART_CNT 4
#define BB_PART_CNT 3
#define BB_PART_0_SIZE 128 #define BB_PART_0_SIZE 128
#define BB_PART_1_SIZE 68 #define BB_PART_1_SIZE 68
#define BB_PART_2_SIZE 19 #define BB_PART_2_SIZE 19
@@ -23,6 +22,8 @@ extern "C" {
#define BB_PART_2_ADDR 0x20102C00 #define BB_PART_2_ADDR 0x20102C00
#define BB_PART_3_ADDR 0x20102400 #define BB_PART_3_ADDR 0x20102400
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif
+4 -2
View File
@@ -1,5 +1,5 @@
/* /*
* SPDX-FileCopyrightText: 2015-2023 Espressif Systems (Shanghai) CO LTD * SPDX-FileCopyrightText: 2015-2026 Espressif Systems (Shanghai) CO LTD
* *
* SPDX-License-Identifier: Apache-2.0 * SPDX-License-Identifier: Apache-2.0
*/ */
@@ -37,6 +37,9 @@ static esp_err_t btbb_sleep_retention_init(void *arg)
#if BB_PART_CNT > 2 #if BB_PART_CNT > 2
[2] = { .config = REGDMA_LINK_CONTINUOUS_INIT(REGDMA_MODEM_BT_BB_LINK(0x02), BB_PART_2_ADDR, BB_PART_2_ADDR, BB_PART_2_SIZE, 0, 0), .owner = BTBB_LINK_OWNER }, [2] = { .config = REGDMA_LINK_CONTINUOUS_INIT(REGDMA_MODEM_BT_BB_LINK(0x02), BB_PART_2_ADDR, BB_PART_2_ADDR, BB_PART_2_SIZE, 0, 0), .owner = BTBB_LINK_OWNER },
#endif // BB_PART_CNT > 2 #endif // BB_PART_CNT > 2
#if BB_PART_CNT > 3
[3] = { .config = REGDMA_LINK_CONTINUOUS_INIT(REGDMA_MODEM_BT_BB_LINK(0x03), BB_PART_3_ADDR, BB_PART_3_ADDR, BB_PART_3_SIZE, 0, 0), .owner = BTBB_LINK_OWNER },
#endif // BB_PART_CNT > 3
}; };
esp_err_t err = sleep_retention_entries_create(btbb_regs_retention, ARRAY_SIZE(btbb_regs_retention), REGDMA_LINK_PRI_BT_MAC_BB, SLEEP_RETENTION_MODULE_BT_BB); esp_err_t err = sleep_retention_entries_create(btbb_regs_retention, ARRAY_SIZE(btbb_regs_retention), REGDMA_LINK_PRI_BT_MAC_BB, SLEEP_RETENTION_MODULE_BT_BB);
ESP_RETURN_ON_ERROR(err, TAG, "failed to allocate memory for btbb retention"); ESP_RETURN_ON_ERROR(err, TAG, "failed to allocate memory for btbb retention");
@@ -57,7 +60,6 @@ static void btbb_sleep_retention_deinit(void)
} }
#endif // SOC_PM_MODEM_RETENTION_BY_REGDMA && CONFIG_FREERTOS_USE_TICKLESS_IDLE #endif // SOC_PM_MODEM_RETENTION_BY_REGDMA && CONFIG_FREERTOS_USE_TICKLESS_IDLE
void esp_btbb_enable(void) void esp_btbb_enable(void)
{ {
_lock_acquire(&s_btbb_access_lock); _lock_acquire(&s_btbb_access_lock);
-1
View File
@@ -370,7 +370,6 @@ void esp_phy_enable(esp_phy_modem_t modem)
phy_ant_update(); phy_ant_update();
phy_ant_clr_update_flag(); phy_ant_clr_update_flag();
} }
phy_module_disable();
} }
phy_set_modem_flag(modem); phy_set_modem_flag(modem);
#if !CONFIG_IDF_TARGET_ESP32 && !CONFIG_ESP_PHY_DISABLE_PLL_TRACK #if !CONFIG_IDF_TARGET_ESP32 && !CONFIG_ESP_PHY_DISABLE_PLL_TRACK
+20
View File
@@ -19,6 +19,10 @@ examples/bluetooth/bluedroid/ble:
<<: *bt_default_depends <<: *bt_default_depends
disable: disable:
- if: SOC_BLE_SUPPORTED != 1 - if: SOC_BLE_SUPPORTED != 1
disable_test:
- if: IDF_TARGET == "esp32s31"
temporary: true
reason: lack of runners
depends_components+: depends_components+:
- esp_console - esp_console
- esp_driver_gpio - esp_driver_gpio
@@ -48,6 +52,10 @@ examples/bluetooth/bluedroid/ble/ble_throughput:
<<: *bt_default_depends <<: *bt_default_depends
disable: disable:
- if: SOC_BLE_SUPPORTED != 1 - if: SOC_BLE_SUPPORTED != 1
disable_test:
- if: IDF_TARGET == "esp32s31"
temporary: true
reason: lack of runners
depends_components+: depends_components+:
- esp_console - esp_console
- esp_driver_gpio - esp_driver_gpio
@@ -60,6 +68,10 @@ examples/bluetooth/bluedroid/ble_50:
<<: *bt_default_depends <<: *bt_default_depends
disable: disable:
- if: SOC_BLE_50_SUPPORTED != 1 - if: SOC_BLE_50_SUPPORTED != 1
disable_test:
- if: IDF_TARGET == "esp32s31"
temporary: true
reason: lack of runners
depends_components+: depends_components+:
- esp_console - esp_console
- esp_driver_gpio - esp_driver_gpio
@@ -373,6 +385,10 @@ examples/bluetooth/nimble/blecent:
<<: *bt_default_depends <<: *bt_default_depends
disable: disable:
- if: SOC_BLE_SUPPORTED != 1 - if: SOC_BLE_SUPPORTED != 1
disable_test:
- if: IDF_TARGET == "esp32s31"
temporary: true
reason: lack of runners
depends_components+: depends_components+:
- esp_coex - esp_coex
- esp_pm - esp_pm
@@ -415,6 +431,10 @@ examples/bluetooth/nimble/power_save:
<<: *bt_default_depends <<: *bt_default_depends
disable: disable:
- if: SOC_BLE_SUPPORTED != 1 - if: SOC_BLE_SUPPORTED != 1
disable_test:
- if: IDF_TARGET == "esp32s31"
temporary: true
reason: lack of runners, and light sleep not supported yet
depends_components+: depends_components+:
- esp_coex - esp_coex
- esp_pm - esp_pm
@@ -1,5 +1,5 @@
| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | ESP32-S3 | | Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | ESP32-S3 | ESP32-S31 |
| ----------------- | ----- | -------- | -------- | -------- | -------- | --------- | -------- | -------- | -------- | | ----------------- | ----- | -------- | -------- | -------- | -------- | --------- | -------- | -------- | -------- | --------- |
# Bluedroid Beacon Example # Bluedroid Beacon Example
@@ -1,5 +1,5 @@
| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | ESP32-S3 | | Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | ESP32-S3 | ESP32-S31 |
| ----------------- | ----- | -------- | -------- | -------- | -------- | --------- | -------- | -------- | -------- | | ----------------- | ----- | -------- | -------- | -------- | -------- | --------- | -------- | -------- | -------- | --------- |
# Bluedroid Connection Example # Bluedroid Connection Example
@@ -1,5 +1,5 @@
| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | ESP32-S3 | | Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | ESP32-S3 | ESP32-S31 |
| ----------------- | ----- | -------- | -------- | -------- | -------- | --------- | -------- | -------- | -------- | | ----------------- | ----- | -------- | -------- | -------- | -------- | --------- | -------- | -------- | -------- | --------- |
# Bluedroid GATT Server Example # Bluedroid GATT Server Example
@@ -1,5 +1,5 @@
| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | ESP32-S3 | | Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | ESP32-S3 | ESP32-S31 |
| ----------------- | ----- | -------- | -------- | -------- | -------- | --------- | -------- | -------- | -------- | | ----------------- | ----- | -------- | -------- | -------- | -------- | --------- | -------- | -------- | -------- | --------- |
# NimBLE Beacon Example # NimBLE Beacon Example
@@ -1,5 +1,5 @@
| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | ESP32-S3 | | Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | ESP32-S3 | ESP32-S31 |
| ----------------- | ----- | -------- | -------- | -------- | -------- | --------- | -------- | -------- | -------- | | ----------------- | ----- | -------- | -------- | -------- | -------- | --------- | -------- | -------- | -------- | --------- |
# NimBLE Connection Example # NimBLE Connection Example
@@ -1,5 +1,5 @@
| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | ESP32-S3 | | Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | ESP32-S3 | ESP32-S31 |
| ----------------- | ----- | -------- | -------- | -------- | -------- | --------- | -------- | -------- | -------- | | ----------------- | ----- | -------- | -------- | -------- | -------- | --------- | -------- | -------- | -------- | --------- |
# NimBLE GATT Server Example # NimBLE GATT Server Example
@@ -1,5 +1,5 @@
| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | ESP32-S3 | | Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | ESP32-S3 | ESP32-S31 |
| ----------------- | ----- | -------- | -------- | -------- | -------- | --------- | -------- | -------- | -------- | | ----------------- | ----- | -------- | -------- | -------- | -------- | --------- | -------- | -------- | -------- | --------- |
# NimBLE Security Example # NimBLE Security Example
@@ -1,5 +1,5 @@
| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | ESP32-S3 | | Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | ESP32-S3 | ESP32-S31 |
| ----------------- | ----- | -------- | -------- | -------- | -------- | --------- | -------- | -------- | -------- | | ----------------- | ----- | -------- | -------- | -------- | -------- | --------- | -------- | -------- | -------- | --------- |
# ESP-IDF BLE ACL Latency Test - Central # ESP-IDF BLE ACL Latency Test - Central
@@ -1,5 +1,5 @@
| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | ESP32-S3 | | Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | ESP32-S3 | ESP32-S31 |
| ----------------- | ----- | -------- | -------- | -------- | -------- | --------- | -------- | -------- | -------- | | ----------------- | ----- | -------- | -------- | -------- | -------- | --------- | -------- | -------- | -------- | --------- |
# ESP-IDF BLE ACL Latency Test - Peripheral # ESP-IDF BLE ACL Latency Test - Peripheral
@@ -1,5 +1,5 @@
| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | ESP32-S3 | | Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | ESP32-S3 | ESP32-S31 |
| ----------------- | ----- | -------- | -------- | -------- | -------- | --------- | -------- | -------- | -------- | | ----------------- | ----- | -------- | -------- | -------- | -------- | --------- | -------- | -------- | -------- | --------- |
# ESP-IDF BLE ANCS Example # ESP-IDF BLE ANCS Example
@@ -1,5 +1,5 @@
| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | ESP32-S3 | | Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | ESP32-S3 | ESP32-S31 |
| ----------------- | ----- | -------- | -------- | -------- | -------- | --------- | -------- | -------- | -------- | | ----------------- | ----- | -------- | -------- | -------- | -------- | --------- | -------- | -------- | -------- | --------- |
# ESP-IDF BLE Compatibility Test Example # ESP-IDF BLE Compatibility Test Example
@@ -1,5 +1,5 @@
| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | ESP32-S3 | | Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | ESP32-S3 | ESP32-S31 |
| ----------------- | ----- | -------- | -------- | -------- | -------- | --------- | -------- | -------- | -------- | | ----------------- | ----- | -------- | -------- | -------- | -------- | --------- | -------- | -------- | -------- | --------- |
# ESP-IDF Eddystone Example # ESP-IDF Eddystone Example
@@ -1,5 +1,5 @@
| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | ESP32-S3 | | Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | ESP32-S3 | ESP32-S31 |
| ----------------- | ----- | -------- | -------- | -------- | -------- | --------- | -------- | -------- | -------- | | ----------------- | ----- | -------- | -------- | -------- | -------- | --------- | -------- | -------- | -------- | --------- |
# ESP-IDF Eddystone Example # ESP-IDF Eddystone Example
@@ -1,5 +1,5 @@
| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | ESP32-S3 | | Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | ESP32-S3 | ESP32-S31 |
| ----------------- | ----- | -------- | -------- | -------- | -------- | --------- | -------- | -------- | -------- | | ----------------- | ----- | -------- | -------- | -------- | -------- | --------- | -------- | -------- | -------- | --------- |
# BLE Encrypted Advertising Data Central Example (Bluedroid) # BLE Encrypted Advertising Data Central Example (Bluedroid)
@@ -1,5 +1,5 @@
| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | ESP32-S3 | | Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | ESP32-S3 | ESP32-S31 |
| ----------------- | ----- | -------- | -------- | -------- | -------- | --------- | -------- | -------- | -------- | | ----------------- | ----- | -------- | -------- | -------- | -------- | --------- | -------- | -------- | -------- | --------- |
# BLE Encrypted Advertising Data Peripheral Example (Bluedroid) # BLE Encrypted Advertising Data Peripheral Example (Bluedroid)
@@ -1,5 +1,5 @@
| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | ESP32-S3 | | Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | ESP32-S3 | ESP32-S31 |
| ----------------- | ----- | -------- | -------- | -------- | -------- | --------- | -------- | -------- | -------- | | ----------------- | ----- | -------- | -------- | -------- | -------- | --------- | -------- | -------- | -------- | --------- |
# ESP-IDF BLE HID Example # ESP-IDF BLE HID Example
@@ -1,5 +1,5 @@
| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | ESP32-S3 | | Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | ESP32-S3 | ESP32-S31 |
| ----------------- | ----- | -------- | -------- | -------- | -------- | --------- | -------- | -------- | -------- | | ----------------- | ----- | -------- | -------- | -------- | -------- | --------- | -------- | -------- | -------- | --------- |
# ESP-IDF iBeacon demo # ESP-IDF iBeacon demo
@@ -1,5 +1,5 @@
| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | ESP32-S3 | | Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | ESP32-S3 | ESP32-S31 |
| ----------------- | ----- | -------- | -------- | -------- | -------- | --------- | -------- | -------- | -------- | | ----------------- | ----- | -------- | -------- | -------- | -------- | --------- | -------- | -------- | -------- | --------- |
# BLE Multiple Connection Central Example # BLE Multiple Connection Central Example
@@ -1,5 +1,5 @@
| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | ESP32-S3 | | Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | ESP32-S3 | ESP32-S31 |
| ----------------- | ----- | -------- | -------- | -------- | -------- | --------- | -------- | -------- | -------- | | ----------------- | ----- | -------- | -------- | -------- | -------- | --------- | -------- | -------- | -------- | --------- |
# BLE Multiple Connection Peripheral Example # BLE Multiple Connection Peripheral Example
@@ -1,5 +1,5 @@
| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | ESP32-S3 | | Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | ESP32-S3 | ESP32-S31 |
| ----------------- | ----- | -------- | -------- | -------- | -------- | --------- | -------- | -------- | -------- | | ----------------- | ----- | -------- | -------- | -------- | -------- | --------- | -------- | -------- | -------- | --------- |
# ESP-IDF SPP GATT CLIENT demo # ESP-IDF SPP GATT CLIENT demo
@@ -1,5 +1,5 @@
| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | ESP32-S3 | | Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | ESP32-S3 | ESP32-S31 |
| ----------------- | ----- | -------- | -------- | -------- | -------- | --------- | -------- | -------- | -------- | | ----------------- | ----- | -------- | -------- | -------- | -------- | --------- | -------- | -------- | -------- | --------- |
## ESP-IDF GATT SERVER SPP Example ## ESP-IDF GATT SERVER SPP Example
@@ -27,6 +27,7 @@ CUR_DIR = Path(__file__).parent.resolve()
@idf_parametrize( @idf_parametrize(
'target', ['esp32', 'esp32c3', 'esp32c6', 'esp32c61', 'esp32c5', 'esp32h2', 'esp32s3'], indirect=['target'] 'target', ['esp32', 'esp32c3', 'esp32c6', 'esp32c61', 'esp32c5', 'esp32h2', 'esp32s3'], indirect=['target']
) )
@pytest.mark.temp_skip_ci(targets=['esp32s31'], reason='lack of runner')
def test_gatt_write_throughput(app_path: str, dut: tuple[IdfDut, IdfDut]) -> None: def test_gatt_write_throughput(app_path: str, dut: tuple[IdfDut, IdfDut]) -> None:
server = dut[0] server = dut[0]
client = dut[1] client = dut[1]
@@ -115,6 +116,7 @@ def test_c2_26mhz_xtal_write_throughput(app_path: str, dut: tuple[IdfDut, IdfDut
@idf_parametrize( @idf_parametrize(
'target', ['esp32', 'esp32c3', 'esp32c6', 'esp32c61', 'esp32c5', 'esp32h2', 'esp32s3'], indirect=['target'] 'target', ['esp32', 'esp32c3', 'esp32c6', 'esp32c61', 'esp32c5', 'esp32h2', 'esp32s3'], indirect=['target']
) )
@pytest.mark.temp_skip_ci(targets=['esp32s31'], reason='lack of runner')
def test_gatt_notify_throughput(app_path: str, dut: tuple[IdfDut, IdfDut]) -> None: def test_gatt_notify_throughput(app_path: str, dut: tuple[IdfDut, IdfDut]) -> None:
server = dut[0] server = dut[0]
client = dut[1] client = dut[1]
@@ -1,5 +1,5 @@
| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | ESP32-S3 | | Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | ESP32-S3 | ESP32-S31 |
| ----------------- | ----- | -------- | -------- | -------- | -------- | --------- | -------- | -------- | -------- | | ----------------- | ----- | -------- | -------- | -------- | -------- | --------- | -------- | -------- | -------- | --------- |
# ESP-IDF BLE throughput GATT CLIENT Test # ESP-IDF BLE throughput GATT CLIENT Test
@@ -1,5 +1,5 @@
| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | ESP32-S3 | | Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | ESP32-S3 | ESP32-S31 |
| ----------------- | ----- | -------- | -------- | -------- | -------- | --------- | -------- | -------- | -------- | | ----------------- | ----- | -------- | -------- | -------- | -------- | --------- | -------- | -------- | -------- | --------- |
# ESP-IDF BLE throughput GATT SERVER Test # ESP-IDF BLE throughput GATT SERVER Test
@@ -1,5 +1,5 @@
| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | ESP32-S3 | | Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | ESP32-S3 | ESP32-S31 |
| ----------------- | ----- | -------- | -------- | -------- | -------- | --------- | -------- | -------- | -------- | | ----------------- | ----- | -------- | -------- | -------- | -------- | --------- | -------- | -------- | -------- | --------- |
# ESP-IDF Gatt Client Example # ESP-IDF Gatt Client Example
@@ -1,5 +1,5 @@
| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | ESP32-S3 | | Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | ESP32-S3 | ESP32-S31 |
| ----------------- | ----- | -------- | -------- | -------- | -------- | --------- | -------- | -------- | -------- | | ----------------- | ----- | -------- | -------- | -------- | -------- | --------- | -------- | -------- | -------- | --------- |
# ESP-IDF Gatt Security Client Example # ESP-IDF Gatt Security Client Example
@@ -1,5 +1,5 @@
| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | ESP32-S3 | | Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | ESP32-S3 | ESP32-S31 |
| ----------------- | ----- | -------- | -------- | -------- | -------- | --------- | -------- | -------- | -------- | | ----------------- | ----- | -------- | -------- | -------- | -------- | --------- | -------- | -------- | -------- | --------- |
# ESP-IDF Gatt Security Server Example # ESP-IDF Gatt Security Server Example
@@ -1,5 +1,5 @@
| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | ESP32-S3 | | Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | ESP32-S3 | ESP32-S31 |
| ----------------- | ----- | -------- | -------- | -------- | -------- | --------- | -------- | -------- | -------- | | ----------------- | ----- | -------- | -------- | -------- | -------- | --------- | -------- | -------- | -------- | --------- |
# ESP-IDF Gatt Server Example # ESP-IDF Gatt Server Example
@@ -0,0 +1,3 @@
# Override some defaults so BT stack is enabled
# by default in this example
CONFIG_PARTITION_TABLE_SINGLE_APP_LARGE=y
@@ -1,5 +1,5 @@
| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | ESP32-S3 | | Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | ESP32-S3 | ESP32-S31 |
| ----------------- | ----- | -------- | -------- | -------- | -------- | --------- | -------- | -------- | -------- | | ----------------- | ----- | -------- | -------- | -------- | -------- | --------- | -------- | -------- | -------- | --------- |
# ESP-IDF Gatt Server Service Table Example # ESP-IDF Gatt Server Service Table Example
@@ -1,5 +1,5 @@
| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | ESP32-S3 | | Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | ESP32-S3 | ESP32-S31 |
| ----------------- | ----- | -------- | -------- | -------- | -------- | --------- | -------- | -------- | -------- | | ----------------- | ----- | -------- | -------- | -------- | -------- | --------- | -------- | -------- | -------- | --------- |
# ESP-IDF Gatt Client Multi Connection Example # ESP-IDF Gatt Client Multi Connection Example
@@ -24,8 +24,11 @@ GATT_CI_CONFIGS = ['name', 'smp_off|smp_off', 'min_bin|min_bin', 'log_off|log_of
indirect=True, indirect=True,
) )
@idf_parametrize( @idf_parametrize(
'target', ['esp32', 'esp32c3', 'esp32c6', 'esp32c5', 'esp32h2', 'esp32s3', 'esp32c61'], indirect=['target'] 'target',
['esp32', 'esp32c3', 'esp32c6', 'esp32c5', 'esp32h2', 'esp32s3', 'esp32c61'],
indirect=['target'],
) )
@pytest.mark.temp_skip_ci(targets=['esp32s31'], reason='lack of runner')
def test_gatt_func(app_path: str, dut: tuple[IdfDut, IdfDut]) -> None: def test_gatt_func(app_path: str, dut: tuple[IdfDut, IdfDut]) -> None:
gatt_client = dut[1] gatt_client = dut[1]
gatt_server = dut[0] gatt_server = dut[0]
@@ -119,8 +122,11 @@ GATT_SECURITY_CI_CONFIGS = ['name', 'min_bin|min_bin', 'log_off|log_off']
indirect=True, indirect=True,
) )
@idf_parametrize( @idf_parametrize(
'target', ['esp32', 'esp32c3', 'esp32c6', 'esp32c5', 'esp32h2', 'esp32s3', 'esp32c61'], indirect=['target'] 'target',
['esp32', 'esp32c3', 'esp32c6', 'esp32c5', 'esp32h2', 'esp32s3', 'esp32c61'],
indirect=['target'],
) )
@pytest.mark.temp_skip_ci(targets=['esp32s31'], reason='lack of runner')
def test_gatt_security_func(app_path: str, dut: tuple[IdfDut, IdfDut], target: tuple) -> None: def test_gatt_security_func(app_path: str, dut: tuple[IdfDut, IdfDut], target: tuple) -> None:
gatt_security_client = dut[1] gatt_security_client = dut[1]
gatt_security_server = dut[0] gatt_security_server = dut[0]
@@ -248,8 +254,11 @@ def test_c2_26mhz_xtal_gatt_security_func(app_path: str, dut: tuple[IdfDut, IdfD
indirect=True, indirect=True,
) )
@idf_parametrize( @idf_parametrize(
'target', ['esp32', 'esp32c3', 'esp32c6', 'esp32c5', 'esp32h2', 'esp32s3', 'esp32c61'], indirect=['target'] 'target',
['esp32', 'esp32c3', 'esp32c6', 'esp32c5', 'esp32h2', 'esp32s3', 'esp32c61'],
indirect=['target'],
) )
@pytest.mark.temp_skip_ci(targets=['esp32s31'], reason='lack of runner')
def test_ble_ibeacon_func(app_path: str, dut: tuple[IdfDut, IdfDut]) -> None: def test_ble_ibeacon_func(app_path: str, dut: tuple[IdfDut, IdfDut]) -> None:
ibeacon_sender = dut[0] ibeacon_sender = dut[0]
ibeacon_receiver = dut[1] ibeacon_receiver = dut[1]
@@ -325,8 +334,11 @@ def test_c2_26mhz_ble_ibeacon_func(app_path: str, dut: tuple[IdfDut, IdfDut]) ->
indirect=True, indirect=True,
) )
@idf_parametrize( @idf_parametrize(
'target', ['esp32', 'esp32c3', 'esp32c6', 'esp32c5', 'esp32h2', 'esp32s3', 'esp32c61'], indirect=['target'] 'target',
['esp32', 'esp32c3', 'esp32c6', 'esp32c5', 'esp32h2', 'esp32s3', 'esp32c61'],
indirect=['target'],
) )
@pytest.mark.temp_skip_ci(targets=['esp32s31'], reason='lack of runner')
def test_gatt_config_func(app_path: str, dut: tuple[IdfDut, IdfDut]) -> None: def test_gatt_config_func(app_path: str, dut: tuple[IdfDut, IdfDut]) -> None:
gatt_client = dut[1] gatt_client = dut[1]
gatt_server = dut[0] gatt_server = dut[0]
@@ -1,5 +1,5 @@
| Supported Targets | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | ESP32-S3 | | Supported Targets | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | ESP32-S3 | ESP32-S31 |
| ----------------- | -------- | -------- | -------- | -------- | --------- | -------- | -------- | -------- | | ----------------- | -------- | -------- | -------- | -------- | --------- | -------- | -------- | -------- | --------- |
# ESP-IDF Gatt Security Client Example # ESP-IDF Gatt Security Client Example
@@ -1,5 +1,5 @@
| Supported Targets | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | ESP32-S3 | | Supported Targets | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | ESP32-S3 | ESP32-S31 |
| ----------------- | -------- | -------- | -------- | -------- | --------- | -------- | -------- | -------- | | ----------------- | -------- | -------- | -------- | -------- | --------- | -------- | -------- | -------- | --------- |
# ESP-IDF BLE50 Security Server Example # ESP-IDF BLE50 Security Server Example
@@ -0,0 +1,4 @@
# This file was generated using idf.py save-defconfig. It can be edited manually.
# Espressif IoT Development Framework (ESP-IDF) Project Minimal Configuration
#
CONFIG_PARTITION_TABLE_SINGLE_APP_LARGE=y
@@ -1,5 +1,5 @@
| Supported Targets | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | ESP32-S3 | | Supported Targets | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | ESP32-S3 | ESP32-S31 |
| ----------------- | -------- | -------- | -------- | -------- | --------- | -------- | -------- | -------- | | ----------------- | -------- | -------- | -------- | -------- | --------- | -------- | -------- | -------- | --------- |
# ESP-IDF BLE 50 throughput GATT CLIENT Test # ESP-IDF BLE 50 throughput GATT CLIENT Test
@@ -1,5 +1,5 @@
| Supported Targets | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | ESP32-S3 | | Supported Targets | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | ESP32-S3 | ESP32-S31 |
| ----------------- | -------- | -------- | -------- | -------- | --------- | -------- | -------- | -------- | | ----------------- | -------- | -------- | -------- | -------- | --------- | -------- | -------- | -------- | --------- |
# ESP-IDF BLE 50 throughput GATT SERVER Test # ESP-IDF BLE 50 throughput GATT SERVER Test
@@ -1,5 +1,5 @@
| Supported Targets | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | | Supported Targets | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | ESP32-S31 |
| ----------------- | -------- | -------- | --------- | -------- | -------- | | ----------------- | -------- | -------- | --------- | -------- | -------- | --------- |
# BLE Connection Subrating Central Example # BLE Connection Subrating Central Example
@@ -1,5 +1,5 @@
| Supported Targets | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | | Supported Targets | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | ESP32-S31 |
| ----------------- | -------- | -------- | --------- | -------- | -------- | | ----------------- | -------- | -------- | --------- | -------- | -------- | --------- |
# BLE Connection Subrating Peripheral Example # BLE Connection Subrating Peripheral Example
@@ -1,5 +1,5 @@
| Supported Targets | ESP32-C5 | ESP32-C61 | ESP32-H2 | ESP32-H4 | | Supported Targets | ESP32-C5 | ESP32-C61 | ESP32-H2 | ESP32-H4 | ESP32-S31 |
| ----------------- | -------- | --------- | -------- | -------- | | ----------------- | -------- | --------- | -------- | -------- | --------- |
# ESP-IDF BLE Connection Central with CTE Example # ESP-IDF BLE Connection Central with CTE Example
@@ -1,5 +1,5 @@
| Supported Targets | ESP32-C5 | ESP32-C61 | ESP32-H2 | ESP32-H4 | | Supported Targets | ESP32-C5 | ESP32-C61 | ESP32-H2 | ESP32-H4 | ESP32-S31 |
| ----------------- | -------- | --------- | -------- | -------- | | ----------------- | -------- | --------- | -------- | -------- | --------- |
# ESP-IDF BLE Connection Peripheral with CTE Example # ESP-IDF BLE Connection Peripheral with CTE Example
@@ -1,5 +1,5 @@
| Supported Targets | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | | Supported Targets | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | ESP32-S31 |
| ----------------- | -------- | -------- | --------- | -------- | -------- | | ----------------- | -------- | -------- | --------- | -------- | -------- | --------- |
# BLE Periodic Advertiser With Response (PAwR) Advertiser Example # BLE Periodic Advertiser With Response (PAwR) Advertiser Example
@@ -1,5 +1,5 @@
| Supported Targets | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | | Supported Targets | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | ESP32-S31 |
| ----------------- | -------- | -------- | --------- | -------- | -------- | | ----------------- | -------- | -------- | --------- | -------- | -------- | --------- |
# BLE Periodic Advertiser With Response (PAwR) Advertiser Connection Example # BLE Periodic Advertiser With Response (PAwR) Advertiser Connection Example
@@ -1,5 +1,5 @@
| Supported Targets | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | | Supported Targets | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | ESP32-S31 |
| ----------------- | -------- | -------- | --------- | -------- | -------- | | ----------------- | -------- | -------- | --------- | -------- | -------- | --------- |
# ESP-IDF PAwR Synchronizer Example # ESP-IDF PAwR Synchronizer Example
@@ -1,5 +1,5 @@
| Supported Targets | ESP32-C5 | ESP32-C61 | ESP32-H2 | ESP32-H4 | | Supported Targets | ESP32-C5 | ESP32-C61 | ESP32-H2 | ESP32-H4 | ESP32-S31 |
| ----------------- | -------- | --------- | -------- | -------- | | ----------------- | -------- | --------- | -------- | -------- | --------- |
# ESP-IDF BLE Periodic Advertising with CTE Example # ESP-IDF BLE Periodic Advertising with CTE Example
@@ -1,5 +1,5 @@
| Supported Targets | ESP32-C5 | ESP32-C61 | ESP32-H2 | ESP32-H4 | | Supported Targets | ESP32-C5 | ESP32-C61 | ESP32-H2 | ESP32-H4 | ESP32-S31 |
| ----------------- | -------- | --------- | -------- | -------- | | ----------------- | -------- | --------- | -------- | -------- | --------- |
# ESP-IDF BLE Periodic Sync with CTE Example # ESP-IDF BLE Periodic Sync with CTE Example
@@ -1,5 +1,5 @@
| Supported Targets | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | | Supported Targets | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | ESP32-S31 |
| ----------------- | -------- | -------- | --------- | -------- | -------- | | ----------------- | -------- | -------- | --------- | -------- | -------- | --------- |
# BLE Power Control Central Example # BLE Power Control Central Example
@@ -1,5 +1,5 @@
| Supported Targets | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | | Supported Targets | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | ESP32-S31 |
| ----------------- | -------- | -------- | --------- | -------- | -------- | | ----------------- | -------- | -------- | --------- | -------- | -------- | --------- |
# BLE Power Control Peripheral Example # BLE Power Control Peripheral Example
@@ -1,5 +1,5 @@
| Supported Targets | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | ESP32-S3 | | Supported Targets | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | ESP32-S3 | ESP32-S31 |
| ----------------- | -------- | -------- | -------- | -------- | --------- | -------- | -------- | -------- | | ----------------- | -------- | -------- | -------- | -------- | --------- | -------- | -------- | -------- | --------- |
#ESP-IDF Multi Adv Example #ESP-IDF Multi Adv Example
@@ -1,5 +1,5 @@
| Supported Targets | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | ESP32-S3 | | Supported Targets | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | ESP32-S3 | ESP32-S31 |
| ----------------- | -------- | -------- | -------- | -------- | --------- | -------- | -------- | -------- | | ----------------- | -------- | -------- | -------- | -------- | --------- | -------- | -------- | -------- | --------- |
# ESP_IDF Periodic Adv Example # ESP_IDF Periodic Adv Example
@@ -1,5 +1,5 @@
| Supported Targets | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | ESP32-S3 | | Supported Targets | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | ESP32-S3 | ESP32-S31 |
| ----------------- | -------- | -------- | -------- | -------- | --------- | -------- | -------- | -------- | | ----------------- | -------- | -------- | -------- | -------- | --------- | -------- | -------- | -------- | --------- |
# ESP-IDF Periodic Sync Example # ESP-IDF Periodic Sync Example
@@ -22,6 +22,7 @@ BLE50_SECURITY_CI_CONFIGS = ['name']
indirect=True, indirect=True,
) )
@idf_parametrize('target', ['esp32c3', 'esp32c6', 'esp32c5', 'esp32h2', 'esp32s3', 'esp32c61'], indirect=['target']) @idf_parametrize('target', ['esp32c3', 'esp32c6', 'esp32c5', 'esp32h2', 'esp32s3', 'esp32c61'], indirect=['target'])
@pytest.mark.temp_skip_ci(targets=['esp32s31'], reason='lack of runner')
def test_ble50_security_func(app_path: str, dut: tuple[IdfDut, IdfDut]) -> None: def test_ble50_security_func(app_path: str, dut: tuple[IdfDut, IdfDut]) -> None:
server = dut[0] server = dut[0]
client = dut[1] client = dut[1]
@@ -108,6 +109,7 @@ def test_c2_26mhz_xtal_ble50_security_func(app_path: str, dut: tuple[IdfDut, Idf
indirect=True, indirect=True,
) )
@idf_parametrize('target', ['esp32c3', 'esp32c6', 'esp32c5', 'esp32h2', 'esp32s3', 'esp32c61'], indirect=['target']) @idf_parametrize('target', ['esp32c3', 'esp32c6', 'esp32c5', 'esp32h2', 'esp32s3', 'esp32c61'], indirect=['target'])
@pytest.mark.temp_skip_ci(targets=['esp32s31'], reason='lack of runner')
def test_period_adv_sync_func(app_path: str, dut: tuple[IdfDut, IdfDut]) -> None: def test_period_adv_sync_func(app_path: str, dut: tuple[IdfDut, IdfDut]) -> None:
adv_dut = dut[0] adv_dut = dut[0]
sync_dut = dut[1] sync_dut = dut[1]
@@ -178,6 +180,7 @@ def test_c2_26mhz_xtal_period_adv_sync_func(app_path: str, dut: tuple[IdfDut, Id
indirect=True, indirect=True,
) )
@idf_parametrize('target', ['esp32c3', 'esp32c6', 'esp32c5', 'esp32h2', 'esp32s3', 'esp32c61'], indirect=['target']) @idf_parametrize('target', ['esp32c3', 'esp32c6', 'esp32c5', 'esp32h2', 'esp32s3', 'esp32c61'], indirect=['target'])
@pytest.mark.temp_skip_ci(targets=['esp32s31'], reason='lack of runner')
def test_ble50_security_config_func(app_path: str, dut: tuple[IdfDut, IdfDut]) -> None: def test_ble50_security_config_func(app_path: str, dut: tuple[IdfDut, IdfDut]) -> None:
server = dut[0] server = dut[0]
client = dut[1] client = dut[1]
@@ -1,5 +1,5 @@
| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | ESP32-S3 | | Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | ESP32-S3 | ESP32-S31 |
| ----------------- | ----- | -------- | -------- | -------- | -------- | --------- | -------- | -------- | -------- | | ----------------- | ----- | -------- | -------- | -------- | -------- | --------- | -------- | -------- | -------- | --------- |
ESP-IDF Gattc and Gatts Coexistence example ESP-IDF Gattc and Gatts Coexistence example
============================================== ==============================================
@@ -1,5 +1,5 @@
| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | ESP32-S3 | | Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | ESP32-S3 | ESP32-S31 |
| ----------------- | ----- | -------- | -------- | -------- | -------- | --------- | -------- | -------- | -------- | | ----------------- | ----- | -------- | -------- | -------- | -------- | --------- | -------- | -------- | -------- | --------- |
ESP-IDF Combined Bluetooth advertising and scanning ESP-IDF Combined Bluetooth advertising and scanning
=================================================== ===================================================
@@ -1,5 +1,5 @@
| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | ESP32-S3 | | Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | ESP32-S3 | ESP32-S31 |
| ----------------- | ----- | -------- | -------- | -------- | -------- | --------- | -------- | -------- | -------- | | ----------------- | ----- | -------- | -------- | -------- | -------- | --------- | -------- | -------- | -------- | --------- |
ESP-IDF VHCI ble_advertising app ESP-IDF VHCI ble_advertising app
================================ ================================
+2 -2
View File
@@ -1,5 +1,5 @@
| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | ESP32-S3 | | Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | ESP32-S3 | ESP32-S31 |
| ----------------- | ----- | -------- | -------- | -------- | -------- | --------- | -------- | -------- | -------- | | ----------------- | ----- | -------- | -------- | -------- | -------- | --------- | -------- | -------- | -------- | --------- |
# ESP-IDF NimBLE ANCS Example # ESP-IDF NimBLE ANCS Example
@@ -1,5 +1,5 @@
| Supported Targets | ESP32-C5 | ESP32-C61 | ESP32-H2 | ESP32-H4 | | Supported Targets | ESP32-C5 | ESP32-C61 | ESP32-H2 | ESP32-H4 | ESP32-S31 |
| ----------------- | -------- | --------- | -------- | -------- | | ----------------- | -------- | --------- | -------- | -------- | --------- |
# Bluetooth LE Direction Finding Example (Periodic Advertiser With CTE) # Bluetooth LE Direction Finding Example (Periodic Advertiser With CTE)
@@ -1,5 +1,5 @@
| Supported Targets | ESP32-C5 | ESP32-C61 | ESP32-H2 | ESP32-H4 | | Supported Targets | ESP32-C5 | ESP32-C61 | ESP32-H2 | ESP32-H4 | ESP32-S31 |
| ----------------- | -------- | --------- | -------- | -------- | | ----------------- | -------- | --------- | -------- | -------- | --------- |
# Bluetooth LE Direction Finding Example (Periodic Sync with CTE) # Bluetooth LE Direction Finding Example (Periodic Sync with CTE)
@@ -1,5 +1,5 @@
| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | ESP32-S3 | | Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | ESP32-S3 | ESP32-S31 |
| ----------------- | ----- | -------- | -------- | -------- | -------- | --------- | -------- | -------- | -------- | | ----------------- | ----- | -------- | -------- | -------- | -------- | --------- | -------- | -------- | -------- | --------- |
# BLE CTS Cent Example # BLE CTS Cent Example
@@ -1,5 +1,5 @@
| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | ESP32-S3 | | Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | ESP32-S3 | ESP32-S31 |
| ----------------- | ----- | -------- | -------- | -------- | -------- | --------- | -------- | -------- | -------- | | ----------------- | ----- | -------- | -------- | -------- | -------- | --------- | -------- | -------- | -------- | --------- |
# BLE Current Time Service Example # BLE Current Time Service Example
@@ -1,5 +1,5 @@
| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | ESP32-S3 | | Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | ESP32-S3 | ESP32-S31 |
| ----------------- | ----- | -------- | -------- | -------- | -------- | --------- | -------- | -------- | -------- | | ----------------- | ----- | -------- | -------- | -------- | -------- | --------- | -------- | -------- | -------- | --------- |
# BLE Dynamic Service Example # BLE Dynamic Service Example
@@ -1,5 +1,5 @@
| Supported Targets | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | ESP32-S3 | | Supported Targets | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | ESP32-S3 | ESP32-S31 |
| ----------------- | -------- | -------- | -------- | -------- | --------- | -------- | -------- | -------- | | ----------------- | -------- | -------- | -------- | -------- | --------- | -------- | -------- | -------- | --------- |
# BLE Encrypted Advertising Data Central Example # BLE Encrypted Advertising Data Central Example
@@ -1,5 +1,5 @@
| Supported Targets | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | ESP32-S3 | | Supported Targets | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | ESP32-S3 | ESP32-S31 |
| ----------------- | -------- | -------- | -------- | -------- | --------- | -------- | -------- | -------- | | ----------------- | -------- | -------- | -------- | -------- | --------- | -------- | -------- | -------- | --------- |
# BLE Encrypted Advertising Data Peripheral Example # BLE Encrypted Advertising Data Peripheral Example
@@ -1,5 +1,5 @@
| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | ESP32-S3 | | Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | ESP32-S3 | ESP32-S31 |
| ----------------- | ----- | -------- | -------- | -------- | -------- | --------- | -------- | -------- | -------- | | ----------------- | ----- | -------- | -------- | -------- | -------- | --------- | -------- | -------- | -------- | --------- |
# BLE GATTC GATTS Coex Example # BLE GATTC GATTS Coex Example
@@ -1,5 +1,5 @@
| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | ESP32-S3 | | Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | ESP32-S3 | ESP32-S31 |
| ----------------- | ----- | -------- | -------- | -------- | -------- | --------- | -------- | -------- | -------- | | ----------------- | ----- | -------- | -------- | -------- | -------- | --------- | -------- | -------- | -------- | --------- |
# BLE HTP Cent Example # BLE HTP Cent Example
@@ -1,5 +1,5 @@
| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | ESP32-S3 | | Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | ESP32-S3 | ESP32-S31 |
| ----------------- | ----- | -------- | -------- | -------- | -------- | --------- | -------- | -------- | -------- | | ----------------- | ----- | -------- | -------- | -------- | -------- | --------- | -------- | -------- | -------- | --------- |
# BLE Heart Rate Measurement Example # BLE Heart Rate Measurement Example
@@ -1,5 +1,5 @@
| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | ESP32-S3 | | Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | ESP32-S3 | ESP32-S31 |
| ----------------- | ----- | -------- | -------- | -------- | -------- | --------- | -------- | -------- | -------- | | ----------------- | ----- | -------- | -------- | -------- | -------- | --------- | -------- | -------- | -------- | --------- |
# BLE Central L2CAP COC Example # BLE Central L2CAP COC Example
@@ -1,5 +1,5 @@
| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | ESP32-S3 | | Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | ESP32-S3 | ESP32-S31 |
| ----------------- | ----- | -------- | -------- | -------- | -------- | --------- | -------- | -------- | -------- | | ----------------- | ----- | -------- | -------- | -------- | -------- | --------- | -------- | -------- | -------- | --------- |
# BLE Peripheral L2CAP COC Example # BLE Peripheral L2CAP COC Example
@@ -1,5 +1,5 @@
| Supported Targets | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | ESP32-S3 | | Supported Targets | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | ESP32-S3 | ESP32-S31 |
| ----------------- | -------- | -------- | -------- | -------- | --------- | -------- | -------- | -------- | | ----------------- | -------- | -------- | -------- | -------- | --------- | -------- | -------- | -------- | --------- |
# BLE Multi Adv Example # BLE Multi Adv Example
@@ -1,5 +1,5 @@
| Supported Targets | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | | Supported Targets | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | ESP32-S31 |
| ----------------- | -------- | -------- | --------- | -------- | -------- | | ----------------- | -------- | -------- | --------- | -------- | -------- | --------- |
# BLE Multiple Connection Central Example # BLE Multiple Connection Central Example
@@ -1,5 +1,5 @@
| Supported Targets | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | | Supported Targets | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | ESP32-S31 |
| ----------------- | -------- | -------- | --------- | -------- | -------- | | ----------------- | -------- | -------- | --------- | -------- | -------- | --------- |
# BLE Multiple Connection Peripheral Example # BLE Multiple Connection Peripheral Example
@@ -1,5 +1,5 @@
| Supported Targets | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | | Supported Targets | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | ESP32-S31 |
| ----------------- | -------- | -------- | --------- | -------- | -------- | | ----------------- | -------- | -------- | --------- | -------- | -------- | --------- |
# BLE Periodic Advertiser With Response (PAwR) Advertiser Example # BLE Periodic Advertiser With Response (PAwR) Advertiser Example
@@ -1,5 +1,5 @@
| Supported Targets | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | | Supported Targets | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | ESP32-S31 |
| ----------------- | -------- | -------- | --------- | -------- | -------- | | ----------------- | -------- | -------- | --------- | -------- | -------- | --------- |
# BLE Periodic Advertiser With Response (PAwR) Sync Example # BLE Periodic Advertiser With Response (PAwR) Sync Example
@@ -1,5 +1,5 @@
| Supported Targets | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | | Supported Targets | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | ESP32-S31 |
| ----------------- | -------- | -------- | --------- | -------- | -------- | | ----------------- | -------- | -------- | --------- | -------- | -------- | --------- |
# BLE Periodic Advertiser With Response (PAwR) Advertiser Connection Example # BLE Periodic Advertiser With Response (PAwR) Advertiser Connection Example
@@ -1,5 +1,5 @@
| Supported Targets | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | | Supported Targets | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | ESP32-S31 |
| ----------------- | -------- | -------- | --------- | -------- | -------- | | ----------------- | -------- | -------- | --------- | -------- | -------- | --------- |
# BLE Periodic Advertiser With Response (PAwR) Sync Connection Example # BLE Periodic Advertiser With Response (PAwR) Sync Connection Example
@@ -1,5 +1,5 @@
| Supported Targets | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | ESP32-S3 | | Supported Targets | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | ESP32-S3 | ESP32-S31 |
| ----------------- | -------- | -------- | -------- | -------- | --------- | -------- | -------- | -------- | | ----------------- | -------- | -------- | -------- | -------- | --------- | -------- | -------- | -------- | --------- |
# BLE Periodic Advertiser Example # BLE Periodic Advertiser Example
@@ -1,5 +1,5 @@
| Supported Targets | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | ESP32-S3 | | Supported Targets | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | ESP32-S3 | ESP32-S31 |
| ----------------- | -------- | -------- | -------- | -------- | --------- | -------- | -------- | -------- | | ----------------- | -------- | -------- | -------- | -------- | --------- | -------- | -------- | -------- | --------- |
# BLE Periodic Sync Example # BLE Periodic Sync Example
@@ -1,5 +1,5 @@
| Supported Targets | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | ESP32-S3 | | Supported Targets | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | ESP32-S3 | ESP32-S31 |
| ----------------- | -------- | -------- | -------- | -------- | --------- | -------- | -------- | -------- | | ----------------- | -------- | -------- | -------- | -------- | --------- | -------- | -------- | -------- | --------- |
# BLE Central PHY Example # BLE Central PHY Example
@@ -1,5 +1,5 @@
| Supported Targets | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | ESP32-S3 | | Supported Targets | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | ESP32-S3 | ESP32-S31 |
| ----------------- | -------- | -------- | -------- | -------- | --------- | -------- | -------- | -------- | | ----------------- | -------- | -------- | -------- | -------- | --------- | -------- | -------- | -------- | --------- |
# BLE Peripheral PHY Example # BLE Peripheral PHY Example
@@ -1,5 +1,5 @@
| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | ESP32-S3 | | Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | ESP32-S3 | ESP32-S31 |
| ----------------- | ----- | -------- | -------- | -------- | -------- | --------- | -------- | -------- | -------- | | ----------------- | ----- | -------- | -------- | -------- | -------- | --------- | -------- | -------- | -------- | --------- |
# BLE Central Proximity Sensor Example # BLE Central Proximity Sensor Example
@@ -1,5 +1,5 @@
| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | ESP32-S3 | | Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | ESP32-S3 | ESP32-S31 |
| ----------------- | ----- | -------- | -------- | -------- | -------- | --------- | -------- | -------- | -------- | | ----------------- | ----- | -------- | -------- | -------- | -------- | --------- | -------- | -------- | -------- | --------- |
# BLE Peripheral Proximity Sensor Example # BLE Peripheral Proximity Sensor Example
@@ -1,5 +1,5 @@
| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | ESP32-S3 | | Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | ESP32-S3 | ESP32-S31 |
| ----------------- | ----- | -------- | -------- | -------- | -------- | --------- | -------- | -------- | -------- | | ----------------- | ----- | -------- | -------- | -------- | -------- | --------- | -------- | -------- | -------- | --------- |
# BLE SPP central example # BLE SPP central example
@@ -1,5 +1,5 @@
| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | ESP32-S3 | | Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | ESP32-S3 | ESP32-S31 |
| ----------------- | ----- | -------- | -------- | -------- | -------- | --------- | -------- | -------- | -------- | | ----------------- | ----- | -------- | -------- | -------- | -------- | --------- | -------- | -------- | -------- | --------- |
# BLE SPP peripheral example # BLE SPP peripheral example
+2 -2
View File
@@ -1,5 +1,5 @@
| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | ESP32-S3 | | Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | ESP32-S3 | ESP32-S31 |
| ----------------- | ----- | -------- | -------- | -------- | -------- | --------- | -------- | -------- | -------- | | ----------------- | ----- | -------- | -------- | -------- | -------- | --------- | -------- | -------- | -------- | --------- |
# BLE Central Example # BLE Central Example

Some files were not shown because too many files have changed in this diff Show More