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

throughput manage (BLE_ERROR_NO_TX_PACKETS)

Hello,

First of all I know that many questions were posted here about this topic but I am posting mine because I couldn't figure out how to solve my issue and I am looking for new ideas.

I am working on a project of throughput data from sensors to my central via nRF51822 through a notifying service (SDK12.2, S130).

My central is an iOS app, and my throughput data are given from STM32 via UART but am sure I get them correctly. Also am using a simple buffer not fifo.

            MIN_CONN_INTERVAL               MSEC_TO_UNITS(20, UNIT_1_25_MS)  
            MAX_CONN_INTERVAL               MSEC_TO_UNITS(40, UNIT_1_25_MS) 
            SLAVE_LATENCY                   3   

first of all I was adding packets to the TX buffer, faster than they can be sent out, and I got "BLE_ERROR_NO_TX_PACKETS " error. so I tried to make sure that my TX task is complete before initiating next one with this implementation:

  do{  
          err_code = ble_data_send(&m_data_send, data_packet);
           nrf_delay_ms(2);
    }while(err_code== BLE_ERROR_NO_TX_PACKETS);

But I still have the same problem.

What am I missing?

Is there any problem with my implementation?

Is there any example of maximum throughput manage?

Can this be a cause of my central ?

thank you in advance devzone community. PS: if you want I can give more details.

Parents
  • What kind of throughput are you getting? Why are you not sure you are getting them correctly?

    The central device dictates the connection interval, so the first thing I would check is what the actual connection interval is, see this for how to do that.

    Other than that, you algorithm for sending as much data as possible seems correct, but why do you have the nrf_delay_ms(2); in the while loop?

    The maximum throughput of the S130 is 128 kbps. This thread may also be helpful to you.

Reply
  • What kind of throughput are you getting? Why are you not sure you are getting them correctly?

    The central device dictates the connection interval, so the first thing I would check is what the actual connection interval is, see this for how to do that.

    Other than that, you algorithm for sending as much data as possible seems correct, but why do you have the nrf_delay_ms(2); in the while loop?

    The maximum throughput of the S130 is 128 kbps. This thread may also be helpful to you.

Children
No Data
Related