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

How to achieve higher throughput in Piconet using Nordic UART Service?

I have created a Piconet using nrf52840(s140). The 'Central' application was built on ble_app_uart_c example, which is now successfully connecting up to 7 peripherals. The Peripherals are also using NUS service to send data with(ble_nus_string_send) to Central.

I am generating some random data in peripherals. Data ranges are from 12kB/s to 10B/s in different peripheral device. I want to send total 15kB/s of data from 7 peripherals to Central.

My problem is- ALL the peripherals are only successfully sending data while I am sending limited amount of data. The central can receive upto 1kB/s in total, but the connection drops while I want to introduce a peripheral with a higher data rate(more than 1kB/s).The Central cannot maintain that connection in that case any longer.

I kept all the Connection Parameters same as examples. My question is- How I can achieve higher throughput in that system? Please feel free to ask additional questions. Thanks in advance.

PS: I am not sending/receiving any data via UART.

Parents
  • 736 kbps is close to the theoretical maximum, so that's good.

    As you can see from the documentation of sd_ble_gatts_hvx() the NRF_ERROR_RESOURCES error will be returned when it is not possible to queue more notifications.

    I don't quite understand what you mean by control the data rate. Could you elaborate? Do you want higher throughput? If you are, that is not possible.

Reply
  • 736 kbps is close to the theoretical maximum, so that's good.

    As you can see from the documentation of sd_ble_gatts_hvx() the NRF_ERROR_RESOURCES error will be returned when it is not possible to queue more notifications.

    I don't quite understand what you mean by control the data rate. Could you elaborate? Do you want higher throughput? If you are, that is not possible.

Children
No Data
Related