nRF52840 DK as central (hci uart) : Zephyr : how to get max throughput

Hello,

I'm using nRF52840 DK (Central) and nRF52840 Dongle(Peripheral). Dongle flashed with Simulation program which transmits data. DK flashed with hci uart controller program which receives data. We are seeing throughput value only 48.7KBps (390kbps).
Same simulator used with Broadcom controller where we are seeing more throughput 75.4KBps.

DLE enabled on nRF52840 controller, seeing below event in btmon.
> ACL Data RX: Handle 64 flags 0x02 dlen 251

1. How to identify which PHY is used by controller?

2. How can we achieve high throughput? 

Parents
  • Hi Alaganraj,

    Please know that I have been assigned to support you. However, I would need more time to work on this. Hopefully by end of Monday next week I can return with more information.

    Best regards,

    Hieu

  • Hi Alaganraj,

    Could you please also elaborate how you setup your experiments?

    What is this "simulation program which transmits data?" How can you be sure it is the same when done with Nordic and with Broadcom? Do you mean you use the same Dongle? Or do you mean it is the same Zephyr firmware?

    On the Host end, how are you interacting with the HCI device?

    Best regards,

    Hieu

  • BLE simulation program is nothing but advertising packet. This is flashed in nrf52840 dongle.

    nrf52840 DK is flashed with hci_uart program and acting as central device. this is connected to host using uart, Please refer our setup here

    https://devzone.nordicsemi.com/support/297462 

    We have our own BLE test application which is running in our embedded Linux host, which is receives advertising packet and calculates throughput ie) how many packets received per sec.

    as we can't share our BLE simulation and test app. 

    Please share steps followed by Nordic on how it will calculate the throughput of nRF52840 DK using hci_uart program. 

  • Hi Alaganraj,

    I'm afraid I am a more than a little bit confused.

    So, you have a device advertising, let's call it the Broadcaster.
    And you have an embedded Linux host receiving the advertising, let's call it the Observer.

    When you test with Nordic devices, both the Broadcaster and Observer uses Nordic device and Controller. That is clear.

    When you test with Broadcom Controller, which device is using the Broadcom Controller?


    Next, are you testing BLE or Bluetooth Mesh? 
    Why are you trying to get throughput with advertising?

    As you use the terms "BLE" and "Advertising," I assume you are testing BLE. With BLE, you should get far better throughput with a connection. The only thing advertising can do better than a connection is broadcasting data to multiple observers. Even for 1-to-n transmission, a connection should still do better.

    Best regards,

    Hieu

  • Hi Hieu,

    I take back "advertising", and it's not broadcaster as it will not accept connection.

    Sorry for confusion. 

    nRF52840 DK - Central device  

    nRF52840 Dongle - Peripheral device

    BLE_Test_app - test app running on embedded linux host (on top of Bluez stack)

    central & peripheral are in connected state.

    We have 2 products

    1. Eagle - using Broadcom controller using UART HCI interface

    2. Panda - using Nordic controller using UART HCI interface

    Test 1:

    BLE Test app running in Eagle made connection to dongle and received data & Throughput calculated.

    After testing completed, Eagle was shutdown.

    Test 2:

    BLE Test app running in Panda made connection to dongle and received data & Throughput calculated. 

    In both Test 1 & 2 same test app and dongle are used.

    >> Next, are you testing BLE or Bluetooth Mesh?  

    We are testing BLE. 

    What we need from Nordic is

    1. Max throughput value on nRF52840 DK which is Flashed w/ hci_uart program.

     Please share your setup, how you tested this. so that we can replicate the steps and confirm the throughput value from our end.

     

    Hope you understand now.

  • Hi Alaganraj,

    I understood your setup now.

    As a starting point with BLE throughput, I recommend you take a look at the Bluetooth: Throughput sample in NCS.

    The documentation of the samples I linked also describes how to tweak the connection parameters to achieve a higher throughput.

    Regarding the test setup, I will need some time to check with the internal team to see if we publicly share it. As I am partially out of office Mon-Wed, I will reach back to you latest by the end of Thursday.

    If you need the information urgently for some reasons, please let me know.

    Best regards,

    Hieu

Reply
  • Hi Alaganraj,

    I understood your setup now.

    As a starting point with BLE throughput, I recommend you take a look at the Bluetooth: Throughput sample in NCS.

    The documentation of the samples I linked also describes how to tweak the connection parameters to achieve a higher throughput.

    Regarding the test setup, I will need some time to check with the internal team to see if we publicly share it. As I am partially out of office Mon-Wed, I will reach back to you latest by the end of Thursday.

    If you need the information urgently for some reasons, please let me know.

    Best regards,

    Hieu

Children
Related