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

Can I achieve 160Kbps through BLE4.2?

Hello,

I was wondering whether or not it's possible to achieve a data rate of 160Kbps using BLE4.2. According to what I have read on this nordic blog it should be feasable, since there the maximum throughput is stated as 775 Kbps for BLE 4.2

Running the example of ble_app_att_mtu_throughput I can see how the throughput there depicted when setting an extended mtu to 158Bytes along with enabling event length extended is around 465Kbps, so seeing this I could achieve the same for my application.

However, I have some questions, the first one is regarding to setting a mtu of 158Bytes, I see that this is done a GATT level so and exachange of the used MTU(between Pheripherial and Central) has to happen each time that a transmission will occur or that is what I see on the example, is that so? I mean the extension of the MTU is only controlled at GATT level?

My second questions is related to the timing, since I would like to send a large data rate, what are the best ble connection parameters to achieve this? I mean, parameters such as CONN_INTERVAL_DEFAULT,CONN_INTERVAL_MIN and CONN_INTERVAL_MAX.

FInally, should I use the setting ble_conn_bw_toffered on the bandwidth configuration of BLE ble_common_opt_conn_bw_t if I enable an extended mtu and event length extended?

Thanks in advance,

Parents
  • Hi,

    As you can see in the Softdevice Specification you will get the highest throughput with Connection interval 400ms and an MTU size of 247. You will also need to use data length extension and event length extension to get rid of overhead and to be able to transmit with 100% duty cycle in your connection intervals. Here is a link to a pretty informative blog post on the subject: Bluetooth 5 speed: How to achieve maximum throughput for your BLE application.

    To increase the chances that the peer device accepts a connection interval of 400ms you should set both CONN_INTERVAL_MIN and CONN_INTERVAL_MAX to 400. This is because it is the central that ultimately decides on a connection interval, but by setting both min and max to 400, it is more likely that the central will respect that.

    I also suggest that you take a look in the S132 v3 Migration Document (bundled in the softdevice download) to learn more about bandwidth configuration.

Reply
  • Hi,

    As you can see in the Softdevice Specification you will get the highest throughput with Connection interval 400ms and an MTU size of 247. You will also need to use data length extension and event length extension to get rid of overhead and to be able to transmit with 100% duty cycle in your connection intervals. Here is a link to a pretty informative blog post on the subject: Bluetooth 5 speed: How to achieve maximum throughput for your BLE application.

    To increase the chances that the peer device accepts a connection interval of 400ms you should set both CONN_INTERVAL_MIN and CONN_INTERVAL_MAX to 400. This is because it is the central that ultimately decides on a connection interval, but by setting both min and max to 400, it is more likely that the central will respect that.

    I also suggest that you take a look in the S132 v3 Migration Document (bundled in the softdevice download) to learn more about bandwidth configuration.

Children
Related