This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

Verifying connection event length extension and data length extension

Hi, NRF52832, SDK 15.2, SD 132 6.1.0

1. How to verify if connection event length extension is enabled (or supported)?

In ble_app_att_mtu_throughput in function conn_evt_len_ext_set you are using err_code = sd_ble_opt_set(BLE_COMMON_OPT_CONN_EVT_EXT, &opt). It is mentioned in documentation that sd_ble_opt_get is not supported for BLE_COMMON_OPT_CONN_EVT_EXT. I tried sd_ble_opt_set method with smartphones supporting and not supporting BLE 4.2 and on both phones this function returns without any errors. Also in ble_app_att_mtu_throughput example you are just setting the new value with sd_ble_opt_set and saying that connection event length was enabled without any read back.

Not sure if this is related but in In BLE 5 specification (BLUETOOTH SPECIFICATION Version 5.0 | Vol 6, Part F) page 2781 I found there is some LE test status event returning byte if packet length extension  as well as 2M PHY is supported, but I was unable to find something like this in SDK.

2. Do I need to enable Data length extension (DLE) separately? How to verify it is supported?

In the same ble_app_att_mtu_throughput  you are setting connection event length extension but naming it Data length extension:

    NRF_CLI_CMD(conn_evt_len_ext,   &m_cele_cmd,           "Enable or disable Data Length Extension (on or off)", default_cmd),

even though it is clear that it is connection event length extension.

In nrf528xx-ble-throughput-demo-master which is for SDK 13 you had two different parameters: connection event length extension and data length extension.

static test_params_t m_test_params =
{
    .att_mtu                  	= 247,
    .conn_interval            	= 400.0f,
    .data_len_ext_enabled     	= true,
    .conn_evt_len_ext_enabled	= true,

I know the difference between those two, but I am very confused if these two options are still separate in SDK 15 and how to enable and verify DLE.

Related