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

A terminal that can not communicate.

I found a terminal that can not communicate with BLE.
I think that the sequence after MTU exchange is strange.
The program used is sample HRM.
The terminal used is "Xperia (TM) Z4 SO-03G".

Is there a solution?

The usage environment is as follows.

・SDK15
・Nrf 52
・Nrf 52832_xxaa
・S132_nrf52_6.0.0_softdevice.hex
・nRF5_SDK_15.0.0_a53641a \ examples \ ble_peripheral \ ble_app_hrs \ hex \ ble_app_hrs_pca10040_s132.hex

Postscript

It turned out that communication is possible with the following.

nRF5_SDK_15.0.0_a53641a\components\softdevice\common\nrf_sdh_ble.c
line157
ble_cfg.conn_cfg.params.gatt_conn_cfg.att_mtu = NRF_SDH_BLE_GATT_MAX_MTU_SIZE;

ble_cfg.conn_cfg.params.gatt_conn_cfg.att_mtu = BLE_GATT_ATT_MTU_DEFAULT;


I had previously switched off the MTU exchange.
At that time, communication was not possible.

nRF5_SDK_15.0.0_a53641a\components\ble\nrf_ble_gatt\nrf_ble_gatt.c
Delete lines 150-173.

Here are the questions:

1. What is the difference between making MTU by default and turning it off?

2. If MTU is the default, will the communication speed be slower if the data size is large?

Parents
  • Hi,

    1. What is the difference between making MTU by default and turning it off?

    If you turn it off, i.e. remove the gatt module initialization, you will then not handle MTU requests from the central at all. If the MTU requests are not handled, you will get a GATT procedure timeout on the link, and the link will disconnect.

    Leaving it at default, you will just respond back to the central that you support the default value of 23.

    2. If MTU is the default, will the communication speed be slower if the data size is large?

    You could get a higher throughput with larger MTU, but DLE(data length/NRF_SDH_BLE_GAP_DATA_LENGTH) have a greater impact on throughput than MTU.

    Also, If you are using nRF-Sniffer v1, I would recommend upgrading to nRF-Sniffer v2.

Reply
  • Hi,

    1. What is the difference between making MTU by default and turning it off?

    If you turn it off, i.e. remove the gatt module initialization, you will then not handle MTU requests from the central at all. If the MTU requests are not handled, you will get a GATT procedure timeout on the link, and the link will disconnect.

    Leaving it at default, you will just respond back to the central that you support the default value of 23.

    2. If MTU is the default, will the communication speed be slower if the data size is large?

    You could get a higher throughput with larger MTU, but DLE(data length/NRF_SDH_BLE_GAP_DATA_LENGTH) have a greater impact on throughput than MTU.

    Also, If you are using nRF-Sniffer v1, I would recommend upgrading to nRF-Sniffer v2.

Children
Related