# HCI Vendor-specific (VS) Commands

[中文]

## HCI VS Commands for Espressif's Bluetooth Host

The following HCI VS commands are exclusively for Espressif's Bluetooth Host (ESP-Bluedroid Host or ESP-NimBLE Host). If you are using a non-ESP host or HCI UART, these commands will remain disabled unless the initialization function is explicitly called from the application. Note, these init functions as well as these additional HCI VS commands are intended for Espressif's Bluetooth Host use only. Application developers should not call the init functions in their applications.

ESP_BT_VS_COMMON_ECHO_OCF

  Test vendor HCI feature (OCF: 0x0081)

  The Controller return the value in command

  Note

  The init function is `bt_stack_enableEchoVsCmd(true)`

ESP_BT_VS_SET_COEX_STATUS_OCF

  Set/Clear coexistence status (OCF: 0x0082)

  Note

  The init function is `bt_stack_enableCoexVsCmd(true)`

ESP_BT_VS_CONFIG_DUP_EXC_LIST_OCF

  Config scanning duplicate exceptional list (OCF: 0x0108)

  Note

  The init function is `advFilter_stack_enableDupExcListCmd(true)`

ESP_BT_VS_SET_ADV_REPORT_FLOW_CTRL_OCF

  Enable/disable advertising report flow control (OCF: 0x0109)

  Note

  The init function is `scan_stack_enableAdvFlowCtrlVsCmd(true)`

ESP_BT_VS_UPD_ADV_REPORT_FLOW_CTRL_NUM_OCF

  Update the number of advertising report flow control (OCF: 0x010A)

  Note

  The init function is `scan_stack_enableAdvFlowCtrlVsCmd(true)`

ESP_BT_VS_CLR_LEGACY_ADV_OCF

  Clear legacy advertising (same as HCI_LE_Clear_Advertising_Sets) (OCF: 0x010C)

  Note

  The init function is `adv_stack_enableClearLegacyAdvVsCmd(true)`

ESP_BT_VS_SET_MIN_ENC_KEY_SIZE_OCF

  Set Classic Bluetooth minimum encryption key size (OCF: 0x0182)

  Note

  The init function is `bt_stack_enableSecCtrlVsCmd(true)`

## HCI VS Events for Espressif's Bluetooth Host

The following HCI VS events are exclusively for Espressif's Bluetooth Host (ESP-Bluedroid Host or ESP-NimBLE Host). If you are using a non-ESP host or HCI UART, these events will remain disabled unless the initialization function is explicitly called from the application. Note, these init functions as well as these additional HCI VS events are intended for Espressif's Bluetooth Host use only. Application developers should not call the init functions in their applications.

ESP_BT_VS_LE_ADV_LOST_EVT_SUBCODE

  BLE advertising report lost event for flow control (EVTCODE: 0x3E, SUBCODE: 0xF0)

  Note

  The init function is `scan_stack_enableAdvFlowCtrlVsCmd(true)`

ESP_BT_VS_LEGACY_REM_AUTH_EVT_SUBCODE

  This event indicates legacy authentication is completed by remote device (EVTCODE: 0xFF, SUBCODE: 0x03)

  Note

  The init function is `bt_stack_enableSecCtrlVsCmd(true)`

## HCI VS Commands for Espressif's Internal-Use Debugging

The following HCI VS debugging commands are implemented in Bluetooth Low Energy controller pre-compiled libraries. These commands are not linked into the application binary, unless the function esp_ble_internalTestFeaturesEnable(true) is called from the application. They are intended for Espressif's internal use only. Application developers should not call esp_ble_internalTestFeaturesEnable(true) in their applications.

ESP_BT_VS_CFG_TEST_RELATED_OCF

ESP_BT_VS_CFG_TEST_ENABLE_SUBCMD

ESP_BT_VS_CFG_TEST_ENABLE_ADV_DELAY_SUBCMD

ESP_BT_VS_CFG_TEST_SET_SCAN_FOREVER_SUBCMD

ESP_BT_VS_CFG_TEST_SET_EXPECTED_PEER_SUBCMD

ESP_BT_VS_CFG_TEST_GET_ADV_TXED_CNT_SUBCMD

ESP_BT_VS_CFG_TEST_GET_SCAN_RXED_CNT_SUBCMD

ESP_BT_VS_CFG_TEST_SET_TXPWR_LVL_SUBCMD

ESP_BT_VS_CFG_TEST_GET_TXPWR_LVL_SUBCMD

ESP_BT_VS_CFG_TEST_CLEAR_RAND_ADDR_SUBCMD

ESP_BT_VS_CFG_TEST_GET_MAX_TXPWR_SUBCMD

ESP_BT_VS_CFG_TEST_GET_TXPWR_RANGE_SUBCMD

ESP_BT_VS_CFG_TEST_SET_SCAN_AA_SUBCMD

ESP_BT_VS_CFG_TEST_SET_ADV_AA_SUBCMD

ESP_BT_VS_CFG_TEST_SET_SCAN_CHAN_SUBCMD

ESP_BT_VS_CFG_TEST_GET_CTRL_STATUS_SUBCMD

ESP_BT_VS_CFG_TEST_GET_CTRL_COMPILE_VER_SUBCMD

ESP_BT_VS_CFG_TEST_RELATED_SUBCMD_MAX

The following HCI VS debugging commands are implemented in Bluetooth Classic controller pre-compiled libraries. These commands are not linked into the application binary, unless the corresponding initialization function is explicitly called from the application. They are intended for Espressif's internal use only. Application developers should not call in their applications.

ESP_BT_VS_WR_DM1_ENABLE_OCF

  Note

  The init function is `bt_stack_enablePktCtrlVsCmd(true)`

ESP_BT_VS_CLK_UPDATE_OCF

  Note

  The init function is `bt_stack_enableClkCtrlVsCmd(true)`

ESP_BT_VS_SET_AFH_OCF

  Note

  The init function is `bt_stack_enableAfhVsCmd(true)`

ESP_BT_VS_SET_EVT_MASK_OCF

  Note

  The init function is `bt_stack_enableBasicVsCmd(true)`

ESP_BT_VS_SET_AFH_REPORTING_MODE_OCF

  Note

  The init function is `bt_stack_enableAfhVsCmd(true)`

ESP_BT_VS_MASK_RMT_CHANNEL_CLASSIFICATION_OCF

  Note

  The init function is `bt_stack_enableAfhVsCmd(true)`

ESP_BT_VS_WR_AUTO_RATE_INIT_OCF

  Note

  The init function is `bt_stack_enableRateCtrlVsCmd(true)`

ESP_BT_VS_RD_ACL_REAL_RSSI_OCF

  Note

  The init function is `bt_stack_enablePwrCtrlVsCmd(true)`

ESP_BT_VS_RD_NEW_CONN_TX_PWR_LVL_OCF

  Note

  The init function is `bt_stack_enablePwrCtrlVsCmd(true)`

ESP_BT_VS_WR_NEW_CONN_TX_PWR_LVL_OCF

  Note

  The init function is `bt_stack_enablePwrCtrlVsCmd(true)`

ESP_BT_VS_RD_PAGE_TX_PWR_LVL_OCF

  Note

  The init function is `bt_stack_enablePwrCtrlVsCmd(true)`

ESP_BT_VS_WR_PAGE_TX_PWR_LVL_OCF

  Note

  The init function is `bt_stack_enablePwrCtrlVsCmd(true)`

ESP_BT_VS_RD_PSCAN_TX_PWR_LVL_OCF

  Note

  The init function is `bt_stack_enablePwrCtrlVsCmd(true)`

ESP_BT_VS_WR_PSCAN_TX_PWR_LVL_OCF

  Note

  The init function is `bt_stack_enablePwrCtrlVsCmd(true)`

ESP_BT_VS_RD_INQ_TX_PWR_LVL_OCF

  Note

  The init function is `bt_stack_enablePwrCtrlVsCmd(true)`

ESP_BT_VS_WR_ISCAN_TX_PWR_LVL_OCF

  Note

  The init function is `bt_stack_enablePwrCtrlVsCmd(true)`

Was this page helpful?

- Thank you! We received your feedback.
- If you have any comments, fill in Espressif Documentation Feedback Form.

- We value your feedback.
- Let us know how we can improve this page by filling in Espressif Documentation Feedback Form.