BLE params on nRF53

Hi,

Based on peripheral uart sample code on nRFConnect SDK 1.8, I'm developing a custom BLE application
under nRF5340 using VSCODE though nrfConnect extension.

In order to accelerate the data throughput, I'm trying to change the maximum throughput
by setting CONFIG_BT_CTLR_DATA_LENGTH_MAX to 251 on prj.conf and set the desired data length through bt_conn_le_data_len_update API.

Based on the Throughput example, I realized that CONFIG_BT_CTLR_DATA_LENGTH_MAX  params are associated to the network core of nRF53 so it should not be set on the project configuration file of the application core.

So :

  1. How can I include CONFIG_BT_CTLR_DATA_LENGTH_MAX in the network core?
  2. I want to know if connections interval, PHY and MTU Should be associated with the network core?
  3. is there any way to change MTU on runtime instead of using menuconfig?

Best regards,

Mehdi.

Parents
  • Hi Dejans,

    I want first to thank you for your reply.

    1.  Thank you, I'm running the throughput test as a peripheral, and once connected to the mobile  I used 
      bt_conn_le_data_len_update to update data length, It works with the TX params but the RX data length is maintained to 27 bytes. Knowing that through bt_conn_le_data_len_update it's possible to set only the TX params(max length and timeout), is there any way to set both RX and TX params?
    2. Based on the throughput example,  CONFIG_BT_L2CAP_TX_MTU symbol which I think is related to the BLE MTU is set under the configuration file of the application core, is there any other symbol related to the MTU that should be set to the network configuration file ?
    3. Following the link, the bt_gatt_exchange_mtu function could only trigger a request to exchange MTU, but I don't see how can I set my preferred MTU.
    4. Is there any way to exchange GAP event length like nRF52 using the softdevice S132?

    Best Regards,

    Mehdi.

Reply
  • Hi Dejans,

    I want first to thank you for your reply.

    1.  Thank you, I'm running the throughput test as a peripheral, and once connected to the mobile  I used 
      bt_conn_le_data_len_update to update data length, It works with the TX params but the RX data length is maintained to 27 bytes. Knowing that through bt_conn_le_data_len_update it's possible to set only the TX params(max length and timeout), is there any way to set both RX and TX params?
    2. Based on the throughput example,  CONFIG_BT_L2CAP_TX_MTU symbol which I think is related to the BLE MTU is set under the configuration file of the application core, is there any other symbol related to the MTU that should be set to the network configuration file ?
    3. Following the link, the bt_gatt_exchange_mtu function could only trigger a request to exchange MTU, but I don't see how can I set my preferred MTU.
    4. Is there any way to exchange GAP event length like nRF52 using the softdevice S132?

    Best Regards,

    Mehdi.

Children
  • Hi Mehdi,

    1. A standard data length of radio packets in Bluetooth Low Energy is 27 bytes. It means that CONFIG_BT_CTLR_DATA_LENGTH_MAX is set to 27 bytes. You need to have a proper configuration in the child_image folder which would replace default one. You could try using the following options:
    CONFIG_BT_BUF_ACL_TX_SIZE=251   //Maximum supported ACL size for outgoing data
    CONFIG_BT_CTLR_DATA_LENGTH_MAX=251   //Maximum data length supported
    CONFIG_BT_BUF_ACL_RX_SIZE=251    //Maximum supported ACL size for incoming data
    CONFIG_BT_MAX_CONN=2    //Maximum number of simultaneous connections

    There are two ways to handle setting of both parameters. One is to disable bt_conn_le_data_len_update function. In this case, Bluetooth stack would handle that on your behalf. The second way is to repeat procedure of requesting the length. 

    2. nrf\samples\bluetooth\throughput\prj.conf defines needed options for the throughput example. hci_rpmsg.conf defined in child_image folder contains additional configuration options.

    3. Devices agree on MTU value through the negotiation. process.

    4. Similar to gat event length, you should consider using CONFIG_SDC_MAX_CONN_EVENT_LEN_DEFAULT (default max connection event length)

    Best regards,
    Dejan

Related