Packet drops when transferring multiple packets per connection interval from Android. NRF52805 S112

Hi Nordic Team and programmers,

I have a Bluetooth peripheral built from the uart example and it has been working perfectly while operating a basic message based protocol to the phone app during device operation, no packet drops at all both directions from computer/android/iphone.
I'm now testing it with large data transfers for remote updates. After I configured to allow multiple packets in one connection interval it is often dropping some of the later packets. My MTU is set to 247, and I have a 15ms connection interval. No packets are dropped when I run the transfer with multiple packets in one connection interval from my computer with python (bleak).



The sniffer trace is interesting because more data gets through than what is showed on the trace (looking at the uart tx of the nrf). Line number 7176 is where packet02 start is sent; the peripheral received all of packet02, the next one is dropped (missed by the sniffer), and then packet04 is received (also missed by the sniffer). Packets0 to 4 are all sent to the ble service on android at the same time so they are all sent in the same connection interval.

Any ideas on how I could make this stable?
I've tried adding an external RTC clock (no improvement), and changing the soft device to S113 with data length extension (but my phone still had L2Cap max length of 27 so it didn't change the transfer).

Thanks,

Russell

Parents Reply Children
Related