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? 

  • 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 Hieu, Thank you. Please let me know if you need any more details.

  • 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

Related