Hi all,
I am trying to get my peripheral device to set an MTU size when connecting to the nRF Connect Android application that is not a value of 23. I have the following set in my
prj.conf:
CONFIG_BT_BUF_ACL_TX_SIZE=251 CONFIG_BT_BUF_ACL_RX_SIZE=251 CONFIG_BT_L2CAP_TX_BUF_COUNT=10 CONFIG_BT_L2CAP_TX_MTU=247 CONFIG_BT_BUF_ACL_TX_COUNT=10 CONFIG_BT_DATA_LEN_UPDATE=y CONFIG_BT_USER_DATA_LEN_UPDATE=y CONFIG_BT_USER_PHY_UPDATE=y CONFIG_BT_AUTO_DATA_LEN_UPDATE=n
But as soon as the nRF connect app in android connects to this device, it has an MTU of 23. I have attempted to change this, using the app. I can request this and see the MTU size change IF the host application sets it in the peripheral. What i cannot do, is get the peripheral to request a new MTU size from the host device.
In the example Bluetooth_throughput_example, The 'data length' field is changed before the test is run. I have read that the relationship between the MTU and Data length is that the data length must be smaller than the MTU, for greater throughput. I have attempted to change the data length at runtime using bt_conn_le_data_len_update at runtime, but rather predicatbly, this had no effect on the MTU.
The bluetooth throughput example has both master and slave code. The difference here is that I am trying to replace the master, with the nRF connect application for android.