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

Radio Buffer's filling up faster then they should NRF_ERROR_RESOURCES on a sd_ble_gatts_hvx(..)

I have a sensor which I'm grabbing FIFO data from every 14msec,  ~240bytes.   I send these FIFO grabs as soon as they arrive. 

My connection parameters:

Connection Interval: 10msec

MTU = 247

DL=251

hvn_tx_queue_size = 36 

event_length = tried 8 ~ 18

PHY = tested both 1Mbps and 2Mbps

According to the timing, the FIFO data grabs occur every 14msec, so under the Connection interval.  Therefore the Buffers should never fill up.  However after about 200 data sends I get the NRF_ERROR_RESOURCES error.  Is there a setting I'm missing, why would the Radio be throttling?  If the MTU is 247 and Interval 10msec, assuming single packet in a Connection Event it should support up to 24kB/sec (with 240byte payloads).  According to the FIFO data grab date it only needs ~17.2kB/sec.  So where am I missing something that would cause the link not to be able to support the Data Rate and hit Buffer FULL errors?    I do handle this by wait on the BLE_GATTS_EVT_HVN_TX_COMPLETE but I don't want to lose any incoming data.

I'm currently using an nRF52840, SDK 16, S140 v7.0.1

Thanks for the help guys,

DC

Parents
  • Hi Dave, 
    There could be a chance that the nRF Connect couldn't handle large throughput. Could you send the log when the issue happened ? 

    Note that the connectivity/serialization firmware on the PCA10059 (that to be used with NRF Connect) might not be optimized for high throughput application. We had some explanation here.

    I think the bottleneck could be the serial transportation between the PCA10059 and PC. 

    You may need to develop your own application running on PCA10059 and optimize the serial communication to PC (instead of forwarding any BLE event with all overhead to pc, you only forward the payload to PC). Please try testing using our ble_app_att_mtu_throughput  example. 

Reply
  • Hi Dave, 
    There could be a chance that the nRF Connect couldn't handle large throughput. Could you send the log when the issue happened ? 

    Note that the connectivity/serialization firmware on the PCA10059 (that to be used with NRF Connect) might not be optimized for high throughput application. We had some explanation here.

    I think the bottleneck could be the serial transportation between the PCA10059 and PC. 

    You may need to develop your own application running on PCA10059 and optimize the serial communication to PC (instead of forwarding any BLE event with all overhead to pc, you only forward the payload to PC). Please try testing using our ble_app_att_mtu_throughput  example. 

Children
No Data
Related