This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts
This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Maximum data throughput.

I wanted to know what's the maximum data throughput if one device has both roles (Client/Server) working at the same time. I already saw the tables for the different SoftDevices (s110, s120 and s130) but not sure if the maximums they display are for one way only or for the two. I want to use this so I'm able to full duplex audio transfer over BLE, but want to know what's the maximum data I can send/receive on both sides (Central/Peripheral). thanks in advance for your answers

  • I also had this problem sending from the central to the peripheral (write without request), getting only 1 packet for connection, which give me a 27kpbs. But if i send from the peripheral to the central by notification I have a throughput of 137kbps. both on, I have 27kbps from the central and 125kbps from peripheral which give me a 152kbps on the worst cases. I think I'm only sending one packet because I'm not defining the bandwidth to high on the central side, but still have to look. To count the packets you can use BLE_EVT_TX_COMPLETE, yes. I'm using another variable, because I'm using NUS also.

  • FormerMember
    0 FormerMember in reply to FormerMember

    It may not be a BLE_EVT_TX_COMPLETE for each transmitted notification. However, the BLE_EVT_TX_COMPLETE event contains the number of packets that were transmitted during that event, see the app TX packet managment message sequence chart.

    The best way to find the number of transmitted packets per connection interval is to use the sniffer.

  • Could my problem be I'm not setting the bandwidth to high in the Central? I tried that, and now of course I'm getting NRF_ERROR_NO_MEM when I attempt to connect.

    I find the 2.0 documentation (API and SDS) on the bandwidth configuration confusing. For example, why are there high, mid, and low memory pool counts while the common bandwidth connection option can only be set to a single mode? Are 2 of the counts ignored? How do I determine the values for the counts? Looking at the default counts doesn't make a lot of sense either -- 192, 7, 0 for tx and 0, 209, 6 for rx. Finally, I couldn't find any examples in the SDK using the bandwidth configuration APIs.

  • I found this question that he wants to change also to the High Bandwidth. I'm still not able to change the bandwidth to high, I think it has to do to the RAM, but not sure, if I have a solution to change to High I'll post here. From what I understood for the counts it's like this

    {

    uint8_t high_count;

    uint8_t mid_count;

    uint8_t low_count;

    }ble_conn_bw_count_t

    so it should be (high_count, mid_count, low_count) don't understand the default numbers either.

  • Hi Jorge,

    Can you elaborate how you achieve 137 kbps peripheral-2-central throughput? Which sample application did you use or do you have your own app? What are the parameters you play with?

    Thx DJ

Related