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

ble_uart demo throughput is very slow

Hello Nordic,

I am using the BL600 third-party module and SDK 10. I was able to modify and compile project with GCC at examples\ble_peripheral\ble_app_uart\ for s110. It works nice, but the transfer speed is very low (around 500 Bytes/s). When I send a big chunk of data via UART, the module sometimes just hangs up. Definitely this example is not suitable for production. I have read all topics with descriptions about increasing the speed, but w/o success. Maybe Nordic can provide some good example for handling big amounts of data via BLE UART? Maybe with results of transfer speed for some evaluation board...

Parents
  • I tested your code. I think it is actually your UART baudrate of 19200 that is limiting the throughput here.

    I tried to increase the baudrate to 115200, and then ble_nus_string_send() was called frequently enought to get the BLE_ERROR_NO_TX_BUFFERS error.

    To handle this a had to make quite a few changes to the project. The unmodifed example doesn't really handle overflow from UART. Please find my modified project here. It was made for S110 v8.0.0 and SD 10.0.0. Unzip it in examples\ble_peripheral\ It is not well tested.

    With a connection interval of 39 (48.75ms) I got 2kB/s with 115200, and 1577B/s with 19200.

    With a connection interval of 12 (15ms) I got 4kB/s with 115200. You can decrease the connection interval by using nRF Connect for Android, when you have connected click on the vertical ... and select request connection priority, use connection priority high.

Reply
  • I tested your code. I think it is actually your UART baudrate of 19200 that is limiting the throughput here.

    I tried to increase the baudrate to 115200, and then ble_nus_string_send() was called frequently enought to get the BLE_ERROR_NO_TX_BUFFERS error.

    To handle this a had to make quite a few changes to the project. The unmodifed example doesn't really handle overflow from UART. Please find my modified project here. It was made for S110 v8.0.0 and SD 10.0.0. Unzip it in examples\ble_peripheral\ It is not well tested.

    With a connection interval of 39 (48.75ms) I got 2kB/s with 115200, and 1577B/s with 19200.

    With a connection interval of 12 (15ms) I got 4kB/s with 115200. You can decrease the connection interval by using nRF Connect for Android, when you have connected click on the vertical ... and select request connection priority, use connection priority high.

Children
No Data
Related