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

nRF52 recommended ways to reduce and deal with 3004?

Hello Pros,

I maybe running the nRF52 close to its limit. It appears to have a probability of 1/1000 to 1/2000 to hit a 3004 in a continuous time-gated packets stream.

The packets are scheduled in synchrony with other dependencies at 30ms, 120 bytes each session composed with 6 of 20 byte packets. The central and peripherals are both nrF52, running on NUS calls.

I checked no other BLE events are interfering. The connection seems to be stable. There should be no other interrupts except one I setup to trigger and serviced immediately about every 4ms.

The softdevice is S132. SDK11. HW PCA10040.

Min and max connection intervals are both at 10ms.

I have experimented with a wait using while() on BLE_EVT_TX_COMPLETE, but there are cases this event never happen (I guess), so that the process stuck in a while loop forever.

I tried to add some amount of delays on if (~BLE_EVT_TX_COMPLETE) prior to each transaction, this helped to reduced the number of 3004s.

Are there ways to terminate or clear manually the current transfer if failure is detected (no success error) and resend immediately?

Are there other things you could recommend to improve or deal with 3004s? Error correction techniques? If it can just handle a little faster or a 1e-6 session error rate, I'd be very happy.

Thanks!

FI

Related