Different PCA10059 Throughput on different computers

Dear Nordic Team Support

We face an issue where on different computers, using the same setup, different throughput can be achieved.

Setup:

- Custom Device using the nrf52840 dongle as BLE Peripheral  (Softdevice s140), sdk version 6

- PC Application using nrf-ble-driver-4.1.2-win_x86_32 as BLE Central, sdk version 6

- Dongle PCA10059 2.0.0 2021.9 (but also with older versions)

On some computers 30kB/s can be achieve transfering data from the BLE Central to the BLE Peripheral, when just changing the computer (same BLE Central, same dongle, same PC Application Release) the throughput drops down significantly to approx. 3kB/s.

The PC Application is sending a package, waits for the "BLE_GATTC_EVT_HVX" and sends the next package. When measuring the timestamps on a "good" computer, the following durations can be achieved:

1. Hvx received (triggers sending the next package using sd_ble_gattc_write)  : + 0ms

2. sd_ble_gattc_write returns NRF_SUCCESS: + 4ms to 1.

3. BLE_GATTC_EVT_WRITE_CMD_TX_COMPLETE callback: + 0ms to 2.

4. Next Hxc received: + 2ms to 3.

However measuring this durations on a "bad" computer the following durations are seen:

1. Hvx received (triggers sending the next package using sd_ble_gattc_write)  : + 0ms

2. sd_ble_gattc_write returns NRF_SUCCESS: + 60ms to 1.

3. BLE_GATTC_EVT_WRITE_CMD_TX_COMPLETE callback: + 4ms to 2.

4. Next Hxc received: + 25ms to 3.

Do you have an explanation why on some computers the sending of a frame (or the call to the sd_ble_gattc_write takes 4ms and on others up to 60ms)? 

It looks like the PCA10059 is not as responsive and performant as on other computers? Are there any driver requirements?

Installed Software:

NRF Connect

Best regards and thanks for a quick answer

  • Hi 

    It is odd that there would be such a big difference, but there are obviously various factors that can affect both USB and wireless performance. 

    1) Depending on the USB configuration on the different PC's there could be delays in the USB communication, if for instance the slow computer has a lot of devices connected to the USB bus. Is a USB hub used in either case, and do you know how many other USB devices are present?

    2) Does either computer have any USB3 devices connected?
    USB3 is running at a frequency which causes a lot of noise in the 2.4GHz band (used by Bluetooth), and if you have such a device running there could be significant delays in the Bluetooth communication between the dongle and the peripheral. 

    For clarity, are you using Notifications or Indications to send data?
    If you care about throughput it is a lot more efficient to send Notifications, since you can queue multiple packets before getting a response. 

    Do you have a spare DK or dongle so you can do some testing with the nRF Sniffer?
    It could be interesting if the slow down can be caused by the Bluetooth connection, or if it is all down to the USB communication. 

    Best regards
    Torbjørn

Related