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

Send mult notifications in one connection interval

Hello,

I try to send multi notification in one connection interval, but I can only send one notification.

Hardware

Peripheral: nrf52832 costumed board (with BMD-300 module).

Central: nrf52832, BMD-300 evaluation kit

Software

Soft device: 5.1.0

BLE configuration

  • PHY: 2Mpbs
  • ATT MTU: 247 bytes
  • DLE: enable
  • Connection interval: 7.5 msec (min and max)
  • Extended BLE connection: enable
  • HVN tx queue size: 7
  • BLE_GAP_EVENT_LENGTH: 320

Application

Base on Nordic UART example (peripheral and central) - NUS.

The problem:

I used the API ‘ble_nus_string_send’ to send packet (notification). I try to send packets until I get error code ‘NRF_ERROR_RESOURCES’. Then I wait for BLE_GATTS_EVT_HVN_TX_COMPLETE event and try to send again. In the BLE_GATTS_EVT_HVN_TX_COMPLETE event the counter (‘gatts_evt.params.hvn_tx_complete.count’) is always 1.

When I used the API ‘ble_nus_string_send’  the return code is only NRF_SUCCESS or NRF_ERROR_RESOURCES.

In the begging I succeed to push 7 packets to the HVN queue before receiving BLE_GATTS_EVT_HVN_TX_COMPLETE event, and after this I succeed to push only 1 packet.

What can be the problem? How can I send more the one notification during one connection interval base on NUS?

Parents Reply Children
  • Hi,

    Thank you for the reply.

    Yes I saw the ATT_MTU Throughput Example, this example is not best on NUS.

    Also is succeed to changes the GATT module to faster commination, according to ‘ ATT_MTU Throughput’ Example and the post at: https://www.novelbits.io/bluetooth-5-speed-maximum-throughput/ [I changed the  ‘BLE_GAP_EVENT_LENGTH’ to 400 units (500 msec)].

    1. Do to event ‘BLE_GATTS_EVT_HVN_TX_COMPLETE’ arrived after each notification send (than the counter will be always 1) or after connection interval finish (than the counter will report the notifications number send during one connection interval)?
    2. Does Nordic have example base on NUS that show throughput like in the above post (‘Bluetooth 5 speed: How to achieve maximum throughput for your BLE application’)?
    3. Can I achieved the same throughput with NUS like in the post (case 4: PHY: 2 Mbps, ATT MTU = 247 bytes, DLE: enabled, Connection interval: 7.5 msec) around 900K bps? Until now I achieved only 370K bps.

    Ezra

  • Q1: Yes, BLE_GATTS_EVT_HVN_TX_COMPLETE is generated after each successful notification.

    Q2: No, we do not have a ble_app_uart example that uses the 2M Phy, DLE and a 247 ATT MTU. 

    Q3: Yes, the same throughput should be achievable. 

Related