ESP32-S3 (Peripheral) Receives HCI Connection Status 0x1A (Unsupported Remote Feature) When CYBLE-222014-01 Connects
Posted: Fri Jul 31, 2026 6:46 am
Hardware
Peripheral: ESP32-S3 N8R8 (ESP-IDF v6.0.1, NimBLE Host)
Central: CYBLE-222014-01 (PSoC BLE)
Firmware Overview
The CYBLE-222014-01 acts as a BLE Central.
The workflow is as follows:
The central remains in Deep Sleep until it is awakened through a GPIO signal.
After waking, it scans for BLE advertisements from the ESP32 peripheral.
It searches for peripherals advertising a specific set of advertisement parameters.
Once the desired peripheral is found, it initiates a BLE connection.
After the connection is established, it discovers a specific GATT service.
Before writing data to the characteristic, the central performs BLE encryption (legacy pairing).
After successfully sending the command, the central disconnects and returns to Deep Sleep until the next GPIO wake-up event.
Problem
Whenever the CYBLE central attempts to connect to the ESP32-S3 peripheral, the ESP32 receives the following HCI connection status:
0x1A - Unsupported Remote Feature / Unsupported LMP Feature
The connection is not reported as successful (0x00) on the ESP32 side.
Debugging Performed
To investigate the issue, we captured the connection using the nRF BLE Sniffer.
Our observations indicated that the CYBLE firmware appears to support only legacy BLE procedures and does not appear to negotiate BLE 5.x features.
Based on this, we modified the ESP32 configuration to operate in BLE 4.2 legacy mode.
Security Configuration
ble_hs_cfg.sm_io_cap = BLE_SM_IO_CAP_NO_IO;
ble_hs_cfg.sm_bonding = 1;
ble_hs_cfg.sm_mitm = 0;
ble_hs_cfg.sm_sc = 0; // Force Legacy Pairing
ble_hs_cfg.sm_our_key_dist =
BLE_SM_PAIR_KEY_DIST_ENC |
BLE_SM_PAIR_KEY_DIST_ID;
ble_hs_cfg.sm_their_key_dist =
BLE_SM_PAIR_KEY_DIST_ENC |
BLE_SM_PAIR_KEY_DIST_ID;
ble_hs_cfg.store_status_cb = ble_store_util_status_rr;
Additional Changes
We also attempted the following:
Disabled Secure Connections (Legacy Pairing only)
Increased ATT MTU TX/RX sizes
Used BLE 4.2 compatible security configuration
Verified advertisement packets
Captured HCI packets using the nRF BLE Sniffer
Unfortunately, the HCI connection status remained 0x1A.
CYBLE Configuration
Connection Parameters
Minimum Connection Interval : 0x0000
Maximum Connection Interval : 0x0028
Supervision Timeout : 0x03E8
Minimum Connection Length : 0x0000
Maximum Connection Length : 0xFFFF
Discovery Parameters
Fast Scan Timeout : 0x0003
Scan Interval : 0x0030
Scan Window : 0x0030
GAP Connection Timeout : 30 seconds
Questions
What typically causes HCI Connection Status 0x1A (Unsupported Remote Feature / Unsupported LMP Feature) when a CYBLE-222014-01 connects to an ESP32-S3?
Is this status generally caused by:
LE Feature Exchange?
Data Length Extension?
PHY Update?
Connection Parameter negotiation?
Some other unsupported Link Layer procedure?
Could this status later affect:
Pairing/encryption?
GATT service discovery?
Characteristic writes?
Long-term connection stability?
Has anyone successfully connected a CYBLE-222014-01 (or similar PSoC BLE 4.2 Central) with an ESP32-S3 NimBLE Peripheral? If so, are there any additional compatibility settings that should be applied?
Any guidance or suggestions on identifying the root cause of this interoperability issue would be greatly appreciated.
Peripheral: ESP32-S3 N8R8 (ESP-IDF v6.0.1, NimBLE Host)
Central: CYBLE-222014-01 (PSoC BLE)
Firmware Overview
The CYBLE-222014-01 acts as a BLE Central.
The workflow is as follows:
The central remains in Deep Sleep until it is awakened through a GPIO signal.
After waking, it scans for BLE advertisements from the ESP32 peripheral.
It searches for peripherals advertising a specific set of advertisement parameters.
Once the desired peripheral is found, it initiates a BLE connection.
After the connection is established, it discovers a specific GATT service.
Before writing data to the characteristic, the central performs BLE encryption (legacy pairing).
After successfully sending the command, the central disconnects and returns to Deep Sleep until the next GPIO wake-up event.
Problem
Whenever the CYBLE central attempts to connect to the ESP32-S3 peripheral, the ESP32 receives the following HCI connection status:
0x1A - Unsupported Remote Feature / Unsupported LMP Feature
The connection is not reported as successful (0x00) on the ESP32 side.
Debugging Performed
To investigate the issue, we captured the connection using the nRF BLE Sniffer.
Our observations indicated that the CYBLE firmware appears to support only legacy BLE procedures and does not appear to negotiate BLE 5.x features.
Based on this, we modified the ESP32 configuration to operate in BLE 4.2 legacy mode.
Security Configuration
ble_hs_cfg.sm_io_cap = BLE_SM_IO_CAP_NO_IO;
ble_hs_cfg.sm_bonding = 1;
ble_hs_cfg.sm_mitm = 0;
ble_hs_cfg.sm_sc = 0; // Force Legacy Pairing
ble_hs_cfg.sm_our_key_dist =
BLE_SM_PAIR_KEY_DIST_ENC |
BLE_SM_PAIR_KEY_DIST_ID;
ble_hs_cfg.sm_their_key_dist =
BLE_SM_PAIR_KEY_DIST_ENC |
BLE_SM_PAIR_KEY_DIST_ID;
ble_hs_cfg.store_status_cb = ble_store_util_status_rr;
Additional Changes
We also attempted the following:
Disabled Secure Connections (Legacy Pairing only)
Increased ATT MTU TX/RX sizes
Used BLE 4.2 compatible security configuration
Verified advertisement packets
Captured HCI packets using the nRF BLE Sniffer
Unfortunately, the HCI connection status remained 0x1A.
CYBLE Configuration
Connection Parameters
Minimum Connection Interval : 0x0000
Maximum Connection Interval : 0x0028
Supervision Timeout : 0x03E8
Minimum Connection Length : 0x0000
Maximum Connection Length : 0xFFFF
Discovery Parameters
Fast Scan Timeout : 0x0003
Scan Interval : 0x0030
Scan Window : 0x0030
GAP Connection Timeout : 30 seconds
Questions
What typically causes HCI Connection Status 0x1A (Unsupported Remote Feature / Unsupported LMP Feature) when a CYBLE-222014-01 connects to an ESP32-S3?
Is this status generally caused by:
LE Feature Exchange?
Data Length Extension?
PHY Update?
Connection Parameter negotiation?
Some other unsupported Link Layer procedure?
Could this status later affect:
Pairing/encryption?
GATT service discovery?
Characteristic writes?
Long-term connection stability?
Has anyone successfully connected a CYBLE-222014-01 (or similar PSoC BLE 4.2 Central) with an ESP32-S3 NimBLE Peripheral? If so, are there any additional compatibility settings that should be applied?
Any guidance or suggestions on identifying the root cause of this interoperability issue would be greatly appreciated.